{ "version": 3, "sources": ["../../../../node_modules/fast-sha256/sha256.js", "../../../../node_modules/pbf/index.js", "../../../lib.shared.utils/the_now.ts", "../../../lib.shared.error/errors.ts", "../../../lib.shared.limits/index.ts", "../../../lib.shared.crypto/index.ts", "../../../lib.shared.model/model.ts", "../../../lib.shared.model/model_utils.ts", "../../../lib.shared.model/board_consistency.ts", "../../../lib.shared.model/index.ts"], "sourcesContent": ["(function (root, factory) {\n // Hack to make all exports of this module sha256 function object properties.\n var exports = {};\n factory(exports);\n var sha256 = exports[\"default\"];\n for (var k in exports) {\n sha256[k] = exports[k];\n }\n \n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = sha256;\n } else if (typeof define === 'function' && define.amd) {\n define(function() { return sha256; }); \n } else {\n root.sha256 = sha256;\n }\n})(this, function(exports) {\n\"use strict\";\nexports.__esModule = true;\n// SHA-256 (+ HMAC and PBKDF2) for JavaScript.\n//\n// Written in 2014-2016 by Dmitry Chestnykh.\n// Public domain, no warranty.\n//\n// Functions (accept and return Uint8Arrays):\n//\n// sha256(message) -> hash\n// sha256.hmac(key, message) -> mac\n// sha256.pbkdf2(password, salt, rounds, dkLen) -> dk\n//\n// Classes:\n//\n// new sha256.Hash()\n// new sha256.HMAC(key)\n//\nexports.digestLength = 32;\nexports.blockSize = 64;\n// SHA-256 constants\nvar K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b,\n 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01,\n 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7,\n 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152,\n 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,\n 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc,\n 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819,\n 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08,\n 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f,\n 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\nfunction hashBlocks(w, v, p, pos, len) {\n var a, b, c, d, e, f, g, h, u, i, j, t1, t2;\n while (len >= 64) {\n a = v[0];\n b = v[1];\n c = v[2];\n d = v[3];\n e = v[4];\n f = v[5];\n g = v[6];\n h = v[7];\n for (i = 0; i < 16; i++) {\n j = pos + i * 4;\n w[i] = (((p[j] & 0xff) << 24) | ((p[j + 1] & 0xff) << 16) |\n ((p[j + 2] & 0xff) << 8) | (p[j + 3] & 0xff));\n }\n for (i = 16; i < 64; i++) {\n u = w[i - 2];\n t1 = (u >>> 17 | u << (32 - 17)) ^ (u >>> 19 | u << (32 - 19)) ^ (u >>> 10);\n u = w[i - 15];\n t2 = (u >>> 7 | u << (32 - 7)) ^ (u >>> 18 | u << (32 - 18)) ^ (u >>> 3);\n w[i] = (t1 + w[i - 7] | 0) + (t2 + w[i - 16] | 0);\n }\n for (i = 0; i < 64; i++) {\n t1 = (((((e >>> 6 | e << (32 - 6)) ^ (e >>> 11 | e << (32 - 11)) ^\n (e >>> 25 | e << (32 - 25))) + ((e & f) ^ (~e & g))) | 0) +\n ((h + ((K[i] + w[i]) | 0)) | 0)) | 0;\n t2 = (((a >>> 2 | a << (32 - 2)) ^ (a >>> 13 | a << (32 - 13)) ^\n (a >>> 22 | a << (32 - 22))) + ((a & b) ^ (a & c) ^ (b & c))) | 0;\n h = g;\n g = f;\n f = e;\n e = (d + t1) | 0;\n d = c;\n c = b;\n b = a;\n a = (t1 + t2) | 0;\n }\n v[0] += a;\n v[1] += b;\n v[2] += c;\n v[3] += d;\n v[4] += e;\n v[5] += f;\n v[6] += g;\n v[7] += h;\n pos += 64;\n len -= 64;\n }\n return pos;\n}\n// Hash implements SHA256 hash algorithm.\nvar Hash = /** @class */ (function () {\n function Hash() {\n this.digestLength = exports.digestLength;\n this.blockSize = exports.blockSize;\n // Note: Int32Array is used instead of Uint32Array for performance reasons.\n this.state = new Int32Array(8); // hash state\n this.temp = new Int32Array(64); // temporary state\n this.buffer = new Uint8Array(128); // buffer for data to hash\n this.bufferLength = 0; // number of bytes in buffer\n this.bytesHashed = 0; // number of total bytes hashed\n this.finished = false; // indicates whether the hash was finalized\n this.reset();\n }\n // Resets hash state making it possible\n // to re-use this instance to hash other data.\n Hash.prototype.reset = function () {\n this.state[0] = 0x6a09e667;\n this.state[1] = 0xbb67ae85;\n this.state[2] = 0x3c6ef372;\n this.state[3] = 0xa54ff53a;\n this.state[4] = 0x510e527f;\n this.state[5] = 0x9b05688c;\n this.state[6] = 0x1f83d9ab;\n this.state[7] = 0x5be0cd19;\n this.bufferLength = 0;\n this.bytesHashed = 0;\n this.finished = false;\n return this;\n };\n // Cleans internal buffers and re-initializes hash state.\n Hash.prototype.clean = function () {\n for (var i = 0; i < this.buffer.length; i++) {\n this.buffer[i] = 0;\n }\n for (var i = 0; i < this.temp.length; i++) {\n this.temp[i] = 0;\n }\n this.reset();\n };\n // Updates hash state with the given data.\n //\n // Optionally, length of the data can be specified to hash\n // fewer bytes than data.length.\n //\n // Throws error when trying to update already finalized hash:\n // instance must be reset to use it again.\n Hash.prototype.update = function (data, dataLength) {\n if (dataLength === void 0) { dataLength = data.length; }\n if (this.finished) {\n throw new Error(\"SHA256: can't update because hash was finished.\");\n }\n var dataPos = 0;\n this.bytesHashed += dataLength;\n if (this.bufferLength > 0) {\n while (this.bufferLength < 64 && dataLength > 0) {\n this.buffer[this.bufferLength++] = data[dataPos++];\n dataLength--;\n }\n if (this.bufferLength === 64) {\n hashBlocks(this.temp, this.state, this.buffer, 0, 64);\n this.bufferLength = 0;\n }\n }\n if (dataLength >= 64) {\n dataPos = hashBlocks(this.temp, this.state, data, dataPos, dataLength);\n dataLength %= 64;\n }\n while (dataLength > 0) {\n this.buffer[this.bufferLength++] = data[dataPos++];\n dataLength--;\n }\n return this;\n };\n // Finalizes hash state and puts hash into out.\n //\n // If hash was already finalized, puts the same value.\n Hash.prototype.finish = function (out) {\n if (!this.finished) {\n var bytesHashed = this.bytesHashed;\n var left = this.bufferLength;\n var bitLenHi = (bytesHashed / 0x20000000) | 0;\n var bitLenLo = bytesHashed << 3;\n var padLength = (bytesHashed % 64 < 56) ? 64 : 128;\n this.buffer[left] = 0x80;\n for (var i = left + 1; i < padLength - 8; i++) {\n this.buffer[i] = 0;\n }\n this.buffer[padLength - 8] = (bitLenHi >>> 24) & 0xff;\n this.buffer[padLength - 7] = (bitLenHi >>> 16) & 0xff;\n this.buffer[padLength - 6] = (bitLenHi >>> 8) & 0xff;\n this.buffer[padLength - 5] = (bitLenHi >>> 0) & 0xff;\n this.buffer[padLength - 4] = (bitLenLo >>> 24) & 0xff;\n this.buffer[padLength - 3] = (bitLenLo >>> 16) & 0xff;\n this.buffer[padLength - 2] = (bitLenLo >>> 8) & 0xff;\n this.buffer[padLength - 1] = (bitLenLo >>> 0) & 0xff;\n hashBlocks(this.temp, this.state, this.buffer, 0, padLength);\n this.finished = true;\n }\n for (var i = 0; i < 8; i++) {\n out[i * 4 + 0] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n return this;\n };\n // Returns the final hash digest.\n Hash.prototype.digest = function () {\n var out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n };\n // Internal function for use in HMAC for optimization.\n Hash.prototype._saveState = function (out) {\n for (var i = 0; i < this.state.length; i++) {\n out[i] = this.state[i];\n }\n };\n // Internal function for use in HMAC for optimization.\n Hash.prototype._restoreState = function (from, bytesHashed) {\n for (var i = 0; i < this.state.length; i++) {\n this.state[i] = from[i];\n }\n this.bytesHashed = bytesHashed;\n this.finished = false;\n this.bufferLength = 0;\n };\n return Hash;\n}());\nexports.Hash = Hash;\n// HMAC implements HMAC-SHA256 message authentication algorithm.\nvar HMAC = /** @class */ (function () {\n function HMAC(key) {\n this.inner = new Hash();\n this.outer = new Hash();\n this.blockSize = this.inner.blockSize;\n this.digestLength = this.inner.digestLength;\n var pad = new Uint8Array(this.blockSize);\n if (key.length > this.blockSize) {\n (new Hash()).update(key).finish(pad).clean();\n }\n else {\n for (var i = 0; i < key.length; i++) {\n pad[i] = key[i];\n }\n }\n for (var i = 0; i < pad.length; i++) {\n pad[i] ^= 0x36;\n }\n this.inner.update(pad);\n for (var i = 0; i < pad.length; i++) {\n pad[i] ^= 0x36 ^ 0x5c;\n }\n this.outer.update(pad);\n this.istate = new Uint32Array(8);\n this.ostate = new Uint32Array(8);\n this.inner._saveState(this.istate);\n this.outer._saveState(this.ostate);\n for (var i = 0; i < pad.length; i++) {\n pad[i] = 0;\n }\n }\n // Returns HMAC state to the state initialized with key\n // to make it possible to run HMAC over the other data with the same\n // key without creating a new instance.\n HMAC.prototype.reset = function () {\n this.inner._restoreState(this.istate, this.inner.blockSize);\n this.outer._restoreState(this.ostate, this.outer.blockSize);\n return this;\n };\n // Cleans HMAC state.\n HMAC.prototype.clean = function () {\n for (var i = 0; i < this.istate.length; i++) {\n this.ostate[i] = this.istate[i] = 0;\n }\n this.inner.clean();\n this.outer.clean();\n };\n // Updates state with provided data.\n HMAC.prototype.update = function (data) {\n this.inner.update(data);\n return this;\n };\n // Finalizes HMAC and puts the result in out.\n HMAC.prototype.finish = function (out) {\n if (this.outer.finished) {\n this.outer.finish(out);\n }\n else {\n this.inner.finish(out);\n this.outer.update(out, this.digestLength).finish(out);\n }\n return this;\n };\n // Returns message authentication code.\n HMAC.prototype.digest = function () {\n var out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n };\n return HMAC;\n}());\nexports.HMAC = HMAC;\n// Returns SHA256 hash of data.\nfunction hash(data) {\n var h = (new Hash()).update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n}\nexports.hash = hash;\n// Function hash is both available as module.hash and as default export.\nexports[\"default\"] = hash;\n// Returns HMAC-SHA256 of data under the key.\nfunction hmac(key, data) {\n var h = (new HMAC(key)).update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n}\nexports.hmac = hmac;\n// Fills hkdf buffer like this:\n// T(1) = HMAC-Hash(PRK, T(0) | info | 0x01)\nfunction fillBuffer(buffer, hmac, info, counter) {\n // Counter is a byte value: check if it overflowed.\n var num = counter[0];\n if (num === 0) {\n throw new Error(\"hkdf: cannot expand more\");\n }\n // Prepare HMAC instance for new data with old key.\n hmac.reset();\n // Hash in previous output if it was generated\n // (i.e. counter is greater than 1).\n if (num > 1) {\n hmac.update(buffer);\n }\n // Hash in info if it exists.\n if (info) {\n hmac.update(info);\n }\n // Hash in the counter.\n hmac.update(counter);\n // Output result to buffer and clean HMAC instance.\n hmac.finish(buffer);\n // Increment counter inside typed array, this works properly.\n counter[0]++;\n}\nvar hkdfSalt = new Uint8Array(exports.digestLength); // Filled with zeroes.\nfunction hkdf(key, salt, info, length) {\n if (salt === void 0) { salt = hkdfSalt; }\n if (length === void 0) { length = 32; }\n var counter = new Uint8Array([1]);\n // HKDF-Extract uses salt as HMAC key, and key as data.\n var okm = hmac(salt, key);\n // Initialize HMAC for expanding with extracted key.\n // Ensure no collisions with `hmac` function.\n var hmac_ = new HMAC(okm);\n // Allocate buffer.\n var buffer = new Uint8Array(hmac_.digestLength);\n var bufpos = buffer.length;\n var out = new Uint8Array(length);\n for (var i = 0; i < length; i++) {\n if (bufpos === buffer.length) {\n fillBuffer(buffer, hmac_, info, counter);\n bufpos = 0;\n }\n out[i] = buffer[bufpos++];\n }\n hmac_.clean();\n buffer.fill(0);\n counter.fill(0);\n return out;\n}\nexports.hkdf = hkdf;\n// Derives a key from password and salt using PBKDF2-HMAC-SHA256\n// with the given number of iterations.\n//\n// The number of bytes returned is equal to dkLen.\n//\n// (For better security, avoid dkLen greater than hash length - 32 bytes).\nfunction pbkdf2(password, salt, iterations, dkLen) {\n var prf = new HMAC(password);\n var len = prf.digestLength;\n var ctr = new Uint8Array(4);\n var t = new Uint8Array(len);\n var u = new Uint8Array(len);\n var dk = new Uint8Array(dkLen);\n for (var i = 0; i * len < dkLen; i++) {\n var c = i + 1;\n ctr[0] = (c >>> 24) & 0xff;\n ctr[1] = (c >>> 16) & 0xff;\n ctr[2] = (c >>> 8) & 0xff;\n ctr[3] = (c >>> 0) & 0xff;\n prf.reset();\n prf.update(salt);\n prf.update(ctr);\n prf.finish(u);\n for (var j = 0; j < len; j++) {\n t[j] = u[j];\n }\n for (var j = 2; j <= iterations; j++) {\n prf.reset();\n prf.update(u).finish(u);\n for (var k = 0; k < len; k++) {\n t[k] ^= u[k];\n }\n }\n for (var j = 0; j < len && i * len + j < dkLen; j++) {\n dk[i * len + j] = t[j];\n }\n }\n for (var i = 0; i < len; i++) {\n t[i] = u[i] = 0;\n }\n for (var i = 0; i < 4; i++) {\n ctr[i] = 0;\n }\n prf.clean();\n return dk;\n}\nexports.pbkdf2 = pbkdf2;\n});\n", "'use strict';\n\nmodule.exports = Pbf;\n\nvar ieee754 = require('ieee754');\n\nfunction Pbf(buf) {\n this.buf = ArrayBuffer.isView && ArrayBuffer.isView(buf) ? buf : new Uint8Array(buf || 0);\n this.pos = 0;\n this.type = 0;\n this.length = this.buf.length;\n}\n\nPbf.Varint = 0; // varint: int32, int64, uint32, uint64, sint32, sint64, bool, enum\nPbf.Fixed64 = 1; // 64-bit: double, fixed64, sfixed64\nPbf.Bytes = 2; // length-delimited: string, bytes, embedded messages, packed repeated fields\nPbf.Fixed32 = 5; // 32-bit: float, fixed32, sfixed32\n\nvar SHIFT_LEFT_32 = (1 << 16) * (1 << 16),\n SHIFT_RIGHT_32 = 1 / SHIFT_LEFT_32;\n\n// Threshold chosen based on both benchmarking and knowledge about browser string\n// data structures (which currently switch structure types at 12 bytes or more)\nvar TEXT_DECODER_MIN_LENGTH = 12;\nvar utf8TextDecoder = typeof TextDecoder === 'undefined' ? null : new TextDecoder('utf8');\n\nPbf.prototype = {\n\n destroy: function() {\n this.buf = null;\n },\n\n // === READING =================================================================\n\n readFields: function(readField, result, end) {\n end = end || this.length;\n\n while (this.pos < end) {\n var val = this.readVarint(),\n tag = val >> 3,\n startPos = this.pos;\n\n this.type = val & 0x7;\n readField(tag, result, this);\n\n if (this.pos === startPos) this.skip(val);\n }\n return result;\n },\n\n readMessage: function(readField, result) {\n return this.readFields(readField, result, this.readVarint() + this.pos);\n },\n\n readFixed32: function() {\n var val = readUInt32(this.buf, this.pos);\n this.pos += 4;\n return val;\n },\n\n readSFixed32: function() {\n var val = readInt32(this.buf, this.pos);\n this.pos += 4;\n return val;\n },\n\n // 64-bit int handling is based on github.com/dpw/node-buffer-more-ints (MIT-licensed)\n\n readFixed64: function() {\n var val = readUInt32(this.buf, this.pos) + readUInt32(this.buf, this.pos + 4) * SHIFT_LEFT_32;\n this.pos += 8;\n return val;\n },\n\n readSFixed64: function() {\n var val = readUInt32(this.buf, this.pos) + readInt32(this.buf, this.pos + 4) * SHIFT_LEFT_32;\n this.pos += 8;\n return val;\n },\n\n readFloat: function() {\n var val = ieee754.read(this.buf, this.pos, true, 23, 4);\n this.pos += 4;\n return val;\n },\n\n readDouble: function() {\n var val = ieee754.read(this.buf, this.pos, true, 52, 8);\n this.pos += 8;\n return val;\n },\n\n readVarint: function(isSigned) {\n var buf = this.buf,\n val, b;\n\n b = buf[this.pos++]; val = b & 0x7f; if (b < 0x80) return val;\n b = buf[this.pos++]; val |= (b & 0x7f) << 7; if (b < 0x80) return val;\n b = buf[this.pos++]; val |= (b & 0x7f) << 14; if (b < 0x80) return val;\n b = buf[this.pos++]; val |= (b & 0x7f) << 21; if (b < 0x80) return val;\n b = buf[this.pos]; val |= (b & 0x0f) << 28;\n\n return readVarintRemainder(val, isSigned, this);\n },\n\n readVarint64: function() { // for compatibility with v2.0.1\n return this.readVarint(true);\n },\n\n readSVarint: function() {\n var num = this.readVarint();\n return num % 2 === 1 ? (num + 1) / -2 : num / 2; // zigzag encoding\n },\n\n readBoolean: function() {\n return Boolean(this.readVarint());\n },\n\n readString: function() {\n var end = this.readVarint() + this.pos;\n var pos = this.pos;\n this.pos = end;\n\n if (end - pos >= TEXT_DECODER_MIN_LENGTH && utf8TextDecoder) {\n // longer strings are fast with the built-in browser TextDecoder API\n return readUtf8TextDecoder(this.buf, pos, end);\n }\n // short strings are fast with our custom implementation\n return readUtf8(this.buf, pos, end);\n },\n\n readBytes: function() {\n var end = this.readVarint() + this.pos,\n buffer = this.buf.subarray(this.pos, end);\n this.pos = end;\n return buffer;\n },\n\n // verbose for performance reasons; doesn't affect gzipped size\n\n readPackedVarint: function(arr, isSigned) {\n if (this.type !== Pbf.Bytes) return arr.push(this.readVarint(isSigned));\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readVarint(isSigned));\n return arr;\n },\n readPackedSVarint: function(arr) {\n if (this.type !== Pbf.Bytes) return arr.push(this.readSVarint());\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readSVarint());\n return arr;\n },\n readPackedBoolean: function(arr) {\n if (this.type !== Pbf.Bytes) return arr.push(this.readBoolean());\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readBoolean());\n return arr;\n },\n readPackedFloat: function(arr) {\n if (this.type !== Pbf.Bytes) return arr.push(this.readFloat());\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readFloat());\n return arr;\n },\n readPackedDouble: function(arr) {\n if (this.type !== Pbf.Bytes) return arr.push(this.readDouble());\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readDouble());\n return arr;\n },\n readPackedFixed32: function(arr) {\n if (this.type !== Pbf.Bytes) return arr.push(this.readFixed32());\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readFixed32());\n return arr;\n },\n readPackedSFixed32: function(arr) {\n if (this.type !== Pbf.Bytes) return arr.push(this.readSFixed32());\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readSFixed32());\n return arr;\n },\n readPackedFixed64: function(arr) {\n if (this.type !== Pbf.Bytes) return arr.push(this.readFixed64());\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readFixed64());\n return arr;\n },\n readPackedSFixed64: function(arr) {\n if (this.type !== Pbf.Bytes) return arr.push(this.readSFixed64());\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readSFixed64());\n return arr;\n },\n\n skip: function(val) {\n var type = val & 0x7;\n if (type === Pbf.Varint) while (this.buf[this.pos++] > 0x7f) {}\n else if (type === Pbf.Bytes) this.pos = this.readVarint() + this.pos;\n else if (type === Pbf.Fixed32) this.pos += 4;\n else if (type === Pbf.Fixed64) this.pos += 8;\n else throw new Error('Unimplemented type: ' + type);\n },\n\n // === WRITING =================================================================\n\n writeTag: function(tag, type) {\n this.writeVarint((tag << 3) | type);\n },\n\n realloc: function(min) {\n var length = this.length || 16;\n\n while (length < this.pos + min) length *= 2;\n\n if (length !== this.length) {\n var buf = new Uint8Array(length);\n buf.set(this.buf);\n this.buf = buf;\n this.length = length;\n }\n },\n\n finish: function() {\n this.length = this.pos;\n this.pos = 0;\n return this.buf.subarray(0, this.length);\n },\n\n writeFixed32: function(val) {\n this.realloc(4);\n writeInt32(this.buf, val, this.pos);\n this.pos += 4;\n },\n\n writeSFixed32: function(val) {\n this.realloc(4);\n writeInt32(this.buf, val, this.pos);\n this.pos += 4;\n },\n\n writeFixed64: function(val) {\n this.realloc(8);\n writeInt32(this.buf, val & -1, this.pos);\n writeInt32(this.buf, Math.floor(val * SHIFT_RIGHT_32), this.pos + 4);\n this.pos += 8;\n },\n\n writeSFixed64: function(val) {\n this.realloc(8);\n writeInt32(this.buf, val & -1, this.pos);\n writeInt32(this.buf, Math.floor(val * SHIFT_RIGHT_32), this.pos + 4);\n this.pos += 8;\n },\n\n writeVarint: function(val) {\n val = +val || 0;\n\n if (val > 0xfffffff || val < 0) {\n writeBigVarint(val, this);\n return;\n }\n\n this.realloc(4);\n\n this.buf[this.pos++] = val & 0x7f | (val > 0x7f ? 0x80 : 0); if (val <= 0x7f) return;\n this.buf[this.pos++] = ((val >>>= 7) & 0x7f) | (val > 0x7f ? 0x80 : 0); if (val <= 0x7f) return;\n this.buf[this.pos++] = ((val >>>= 7) & 0x7f) | (val > 0x7f ? 0x80 : 0); if (val <= 0x7f) return;\n this.buf[this.pos++] = (val >>> 7) & 0x7f;\n },\n\n writeSVarint: function(val) {\n this.writeVarint(val < 0 ? -val * 2 - 1 : val * 2);\n },\n\n writeBoolean: function(val) {\n this.writeVarint(Boolean(val));\n },\n\n writeString: function(str) {\n str = String(str);\n this.realloc(str.length * 4);\n\n this.pos++; // reserve 1 byte for short string length\n\n var startPos = this.pos;\n // write the string directly to the buffer and see how much was written\n this.pos = writeUtf8(this.buf, str, this.pos);\n var len = this.pos - startPos;\n\n if (len >= 0x80) makeRoomForExtraLength(startPos, len, this);\n\n // finally, write the message length in the reserved place and restore the position\n this.pos = startPos - 1;\n this.writeVarint(len);\n this.pos += len;\n },\n\n writeFloat: function(val) {\n this.realloc(4);\n ieee754.write(this.buf, val, this.pos, true, 23, 4);\n this.pos += 4;\n },\n\n writeDouble: function(val) {\n this.realloc(8);\n ieee754.write(this.buf, val, this.pos, true, 52, 8);\n this.pos += 8;\n },\n\n writeBytes: function(buffer) {\n var len = buffer.length;\n this.writeVarint(len);\n this.realloc(len);\n for (var i = 0; i < len; i++) this.buf[this.pos++] = buffer[i];\n },\n\n writeRawMessage: function(fn, obj) {\n this.pos++; // reserve 1 byte for short message length\n\n // write the message directly to the buffer and see how much was written\n var startPos = this.pos;\n fn(obj, this);\n var len = this.pos - startPos;\n\n if (len >= 0x80) makeRoomForExtraLength(startPos, len, this);\n\n // finally, write the message length in the reserved place and restore the position\n this.pos = startPos - 1;\n this.writeVarint(len);\n this.pos += len;\n },\n\n writeMessage: function(tag, fn, obj) {\n this.writeTag(tag, Pbf.Bytes);\n this.writeRawMessage(fn, obj);\n },\n\n writePackedVarint: function(tag, arr) { if (arr.length) this.writeMessage(tag, writePackedVarint, arr); },\n writePackedSVarint: function(tag, arr) { if (arr.length) this.writeMessage(tag, writePackedSVarint, arr); },\n writePackedBoolean: function(tag, arr) { if (arr.length) this.writeMessage(tag, writePackedBoolean, arr); },\n writePackedFloat: function(tag, arr) { if (arr.length) this.writeMessage(tag, writePackedFloat, arr); },\n writePackedDouble: function(tag, arr) { if (arr.length) this.writeMessage(tag, writePackedDouble, arr); },\n writePackedFixed32: function(tag, arr) { if (arr.length) this.writeMessage(tag, writePackedFixed32, arr); },\n writePackedSFixed32: function(tag, arr) { if (arr.length) this.writeMessage(tag, writePackedSFixed32, arr); },\n writePackedFixed64: function(tag, arr) { if (arr.length) this.writeMessage(tag, writePackedFixed64, arr); },\n writePackedSFixed64: function(tag, arr) { if (arr.length) this.writeMessage(tag, writePackedSFixed64, arr); },\n\n writeBytesField: function(tag, buffer) {\n this.writeTag(tag, Pbf.Bytes);\n this.writeBytes(buffer);\n },\n writeFixed32Field: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed32);\n this.writeFixed32(val);\n },\n writeSFixed32Field: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed32);\n this.writeSFixed32(val);\n },\n writeFixed64Field: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed64);\n this.writeFixed64(val);\n },\n writeSFixed64Field: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed64);\n this.writeSFixed64(val);\n },\n writeVarintField: function(tag, val) {\n this.writeTag(tag, Pbf.Varint);\n this.writeVarint(val);\n },\n writeSVarintField: function(tag, val) {\n this.writeTag(tag, Pbf.Varint);\n this.writeSVarint(val);\n },\n writeStringField: function(tag, str) {\n this.writeTag(tag, Pbf.Bytes);\n this.writeString(str);\n },\n writeFloatField: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed32);\n this.writeFloat(val);\n },\n writeDoubleField: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed64);\n this.writeDouble(val);\n },\n writeBooleanField: function(tag, val) {\n this.writeVarintField(tag, Boolean(val));\n }\n};\n\nfunction readVarintRemainder(l, s, p) {\n var buf = p.buf,\n h, b;\n\n b = buf[p.pos++]; h = (b & 0x70) >> 4; if (b < 0x80) return toNum(l, h, s);\n b = buf[p.pos++]; h |= (b & 0x7f) << 3; if (b < 0x80) return toNum(l, h, s);\n b = buf[p.pos++]; h |= (b & 0x7f) << 10; if (b < 0x80) return toNum(l, h, s);\n b = buf[p.pos++]; h |= (b & 0x7f) << 17; if (b < 0x80) return toNum(l, h, s);\n b = buf[p.pos++]; h |= (b & 0x7f) << 24; if (b < 0x80) return toNum(l, h, s);\n b = buf[p.pos++]; h |= (b & 0x01) << 31; if (b < 0x80) return toNum(l, h, s);\n\n throw new Error('Expected varint not more than 10 bytes');\n}\n\nfunction readPackedEnd(pbf) {\n return pbf.type === Pbf.Bytes ?\n pbf.readVarint() + pbf.pos : pbf.pos + 1;\n}\n\nfunction toNum(low, high, isSigned) {\n if (isSigned) {\n return high * 0x100000000 + (low >>> 0);\n }\n\n return ((high >>> 0) * 0x100000000) + (low >>> 0);\n}\n\nfunction writeBigVarint(val, pbf) {\n var low, high;\n\n if (val >= 0) {\n low = (val % 0x100000000) | 0;\n high = (val / 0x100000000) | 0;\n } else {\n low = ~(-val % 0x100000000);\n high = ~(-val / 0x100000000);\n\n if (low ^ 0xffffffff) {\n low = (low + 1) | 0;\n } else {\n low = 0;\n high = (high + 1) | 0;\n }\n }\n\n if (val >= 0x10000000000000000 || val < -0x10000000000000000) {\n throw new Error('Given varint doesn\\'t fit into 10 bytes');\n }\n\n pbf.realloc(10);\n\n writeBigVarintLow(low, high, pbf);\n writeBigVarintHigh(high, pbf);\n}\n\nfunction writeBigVarintLow(low, high, pbf) {\n pbf.buf[pbf.pos++] = low & 0x7f | 0x80; low >>>= 7;\n pbf.buf[pbf.pos++] = low & 0x7f | 0x80; low >>>= 7;\n pbf.buf[pbf.pos++] = low & 0x7f | 0x80; low >>>= 7;\n pbf.buf[pbf.pos++] = low & 0x7f | 0x80; low >>>= 7;\n pbf.buf[pbf.pos] = low & 0x7f;\n}\n\nfunction writeBigVarintHigh(high, pbf) {\n var lsb = (high & 0x07) << 4;\n\n pbf.buf[pbf.pos++] |= lsb | ((high >>>= 3) ? 0x80 : 0); if (!high) return;\n pbf.buf[pbf.pos++] = high & 0x7f | ((high >>>= 7) ? 0x80 : 0); if (!high) return;\n pbf.buf[pbf.pos++] = high & 0x7f | ((high >>>= 7) ? 0x80 : 0); if (!high) return;\n pbf.buf[pbf.pos++] = high & 0x7f | ((high >>>= 7) ? 0x80 : 0); if (!high) return;\n pbf.buf[pbf.pos++] = high & 0x7f | ((high >>>= 7) ? 0x80 : 0); if (!high) return;\n pbf.buf[pbf.pos++] = high & 0x7f;\n}\n\nfunction makeRoomForExtraLength(startPos, len, pbf) {\n var extraLen =\n len <= 0x3fff ? 1 :\n len <= 0x1fffff ? 2 :\n len <= 0xfffffff ? 3 : Math.floor(Math.log(len) / (Math.LN2 * 7));\n\n // if 1 byte isn't enough for encoding message length, shift the data to the right\n pbf.realloc(extraLen);\n for (var i = pbf.pos - 1; i >= startPos; i--) pbf.buf[i + extraLen] = pbf.buf[i];\n}\n\nfunction writePackedVarint(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeVarint(arr[i]); }\nfunction writePackedSVarint(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeSVarint(arr[i]); }\nfunction writePackedFloat(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeFloat(arr[i]); }\nfunction writePackedDouble(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeDouble(arr[i]); }\nfunction writePackedBoolean(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeBoolean(arr[i]); }\nfunction writePackedFixed32(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeFixed32(arr[i]); }\nfunction writePackedSFixed32(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeSFixed32(arr[i]); }\nfunction writePackedFixed64(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeFixed64(arr[i]); }\nfunction writePackedSFixed64(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeSFixed64(arr[i]); }\n\n// Buffer code below from https://github.com/feross/buffer, MIT-licensed\n\nfunction readUInt32(buf, pos) {\n return ((buf[pos]) |\n (buf[pos + 1] << 8) |\n (buf[pos + 2] << 16)) +\n (buf[pos + 3] * 0x1000000);\n}\n\nfunction writeInt32(buf, val, pos) {\n buf[pos] = val;\n buf[pos + 1] = (val >>> 8);\n buf[pos + 2] = (val >>> 16);\n buf[pos + 3] = (val >>> 24);\n}\n\nfunction readInt32(buf, pos) {\n return ((buf[pos]) |\n (buf[pos + 1] << 8) |\n (buf[pos + 2] << 16)) +\n (buf[pos + 3] << 24);\n}\n\nfunction readUtf8(buf, pos, end) {\n var str = '';\n var i = pos;\n\n while (i < end) {\n var b0 = buf[i];\n var c = null; // codepoint\n var bytesPerSequence =\n b0 > 0xEF ? 4 :\n b0 > 0xDF ? 3 :\n b0 > 0xBF ? 2 : 1;\n\n if (i + bytesPerSequence > end) break;\n\n var b1, b2, b3;\n\n if (bytesPerSequence === 1) {\n if (b0 < 0x80) {\n c = b0;\n }\n } else if (bytesPerSequence === 2) {\n b1 = buf[i + 1];\n if ((b1 & 0xC0) === 0x80) {\n c = (b0 & 0x1F) << 0x6 | (b1 & 0x3F);\n if (c <= 0x7F) {\n c = null;\n }\n }\n } else if (bytesPerSequence === 3) {\n b1 = buf[i + 1];\n b2 = buf[i + 2];\n if ((b1 & 0xC0) === 0x80 && (b2 & 0xC0) === 0x80) {\n c = (b0 & 0xF) << 0xC | (b1 & 0x3F) << 0x6 | (b2 & 0x3F);\n if (c <= 0x7FF || (c >= 0xD800 && c <= 0xDFFF)) {\n c = null;\n }\n }\n } else if (bytesPerSequence === 4) {\n b1 = buf[i + 1];\n b2 = buf[i + 2];\n b3 = buf[i + 3];\n if ((b1 & 0xC0) === 0x80 && (b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80) {\n c = (b0 & 0xF) << 0x12 | (b1 & 0x3F) << 0xC | (b2 & 0x3F) << 0x6 | (b3 & 0x3F);\n if (c <= 0xFFFF || c >= 0x110000) {\n c = null;\n }\n }\n }\n\n if (c === null) {\n c = 0xFFFD;\n bytesPerSequence = 1;\n\n } else if (c > 0xFFFF) {\n c -= 0x10000;\n str += String.fromCharCode(c >>> 10 & 0x3FF | 0xD800);\n c = 0xDC00 | c & 0x3FF;\n }\n\n str += String.fromCharCode(c);\n i += bytesPerSequence;\n }\n\n return str;\n}\n\nfunction readUtf8TextDecoder(buf, pos, end) {\n return utf8TextDecoder.decode(buf.subarray(pos, end));\n}\n\nfunction writeUtf8(buf, str, pos) {\n for (var i = 0, c, lead; i < str.length; i++) {\n c = str.charCodeAt(i); // code point\n\n if (c > 0xD7FF && c < 0xE000) {\n if (lead) {\n if (c < 0xDC00) {\n buf[pos++] = 0xEF;\n buf[pos++] = 0xBF;\n buf[pos++] = 0xBD;\n lead = c;\n continue;\n } else {\n c = lead - 0xD800 << 10 | c - 0xDC00 | 0x10000;\n lead = null;\n }\n } else {\n if (c > 0xDBFF || (i + 1 === str.length)) {\n buf[pos++] = 0xEF;\n buf[pos++] = 0xBF;\n buf[pos++] = 0xBD;\n } else {\n lead = c;\n }\n continue;\n }\n } else if (lead) {\n buf[pos++] = 0xEF;\n buf[pos++] = 0xBF;\n buf[pos++] = 0xBD;\n lead = null;\n }\n\n if (c < 0x80) {\n buf[pos++] = c;\n } else {\n if (c < 0x800) {\n buf[pos++] = c >> 0x6 | 0xC0;\n } else {\n if (c < 0x10000) {\n buf[pos++] = c >> 0xC | 0xE0;\n } else {\n buf[pos++] = c >> 0x12 | 0xF0;\n buf[pos++] = c >> 0xC & 0x3F | 0x80;\n }\n buf[pos++] = c >> 0x6 & 0x3F | 0x80;\n }\n buf[pos++] = c & 0x3F | 0x80;\n }\n }\n return pos;\n}\n", "/**\n * Use this function instead of `Date.now()` if you want to be able to manipulate time\n * in tests where mocking off/spying on `Date.now()` is brittle.\n * Some other libraries (Spanner for instance) depend on correct timing information.\n */\nexport function the_now() {\n return Date.now()\n}\n", "/**\n * Some rules for errors:\n *\n * - Basic errors should be named and modeled after the HTTP status codes.\n * - Errors should *not* end with `Error`, the name should imply that this is an error.\n */\nimport type {UID} from \"@cling/lib.shared.types/common\"\n\ntype ErrorExtra = {[key: string]: any}\nexport type ErrorOpts =\n | {\n error?: Error\n uids?: UID[]\n extra?: ErrorExtra\n }\n | Error\n\nexport function is_cling_error(error: any) {\n return error.http_status_code && error.uids\n}\n\nexport class ClingError extends Error {\n public readonly uids: UID[]\n public readonly cause?: Error\n public readonly extra?: ErrorExtra\n\n constructor(\n message: string,\n public http_status_code: number,\n opts: ErrorOpts = {},\n ) {\n super(message)\n this.uids = !(opts instanceof Error) && opts.uids ? opts.uids.slice() : []\n this.cause = opts instanceof Error ? opts : opts.error\n this.extra = !(opts instanceof Error) && opts.extra ? opts.extra : undefined\n // This is needed according to https://goo.gl/N2zvkR ...\n Object.setPrototypeOf(this, ClingError.prototype)\n }\n}\n\nexport class Unauthorized extends ClingError {\n constructor(message: string, opts: ErrorOpts = {}) {\n super(message, 401, opts)\n // This is needed according to https://goo.gl/N2zvkR ...\n Object.setPrototypeOf(this, Unauthorized.prototype)\n }\n}\n\nexport class BadRequest extends ClingError {\n constructor(message: string, opts: ErrorOpts = {}) {\n super(message, 400, opts)\n // This is needed according to https://goo.gl/N2zvkR ...\n Object.setPrototypeOf(this, BadRequest.prototype)\n }\n}\n\n/**\n * Signal a generic temporary error.\n */\nexport class ServiceUnavailable extends ClingError {\n constructor(message: string, opts: ErrorOpts = {}) {\n super(message, 503, opts)\n // This is needed according to https://goo.gl/N2zvkR ...\n Object.setPrototypeOf(this, ServiceUnavailable.prototype)\n }\n}\n\nexport class Conflict extends ClingError {\n constructor(message: string, uids: UID[] | UID, opts: ErrorOpts = {}) {\n super(`${message}: ${uids}`, 409, {...opts, uids: Array.isArray(uids) ? uids : [uids]})\n // This is needed according to https://goo.gl/N2zvkR ...\n Object.setPrototypeOf(this, Conflict.prototype)\n }\n}\n\nexport class NotFound extends ClingError {\n constructor(message: string, uids: UID[] | UID, opts: Omit<ErrorOpts, \"uids\"> = {}) {\n super(`${message}: ${uids}`, 404, {...opts, uids: Array.isArray(uids) ? uids : [uids]})\n // This is needed according to https://goo.gl/N2zvkR ...\n Object.setPrototypeOf(this, NotFound.prototype)\n }\n}\n\nexport class Gone extends ClingError {\n constructor(message: string, uids: UID[] | UID, opts: Omit<ErrorOpts, \"uids\"> = {}) {\n super(`${message}: ${uids}`, 410, {...opts, uids: Array.isArray(uids) ? uids : [uids]})\n // This is needed according to https://goo.gl/N2zvkR ...\n Object.setPrototypeOf(this, Gone.prototype)\n }\n}\n\nexport class ConcurrentUpdate extends ClingError {\n constructor(message: string, opts: ErrorOpts = {}) {\n super(message, 503, opts)\n // This is needed according to https://goo.gl/N2zvkR ...\n Object.setPrototypeOf(this, ConcurrentUpdate.prototype)\n }\n}\n\nexport class AlreadyApplied extends ClingError {\n constructor(message: string, opts: ErrorOpts = {}) {\n super(message, 204, opts)\n // This is needed according to https://goo.gl/N2zvkR ...\n Object.setPrototypeOf(this, AlreadyApplied.prototype)\n }\n}\n\nexport class Forbidden extends ClingError {\n public readonly caused_by?: UID\n constructor(message: string, opts: ErrorOpts & {caused_by?: UID} = {}) {\n super(message, 403, opts)\n this.caused_by = opts.caused_by\n // This is needed according to https://goo.gl/N2zvkR ...\n Object.setPrototypeOf(this, Forbidden.prototype)\n }\n}\n\n/**\n * Keep this in sync with model.proto. But no worries, `tsc` will complain if types do not match.\n */\nexport enum ClingErrorCode {\n unknown = 1,\n invalid_timeout = 2,\n invalid_protobuf = 3,\n sec_no_access_token = 4,\n sec_auth_failed = 5,\n sec_forbidden = 6,\n bad_request = 8,\n not_found = 9,\n gone = 10,\n conflict = 11,\n temporary = 12,\n unexpected = 13,\n limit_exceeded = 14,\n quota_exceeded = 20,\n validate_board_card_on_wrong_board = 15,\n validate_card_archived_but_not_all_children = 16,\n validate_invalid_card_type = 17,\n validate_error = 18,\n validate_duplicate_content = 19,\n}\n\n/**\n * Signal that the there was an error calling a function.\n */\nexport class CallFunctionFailed extends ClingError {\n public readonly faas_name: string\n public readonly cling_error_code?: ClingErrorCode\n\n constructor({\n cling_error_code,\n faas_name,\n http_status_code,\n message,\n uids,\n error,\n }: {\n faas_name: string\n http_status_code: number\n message: string\n cling_error_code: ClingErrorCode\n uids?: UID[]\n error?: any\n }) {\n super(`${faas_name} (${http_status_code}): ${message}`, http_status_code, {\n uids,\n error,\n })\n // This is needed according to https://goo.gl/N2zvkR ...\n Object.setPrototypeOf(this, CallFunctionFailed.prototype)\n this.faas_name = faas_name\n this.cling_error_code = cling_error_code\n }\n}\n", "import {ClingError} from \"@cling/lib.shared.error/errors\"\n\nexport class LimitExceeded extends ClingError {\n constructor(\n public readonly limit: Limit,\n public readonly value: number,\n extra_msg?: string,\n ) {\n super(\n `${limit.info} limit exceeded: ${value} > ${limit.upper_bound}${\n extra_msg ? \" - \" + extra_msg : \"\"\n }`,\n 400,\n {extra: {value, limit: limit.info}},\n )\n // This is needed according to https://goo.gl/N2zvkR ...\n Object.setPrototypeOf(this, LimitExceeded.prototype)\n }\n}\nexport class Limit {\n constructor(\n public readonly upper_bound: number,\n public readonly info: string,\n ) {}\n\n check(value: number, msg?: string) {\n if (value > this.upper_bound) {\n throw new LimitExceeded(this, value, msg)\n }\n }\n\n test(value: number) {\n return value <= this.upper_bound\n }\n}\n\nexport const LIMIT_SPANNER_COLUMN_SIZE = new Limit(10_000_000, \"Size of a column in Spanner\")\nexport const LIMIT_BOARD_SIZE = new Limit(8_000_000, \"Serialized board\")\nexport const LIMIT_PATCH_OPS = new Limit(100, \"Number of operations per patch\")\nexport const LIMIT_SOFT_BOARD_SIZE = new Limit(7_000_000, \"Serialized board soft limit\")\nexport const LIMIT_SMALL_TEXT = new Limit(255, \"Length of a name or a title\")\nexport const LIMIT_MEDIUM_TEXT = new Limit(2000, \"Length of a description\")\nexport const LIMIT_URL = new Limit(8000, \"Length of an URL\")\nexport const LIMIT_EMAIL = new Limit(320, \"Length of an e-mail\")\nexport const LIMIT_PASSWORD = new Limit(100, \"Length of a password\")\nexport const LIMIT_HTML = new Limit(10000, \"Length of HTML\")\nexport const LIMIT_BLOB_SIZE = new Limit(2_000_000_000, \"Size of a blob\")\nexport const LIMIT_BOARD_PACKAGE_SIZE = new Limit(10_000_000_000, \"Size of a board package\")\nexport const LIMIT_IMPORT_DATA_SIZE = new Limit(2_000_000_000, \"Size of an import file\")\nexport const LIMIT_IMPORT_DATA_ITEM_SIZE = new Limit(1_000_000, \"Size of single item of an import\")\nexport const LIMIT_USER_UPLOAD_SIZE = new Limit(\n LIMIT_BOARD_PACKAGE_SIZE.upper_bound,\n \"Size of files a user can upload\",\n)\nexport const LIMIT_SEARCH_ALL_BOARDS_RESULT = new Limit(\n 500,\n \"Number of cards displayed when searching all boards\",\n)\nexport const LIMIT_GET_ITEMS_10 = new Limit(10, \"Number of items in a query\")\nexport const LIMIT_GET_ITEMS_100 = new Limit(100, \"Number of items in a query\")\nexport const LIMIT_SEND_ITEMS_100 = new Limit(100, \"Number of items sent\")\nexport const LIMIT_ACL_ENTRIES_AND_INVITES_PER_BOARD = new Limit(\n 100,\n \"Number of acl entries and outstanding invites\",\n)\nexport const LIMIT_ACL_ENTRIES_AND_INVITES_PER_BOARD_EXTENDED = new Limit(\n 300,\n \"Number of acl entries and outstanding invites (extended)\",\n)\nexport const LIMIT_PUBLISH_EVENT_BATCH = new Limit(10, \"Number of events sent in a single request\")\nexport const LIMIT_ORGANIZATION_ADMINS_PER_USER = new Limit(\n 10,\n \"Number of organizations a user can admin of\",\n)\nexport const LIMIT_ADMINS_PER_ORGANIZATION = new Limit(10, \"Number of organization admins\")\nexport const LIMIT_TEAMS_PER_ORGANIZATION = new Limit(50, \"Number of teams per organization\")\nexport const LIMIT_TEAM_CODES_PER_ORGANIZATION = new Limit(\n 200,\n \"Number of team-codes per organization\",\n)\nexport const LIMIT_INVITE_VALID_DAYS = new Limit(7, \"Number of days an invite is valid for\")\nexport const LIMIT_MEMBERS_PER_TEAM = new Limit(1000, \"Number of members of a single team\")\nexport const LIMIT_MEDIA_TRANSCODER_MAX_FILE_SIZE = new Limit(\n 1_000_000_000,\n \"Maximum media size to be transcoded\",\n)\nexport const LIMIT_MEDIA_TRANSCODER_MAX_DURATION = new Limit(\n 1800,\n \"Maximum media duration in seconds to be transcoded\",\n)\nexport const LIMIT_THUMBNAIL_TTL_SECONDS = new Limit(\n 7 * 24 * 60 * 60,\n \"Maximum TTL for a thumbnail\",\n)\n", "import {assert, encode_b62, error_to_string} from \"@cling/lib.shared.utils\"\nimport type {UID} from \"@cling/lib.shared.types/common\"\nimport {hash as fast_sha256} from \"fast-sha256\"\nimport * as crypto from \"crypto\"\nimport {Buffer} from \"buffer\"\n\n// Since this is a shared module, we have to declare `window` and `self` here.\n// (We don't want to pollute the global namespace of Node packages with all the browser stuff.)\ndeclare const window: any\ndeclare const self: any\n\nlet _sha256: any\nlet _random_bytes: any\n\nif (process.env.RUNNING_IN_BROWSER) {\n let crypto_impl: {getRandomValues: (buffer: Buffer) => void}\n if (typeof self !== \"undefined\") {\n // Running in worker ...\n crypto_impl = self.crypto\n } else {\n crypto_impl = window.crypto || window.msCrypto\n }\n _sha256 = (buf: Uint8Array) => {\n return Buffer.from(fast_sha256(buf))\n }\n _random_bytes = (size: number): Buffer => {\n try {\n if (!crypto_impl) {\n throw new Error(\"`crypto` not defined\")\n }\n const bytes = Buffer.alloc(size)\n crypto_impl.getRandomValues(bytes)\n return bytes\n } catch (error) {\n // We want to see the stack trace in the error message.\n throw new Error(error_to_string(error))\n }\n }\n} else {\n _sha256 = (buf: Uint8Array): Buffer => {\n const hash = crypto.createHash(\"SHA256\")\n hash.update(buf)\n return hash.digest()\n }\n _random_bytes = crypto.randomBytes\n}\n\nexport const random_bytes: (size: number) => Buffer = _random_bytes\nexport const sha256: (buf: Uint8Array) => Buffer = _sha256\n\nexport function random_uid<T extends UID>(prefix: string): T {\n assert(prefix, \"`prefix` required\")\n assert(prefix.length === 1, \"`prefix` must have length 1\")\n // 16 bytes of random \"payload\" makes it (almost) compliant with UUID version 4 wrt collision\n // probability, but providing 128 bits of random data instead of 122.\n // See https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)\n const bytes = random_bytes(16)\n return (prefix + encode_b62(bytes)) as T\n}\n", "/**\n * Partly auto-generated from ``model.proto`` -- see ``_model_codegen.py``\n */\nimport {\n computed as _computed,\n observable as _observable,\n makeObservable as _makeObservable,\n} from \"mobx\"\nimport {the_now} from \"@cling/lib.shared.utils/the_now\"\nimport {\n assert,\n assert_never,\n class_name,\n encode_b62,\n is_UID,\n not_null,\n safe_to_string,\n} from \"@cling/lib.shared.utils\"\nimport {random_uid, sha256} from \"@cling/lib.shared.crypto\"\nimport {ClingError} from \"@cling/lib.shared.error/errors\"\nimport * as limits from \"@cling/lib.shared.limits\"\nimport type {UID} from \"@cling/lib.shared.types/common\"\nimport Pbf from \"pbf\"\nimport {Buffer} from \"buffer\"\nimport type {\n AccountUID,\n BoardUID,\n CardUID,\n CommentUID,\n BoardInviteUID,\n PatchUID,\n BlobUID,\n SessionUID,\n URLUID,\n MessageUID,\n OrganizationUID,\n OrganizationInviteUID,\n TeamUID,\n TeamCodeUID,\n PrincipalUID,\n AbuseReportUID,\n AuthActionCodeUID,\n OAuth2ClientUID,\n Language,\n} from \"./types\"\n\nexport {\n AccountUID,\n BoardUID,\n CardUID,\n CommentUID,\n BoardInviteUID,\n PatchUID,\n BlobUID,\n SessionUID,\n URLUID,\n MessageUID,\n OrganizationUID,\n OrganizationInviteUID,\n TeamUID,\n TeamCodeUID,\n PrincipalUID,\n Language,\n}\n\ndeclare const process: {\n env: {RUNNING_IN_BROWSER: boolean; F_NO_MOBX: boolean; PROJECT?: string; NODE_ENV?: \"test\"}\n}\n\nlet makeObservable: typeof _makeObservable\nlet computed: typeof _computed\nlet observable: typeof _observable\nif (process.env.F_NO_MOBX) {\n makeObservable = (x: any) => x\n computed = {} as any\n observable = {} as any\n} else {\n makeObservable = _makeObservable\n computed = _computed\n observable = _observable\n}\n\nfunction pbf_writeMessage(tag: number, obj: any, pbf: any) {\n pbf.writeTag(tag, (Pbf as any).Bytes)\n pbf.writeRawMessage(() => obj._to_pb(pbf))\n}\n\nfunction pbf_readMessage(constructor: any, pbf: any) {\n const o = constructor._from_pb_init()\n pbf.readMessage(constructor._from_pb_fields, o)\n return new constructor({...o})\n}\n\nfunction now() {\n return new Date(the_now())\n}\n\n/**\n * Note: We take the locale from the JWT id token and according to\n * https://www.iana.org/assignments/jwt/jwt.xhtml JWT follows\n * the OpenID standard, which defines, that the country code\n * is separated from the language code by a dash:\n * https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims\n */\nconst locale_regex = new RegExp(/^([a-z]{2,3})-([a-zA-Z]{2}|[0-9]{3})$/)\nconst language_regex = new RegExp(/^[a-z]{2,3}$/)\nexport type Locale =\n | (string & {pseudo_property_to_make_Locale_incompatible_to_string: any})\n | \"en\"\n | \"en-GB\"\n | \"en-US\"\n | \"de\"\n | \"de-DE\"\n | \"de-AT\"\n | \"de-CH\"\nexport const is_Locale = (s: string): s is Locale =>\n !!s && (!!s.match(locale_regex) || is_Language(s))\nexport const as_locale = (s: string): Locale => {\n assert(is_Locale(s), `${s} is not a valid locale`)\n return s\n}\nexport const is_Language = (s: string): s is Language => !!s && !!s.match(language_regex)\nexport const as_language = (s: string): Language => {\n if (is_Language(s)) {\n return s\n }\n const locale = s.match(locale_regex)\n assert(locale, `${s} does neither represent a locale nor a language`)\n return locale![1] as Language\n}\n\nexport const AccountUID_prefix = \"a\"\nexport const is_AccountUID = (x?: any): x is AccountUID => is_UID(x, AccountUID_prefix)\nexport const as_AccountUID = (x: any) => {\n if (is_AccountUID(x)) {\n return x\n }\n throw new Error(\"Not an AccountUID: \" + safe_to_string(x))\n}\nexport const create_AccountUID = () => random_uid(AccountUID_prefix) as AccountUID\nexport const account_uid_to_gip_uid = (x: AccountUID) => x.slice(1)\nexport const account_uid_from_gip_uid = (x: string) => as_AccountUID(AccountUID_prefix + x)\n/**\n * This is our all powerful bot that acts as a real user (i.e. `/f/query_accounts` etc. will\n * return valid data). Use this bot for communication from service to service or to update a\n * board when there is no actual account available. But remember: The actions done by this bot\n * might be visible to regular Cling users.\n */\nexport const CLING_BOT = (<const>\"a______Cling_Bot_______\") as AccountUID\nexport function is_old_service_account(account_uid: AccountUID): boolean {\n return account_uid.startsWith(\"aua33e5VwiQV64HmgE\")\n}\nexport function is_system_account(account_uid: AccountUID): boolean {\n return (\n account_uid === CLING_BOT ||\n account_uid === CLING_ANONYMOUS ||\n is_old_service_account(account_uid)\n )\n}\n\n/**\n * This is an anonymous user with no permissions (besides accessing public boards).\n */\nexport const CLING_ANONYMOUS = (<const>\"a_____Anonymous_____\") as AccountUID\n\n/**\n * The organization.\n */\nexport const CLING_ORG = (<const>\"z________Cling_Org_______\") as OrganizationUID\n\n/**\n * This is a meta-team that includes all Cling users as well as everyone else once we allow for\n * anonymous access to Cling. This team is treated special in some places.\n */\nexport const CLING_PUBLIC = (<const>\"t______Cling_Public______\") as TeamUID\n\nexport const CLING_BUTTON_OAUTH2_CLIENT_ID = (<const>(\n \"h______Cling_Button_______\"\n)) as OAuth2ClientUID\n\nexport const BoardUID_prefix = \"b\"\nexport const is_BoardUID = (uid?: any): uid is BoardUID => is_UID(uid, BoardUID_prefix)\nexport const as_BoardUID = (x: any) => {\n if (is_BoardUID(x)) {\n return x\n }\n throw new Error(\"Not an BoardUID: \" + safe_to_string(x))\n}\nexport const create_BoardUID = () => random_uid(BoardUID_prefix) as BoardUID\n\nexport const AbuseReportUID_prefix = \"u\"\nexport const is_AbuseReportUID = (uid?: any): uid is AbuseReportUID =>\n is_UID(uid, AbuseReportUID_prefix)\nexport const as_AbuseReportUID = (x: any) => {\n if (is_AbuseReportUID(x)) {\n return x\n }\n throw new Error(\"Not an AbuseReportUID: \" + safe_to_string(x))\n}\nexport const create_AbuseReportUID = () => random_uid(AbuseReportUID_prefix) as AbuseReportUID\n\nexport const CardUID_prefix = \"c\"\nexport const is_CardUID = (uid?: any): uid is CardUID => is_UID(uid, CardUID_prefix)\nexport const as_CardUID = (x: any) => {\n if (is_CardUID(x)) {\n return x\n }\n throw new Error(\"Not a CardUID: \" + safe_to_string(x))\n}\nexport const create_CardUID = () => random_uid(CardUID_prefix) as CardUID\n\nexport const CommentUID_prefix = \"o\"\nexport const is_CommentUID = (uid?: any | null): uid is CommentUID => is_UID(uid, CommentUID_prefix)\nexport const create_CommentUID = () => random_uid(CommentUID_prefix) as CommentUID\n\nexport const BoardInviteUID_prefix = \"i\"\nexport const is_BoardInviteUID = (uid?: any | null): uid is BoardInviteUID =>\n is_UID(uid, BoardInviteUID_prefix)\nexport const create_BoardInviteUID = () => random_uid(BoardInviteUID_prefix) as BoardInviteUID\n\nexport const OrganizationInviteUID_prefix = \"g\"\nexport const is_OrganizationInviteUID = (uid?: any | null): uid is OrganizationInviteUID =>\n is_UID(uid, OrganizationInviteUID_prefix)\nexport const create_OrganizationInviteUID = () =>\n random_uid(OrganizationInviteUID_prefix) as OrganizationInviteUID\nexport const as_OrganizationInviteUID = (x: any) => {\n if (is_OrganizationInviteUID(x)) {\n return x\n }\n throw new Error(\"Not a OrganizationInviteUID: \" + safe_to_string(x))\n}\n\nexport const PatchUID_prefix = \"p\"\nexport const is_PatchUID = (uid?: any | null): uid is PatchUID => is_UID(uid, PatchUID_prefix)\nexport const create_PatchUID = () => random_uid(PatchUID_prefix) as PatchUID\n\nexport const BlobUID_prefix = \"m\"\nexport const is_BlobUID = (uid?: any | null): uid is BlobUID => is_UID(uid, BlobUID_prefix)\nexport const as_BlobUID = (x: any) => {\n if (is_BlobUID(x)) {\n return x\n }\n throw new Error(\"Not a BlobUID: \" + safe_to_string(x))\n}\nexport const create_BlobUID = () => random_uid(BlobUID_prefix) as BlobUID\n\nexport const SessionUID_prefix = \"s\"\nexport const is_SessionUID = (uid?: any | null): uid is SessionUID => is_UID(uid, SessionUID_prefix)\nexport const as_SessionUID = (x: any) => {\n if (is_SessionUID(x)) {\n return x\n }\n throw new Error(\"Not a SessionUID: \" + safe_to_string(x))\n}\nexport const create_SessionUID = () => random_uid(SessionUID_prefix) as SessionUID\n\nexport type URL = string\nexport const URLUID_prefix = \"r\"\nexport const is_URLUID = (uid?: any | null): uid is URLUID => is_UID(uid, URLUID_prefix)\nexport const as_URLUID = (x: any) => {\n if (is_URLUID(x)) {\n return x\n }\n throw new Error(\"Not an URLUID: \" + safe_to_string(x))\n}\nexport const derive_URLUID = (url: string) =>\n derive_uid(\"URLUID\" as UID, url, URLUID_prefix) as URLUID\n\n/**\n * A `MessageUID` should always be derived from the content of the message\n * to allow for de-duplication.\n */\nexport const MessageUID_prefix = \"e\"\nexport const is_MessageUID = (uid: string): uid is MessageUID => is_UID(uid, MessageUID_prefix)\nexport const create_MessageUID = () => random_uid(MessageUID_prefix) as MessageUID\n\nexport const OrganizationUID_prefix = \"z\"\nexport const is_OrganizationUID = (x?: any): x is OrganizationUID =>\n is_UID(x, OrganizationUID_prefix)\nexport const as_OrganizationUID = (x: any) => {\n if (is_OrganizationUID(x)) {\n return x\n }\n throw new Error(\"Not a OrganizationUID: \" + safe_to_string(x))\n}\nexport function as_Organization(x: any): Organization {\n if (x instanceof Organization) {\n return x\n }\n throw new Error(`Not a Organization: ${class_name(x)}`)\n}\nexport const create_OrganizationUID = () => random_uid(OrganizationUID_prefix) as OrganizationUID\n\nexport const TeamUID_prefix = \"t\"\nexport const is_TeamUID = (x?: any): x is TeamUID => is_UID(x, TeamUID_prefix)\nexport const as_TeamUID = (x: any) => {\n if (is_TeamUID(x)) {\n return x\n }\n throw new Error(\"Not a TeamUID: \" + safe_to_string(x))\n}\nexport function as_Team(x: any): Team {\n if (x instanceof Team) {\n return x\n }\n throw new Error(`Not a Team: ${class_name(x)}`)\n}\nexport const create_TeamUID = () => random_uid(TeamUID_prefix) as TeamUID\n\nexport const TeamCodeUID_prefix = \"d\"\nexport const is_TeamCodeUID = (x?: any): x is TeamCodeUID => is_UID(x, TeamCodeUID_prefix)\nexport const as_TeamCodeUID = (x: any) => {\n if (is_TeamCodeUID(x)) {\n return x\n }\n throw new Error(\"Not a TeamCodeUID: \" + safe_to_string(x))\n}\nexport const create_TeamCodeUID = () => random_uid(TeamCodeUID_prefix) as TeamCodeUID\n\nexport const is_PrincipalUID = (x?: any): x is PrincipalUID => is_AccountUID(x) || is_TeamUID(x)\nexport const as_PrincipalUID = (x: any) => {\n if (is_AccountUID(x) || is_TeamUID(x)) {\n return x\n }\n throw new Error(\"Not a PrincipalUID: \" + safe_to_string(x))\n}\n\nexport type InviteUID = OrganizationInviteUID | BoardInviteUID\nexport const is_InviteUID = (x?: any): x is InviteUID =>\n is_OrganizationInviteUID(x) || is_BoardInviteUID(x)\n\nexport function derive_BlobUID_from_URLUID(url_uid: URLUID): BlobUID {\n return derive_uid(url_uid, \"systemwide\", BlobUID_prefix)\n}\n\nexport function derive_BlobUID(uid: UID, salt: string): BlobUID {\n return derive_uid(uid, salt, BlobUID_prefix)\n}\n\nexport function derive_CardUID(uid: UID, salt: string): CardUID {\n return derive_uid(uid, salt, CardUID_prefix)\n}\n\nexport function derive_PatchUID(\n uid: BoardUID | AccountUID | OrganizationUID | PatchUID,\n salt: string,\n): PatchUID {\n return derive_uid(uid, salt, PatchUID_prefix)\n}\n\nexport function derive_MessageUID(uid: UID, salt: string): MessageUID {\n return derive_uid(uid, salt, MessageUID_prefix)\n}\n\nexport const AuthActionCodeUID_prefix = \"n\"\nexport const is_AuthActionCodeUID = (uid?: any | null): uid is AuthActionCodeUID =>\n is_UID(uid, AuthActionCodeUID_prefix)\nexport const create_AuthActionCodeUID = () =>\n random_uid(AuthActionCodeUID_prefix) as AuthActionCodeUID\nexport const as_AuthActionCodeUID = (x: any) => {\n if (is_AuthActionCodeUID(x)) {\n return x\n }\n throw new Error(\"Not an AuthActionCodeUID: \" + safe_to_string(x))\n}\n\nexport const OAuth2ClientUID_prefix = \"h\"\nexport const is_OAuth2ClientUID = (uid?: any | null): uid is OAuth2ClientUID =>\n is_UID(uid, OAuth2ClientUID_prefix)\nexport const create_OAuth2ClientUID = () => random_uid(OAuth2ClientUID_prefix) as OAuth2ClientUID\nexport const as_OAuth2ClientUID = (x: any) => {\n if (is_OAuth2ClientUID(x)) {\n return x\n }\n throw new Error(\"Not an OAuth2ClientUID: \" + safe_to_string(x))\n}\n\nexport function board_uid_type(uid: BoardUID): BoardType {\n if (uid.startsWith(\"b_d\")) {\n return BoardType.dashboard\n } else if (uid.startsWith(\"b_c\")) {\n return BoardType.clipboard\n } else if (uid.startsWith(\"b_t\")) {\n return BoardType.trashcan\n } else if (uid.startsWith(\"b_p\")) {\n return BoardType.people\n } else {\n return BoardType.regular\n }\n}\n\nexport function derive_system_board_uid(account_uid: AccountUID, board_type: BoardType): BoardUID {\n let prefix = BoardUID_prefix + \"_\"\n if (board_type === BoardType.dashboard) {\n prefix += \"d\"\n } else if (board_type === BoardType.clipboard) {\n prefix += \"c\"\n } else if (board_type === BoardType.trashcan) {\n prefix += \"t\"\n } else if (board_type === BoardType.regular) {\n throw new Error(\"BoardType.regular is not a system's board type\")\n } else if (board_type === BoardType.people) {\n throw new Error(\"BoardType.people is not a system's board type\")\n } else {\n assert_never(board_type)\n }\n return (prefix + account_uid.slice(1)) as BoardUID\n}\n\nexport function derive_people_board_uid(\n account_uid1: AccountUID,\n account_uid2: AccountUID,\n): BoardUID {\n const account_uids = [account_uid1, account_uid2].sort()\n return derive_uid(account_uids[0], `people_board_uid${account_uids[1]}`, `${BoardUID_prefix}_p`)\n}\n\nexport function derive_dashboard_uid(account_uid: AccountUID): BoardUID {\n return derive_system_board_uid(account_uid, BoardType.dashboard)\n}\n\nexport function derive_clipboard_uid(account_uid: AccountUID): BoardUID {\n return derive_system_board_uid(account_uid, BoardType.clipboard)\n}\n\nexport function derive_trashcan_uid(account_uid: AccountUID): BoardUID {\n return derive_system_board_uid(account_uid, BoardType.trashcan)\n}\n\n/**\n * Derive a uid from the given `uid` and `salt`.\n */\nfunction derive_uid<T extends UID>(uid: UID, salt: string, prefix: string): T {\n const buf = Buffer.from(uid + salt)\n const hash = sha256(buf)\n const result = Buffer.alloc(15)\n result.set(hash.subarray(0, 15), 0)\n return (prefix + encode_b62(result)) as T\n}\nexport type ChargeBeeOrganizationPlanID =\n | \"cling_team_m_eur\"\n | \"cling_team_fixed_y_eur\"\n | \"cling_team_fixed_m_eur\"\n | \"cling_team_m_usd\"\n | \"cling_team_fixed_y_usd\"\n | \"cling_team_fixed_m_usd\"\n\nexport type ChargeBeeAccountPlanID =\n | \"cling_free_eur\"\n | \"cling_pro_m_eur\"\n | \"cling_pro_y_eur\"\n | \"cling_free_usd\"\n | \"cling_pro_m_usd\"\n | \"cling_pro_y_usd\"\n\nexport type ChargeBeePlanID = ChargeBeeAccountPlanID | ChargeBeeOrganizationPlanID\n\nexport function is_valid_plan_id(plan_id: string): plan_id is ChargeBeePlanID {\n const plan_ids = [\n \"cling_free_eur\",\n \"cling_pro_m_eur\",\n \"cling_pro_y_eur\",\n \"cling_free_usd\",\n \"cling_pro_m_usd\",\n \"cling_pro_y_usd\",\n \"cling_team_m_eur\",\n \"cling_team_fixed_y_eur\",\n \"cling_team_fixed_m_eur\",\n \"cling_team_m_usd\",\n \"cling_team_fixed_y_usd\",\n \"cling_team_fixed_m_usd\",\n ]\n return plan_ids.includes(plan_id)\n}\nexport function is_organization_plan(\n plan_id: ChargeBeePlanID,\n): plan_id is ChargeBeeOrganizationPlanID {\n return is_valid_plan_id(plan_id) && plan_id.startsWith(\"cling_team_\")\n}\n\nexport function is_account_plan(plan_id: ChargeBeePlanID): plan_id is ChargeBeeAccountPlanID {\n return is_valid_plan_id(plan_id) && !is_organization_plan(plan_id)\n}\n\nexport function chargebee_plan_id(\n type:\n | \"free\"\n | \"monthly\"\n | \"yearly\"\n | \"team_monthly\"\n | \"team_fixed_monthly\"\n | \"team_fixed_yearly\",\n currency: \"EUR\" | \"USD\",\n): ChargeBeePlanID {\n let plan_id = \"cling_\"\n if (type === \"free\") {\n plan_id += \"free_\"\n } else if (type === \"monthly\") {\n plan_id += \"pro_m_\"\n } else if (type === \"yearly\") {\n plan_id += \"pro_y_\"\n } else if (type === \"team_monthly\") {\n plan_id += \"team_m_\"\n } else if (type === \"team_fixed_yearly\") {\n plan_id += \"team_fixed_y_\"\n } else if (type === \"team_fixed_monthly\") {\n plan_id += \"team_fixed_m_\"\n } else {\n throw assert_never(type)\n }\n plan_id += currency.toLowerCase()\n assert(is_valid_plan_id(plan_id))\n return plan_id\n}\n\nexport function as_Plan(s: string): Plan {\n return not_null(Plan[s as any], `Invalid plan: ${s}`) as any as Plan\n}\n\nexport function as_PaymentMethod(s: string): PaymentMethod {\n return not_null(PaymentMethod[s as any], `Invalid payment method: ${s}`) as any as PaymentMethod\n}\n\nexport function as_PaymentMethodStatus(s: string): PaymentMethodStatus {\n return not_null(\n PaymentMethodStatus[s as any],\n `Invalid payment method status: ${s}`,\n ) as any as PaymentMethodStatus\n}\n\n/**\n * Traverse the given hierarchy and call `f` for each child content until either there are no more\n * children or `f` returns `\"stop\"`.\n *\n * Traversal is breadth-first.\n */\nexport function traverse_content(card: Card, f: (content: Card | Comment) => void | \"stop\") {\n for (const x of card.comments) {\n if (f(x) === \"stop\") {\n return \"stop\"\n }\n }\n for (const x of card.children) {\n if (f(x) === \"stop\") {\n return \"stop\"\n }\n }\n for (const x of card.children) {\n if (x.children.length || x.comments.length) {\n if (traverse_content(x, f) === \"stop\") {\n return \"stop\"\n }\n }\n }\n}\n\n/**\n * Traverse the given hierarchy and call `f` for each card until either there are no more\n * children or `f` returns `\"stop\"`.\n *\n * Traversal is breadth-first.\n */\nexport function traverse_cards(start_card: Card, f: (card: Card) => void | \"stop\") {\n for (const x of start_card.children) {\n if (f(x) === \"stop\") {\n return \"stop\"\n }\n }\n for (const x of start_card.children) {\n if (x.children.length) {\n if (traverse_cards(x, f) === \"stop\") {\n return \"stop\"\n }\n }\n }\n}\n\n/**\n * Traverse the given hierarchy and call `f` for each comment until either there are no more\n * children or `f` returns `\"stop\"`.\n *\n * Traversal is breadth-first.\n */\nexport function traverse_comments(\n start_card: Card,\n f: (card: Card, comment: Comment) => void | \"stop\",\n) {\n for (const x of start_card.comments) {\n const action = f(start_card, x)\n if (action === \"stop\") {\n return\n }\n }\n for (const x of start_card.children) {\n if (x.children.length || x.comments.length) {\n traverse_comments(x, f)\n }\n }\n}\n\nexport type ContentItemUID = CardUID | CommentUID\nexport type ContentItem = Card | Comment\nexport const is_ContentItemUID = (v: any): v is ContentItemUID => is_CardUID(v) || is_CommentUID(v)\n\n/**\n * Everything that can be referenced on a board in a meaningful way.\n */\nexport type ItemUID = ContentItemUID | BlobUID | BoardInviteUID\nexport type Item = ContentItem | Blob | BoardInvite\n\nexport abstract class PatchOp {\n /**\n * Create a string that is void of any personal or security related information and is thus\n * safe to be logged.\n */\n to_safe_log_string() {\n const any_this = this as any\n const vals = {} as any\n const uid = any_this.uid || any_this.value?.uid\n if (uid) {\n vals.uid = uid\n }\n if (any_this.value?.kind) {\n vals.kind = class_name(any_this.value.kind)\n }\n if (any_this.target_board_uid) {\n vals.target_board_uid = any_this.target_board_uid\n }\n if (any_this.value?.board_card_uid) {\n vals.board_card_uid = any_this.value.board_card_uid\n }\n if (any_this.value?.src_blob_uid) {\n vals.src_blob_uid = any_this.value.src_blob_uid\n }\n return `${class_name(this)}(${JSON.stringify(vals)})`\n }\n}\n\nexport abstract class AddOp extends PatchOp {}\n\nexport abstract class RemoveOp extends PatchOp {}\n\nexport abstract class MoveCopyOp extends PatchOp {}\n\nexport abstract class SetOp extends PatchOp {}\n\nexport abstract class CustomOp extends PatchOp {}\n\nexport abstract class PasteOp extends PatchOp {}\n\nabstract class _Patch {\n static will_create_new_board(ops: PatchOpContainer[]): boolean {\n return (\n !!ops[0]?.AddBoard ||\n !!ops[0]?.AddSystemBoard ||\n !!ops[0]?.AddPeopleBoard ||\n !!ops[0]?.CopyBoard\n )\n }\n\n get will_create_new_board(): boolean {\n const p = this as any as Patch\n return _Patch.will_create_new_board(p.ops)\n }\n\n _verify() {\n const p = this as any as Patch\n assert(\n !_Patch.will_create_new_board(p.ops.slice(1)),\n \"Only the first operation of a patch may create a new board\",\n )\n }\n}\nObject.defineProperty(_Patch.prototype, \"will_create_new_board\", {enumerable: false})\n\nabstract class _PatchOpContainer {\n public static from_op(op: PatchOp) {\n return new PatchOpContainer({[class_name(op)]: op})\n }\n}\n\n/**\n * Signal that a UID is not found in a board.\n */\nexport class ItemNotFound extends ClingError {\n constructor(board_uid: BoardUID, uid: UID, error?: Error) {\n super(`Board ${board_uid} does not contain item ${uid}`, 400, {\n error,\n uids: [uid],\n extra: {board_uid},\n })\n // This is needed according to https://goo.gl/N2zvkR ...\n Object.setPrototypeOf(this, ItemNotFound.prototype)\n }\n}\n\n/**\n * Signal that a board is not consistent.\n */\nexport class BoardNotConsistent extends ClingError {\n constructor({\n board_uid,\n message,\n uids,\n cling_error_code,\n }: {\n message: string\n board_uid: BoardUID\n uids?: UID[]\n cling_error_code: ClingErrorCode\n }) {\n super(\n `${board_uid} is invalid: ${message}${\n uids && uids.length ? ` (${uids!.join(\", \")})` : \"\"\n }`,\n 400,\n {\n uids,\n extra: {\n board_uid,\n cling_error_code,\n },\n },\n )\n // This is needed according to https://goo.gl/N2zvkR ...\n Object.setPrototypeOf(this, BoardNotConsistent.prototype)\n }\n}\n/**\n * Only parse some header fields from the given Account/AccountAuth/Account protobuf.\n * Use with caution.\n */\nexport function parse_account_header(\n part: \"account\" | \"account_auth\" | \"account_attributes\" | \"account_settings\",\n buf: Buffer,\n): {\n uid: AccountUID\n version: number\n first_change: ChangeMetadata\n last_change: ChangeMetadata\n} {\n let type: any\n if (part === \"account\") {\n type = Account\n } else if (part === \"account_auth\") {\n type = AccountAuth\n } else if (part === \"account_attributes\") {\n type = AccountAttributes\n } else if (part === \"account_settings\") {\n type = AccountSettings\n } else {\n assert_never(part)\n }\n let num_tags_read = 0\n function read_fields(tag: number, o: any, pbf_: any) {\n if (tag <= 4) {\n num_tags_read += 1\n }\n type._from_pb_fields(tag, o, pbf_)\n if (num_tags_read === 4) {\n pbf_.pos = Number.MAX_SAFE_INTEGER\n }\n }\n const result = {} as any\n const pbf = new Pbf(buf)\n pbf.readFields(read_fields, result)\n assert(is_AccountUID(result.uid), () => `Invalid uid: ${result.uid}`)\n assert(typeof result.version === \"number\", () => `Invalid version: ${result.version}`)\n assert(\n result.first_change instanceof ChangeMetadata,\n () => `Invalid first_change: ${result.first_change}`,\n )\n assert(\n result.last_change instanceof ChangeMetadata,\n () => `Invalid last_change: ${result.last_change}`,\n )\n return result\n}\n\nconst TOMBSTONE = Buffer.from(\"TOMBSTONE\")\n\n/**\n * Create a tombstone that is still parsable by `parse_board_header`.\n */\nexport function board_tombstone(board: Board, last_change: ChangeMetadata) {\n const pbf = new Pbf()\n pbf.writeStringField(1, board.uid)\n pbf.writeVarintField(2, board.version + 1)\n pbf_writeMessage(3, board.first_change, pbf)\n pbf_writeMessage(4, last_change, pbf)\n pbf.writeVarintField(5, board.board_type)\n pbf.writeStringField(6, board.owner)\n return Buffer.concat([TOMBSTONE, Buffer.from(pbf.finish())])\n}\n\nexport function is_tombstone(buf: Buffer | Uint8Array): boolean {\n if (buf.byteLength >= TOMBSTONE.byteLength) {\n let slice = buf.slice(0, TOMBSTONE.byteLength)\n // Prevent TypeError: Argument must be a Buffer in browsers ...\n if ((TOMBSTONE as any)._isBuffer && !(slice as any)._isBuffer) {\n slice = Buffer.from(slice)\n }\n return TOMBSTONE.equals(slice as any)\n }\n return false\n}\n\n/**\n * Only parse some header fields from the given Board protobuf. Use with caution.\n */\nexport function parse_board_header(buf: Buffer | Uint8Array): {\n uid: BoardUID\n version: number\n first_change: ChangeMetadata\n last_change: ChangeMetadata\n board_type: BoardType\n owner: AccountUID\n removed?: boolean\n} {\n let removed = false\n if (is_tombstone(buf)) {\n buf = buf.slice(TOMBSTONE.byteLength)\n removed = true\n }\n let num_tags_read = 0\n function read_fields(tag: number, o: any, pbf: any) {\n if (tag <= 6) {\n num_tags_read += 1\n }\n Board._from_pb_fields(tag, o, pbf)\n if (num_tags_read === 6) {\n pbf.pos = Number.MAX_SAFE_INTEGER\n }\n }\n const result = {} as any\n const pbf = new Pbf(buf)\n pbf.readFields(read_fields, result)\n assert(is_BoardUID(result.uid), () => `Invalid uid: ${result.uid}`)\n assert(typeof result.version === \"number\", () => `Invalid version: ${result.version}`)\n assert(\n result.first_change instanceof ChangeMetadata,\n () => `Invalid first_change: ${result.first_change}`,\n )\n assert(\n result.last_change instanceof ChangeMetadata,\n () => `Invalid last_change: ${result.last_change}`,\n )\n assert(typeof result.board_type === \"number\", () => `Invalid board_type: ${result.board_type}`)\n assert(is_AccountUID(result.owner), () => `Invalid owner:: ${result.owner}`)\n result.removed = removed\n return result\n}\n\nabstract class _BoardInfo {\n get is_dashboard_or_user_board(): boolean {\n return [BoardType.dashboard, BoardType.regular, BoardType.people].includes(\n (this as any as BoardInfo).board_type,\n )\n }\n\n get is_user_board(): boolean {\n return [BoardType.regular, BoardType.people].includes((this as any as BoardInfo).board_type)\n }\n\n get is_system_board(): boolean {\n return [BoardType.dashboard, BoardType.trashcan, BoardType.clipboard].includes(\n (this as any as BoardInfo).board_type,\n )\n }\n\n people_board_shared_with(current_user: AccountUID): AccountUID {\n assert((this as any as BoardInfo).board_type === BoardType.people, \"Must be a people board\")\n return as_AccountUID(\n (this as any as BoardInfo).acl._full_access.find((x) => x !== current_user),\n )\n }\n}\n\nexport type AuthInfo = {\n account_uid: AccountUID\n team_uids: TeamUID[]\n admin_organization_uids: OrganizationUID[]\n}\n\nexport const CLING_BOT_AUTH_INFO: AuthInfo = {\n account_uid: CLING_BOT,\n team_uids: [],\n admin_organization_uids: [],\n}\n\nexport const CLING_ANONYMOUS_AUTH_INFO: AuthInfo = {\n account_uid: CLING_ANONYMOUS,\n team_uids: [],\n admin_organization_uids: [],\n}\n\nabstract class _Invite {\n created_at: Date\n\n constructor(args: {created_at: Date}) {\n this.created_at = args.created_at\n }\n\n get is_expired() {\n return !limits.LIMIT_INVITE_VALID_DAYS.test(\n (the_now() - this.created_at.getTime()) / (24 * 60 * 60_000),\n )\n }\n}\n\nabstract class _ACL {\n _full_access: Array<PrincipalUID>\n _edit: Array<PrincipalUID>\n _comment: Array<PrincipalUID>\n _read: Array<PrincipalUID>\n\n constructor(args: {\n _full_access: Array<PrincipalUID>\n _edit?: Array<PrincipalUID>\n _comment?: Array<PrincipalUID>\n _read?: Array<PrincipalUID>\n }) {\n this._full_access = (args._full_access || []).slice()\n this._edit = (args._edit || []).slice()\n this._comment = (args._comment || []).slice()\n this._read = (args._read || []).slice()\n makeObservable(this, {\n _full_access: observable.shallow,\n _edit: observable.shallow,\n _comment: observable.shallow,\n _read: observable.shallow,\n all: computed,\n })\n }\n\n /**\n * All `PrincipalUID`s with any access.\n */\n get all(): ReadonlyArray<PrincipalUID> {\n // Note: We have to use `slice()` here, because otherwise MobX creates nested arrays\n // somehow ...\n return this._full_access\n .slice()\n .concat(this._edit.slice())\n .concat(this._comment.slice())\n .concat(this._read.slice())\n }\n\n /**\n * Find the entry for this exact uid.\n * DO NOT USE FOR ACCESS CHECKS!\n */\n entry(uid: PrincipalUID): AccessLevel | undefined {\n if (this._full_access.includes(uid)) {\n return AccessLevel.full_access\n } else if (this._edit.includes(uid)) {\n return AccessLevel.edit\n } else if (this._comment.includes(uid)) {\n return AccessLevel.comment\n } else if (this._read.includes(uid)) {\n return AccessLevel.read\n }\n return undefined\n }\n\n /**\n * Give details on how / why the given `auth_info` has access.\n * This is especially useful when you want to figure out why a given user has access.\n * Note that CLING_PUBLIC is ignored here.\n *\n * DO NOT USE FOR ACCESS CHECKS!\n *\n * @return the access-level of each component of `auth_info`, i.e. the `uid|account_uid` and\n * each of the `team_uids`.\n */\n entries(auth_info: AuthInfo): Array<{principal_uid: PrincipalUID; access_level: AccessLevel}> {\n const result: {principal_uid: PrincipalUID; access_level: AccessLevel}[] = []\n const {account_uid} = auth_info\n const access_level = this.entry(account_uid)\n if (access_level) {\n result.push({principal_uid: account_uid, access_level})\n }\n for (const x of auth_info.team_uids) {\n const entry = this.entry(x)\n if (entry) {\n result.push({principal_uid: x, access_level: entry})\n }\n }\n return result\n }\n\n get is_public() {\n return this.all.includes(CLING_PUBLIC)\n }\n\n /**\n * Return the access level the user is assigned to.\n * Most of the time you would want to use one of the `can_...|has...` functions.\n */\n access_level(auth_info: AuthInfo): AccessLevel | undefined {\n // SEC: An account can never be part of the meta-team CLING_PUBLIC ...\n assert(\n !auth_info.team_uids.includes(CLING_PUBLIC),\n \"`CLING_PUBLIC` cannot be part of `auth_info`\",\n )\n if (this.has_full_access(auth_info)) {\n return AccessLevel.full_access\n }\n if (this.can_edit(auth_info)) {\n return AccessLevel.edit\n }\n if (this.can_comment(auth_info)) {\n return AccessLevel.comment\n }\n if (this.can_read(auth_info)) {\n return AccessLevel.read\n }\n return undefined\n }\n\n has_full_access(auth_info: AuthInfo) {\n const a = this._full_access\n return (\n a.includes(CLING_PUBLIC) ||\n a.includes(auth_info.account_uid) ||\n auth_info.team_uids.some((x) => a.includes(x))\n )\n }\n\n can_edit(auth_info: AuthInfo) {\n if (this.has_full_access(auth_info)) {\n return true\n }\n const a = this._edit\n return (\n a.includes(CLING_PUBLIC) ||\n a.includes(auth_info.account_uid) ||\n auth_info.team_uids.some((x) => a.includes(x))\n )\n }\n\n can_comment(auth_info: AuthInfo) {\n if (this.can_edit(auth_info)) {\n return true\n }\n const a = this._comment\n return (\n a.includes(CLING_PUBLIC) ||\n a.includes(auth_info.account_uid) ||\n auth_info.team_uids.some((x) => a.includes(x))\n )\n }\n\n can_read(auth_info: AuthInfo) {\n if (this.can_comment(auth_info)) {\n return true\n }\n const a = this._read\n return (\n a.includes(CLING_PUBLIC) ||\n a.includes(auth_info.account_uid!) ||\n auth_info.team_uids.some((x) => a.includes(x))\n )\n }\n}\n\nabstract class _AccountAttributes implements AuthInfo {\n get has_pro_features() {\n const self = this as any as AccountAttributes\n // Stundents of Obersee-Schule don't get pro-features.\n return (\n self.plan !== Plan.free ||\n self.feature_switches.includes(FeatureSwitch.pro_features) ||\n (self.team_uids.length > 0 &&\n !self.team_uids.includes(as_TeamUID(\"t3M1uVAqGCszscG7ZIlW4H9S\")))\n )\n }\n\n /**\n * This makes `AccountAttributes` compatible with `AuthInfo`.\n */\n get account_uid(): AccountUID {\n const self = this as any as AccountAttributes\n return self.uid\n }\n\n abstract get team_uids(): TeamUID[]\n\n abstract get admin_organization_uids(): OrganizationUID[]\n}\n\nabstract class _AccountSettings {\n board_setting(board_uid: BoardUID) {\n const self = this as any as AccountSettings\n return self.board_settings.find((x) => x.board_uid === board_uid)\n }\n}\n\nabstract class _Organization {\n first_change: ChangeMetadata\n plan: OrganizationPlan\n\n constructor(args: {first_change: ChangeMetadata; plan?: OrganizationPlan}) {\n this.first_change = args.first_change\n this.plan = args.plan || OrganizationPlan.trial\n }\n\n is_paid() {\n return this.plan !== OrganizationPlan.trial\n }\n\n /**\n * Trial period is 14 days.\n */\n is_trial_expired() {\n return (\n !this.is_paid() &&\n this.first_change.date.getTime() + 14 * 24 * 60 * 60 * 1000 < Date.now()\n )\n }\n}\n\n/**\n * These are all operations on cards (and comments, which are associated with a card) we deem\n * important enough to actually notify the user about.\n * Think about these ops as \"Would I want to receive a push notification if anything of this\n * happens\"?\n */\nexport type ImportantPatchOpType =\n | CardPatchOpType.AddCard\n | CommentPatchOpType.AddComment\n | CardPatchOpType.CustomAddTask\n | CardPatchOpType.CustomRemoveTask\n | CardPatchOpType.SetCardColor\n | CardPatchOpType.SetCardFileFileName\n | CardPatchOpType.SetCardFileTitle\n | CardPatchOpType.SetCardFileBlob\n | CardPatchOpType.SetCardLinkTitle\n | CardPatchOpType.SetCardLinkURL\n | CardPatchOpType.SetCardNoteSafeHtml\n | CardPatchOpType.SetCardNoteTitle\n | CardPatchOpType.SetTaskAssignee\n | CardPatchOpType.SetTaskStatus\n | CardPatchOpType.SetTaskDate\n | CardPatchOpType.PasteCard\n\nexport type ImportantChange = (CardChangelogEntry | CommentChangelogEntry) & {\n patch_op_type: ImportantPatchOpType\n card: Card\n}\n\nabstract class _Board {\n uid: BoardUID\n root: Card\n board_type: BoardType\n version: number\n board_invites: Array<BoardInvite>\n changelog: BoardChangelogEntry[]\n first_change: ChangeMetadata\n last_change: ChangeMetadata\n /**\n * Implementation note: `this._cache` is only used if process.env.F_NO_MOBX is truthy,\n * otherwise we rely on caching via the `@computed` decorator of MobX.\n */\n private _cache!: {\n items?: Map<ItemUID, Item>\n content_items?: Map<ContentItemUID, ContentItem>\n inbox?: InboxCard\n columns?: ColumnCard[]\n regular_cards?: RegularCard[]\n all_cards?: Card[]\n comments?: Comment[]\n }\n\n constructor({\n board_invites,\n root,\n uid,\n board_type,\n version,\n first_change,\n last_change,\n changelog,\n }: {\n uid: BoardUID\n root: Card\n board_invites: Array<BoardInvite> | undefined\n board_type: BoardType\n version: number\n first_change: ChangeMetadata\n last_change: ChangeMetadata\n changelog: BoardChangelogEntry[]\n }) {\n this.uid = uid\n this.root = root\n this.board_invites = (board_invites || []).slice()\n this.board_type = board_type || 0\n this.version = version || 0\n this.first_change = first_change\n this.last_change = last_change\n if (process.env.F_NO_MOBX) {\n // This is a virtual property in the sense that it should not be\n // visible in `Object.keys` or `JSON.stringify` ...\n Object.defineProperty(this, \"_cache\", {enumerable: false, writable: true})\n this._cache = {}\n }\n if (changelog?.length === 0 && first_change) {\n // Upgrade: We used to have `first_change` and `last_change` instead of a complete\n // changelog. We try to fake a changelog as good as we can ...\n this.changelog = [\n new BoardChangelogEntry({\n account_uid: first_change.account_uid,\n date: first_change.date,\n patch_op_type:\n board_type === BoardType.regular\n ? BoardPatchOpType.AddBoard\n : BoardPatchOpType.AddSystemBoard,\n board_version: 1,\n }),\n ]\n if (last_change && last_change.date.getTime() !== first_change.date.getTime()) {\n this.changelog.push(\n new BoardChangelogEntry({\n account_uid: last_change.account_uid,\n date: last_change.date,\n patch_op_type: BoardPatchOpType.CardChangelogMigration,\n board_version: version,\n }),\n )\n }\n } else {\n this.changelog = (changelog || []).slice()\n }\n makeObservable(this, {\n board_type: observable,\n version: observable,\n board_invites: observable.shallow,\n changelog: observable.shallow,\n first_change: observable,\n last_change: observable,\n inbox: computed,\n board_info: computed,\n last_important_change: computed,\n columns: computed,\n content_items: computed,\n items: computed,\n num_regular_cards: computed,\n all_cards: computed,\n regular_cards: computed,\n comments: computed,\n urls: computed,\n blobs: computed,\n account_uids: computed,\n })\n this.sanitize()\n }\n\n /**\n * Return the latest changelog entries with an operation we deem *important*, so that we\n * might want to actively notify the user.\n * Only changelog entries of cards or comments that are still on this board and are not\n * archived are considered.\n *\n * @return a list of `ImportantCardChange` ordered by date ascending\n */\n recent_important_changes(args: {\n since_date?: Date\n since_board_version?: number\n }): ImportantChange[] {\n const t = this as any as Board\n const result: ImportantChange[] = []\n for (const card of t.regular_cards) {\n result.push(...card.recent_important_changes({...args, include_comments: true}))\n }\n result.sort((a, b) => a.date.getTime() - b.date.getTime())\n return result\n }\n\n /**\n * This *must* be called whenever anything inside this board has been modified except when\n * a patch has been applied.\n */\n sanitize() {\n this.root.sanitize()\n ;(this.root as any)._is_root_of = this.uid\n if (process.env.F_NO_MOBX) {\n this._cache = {}\n }\n }\n\n _verify() {\n const t = this as any as Board\n // 20190614: Upgrade board by adding missing `Card.column` ...\n for (let i = 0; i < t.root.children.length; i++) {\n const card = t.root.children[i]\n if (card.inbox || card.column) {\n continue\n }\n\n t.root.children[i] = new Card({\n uid: derive_CardUID(t.uid, card.uid),\n column: new Column({}),\n children: [card],\n changelog: [\n new CardChangelogEntry({\n patch_op_type: CardPatchOpType.AddCard,\n date: card.changelog[0].date,\n account_uid: card.changelog[0].account_uid,\n board_version: card.changelog[0].board_version,\n }),\n ],\n })\n }\n t.sanitize()\n }\n\n get inbox(): InboxCard {\n if (process.env.F_NO_MOBX && this._cache.inbox) {\n return this._cache.inbox\n }\n const a = this.root.children.filter((x) => x.inbox)\n assert(a.length === 1, \"A board must always have exactly one top-level inbox card.\")\n const inbox = a[0] as InboxCard\n if (process.env.F_NO_MOBX) {\n this._cache.inbox = inbox\n }\n return inbox\n }\n\n get board_info(): BoardInfo {\n const board = this as any as Board\n function board_stats(): BoardStats {\n const stats = new BoardStats({\n note_cards: new ContentItemStats({}),\n link_cards: new ContentItemStats({}),\n file_cards: new ContentItemStats({}),\n note_comments: new ContentItemStats({}),\n link_comments: new ContentItemStats({}),\n file_comments: new ContentItemStats({}),\n })\n const regular_cards = board.regular_cards\n for (const card of regular_cards) {\n if (card.kind instanceof Note) {\n stats.note_cards.num += 1\n } else if (card.kind instanceof Link) {\n stats.link_cards.num += 1\n const blob_size = card.kind.style.image_blob?.size ?? 0\n stats.link_cards.sum_blob_size += blob_size\n if (blob_size > stats.link_cards.max_blob_size) {\n stats.link_cards.max_blob_size = blob_size\n }\n } else if (card.kind instanceof File) {\n stats.file_cards.num += 1\n for (const blob of card.blobs) {\n stats.file_cards.sum_blob_size += blob.size\n if (blob.size > stats.file_cards.max_blob_size) {\n stats.file_cards.max_blob_size = blob.size\n }\n }\n } else {\n assert_never(card.kind)\n }\n for (const comment of card.comments) {\n if (comment.kind instanceof Note) {\n stats.note_comments.num += 1\n } else if (comment.kind instanceof Link) {\n stats.link_comments.num += 1\n const blob_size = comment.kind.style.image_blob?.size ?? 0\n stats.link_comments.sum_blob_size += blob_size\n if (blob_size > stats.link_comments.max_blob_size) {\n stats.link_comments.max_blob_size = blob_size\n }\n } else if (comment.kind instanceof File) {\n stats.file_comments.num += 1\n for (const blob of comment.blobs) {\n stats.file_comments.sum_blob_size += blob.size\n if (blob.size > stats.file_comments.max_blob_size) {\n stats.file_comments.max_blob_size = blob.size\n }\n }\n } else if (comment.kind instanceof Removed) {\n // Nothing to count here ...\n } else {\n assert_never(comment.kind)\n }\n }\n }\n return stats\n }\n const last_important_change = this.last_important_change\n return new BoardInfo({\n uid: board.uid,\n version: board.version,\n first_change: board.first_change,\n last_change: board.last_change,\n last_important_change: last_important_change\n ? new ChangeMetadata(last_important_change)\n : undefined,\n board_type: board.board_type,\n owner: board.owner,\n name: board.name,\n acl: board.acl,\n board_style: board.board_style,\n indexed_by_search_engines: board.indexed_by_search_engines,\n board_stats: board_stats(),\n })\n }\n\n people_board_shared_with(current_user: AccountUID): AccountUID {\n assert(this.board_type === BoardType.people, \"Must be a people board\")\n return as_AccountUID(\n (this as any as Board).acl._full_access.find((x) => x !== current_user),\n )\n }\n\n get last_important_change(): ImportantChange | undefined {\n const last_important_changes = this.recent_important_changes({})\n return last_important_changes.length > 0\n ? last_important_changes[last_important_changes.length - 1]\n : undefined\n }\n\n /**\n * All children of `this.root` except the inbox.\n */\n get columns(): ReadonlyArray<ColumnCard> {\n if (process.env.F_NO_MOBX && this._cache.columns) {\n return this._cache.columns\n }\n const columns = this.root.children.filter((x) => !x.inbox) as ColumnCard[]\n if (process.env.F_NO_MOBX) {\n this._cache.columns = columns\n }\n return columns\n }\n\n /**\n * @throws ItemNotFound if there is no such card\n */\n card(uid: CardUID): Card\n card(uid: CardUID, dont_throw: \"dont_throw\"): Card | undefined\n card(uid: CardUID, dont_throw?: \"dont_throw\"): Card | undefined {\n if (uid === this.root.uid) {\n return this.root\n }\n let card: Card | undefined\n if (process.env.F_NO_MOBX && this._cache.content_items) {\n card = this._cache.content_items.get(uid) as Card\n } else {\n card = this.content_items.get(uid) as Card | undefined\n }\n if (!card) {\n if (dont_throw === \"dont_throw\") {\n return undefined\n }\n throw new ItemNotFound(this.uid, uid)\n }\n assert(card instanceof Card, `${card.uid} is not of type Card`)\n return card\n }\n\n /**\n * @throws ItemNotFound if there is no such comment\n */\n comment(uid: CommentUID): Comment {\n let comment: Comment | undefined\n if (process.env.F_NO_MOBX && this._cache.content_items) {\n comment = this._cache.content_items.get(uid) as Comment\n } else {\n comment = this.content_items.get(uid) as Comment | undefined\n }\n if (!comment) {\n throw new ItemNotFound(this.uid, uid)\n }\n assert(comment instanceof Comment, `${comment.uid} is not of type Comment`)\n return comment\n }\n\n get content_items(): ReadonlyMap<ContentItemUID, ContentItem> {\n if (process.env.F_NO_MOBX && this._cache.content_items) {\n return this._cache.content_items\n }\n const content_items = new Map<ContentItemUID, ContentItem>()\n function traverse(card: Card) {\n card.children.forEach((child) => {\n content_items.set(child.uid, child)\n traverse(child)\n })\n card.comments.forEach((child) => {\n content_items.set(child.uid, child)\n })\n }\n traverse(this.root)\n if (process.env.F_NO_MOBX) {\n this._cache.content_items = content_items\n }\n return content_items\n }\n\n get items(): ReadonlyMap<ItemUID, Item> {\n if (process.env.F_NO_MOBX && this._cache.items) {\n return this._cache.items\n }\n const items = new Map(this.content_items) as Map<ItemUID, Item>\n for (const content of this.content_items.values()) {\n for (const blob of content.blobs) {\n items.set(blob.uid, blob)\n }\n }\n this.board_invites.forEach((x: BoardInvite) => items.set(x.uid, x))\n const image_background_blob = (this as any as Board).board_style.background_image_blob\n if (image_background_blob) {\n items.set(image_background_blob.uid, image_background_blob)\n }\n if (process.env.F_NO_MOBX) {\n this._cache.items = items\n }\n return items\n }\n\n get num_regular_cards(): number {\n return this.regular_cards.length\n }\n\n blob(uid: BlobUID): Blob {\n return this.item(uid) as Blob\n }\n\n item(uid: ItemUID) {\n let item: Item | undefined\n if (is_CardUID(uid)) {\n item = this.card(uid)\n } else if (is_CommentUID(uid)) {\n item = this.comment(uid)\n } else if (is_BoardInviteUID(uid)) {\n item = this.board_invite(uid)\n } else if (is_BlobUID(uid)) {\n item = this.items.get(uid)\n } else {\n assert_never(uid)\n }\n if (!item) {\n throw new ItemNotFound(this.uid, uid)\n }\n return item\n }\n\n content_item(uid: ContentItemUID): ContentItem {\n const content_item = this.content_items.get(uid)\n if (!content_item) {\n throw new ItemNotFound(this.uid, uid)\n }\n return content_item\n }\n\n contains(uid: ItemUID) {\n try {\n if (is_CardUID(uid)) {\n this.card(uid)\n } else if (is_CommentUID(uid)) {\n this.comment(uid)\n } else if (is_BoardInviteUID(uid)) {\n this.board_invite(uid)\n } else {\n this.item(uid)\n }\n return true\n } catch (e) {\n if (e instanceof ItemNotFound) {\n return false\n }\n throw e\n }\n }\n\n /**\n * @throws ItemNotFound if there is no such invite\n */\n board_invite(uid: BoardInviteUID): BoardInvite {\n const result = this.board_invites.find((x) => x.uid === uid)\n if (!result) {\n throw new ItemNotFound(this.uid, uid)\n }\n return result\n }\n\n /**\n * This includes the inbox and the column cards but not the root card.\n */\n get all_cards(): ReadonlyArray<Card> {\n if (process.env.F_NO_MOBX && this._cache.all_cards) {\n return this._cache.all_cards\n }\n const all_cards = this.root.deep_children as Card[]\n if (process.env.F_NO_MOBX) {\n this._cache.all_cards = all_cards\n }\n return all_cards\n }\n\n /**\n * Inbox and column cards are excluded.\n */\n get regular_cards(): ReadonlyArray<RegularCard> {\n if (process.env.F_NO_MOBX && this._cache.regular_cards) {\n return this._cache.regular_cards\n }\n const regular_cards = this.all_cards.filter(\n (x) => !x.column && !x.root && !x.inbox,\n ) as RegularCard[]\n if (process.env.F_NO_MOBX) {\n this._cache.regular_cards = regular_cards\n }\n return regular_cards\n }\n\n get comments(): ReadonlyArray<Comment> {\n return this.root.deep_comments\n }\n\n get urls(): ReadonlyArray<URL> {\n return this.root.deep_urls\n }\n\n get blobs(): ReadonlyArray<Blob> {\n const blobs = this.root.deep_blobs\n const image_background_blob = (this as any as Board).board_style.background_image_blob\n if (image_background_blob) {\n return [image_background_blob, ...blobs]\n }\n return blobs\n }\n\n /**\n * All account-uids referenced anywhere on this board: ACL, changelog, task-assignee etc.\n */\n get account_uids(): ReadonlySet<AccountUID> {\n const result = new Set<AccountUID>()\n for (const account_uid of (this as any as Board).acl.all.filter(is_AccountUID)) {\n result.add(account_uid)\n }\n result.add((this as any as Board).first_change.account_uid)\n result.add((this as any as Board).last_change.account_uid)\n for (const card of this.all_cards) {\n card.changelog.forEach((x) => result.add(x.account_uid))\n if (card.task?.assignee) {\n result.add(card.task.assignee)\n }\n for (const comment of card.comments) {\n comment.changelog.forEach((x) => result.add(x.account_uid))\n }\n }\n return result\n }\n\n get is_dashboard_or_user_board(): boolean {\n return [BoardType.dashboard, BoardType.regular, BoardType.people].includes(\n (this as any as Board).board_type,\n )\n }\n\n get is_user_board(): boolean {\n return [BoardType.regular, BoardType.people].includes((this as any as Board).board_type)\n }\n\n get is_system_board(): boolean {\n return [BoardType.dashboard, BoardType.trashcan, BoardType.clipboard].includes(\n (this as any as Board).board_type,\n )\n }\n}\n\nexport type NoteCard = Card & Defined<Card, \"note\"> & {kind: Note}\nexport function is_NoteCard(card: Card): card is NoteCard {\n return !!card.note\n}\nexport type LinkCard = Card & Defined<Card, \"link\"> & {kind: Link}\nexport function is_LinkCard(card: Card): card is LinkCard {\n return !!card.link\n}\nexport type FileCard = Card & Defined<Card, \"file\"> & {kind: File}\nexport function is_FileCard(card: Card): card is FileCard {\n return !!card.file\n}\nexport type RegularCard = NoteCard | LinkCard | FileCard\nexport type InboxCard = Card & Defined<Card, \"inbox\"> & {kind: Inbox}\nexport type RootCard = Card & Defined<Card, \"root\"> & {kind: Root}\nexport type ColumnCard = Card & Defined<Card, \"column\"> & {kind: Column}\nfunction new_LinkStyle() {\n return new LinkStyle({})\n}\n\nabstract class _Card {\n _is_dragged?: any\n children: Array<Card>\n changelog: CardChangelogEntry[]\n link: Link | undefined\n file: File | undefined\n private _parent?: Card\n private _is_root_of: BoardUID | undefined\n\n constructor({\n children,\n deprecated_first_change,\n deprecated_last_change,\n changelog,\n link,\n file,\n deprecated_board_ref,\n }: {\n children: Array<Card> | undefined\n deprecated_first_change?: ChangeMetadata\n deprecated_last_change?: ChangeMetadata\n changelog: CardChangelogEntry[]\n deprecated_board_ref?: DeprecatedBoardRef\n file?: File\n link?: Link\n }) {\n // These are virtual properties in the sense that they should not be\n // visible in `Object.keys` or `JSON.stringify` ...\n Object.defineProperty(this, \"_parent\", {enumerable: false, writable: true})\n Object.defineProperty(this, \"_is_root_of\", {enumerable: false, writable: true})\n this.children = children ? children.slice(0) : []\n if (changelog?.length === 0 && deprecated_first_change) {\n // Upgrade: We used to have `first_change` and `last_change` instead of a complete\n // changelog. We try to fake a changelog as good as we can ...\n this.changelog = [\n new CardChangelogEntry({\n account_uid: deprecated_first_change.account_uid,\n date: deprecated_first_change.date,\n patch_op_type: CardPatchOpType.CardChangelogMigration,\n board_version: 1,\n }),\n ]\n if (\n deprecated_last_change &&\n deprecated_last_change.date.getTime() !== deprecated_first_change.date.getTime()\n ) {\n this.changelog.push(\n new CardChangelogEntry({\n account_uid: deprecated_last_change.account_uid,\n date: deprecated_last_change.date,\n patch_op_type: CardPatchOpType.CardChangelogMigration,\n board_version: 2,\n }),\n )\n }\n } else {\n this.changelog = (changelog || []).slice()\n }\n if (deprecated_board_ref) {\n // Convert board card to board link card.\n this.link = new Link({url: `https://cling.com/c/${deprecated_board_ref.board_uid}`})\n } else {\n this.link = link\n }\n this.file = file\n if (\n file &&\n this.last_change &&\n this.last_change.date.getTime() < Date.parse(\"2021-11-09T16:00:00Z\") &&\n process.env.NODE_ENV !== \"test\"\n ) {\n file.display.kind = is_image(file.blob)\n ? ImageCardDisplayKind.cinema\n : ImageCardDisplayKind.condensed\n }\n this._is_dragged = undefined\n makeObservable(this, {\n _is_dragged: observable.ref,\n children: observable.shallow,\n changelog: observable.shallow,\n link: observable,\n file: observable,\n })\n }\n\n /**\n * Fix `this.parent` for every (deep) child.\n */\n sanitize() {\n function fix(card: Card, parent: Card) {\n ;(card as any)._parent = parent\n for (const x of card.children) {\n fix(x, card)\n }\n for (const x of card.comments) {\n ;(x as any)._parent = card\n }\n }\n this.children.forEach((x) => fix(x, this as any as Card))\n }\n\n /**\n * This might have happened on another board.\n */\n get first_change(): ChangeMetadata {\n return this.changelog[0]\n }\n\n get last_change(): ChangeMetadata {\n return this.changelog[this.changelog.length - 1]\n }\n\n /**\n * This might have happened on another board.\n */\n get task_first_change(): ChangeMetadata | undefined {\n for (let i = this.changelog.length - 1; i >= 0; i--) {\n const x = this.changelog[i]\n if (x.patch_op_type === CardPatchOpType.CustomAddTask) {\n return x\n }\n }\n return undefined\n }\n\n get task_last_change(): ChangeMetadata | undefined {\n for (let i = this.changelog.length - 1; i >= 0; i--) {\n const x = this.changelog[i]\n const {patch_op_type} = x\n if (patch_op_type === CardPatchOpType.CustomAddTask) {\n return undefined\n }\n if (\n [\n CardPatchOpType.SetTaskAssignee,\n CardPatchOpType.SetTaskStatus,\n CardPatchOpType.SetTaskDate,\n ].includes(patch_op_type)\n ) {\n return x\n }\n }\n return undefined\n }\n\n get parent() {\n if (this._is_root_of) {\n throw new Error(`This is the root-card of ${this._is_root_of}, it has no parent`)\n }\n return not_null(this._parent)\n }\n\n get board_uid(): BoardUID {\n let p = this as any as Card\n while (!p.root) {\n p = p.parent\n }\n return p._is_root_of!\n }\n\n get parent_pos() {\n return this.parent.children.findIndex((x) => x === (this as any))\n }\n\n get level() {\n let level = 0\n let o = this as any\n while (o._parent) {\n level += 1\n assert(level < 1000, \"Detected loop while traversing `o._parent`\")\n o = o._parent\n }\n return level\n }\n\n get is_regular_card() {\n const c = this as any as Card\n return !c.root && !c.inbox && !c.column\n }\n\n get blobs(): Blob[] {\n const c = this as any as Card\n if (c.link) {\n return c.link.style.image_blob ? [c.link.style.image_blob] : []\n } else if (c.file) {\n const res = [c.file.blob]\n if (c.file.preview_image_blob) {\n res.push(c.file.preview_image_blob)\n }\n return res\n }\n return []\n }\n\n get deep_children(): ReadonlyArray<Card> {\n const contents: Card[] = []\n function traverse(card: Card) {\n card.children.forEach((child) => {\n contents.push(child)\n traverse(child)\n })\n }\n traverse(this as any as Card)\n return contents\n }\n\n get num_deep_children(): number {\n let n = 0\n function traverse(card: Card) {\n n += card.children.length\n card.children.forEach((child) => {\n traverse(child)\n })\n }\n traverse(this as any as Card)\n return n\n }\n\n get deep_urls(): ReadonlyArray<URL> {\n const urls = [] as any\n for (const card of this.deep_children) {\n if (card.link?.url && !urls.includes(card.link.url)) {\n urls.push(card.link.url)\n }\n }\n return urls\n }\n\n get deep_files(): ReadonlyArray<File> {\n const files = [] as Array<File>\n for (const card of this.deep_children) {\n if (card.file) {\n files.push(card.file)\n }\n }\n for (const comment of this.deep_comments) {\n if (comment.file) {\n files.push(comment.file)\n }\n }\n return files\n }\n\n get deep_comments(): ReadonlyArray<Comment> {\n const comments = []\n for (const child of this.deep_children) {\n comments.push(...child.comments)\n }\n return comments\n }\n\n get deep_blobs(): ReadonlyArray<Blob> {\n const res = []\n for (const card of this.deep_children) {\n res.push(...card.blobs)\n for (const comment of card.comments) {\n res.push(...comment.blobs)\n }\n }\n return res\n }\n\n find_parent(predicate: (card: Card) => boolean): Card | undefined {\n if ((this as any as Card).root) {\n return\n }\n let parent = this.parent as Card\n while (!parent.root) {\n if (predicate(parent)) {\n return parent\n }\n parent = parent.parent\n }\n }\n\n /**\n * Return the latest changelog entries with an operation we deem *important*, so that we\n * might want to actively notify the user.\n * If this card is archived, no changes are reported.\n * Only changes that have been made to the card while it has been on its current board\n * are returned.\n * Changes made by CLING_BOT are ignored.\n *\n * @param args.since_date is including\n * @param args.since_board_version is including\n *\n * @return a list of `ImportantCardChange` ordered by date ascending\n */\n recent_important_changes({\n since_board_version,\n since_date,\n include_comments,\n limit,\n }: {\n since_date?: Date\n since_board_version?: number\n include_comments?: boolean\n limit?: number\n } = {}): ImportantChange[] {\n const card = this as any as Card\n if (card.archived) {\n return []\n }\n const important_op_types = [\n CardPatchOpType.AddCard,\n CommentPatchOpType.AddComment,\n CardPatchOpType.CustomAddTask,\n CardPatchOpType.CustomRemoveTask,\n CardPatchOpType.SetCardColor,\n CardPatchOpType.SetCardFileFileName,\n CardPatchOpType.SetCardFileTitle,\n CardPatchOpType.SetCardFileBlob,\n CardPatchOpType.SetCardLinkTitle,\n CardPatchOpType.SetCardLinkURL,\n CardPatchOpType.SetCardNoteSafeHtml,\n CardPatchOpType.SetCardNoteTitle,\n CardPatchOpType.SetTaskAssignee,\n CardPatchOpType.SetTaskStatus,\n CardPatchOpType.SetTaskDate,\n CardPatchOpType.PasteCard,\n ]\n const since_time = since_date ? since_date.getTime() : 0\n const since_board_version_int = since_board_version ?? 0\n const result: ImportantChange[] = []\n const handle = (changelog: Array<CardChangelogEntry | CommentChangelogEntry>) => {\n for (let i = changelog.length - 1; i >= 0; i--) {\n if (!include_comments && limit && result.length === limit) {\n return\n }\n const entry = changelog[i]\n if (\n entry.date.getTime() < since_time ||\n entry.board_version < since_board_version_int ||\n entry.board_uid ||\n entry.account_uid === CLING_BOT\n ) {\n return\n }\n if (important_op_types.includes(entry.patch_op_type)) {\n result.push({...(entry as any), card})\n }\n }\n }\n handle(this.changelog)\n if (include_comments) {\n for (const comment of (this as any as Card).comments) {\n handle(comment.changelog)\n }\n result.sort((a, b) => a.date.getTime() - b.date.getTime())\n }\n return result\n }\n\n get last_important_change(): ImportantChange | undefined {\n const changes = this.recent_important_changes({limit: 1})\n return changes.length === 1 ? changes[0] : undefined\n }\n}\nObject.defineProperty(_Card.prototype, \"first_change\", {enumerable: false})\nObject.defineProperty(_Card.prototype, \"last_change\", {enumerable: false})\nObject.defineProperty(_Card.prototype, \"task_first_change\", {enumerable: false})\nObject.defineProperty(_Card.prototype, \"task_last_change\", {enumerable: false})\nObject.defineProperty(_Card.prototype, \"parent\", {enumerable: false})\n\nexport type NoteComment = Comment & Defined<Comment, \"note\"> & {kind: Note}\nexport function is_NoteComment(comment: Comment): comment is NoteComment {\n return !!comment.note\n}\nexport type LinkComment = Comment & Defined<Comment, \"link\"> & {kind: Link}\nexport function is_LinkComment(comment: Comment): comment is LinkComment {\n return !!comment.link\n}\nexport type FileComment = Comment & Defined<Comment, \"file\"> & {kind: File}\nexport function is_FileComment(comment: Comment): comment is FileComment {\n return !!comment.file\n}\nexport type RemovedComment = Comment & Defined<Comment, \"removed\"> & {kind: Removed}\nexport function is_RemovedComment(comment: Comment): comment is RemovedComment {\n return !!comment.removed\n}\n\nabstract class _Comment {\n private _parent?: Card\n changelog: CommentChangelogEntry[]\n\n constructor({\n changelog,\n deprecated_first_change,\n deprecated_last_change,\n }: {\n deprecated_first_change?: ChangeMetadata\n deprecated_last_change?: ChangeMetadata\n changelog: CommentChangelogEntry[]\n }) {\n // These are virtual properties in the sense that they should not be visible in\n // `Object.keys` or `JSON.stringify` ...\n Object.defineProperty(this, \"_parent\", {enumerable: false, writable: true})\n if (changelog?.length === 0 && deprecated_first_change) {\n // Upgrade: We used to have `first_change` and `last_change` instead of a complete\n // changelog. We try to fake a changelog as good as we can.\n this.changelog = [\n new CommentChangelogEntry({\n account_uid: deprecated_first_change.account_uid,\n date: deprecated_first_change.date,\n patch_op_type: CommentPatchOpType.AddComment,\n board_version: 1,\n }),\n ]\n if (\n deprecated_last_change &&\n deprecated_last_change.date.getTime() !== deprecated_first_change.date.getTime()\n ) {\n this.changelog.push(\n new CommentChangelogEntry({\n account_uid: deprecated_last_change.account_uid,\n date: deprecated_last_change.date,\n patch_op_type: CommentPatchOpType.AddComment,\n board_version: 2,\n }),\n )\n }\n } else {\n this.changelog = (changelog || []).slice()\n }\n makeObservable(this, {\n changelog: observable.shallow,\n })\n }\n\n get first_change(): ChangeMetadata {\n return this.changelog[0]\n }\n\n get last_change(): ChangeMetadata {\n return this.changelog[this.changelog.length - 1]\n }\n\n get parent() {\n return not_null(this._parent)\n }\n\n get blobs(): Blob[] {\n const c = this as any as Card\n if (c.link) {\n return c.link.style.image_blob ? [c.link.style.image_blob] : []\n } else if (c.file) {\n const res = [c.file.blob]\n if (c.file.preview_image_blob) {\n res.push(c.file.preview_image_blob)\n }\n return res\n }\n return []\n }\n\n /**\n * For now there is only `AddComment`.\n */\n get last_important_change(): ImportantChange | undefined {\n return this.changelog[this.changelog.length - 1] as ImportantChange\n }\n}\nObject.defineProperty(_Comment.prototype, \"first_change\", {enumerable: false})\nObject.defineProperty(_Comment.prototype, \"last_change\", {enumerable: false})\nObject.defineProperty(_Comment.prototype, \"parent\", {enumerable: false})\n\nabstract class _LinkStyle {\n display: ImageCardDisplay\n constructor({\n display,\n deprecated_display_kind,\n }: {\n display?: ImageCardDisplay\n deprecated_display_kind?: ImageCardDisplayKind\n }) {\n this.display =\n display ??\n new ImageCardDisplay({kind: deprecated_display_kind || ImageCardDisplayKind.condensed})\n }\n}\n\nabstract class _File {\n display: ImageCardDisplay\n constructor({\n display,\n deprecated_display_kind,\n }: {\n display?: ImageCardDisplay\n deprecated_display_kind?: ImageCardDisplayKind\n }) {\n this.display =\n display ??\n new ImageCardDisplay({kind: deprecated_display_kind || ImageCardDisplayKind.condensed})\n }\n}\n\nexport function is_image(blob?: {mime_type: string}): boolean {\n return !!blob?.mime_type.startsWith(\"image/\")\n}\n\nexport function is_video(blob?: {mime_type: string}): boolean {\n const mime_type = blob?.mime_type\n if (!mime_type) {\n return false\n }\n return (\n mime_type === \"application/vnd.rn-realmedia\" ||\n mime_type === \"application/mxf\" ||\n mime_type === \"image/gif\" ||\n mime_type.startsWith(\"video/\")\n )\n}\n\nexport function is_audio(blob?: {mime_type: string}): boolean {\n const mime_type = blob?.mime_type\n if (!mime_type) {\n return false\n }\n return mime_type.startsWith(\"audio/\")\n}\n\nexport function may_have_thumbnail(blob?: {mime_type: string}): boolean {\n return is_image(blob) || is_video(blob)\n}\n\nexport function entity_type(sync_entity_type: SyncEntityType) {\n return sync_entity_type === SyncEntityType.account\n ? Account\n : sync_entity_type === SyncEntityType.account_attributes\n ? AccountAttributes\n : sync_entity_type === SyncEntityType.account_settings\n ? AccountSettings\n : sync_entity_type === SyncEntityType.account_auth\n ? AccountAuth\n : sync_entity_type === SyncEntityType.account_analytics\n ? AccountAnalytics\n : sync_entity_type === SyncEntityType.organization\n ? Organization\n : sync_entity_type === SyncEntityType.organization_members\n ? OrganizationMembers\n : sync_entity_type === SyncEntityType.team\n ? Team\n : sync_entity_type === SyncEntityType.team_members\n ? TeamMembers\n : sync_entity_type === SyncEntityType.board\n ? Board\n : sync_entity_type === SyncEntityType.board_info\n ? BoardInfo\n : sync_entity_type === SyncEntityType.url_info\n ? URLInfo\n : sync_entity_type === SyncEntityType.media_info\n ? MediaInfo\n : sync_entity_type === SyncEntityType.meet_status\n ? MeetStatus\n : assert_never(sync_entity_type)\n}\n\nexport function as_Account(x: any): Account {\n if (x instanceof Account) {\n return x\n }\n throw new Error(`Not an Account: ${class_name(x)}`)\n}\n\nexport function as_AccountSettings(x: any): AccountSettings {\n if (x instanceof AccountSettings) {\n return x\n }\n throw new Error(`Not an AccountSettings: ${class_name(x)}`)\n}\n\nexport function as_Board(x: any): Board {\n if (x instanceof Board) {\n return x\n }\n throw new Error(`Not a Board: ${class_name(x)}`)\n}\n\nexport function as_BoardInfo(x: any): BoardInfo {\n if (x instanceof BoardInfo) {\n return x\n }\n throw new Error(`Not a BoardInfo: ${class_name(x)}`)\n}\n\nexport function as_MediaInfo(x: any): MediaInfo {\n if (x instanceof MediaInfo) {\n return x\n }\n throw new Error(`Not a MediaInfo: ${class_name(x)}`)\n}\n\nexport function as_URLInfo(x: any): URLInfo {\n if (x instanceof URLInfo) {\n return x\n }\n throw new Error(`Not an URLInfo: ${class_name(x)}`)\n}\n\nconst protobuf_utils = {\n to_Buffer: (x: any): any => {\n if (Array.isArray(x)) {\n return x.map(protobuf_utils.to_Buffer)\n }\n if (x instanceof Buffer) {\n return x\n }\n if (x && x.buffer && x.buffer instanceof Buffer) {\n return x.buffer\n }\n throw new Error(`Don't know how to handle ${typeof x}`)\n },\n\n to_Date: (timestamp: any): Date | undefined => {\n if (timestamp.toNumber) {\n timestamp = timestamp.toNumber()\n }\n if (timestamp === 0) {\n return undefined\n } else {\n return new Date(timestamp / 1000)\n }\n },\n}\n\n/* eslint-disable */\n\n// --------------------- START OF AUTO-GENERATED CODE ---------------------\n\nexport enum TriState {\n undefined = 0,\n true = 1,\n false = 2,\n}\n\nexport enum AccountState {\n active = 1,\n blocked = 2,\n}\n\nexport enum FeatureSwitch {\n just_for_testing_1 = 1,\n just_for_testing_2 = 2,\n extended_quota = 5,\n custom_access_level = 6,\n pro_features = 9,\n email_markup = 15,\n public_board_beta = 18,\n super_extended_quota = 19,\n board_indexed_by_search_engines = 20,\n extended_board_acl_limit = 21,\n import_board = 22,\n}\n\nexport enum Plan {\n free = 1,\n pro = 2,\n}\n\nexport enum OrganizationPlan {\n trial = 1,\n per_seat = 2,\n fixed = 3,\n}\n\nexport enum SourceCampaignType {\n organic_web_app = 1,\n google_adwords = 2,\n board_invite = 3,\n organization_invite = 6,\n affiliate = 5,\n public_board = 7,\n other = 4,\n}\n\nexport enum Client {\n web_app_desktop = 1,\n web_app_mobile = 2,\n chrome_ext = 3,\n firefox_ext = 4,\n safari_ext = 5,\n android_app = 6,\n cling_button = 7,\n}\n\nexport enum AuthProvider {\n username_password = 1,\n google = 2,\n facebook = 3,\n apple = 4,\n}\n\nexport enum EngagementType {\n add_card = 1,\n edit_card = 2,\n move_card = 3,\n add_board = 5,\n share_board = 6,\n add_comment = 7,\n click_link = 8,\n download_file = 9,\n print = 10,\n import_data = 11,\n add_task = 12,\n edit_task = 13,\n join_meet = 14,\n view_media = 15,\n search = 16,\n cling_button_popup = 17,\n cling_button_content = 18,\n view_pre_checkout_page = 19,\n}\n\nexport enum CheckoutStage {\n begin_checkout = 1,\n add_payment_info = 2,\n add_shipping_info = 3,\n view_cart = 4,\n purchase = 5,\n}\n\nexport enum PortalAction {\n cancel_subscription = 1,\n}\n\nexport enum AccessLevel {\n read = 1,\n comment = 2,\n edit = 3,\n full_access = 4,\n}\n\nexport enum BoardType {\n regular = 1,\n clipboard = 2,\n trashcan = 3,\n dashboard = 4,\n people = 5,\n}\n\nexport enum TaskStatus {\n task_open = 0,\n task_done = 1,\n}\n\nexport enum CardColor {\n no_color = 0,\n yellow = 1,\n orange = 2,\n red = 3,\n pink = 4,\n purple = 5,\n blue = 6,\n cyan = 7,\n green = 8,\n brown = 9,\n gray = 10,\n}\n\nexport enum ImageCardDisplayKind {\n condensed = 1,\n cinema = 2,\n banner = 3,\n}\n\nexport enum LinkStyleImage {\n featured_image = 0,\n logo = 1,\n screenshot = 2,\n}\n\nexport enum BubbleType {\n web_welcome = 1,\n web_first_note = 2,\n web_first_new_elm = 3,\n ext_read_only = 4,\n ext_welcome = 5,\n}\n\nexport enum APIScope {\n board_list = 1,\n card_add = 2,\n profile = 3,\n email = 4,\n}\n\nexport enum BoardPatchOpType {\n AddBoard = 1,\n CopyBoard = 48,\n AddPeopleBoard = 38,\n AddSystemBoard = 2,\n RemoveBoard = 3,\n SetBoardName = 4,\n CustomAddBoardACL = 5,\n CustomRemoveBoardACL = 6,\n CustomSetBoardACLAccessLevel = 37,\n CustomSetBoardOwner = 41,\n SetBoardBoardStyleBackgroundColor = 7,\n SetBoardBoardStyleBackgroundImageURL = 8,\n SetBoardBoardStyle = 36,\n CustomAddBoardInvite = 31,\n RemoveBoardInvite = 32,\n SetBoardIndexedBySearchEngines = 49,\n CardChangelogMigration = 1000,\n}\n\nexport enum CardPatchOpType {\n SetCardArchived = 11,\n SetCardColor = 12,\n CustomAddTask = 34,\n CustomRemoveTask = 35,\n SetTaskStatus = 13,\n SetTaskAssignee = 33,\n SetTaskDate = 40,\n AddCard = 17,\n PasteCard = 18,\n SetCardNoteSafeHtml = 20,\n SetCardNoteTitle = 21,\n SetCardLinkURL = 22,\n SetCardLinkTitle = 23,\n SetCardLinkStyle = 43,\n SetCardFileFileName = 24,\n SetCardFileTitle = 44,\n SetCardFileDisplay = 45,\n SetCardFileBlob = 46,\n SetCardFilePreviewImageBlob = 47,\n CardChangelogMigration = 1000,\n}\n\nexport enum CommentPatchOpType {\n AddComment = 30,\n CustomRemoveComment = 42,\n}\n\nexport enum ClingErrorCode {\n unknown = 1,\n invalid_timeout = 2,\n invalid_protobuf = 3,\n sec_no_access_token = 4,\n sec_auth_failed = 5,\n sec_forbidden = 6,\n bad_request = 8,\n not_found = 9,\n gone = 10,\n conflict = 11,\n temporary = 12,\n unexpected = 13,\n limit_exceeded = 14,\n quota_exceeded = 20,\n validate_board_card_on_wrong_board = 15,\n validate_card_archived_but_not_all_children = 16,\n validate_invalid_card_type = 17,\n validate_error = 18,\n validate_duplicate_content = 19,\n}\n\nexport enum JobStatus {\n job_pending = 1,\n job_running = 2,\n job_succeeded = 3,\n job_failed = 4,\n}\n\nexport enum SyncEntityType {\n account = 1,\n account_attributes = 2,\n account_settings = 3,\n account_auth = 4,\n account_analytics = 5,\n organization = 12,\n organization_members = 13,\n team = 6,\n team_members = 7,\n board = 8,\n board_info = 9,\n url_info = 10,\n media_info = 11,\n meet_status = 14,\n}\n\nexport enum ReportLogEventSeverity {\n info = 1,\n warn = 2,\n error = 3,\n}\n\nexport enum CheckBoardAccessOp {\n any_board_op = 0,\n export = 1,\n upload_board_background_image = 2,\n custom_access_level = 3,\n cling_meet = 5,\n indexed_by_search_engines = 6,\n}\n\nexport enum ThumbnailImageType {\n png = 1,\n webp = 2,\n avif = 3,\n jpeg = 4,\n}\n\nexport enum PaymentMethod {\n card = 1,\n paypal_express_checkout = 2,\n direct_debit = 3,\n google_pay = 4,\n apple_pay = 5,\n}\n\nexport enum PaymentMethodStatus {\n valid = 1,\n expiring = 2,\n expired = 3,\n invalid = 4,\n pending_validation = 5,\n}\n\nexport enum ManageMeetAction {\n join = 1,\n ping = 2,\n hangup = 3,\n}\n\nexport enum FullAccountPatchedMessageType {\n account = 1,\n account_attributes = 2,\n account_auth = 3,\n account_settings = 4,\n}\n\nexport enum BoardPatchDebouncedDelayType {\n two_hours = 1,\n fifteen_minutes = 2,\n}\n\nexport enum MediaTranscodeStatus {\n in_progress = 1,\n ready = 2,\n error = 3,\n}\n\nexport enum PubSubAdminFanOutWork {\n migrate_boards_to_spanner = 7,\n}\n\nexport type ChangeMetadataStruct = {\n account_uid: AccountUID\n date: Date\n}\n\nexport class ChangeMetadata {\n static _from_pb(pbf: any): ChangeMetadata {\n const o = ChangeMetadata._from_pb_init()\n pbf.readFields(ChangeMetadata._from_pb_fields, o)\n return new ChangeMetadata({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.account_uid = pbf.readString()\n return\n }\n case 2: {\n o.date = new Date(pbf.readVarint() / 1000)\n return\n }\n }\n }\n\n account_uid: AccountUID\n date: Date\n\n constructor(args: {account_uid: AccountUID; date: Date}) {\n this.account_uid = args.account_uid\n this.date = args.date\n makeObservable(this, {account_uid: observable, date: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.account_uid, \"`account_uid` required\")\n assert(is_AccountUID(this.account_uid), \"`account_uid` is not of type AccountUID\")\n assert(this.date, \"`date` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.account_uid) pbf.writeStringField(1, this.account_uid, pbf)\n if (this.date) pbf.writeVarintField(2, this.date.getTime() * 1000, pbf)\n }\n}\n\nexport type BoardChangeMetadataStruct = {\n account_uid: AccountUID\n date: Date\n board_version: number\n}\n\nexport class BoardChangeMetadata {\n static _from_pb(pbf: any): BoardChangeMetadata {\n const o = BoardChangeMetadata._from_pb_init()\n pbf.readFields(BoardChangeMetadata._from_pb_fields, o)\n return new BoardChangeMetadata({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.account_uid = pbf.readString()\n return\n }\n case 2: {\n o.date = new Date(pbf.readVarint() / 1000)\n return\n }\n case 3: {\n o.board_version = pbf.readVarint()\n return\n }\n }\n }\n\n account_uid: AccountUID\n date: Date\n board_version: number\n\n constructor(args: {account_uid: AccountUID; date: Date; board_version: number}) {\n this.account_uid = args.account_uid\n this.date = args.date\n this.board_version = args.board_version || 0\n makeObservable(this, {account_uid: observable, date: observable, board_version: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.account_uid, \"`account_uid` required\")\n assert(is_AccountUID(this.account_uid), \"`account_uid` is not of type AccountUID\")\n assert(this.date, \"`date` required\")\n assert(this.board_version != null, \"`board_version` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.account_uid) pbf.writeStringField(1, this.account_uid, pbf)\n if (this.date) pbf.writeVarintField(2, this.date.getTime() * 1000, pbf)\n if (this.board_version) pbf.writeVarintField(3, this.board_version, pbf)\n }\n}\n\nexport type AccountStruct = {\n uid: AccountUID\n version: number\n first_change: ChangeMetadataStruct\n last_change: ChangeMetadataStruct\n given_name: string\n family_name: string\n profile_image_url: string\n locale: Locale\n removed_at: Date | undefined\n}\n\nexport class Account {\n static DEFAULT_LOCALE = <const>\"en\"\n\n static _from_pb(pbf: any): Account {\n const o = Account._from_pb_init()\n pbf.readFields(Account._from_pb_fields, o)\n return new Account({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.version = pbf.readVarint()\n return\n }\n case 3: {\n o.first_change = pbf_readMessage(ChangeMetadata, pbf)\n return\n }\n case 4: {\n o.last_change = pbf_readMessage(ChangeMetadata, pbf)\n return\n }\n case 5: {\n o.given_name = pbf.readString()\n return\n }\n case 6: {\n o.family_name = pbf.readString()\n return\n }\n case 7: {\n o.profile_image_url = pbf.readString()\n return\n }\n case 8: {\n o.locale = pbf.readString()\n return\n }\n case 9: {\n o.removed_at = new Date(pbf.readVarint() / 1000)\n return\n }\n }\n }\n\n uid: AccountUID\n version: number\n first_change: ChangeMetadata\n last_change: ChangeMetadata\n given_name: string\n family_name: string\n profile_image_url: string\n locale: Locale\n removed_at: Date | undefined\n\n constructor(args: {\n uid: AccountUID\n version: number\n first_change: ChangeMetadata\n last_change: ChangeMetadata\n given_name?: string\n family_name?: string\n profile_image_url: string\n locale: Locale\n removed_at?: Date\n }) {\n this.uid = args.uid\n this.version = args.version || 0\n this.first_change = args.first_change\n this.last_change = args.last_change\n this.given_name = args.given_name || \"\"\n this.family_name = args.family_name || \"\"\n this.profile_image_url = args.profile_image_url || \"\"\n this.locale = args.locale\n this.removed_at = args.removed_at\n makeObservable(this, {\n version: observable,\n first_change: observable,\n last_change: observable,\n given_name: observable,\n family_name: observable,\n profile_image_url: observable,\n locale: observable,\n removed_at: observable,\n })\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_AccountUID(this.uid), \"`uid` is not of type AccountUID\")\n assert(this.version != null, \"`version` required\")\n assert(this.first_change, \"`first_change` required\")\n assert(this.last_change, \"`last_change` required\")\n assert(this.profile_image_url, \"`profile_image_url` required\")\n assert(this.locale, \"`locale` required\")\n assert(is_Locale(this.locale), \"`locale` is not of type Locale\")\n limits.LIMIT_SMALL_TEXT.check(this.given_name ? this.given_name.length : 0)\n limits.LIMIT_SMALL_TEXT.check(this.family_name ? this.family_name.length : 0)\n limits.LIMIT_URL.check(this.profile_image_url ? this.profile_image_url.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.version) pbf.writeVarintField(2, this.version, pbf)\n if (this.first_change) pbf_writeMessage(3, this.first_change, pbf)\n if (this.last_change) pbf_writeMessage(4, this.last_change, pbf)\n if (this.given_name) pbf.writeStringField(5, this.given_name, pbf)\n if (this.family_name) pbf.writeStringField(6, this.family_name, pbf)\n if (this.profile_image_url) pbf.writeStringField(7, this.profile_image_url, pbf)\n if (this.locale) pbf.writeStringField(8, this.locale, pbf)\n if (this.removed_at) pbf.writeVarintField(9, this.removed_at.getTime() * 1000, pbf)\n }\n}\n\nexport type OrganizationInviteStruct = {\n uid: OrganizationInviteUID\n team_uids: Array<TeamUID>\n email: string\n created_by: AccountUID\n created_at: Date\n}\n\nexport class OrganizationInvite extends _Invite {\n static _from_pb(pbf: any): OrganizationInvite {\n const o = OrganizationInvite._from_pb_init()\n pbf.readFields(OrganizationInvite._from_pb_fields, o)\n return new OrganizationInvite({...(o as any)})\n }\n\n static _from_pb_init() {\n return {team_uids: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.team_uids.push(pbf.readString())\n return\n }\n case 3: {\n o.email = pbf.readString()\n return\n }\n case 4: {\n o.created_by = pbf.readString()\n return\n }\n case 5: {\n o.created_at = new Date(pbf.readVarint() / 1000)\n return\n }\n }\n }\n\n uid: OrganizationInviteUID\n team_uids: Array<TeamUID>\n email: string\n created_by: AccountUID\n\n constructor(args: {\n uid: OrganizationInviteUID\n team_uids: Array<TeamUID>\n email: string\n created_by: AccountUID\n created_at: Date\n }) {\n super({\n created_at: args.created_at,\n })\n this.uid = args.uid\n this.team_uids = (args.team_uids || []).slice()\n this.email = args.email || \"\"\n this.created_by = args.created_by\n makeObservable(this, {team_uids: observable, email: observable, created_by: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_OrganizationInviteUID(this.uid), \"`uid` is not of type OrganizationInviteUID\")\n assert(this.team_uids, \"`team_uids` required\")\n const i_team_uids = this.team_uids.findIndex((x) => !is_TeamUID(x))\n assert(\n i_team_uids < 0,\n () =>\n \"`this.team_uids` contains invalid item: \" +\n JSON.stringify(this.team_uids[i_team_uids]),\n )\n assert(this.email, \"`email` required\")\n assert(this.created_by, \"`created_by` required\")\n assert(is_AccountUID(this.created_by), \"`created_by` is not of type AccountUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.team_uids)\n for (let i = 0; i < this.team_uids.length; i++) {\n pbf.writeStringField(2, this.team_uids[i])\n }\n if (this.email) pbf.writeStringField(3, this.email, pbf)\n if (this.created_by) pbf.writeStringField(4, this.created_by, pbf)\n if (this.created_at) pbf.writeVarintField(5, this.created_at.getTime() * 1000, pbf)\n }\n}\n\nexport type OrganizationStruct = {\n uid: OrganizationUID\n version: number\n first_change: ChangeMetadataStruct\n last_change: ChangeMetadataStruct\n name: string\n invites: Array<OrganizationInviteStruct>\n chargebee_id: string\n team_codes_enabled: boolean\n paid_seats: number\n plan: OrganizationPlan\n removed_at: Date | undefined\n}\n\nexport class Organization extends _Organization {\n static _from_pb(pbf: any): Organization {\n const o = Organization._from_pb_init()\n pbf.readFields(Organization._from_pb_fields, o)\n return new Organization({...(o as any)})\n }\n\n static _from_pb_init() {\n return {invites: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.version = pbf.readVarint()\n return\n }\n case 3: {\n o.first_change = pbf_readMessage(ChangeMetadata, pbf)\n return\n }\n case 4: {\n o.last_change = pbf_readMessage(ChangeMetadata, pbf)\n return\n }\n case 5: {\n o.name = pbf.readString()\n return\n }\n case 6: {\n o.invites.push(pbf_readMessage(OrganizationInvite, pbf))\n return\n }\n case 7: {\n o.chargebee_id = pbf.readString()\n return\n }\n case 8: {\n o.team_codes_enabled = pbf.readBoolean()\n return\n }\n case 9: {\n o.paid_seats = pbf.readVarint()\n return\n }\n case 10: {\n o.plan = pbf.readVarint()\n return\n }\n case 11: {\n o.removed_at = new Date(pbf.readVarint() / 1000)\n return\n }\n }\n }\n\n uid: OrganizationUID\n version: number\n last_change: ChangeMetadata\n name: string\n invites: Array<OrganizationInvite>\n chargebee_id: string\n team_codes_enabled: boolean\n paid_seats: number\n removed_at: Date | undefined\n\n constructor(args: {\n uid: OrganizationUID\n version: number\n first_change: ChangeMetadata\n last_change: ChangeMetadata\n name: string\n invites?: Array<OrganizationInvite>\n chargebee_id?: string\n team_codes_enabled?: boolean\n paid_seats?: number\n plan?: OrganizationPlan\n removed_at?: Date\n }) {\n super({\n first_change: args.first_change,\n plan: args.plan,\n })\n this.uid = args.uid\n this.version = args.version || 0\n this.last_change = args.last_change\n this.name = args.name || \"\"\n this.invites = (args.invites || []).slice()\n this.chargebee_id = args.chargebee_id || \"\"\n this.team_codes_enabled = args.team_codes_enabled || false\n this.paid_seats = args.paid_seats || 0\n this.removed_at = args.removed_at\n makeObservable(this, {\n version: observable,\n last_change: observable,\n name: observable,\n invites: observable,\n chargebee_id: observable,\n team_codes_enabled: observable,\n paid_seats: observable,\n removed_at: observable,\n })\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_OrganizationUID(this.uid), \"`uid` is not of type OrganizationUID\")\n assert(this.version != null, \"`version` required\")\n assert(this.last_change, \"`last_change` required\")\n assert(this.name, \"`name` required\")\n limits.LIMIT_SMALL_TEXT.check(this.name ? this.name.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.version) pbf.writeVarintField(2, this.version, pbf)\n if (this.first_change) pbf_writeMessage(3, this.first_change, pbf)\n if (this.last_change) pbf_writeMessage(4, this.last_change, pbf)\n if (this.name) pbf.writeStringField(5, this.name, pbf)\n if (this.invites)\n for (let i = 0; i < this.invites.length; i++) {\n pbf_writeMessage(6, this.invites[i], pbf)\n }\n if (this.chargebee_id) pbf.writeStringField(7, this.chargebee_id, pbf)\n if (this.team_codes_enabled) pbf.writeBooleanField(8, this.team_codes_enabled, pbf)\n if (this.paid_seats) pbf.writeVarintField(9, this.paid_seats, pbf)\n if (this.plan) pbf.writeVarintField(10, this.plan, pbf)\n if (this.removed_at) pbf.writeVarintField(11, this.removed_at.getTime() * 1000, pbf)\n }\n}\n\nexport type OrganizationMembersStruct = {\n uid: OrganizationUID\n version: number\n admin_account_uids: Array<AccountUID>\n}\n\nexport class OrganizationMembers {\n static _from_pb(pbf: any): OrganizationMembers {\n const o = OrganizationMembers._from_pb_init()\n pbf.readFields(OrganizationMembers._from_pb_fields, o)\n return new OrganizationMembers({...(o as any)})\n }\n\n static _from_pb_init() {\n return {admin_account_uids: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 3: {\n o.version = pbf.readVarint()\n return\n }\n case 2: {\n o.admin_account_uids.push(pbf.readString())\n return\n }\n }\n }\n\n uid: OrganizationUID\n version: number\n admin_account_uids: Array<AccountUID>\n\n constructor(args: {\n uid: OrganizationUID\n version: number\n admin_account_uids: Array<AccountUID>\n }) {\n this.uid = args.uid\n this.version = args.version || 0\n this.admin_account_uids = (args.admin_account_uids || []).slice()\n makeObservable(this, {version: observable, admin_account_uids: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_OrganizationUID(this.uid), \"`uid` is not of type OrganizationUID\")\n assert(this.version != null, \"`version` required\")\n assert(this.admin_account_uids, \"`admin_account_uids` required\")\n const i_admin_account_uids = this.admin_account_uids.findIndex((x) => !is_AccountUID(x))\n assert(\n i_admin_account_uids < 0,\n () =>\n \"`this.admin_account_uids` contains invalid item: \" +\n JSON.stringify(this.admin_account_uids[i_admin_account_uids]),\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.version) pbf.writeVarintField(3, this.version, pbf)\n if (this.admin_account_uids)\n for (let i = 0; i < this.admin_account_uids.length; i++) {\n pbf.writeStringField(2, this.admin_account_uids[i])\n }\n }\n}\n\nexport type PatchOrganizationAddInviteStruct = {\n uid: OrganizationInviteUID\n email: string\n team_uids: Array<TeamUID>\n}\n\nexport class PatchOrganizationAddInvite {\n static _from_pb(pbf: any): PatchOrganizationAddInvite {\n const o = PatchOrganizationAddInvite._from_pb_init()\n pbf.readFields(PatchOrganizationAddInvite._from_pb_fields, o)\n return new PatchOrganizationAddInvite({...(o as any)})\n }\n\n static _from_pb_init() {\n return {team_uids: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.email = pbf.readString()\n return\n }\n case 3: {\n o.team_uids.push(pbf.readString())\n return\n }\n }\n }\n\n uid: OrganizationInviteUID\n email: string\n team_uids: Array<TeamUID>\n\n constructor(args: {uid: OrganizationInviteUID; email: string; team_uids: Array<TeamUID>}) {\n this.uid = args.uid\n this.email = args.email || \"\"\n this.team_uids = (args.team_uids || []).slice()\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_OrganizationInviteUID(this.uid), \"`uid` is not of type OrganizationInviteUID\")\n assert(this.email, \"`email` required\")\n assert(this.team_uids, \"`team_uids` required\")\n const i_team_uids = this.team_uids.findIndex((x) => !is_TeamUID(x))\n assert(\n i_team_uids < 0,\n () =>\n \"`this.team_uids` contains invalid item: \" +\n JSON.stringify(this.team_uids[i_team_uids]),\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.email) pbf.writeStringField(2, this.email, pbf)\n if (this.team_uids)\n for (let i = 0; i < this.team_uids.length; i++) {\n pbf.writeStringField(3, this.team_uids[i])\n }\n }\n}\n\nexport type PatchOrganizationStruct = {\n name: string\n remove: boolean\n add_invite: PatchOrganizationAddInviteStruct | undefined\n remove_invite: OrganizationInviteUID | undefined\n team_codes_enabled: TriState\n chargebee_id: string\n paid_seats: number\n plan: OrganizationPlan\n}\n\nexport class PatchOrganization {\n static _from_pb(pbf: any): PatchOrganization {\n const o = PatchOrganization._from_pb_init()\n pbf.readFields(PatchOrganization._from_pb_fields, o)\n return new PatchOrganization({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.name = pbf.readString()\n return\n }\n case 2: {\n o.remove = pbf.readBoolean()\n return\n }\n case 3: {\n o.add_invite = pbf_readMessage(PatchOrganizationAddInvite, pbf)\n return\n }\n case 4: {\n o.remove_invite = pbf.readString()\n return\n }\n case 5: {\n o.team_codes_enabled = pbf.readVarint()\n return\n }\n case 6: {\n o.chargebee_id = pbf.readString()\n return\n }\n case 7: {\n o.paid_seats = pbf.readVarint()\n return\n }\n case 8: {\n o.plan = pbf.readVarint()\n return\n }\n }\n }\n\n name: string\n remove: boolean\n add_invite: PatchOrganizationAddInvite | undefined\n remove_invite: OrganizationInviteUID | undefined\n team_codes_enabled: TriState\n chargebee_id: string\n paid_seats: number\n plan: OrganizationPlan\n\n constructor(args: {\n name?: string\n remove?: boolean\n add_invite?: PatchOrganizationAddInvite\n remove_invite?: OrganizationInviteUID\n team_codes_enabled?: TriState\n chargebee_id?: string\n paid_seats?: number\n plan?: OrganizationPlan\n }) {\n this.name = args.name || \"\"\n this.remove = args.remove || false\n this.add_invite = args.add_invite\n this.remove_invite = args.remove_invite\n this.team_codes_enabled = args.team_codes_enabled || (0 as any)\n this.chargebee_id = args.chargebee_id || \"\"\n this.paid_seats = args.paid_seats || 0\n this.plan = args.plan || (0 as any)\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(\n this.remove_invite == null || is_OrganizationInviteUID(this.remove_invite),\n \"`remove_invite` is not of type OrganizationInviteUID\",\n )\n limits.LIMIT_SMALL_TEXT.check(this.name ? this.name.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.name) pbf.writeStringField(1, this.name, pbf)\n if (this.remove) pbf.writeBooleanField(2, this.remove, pbf)\n if (this.add_invite) pbf_writeMessage(3, this.add_invite, pbf)\n if (this.remove_invite) pbf.writeStringField(4, this.remove_invite, pbf)\n if (this.team_codes_enabled) pbf.writeVarintField(5, this.team_codes_enabled, pbf)\n if (this.chargebee_id) pbf.writeStringField(6, this.chargebee_id, pbf)\n if (this.paid_seats) pbf.writeVarintField(7, this.paid_seats, pbf)\n if (this.plan) pbf.writeVarintField(8, this.plan, pbf)\n }\n}\n\nexport type TeamStruct = {\n uid: TeamUID\n version: number\n first_change: ChangeMetadataStruct\n last_change: ChangeMetadataStruct\n organization_uid: OrganizationUID\n name: string\n accessible_teams: Array<TeamUID>\n allow_board_share_with_public: boolean\n allow_board_indexed_by_search_engines: boolean\n}\n\nexport class Team {\n static _from_pb(pbf: any): Team {\n const o = Team._from_pb_init()\n pbf.readFields(Team._from_pb_fields, o)\n return new Team({...(o as any)})\n }\n\n static _from_pb_init() {\n return {accessible_teams: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 4: {\n o.version = pbf.readVarint()\n return\n }\n case 5: {\n o.first_change = pbf_readMessage(ChangeMetadata, pbf)\n return\n }\n case 6: {\n o.last_change = pbf_readMessage(ChangeMetadata, pbf)\n return\n }\n case 7: {\n o.organization_uid = pbf.readString()\n return\n }\n case 2: {\n o.name = pbf.readString()\n return\n }\n case 3: {\n o.accessible_teams.push(pbf.readString())\n return\n }\n case 8: {\n o.allow_board_share_with_public = pbf.readBoolean()\n return\n }\n case 9: {\n o.allow_board_indexed_by_search_engines = pbf.readBoolean()\n return\n }\n }\n }\n\n uid: TeamUID\n version: number\n first_change: ChangeMetadata\n last_change: ChangeMetadata\n organization_uid: OrganizationUID\n name: string\n accessible_teams: Array<TeamUID>\n allow_board_share_with_public: boolean\n allow_board_indexed_by_search_engines: boolean\n\n constructor(args: {\n uid: TeamUID\n version: number\n first_change: ChangeMetadata\n last_change: ChangeMetadata\n organization_uid: OrganizationUID\n name: string\n accessible_teams?: Array<TeamUID>\n allow_board_share_with_public?: boolean\n allow_board_indexed_by_search_engines?: boolean\n }) {\n this.uid = args.uid\n this.version = args.version || 0\n this.first_change = args.first_change\n this.last_change = args.last_change\n this.organization_uid = args.organization_uid\n this.name = args.name || \"\"\n this.accessible_teams = (args.accessible_teams || []).slice()\n this.allow_board_share_with_public = args.allow_board_share_with_public || false\n this.allow_board_indexed_by_search_engines =\n args.allow_board_indexed_by_search_engines || false\n makeObservable(this, {\n version: observable,\n first_change: observable,\n last_change: observable,\n organization_uid: observable,\n name: observable,\n accessible_teams: observable,\n allow_board_share_with_public: observable,\n allow_board_indexed_by_search_engines: observable,\n })\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_TeamUID(this.uid), \"`uid` is not of type TeamUID\")\n assert(this.version != null, \"`version` required\")\n assert(this.first_change, \"`first_change` required\")\n assert(this.last_change, \"`last_change` required\")\n assert(this.organization_uid, \"`organization_uid` required\")\n assert(\n is_OrganizationUID(this.organization_uid),\n \"`organization_uid` is not of type OrganizationUID\",\n )\n assert(this.name, \"`name` required\")\n const i_accessible_teams = this.accessible_teams.findIndex((x) => !is_TeamUID(x))\n assert(\n i_accessible_teams < 0,\n () =>\n \"`this.accessible_teams` contains invalid item: \" +\n JSON.stringify(this.accessible_teams[i_accessible_teams]),\n )\n limits.LIMIT_SMALL_TEXT.check(this.name ? this.name.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.version) pbf.writeVarintField(4, this.version, pbf)\n if (this.first_change) pbf_writeMessage(5, this.first_change, pbf)\n if (this.last_change) pbf_writeMessage(6, this.last_change, pbf)\n if (this.organization_uid) pbf.writeStringField(7, this.organization_uid, pbf)\n if (this.name) pbf.writeStringField(2, this.name, pbf)\n if (this.accessible_teams)\n for (let i = 0; i < this.accessible_teams.length; i++) {\n pbf.writeStringField(3, this.accessible_teams[i])\n }\n if (this.allow_board_share_with_public)\n pbf.writeBooleanField(8, this.allow_board_share_with_public, pbf)\n if (this.allow_board_indexed_by_search_engines)\n pbf.writeBooleanField(9, this.allow_board_indexed_by_search_engines, pbf)\n }\n}\n\nexport type PatchTeamStruct = {\n name: string\n accessible_teams: Array<TeamUID>\n clear_accessible_teams: boolean\n remove: boolean\n organization_uid: OrganizationUID | undefined\n allow_board_share_with_public: TriState\n allow_board_indexed_by_search_engines: TriState\n}\n\nexport class PatchTeam {\n static _from_pb(pbf: any): PatchTeam {\n const o = PatchTeam._from_pb_init()\n pbf.readFields(PatchTeam._from_pb_fields, o)\n return new PatchTeam({...(o as any)})\n }\n\n static _from_pb_init() {\n return {accessible_teams: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.name = pbf.readString()\n return\n }\n case 2: {\n o.accessible_teams.push(pbf.readString())\n return\n }\n case 3: {\n o.clear_accessible_teams = pbf.readBoolean()\n return\n }\n case 4: {\n o.remove = pbf.readBoolean()\n return\n }\n case 5: {\n o.organization_uid = pbf.readString()\n return\n }\n case 6: {\n o.allow_board_share_with_public = pbf.readVarint()\n return\n }\n case 7: {\n o.allow_board_indexed_by_search_engines = pbf.readVarint()\n return\n }\n }\n }\n\n name: string\n accessible_teams: Array<TeamUID>\n clear_accessible_teams: boolean\n remove: boolean\n organization_uid: OrganizationUID | undefined\n allow_board_share_with_public: TriState\n allow_board_indexed_by_search_engines: TriState\n\n constructor(args: {\n name?: string\n accessible_teams?: Array<TeamUID>\n clear_accessible_teams?: boolean\n remove?: boolean\n organization_uid?: OrganizationUID\n allow_board_share_with_public?: TriState\n allow_board_indexed_by_search_engines?: TriState\n }) {\n this.name = args.name || \"\"\n this.accessible_teams = (args.accessible_teams || []).slice()\n this.clear_accessible_teams = args.clear_accessible_teams || false\n this.remove = args.remove || false\n this.organization_uid = args.organization_uid\n this.allow_board_share_with_public = args.allow_board_share_with_public || (0 as any)\n this.allow_board_indexed_by_search_engines =\n args.allow_board_indexed_by_search_engines || (0 as any)\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n const i_accessible_teams = this.accessible_teams.findIndex((x) => !is_TeamUID(x))\n assert(\n i_accessible_teams < 0,\n () =>\n \"`this.accessible_teams` contains invalid item: \" +\n JSON.stringify(this.accessible_teams[i_accessible_teams]),\n )\n assert(\n this.organization_uid == null || is_OrganizationUID(this.organization_uid),\n \"`organization_uid` is not of type OrganizationUID\",\n )\n limits.LIMIT_SMALL_TEXT.check(this.name ? this.name.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.name) pbf.writeStringField(1, this.name, pbf)\n if (this.accessible_teams)\n for (let i = 0; i < this.accessible_teams.length; i++) {\n pbf.writeStringField(2, this.accessible_teams[i])\n }\n if (this.clear_accessible_teams) pbf.writeBooleanField(3, this.clear_accessible_teams, pbf)\n if (this.remove) pbf.writeBooleanField(4, this.remove, pbf)\n if (this.organization_uid) pbf.writeStringField(5, this.organization_uid, pbf)\n if (this.allow_board_share_with_public)\n pbf.writeVarintField(6, this.allow_board_share_with_public, pbf)\n if (this.allow_board_indexed_by_search_engines)\n pbf.writeVarintField(7, this.allow_board_indexed_by_search_engines, pbf)\n }\n}\n\nexport type TeamMembersStruct = {\n uid: TeamUID\n version: number\n account_uids: Array<AccountUID>\n}\n\nexport class TeamMembers {\n static _from_pb(pbf: any): TeamMembers {\n const o = TeamMembers._from_pb_init()\n pbf.readFields(TeamMembers._from_pb_fields, o)\n return new TeamMembers({...(o as any)})\n }\n\n static _from_pb_init() {\n return {account_uids: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 3: {\n o.version = pbf.readVarint()\n return\n }\n case 2: {\n o.account_uids.push(pbf.readString())\n return\n }\n }\n }\n\n uid: TeamUID\n version: number\n account_uids: Array<AccountUID>\n\n constructor(args: {uid: TeamUID; version: number; account_uids: Array<AccountUID>}) {\n this.uid = args.uid\n this.version = args.version || 0\n this.account_uids = (args.account_uids || []).slice()\n makeObservable(this, {version: observable, account_uids: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_TeamUID(this.uid), \"`uid` is not of type TeamUID\")\n assert(this.version != null, \"`version` required\")\n assert(this.account_uids, \"`account_uids` required\")\n const i_account_uids = this.account_uids.findIndex((x) => !is_AccountUID(x))\n assert(\n i_account_uids < 0,\n () =>\n \"`this.account_uids` contains invalid item: \" +\n JSON.stringify(this.account_uids[i_account_uids]),\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.version) pbf.writeVarintField(3, this.version, pbf)\n if (this.account_uids)\n for (let i = 0; i < this.account_uids.length; i++) {\n pbf.writeStringField(2, this.account_uids[i])\n }\n }\n}\n\nexport type TeamCodeStruct = {\n uid: TeamCodeUID\n team_uids: Array<TeamUID>\n organization_uid: OrganizationUID\n version: number\n first_change: ChangeMetadataStruct\n last_change: ChangeMetadataStruct\n}\n\nexport class TeamCode {\n static _from_pb(pbf: any): TeamCode {\n const o = TeamCode._from_pb_init()\n pbf.readFields(TeamCode._from_pb_fields, o)\n return new TeamCode({...(o as any)})\n }\n\n static _from_pb_init() {\n return {team_uids: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.team_uids.push(pbf.readString())\n return\n }\n case 3: {\n o.organization_uid = pbf.readString()\n return\n }\n case 4: {\n o.version = pbf.readVarint()\n return\n }\n case 5: {\n o.first_change = pbf_readMessage(ChangeMetadata, pbf)\n return\n }\n case 6: {\n o.last_change = pbf_readMessage(ChangeMetadata, pbf)\n return\n }\n }\n }\n\n uid: TeamCodeUID\n team_uids: Array<TeamUID>\n organization_uid: OrganizationUID\n version: number\n first_change: ChangeMetadata\n last_change: ChangeMetadata\n\n constructor(args: {\n uid: TeamCodeUID\n team_uids: Array<TeamUID>\n organization_uid: OrganizationUID\n version: number\n first_change: ChangeMetadata\n last_change: ChangeMetadata\n }) {\n this.uid = args.uid\n this.team_uids = (args.team_uids || []).slice()\n this.organization_uid = args.organization_uid\n this.version = args.version || 0\n this.first_change = args.first_change\n this.last_change = args.last_change\n makeObservable(this, {\n team_uids: observable,\n organization_uid: observable,\n version: observable,\n first_change: observable,\n last_change: observable,\n })\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_TeamCodeUID(this.uid), \"`uid` is not of type TeamCodeUID\")\n assert(this.team_uids, \"`team_uids` required\")\n const i_team_uids = this.team_uids.findIndex((x) => !is_TeamUID(x))\n assert(\n i_team_uids < 0,\n () =>\n \"`this.team_uids` contains invalid item: \" +\n JSON.stringify(this.team_uids[i_team_uids]),\n )\n assert(this.organization_uid, \"`organization_uid` required\")\n assert(\n is_OrganizationUID(this.organization_uid),\n \"`organization_uid` is not of type OrganizationUID\",\n )\n assert(this.version != null, \"`version` required\")\n assert(this.first_change, \"`first_change` required\")\n assert(this.last_change, \"`last_change` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.team_uids)\n for (let i = 0; i < this.team_uids.length; i++) {\n pbf.writeStringField(2, this.team_uids[i])\n }\n if (this.organization_uid) pbf.writeStringField(3, this.organization_uid, pbf)\n if (this.version) pbf.writeVarintField(4, this.version, pbf)\n if (this.first_change) pbf_writeMessage(5, this.first_change, pbf)\n if (this.last_change) pbf_writeMessage(6, this.last_change, pbf)\n }\n}\n\nexport type PatchTeamCodeStruct = {\n team_uids: Array<TeamUID>\n organization_uid: OrganizationUID | undefined\n remove: boolean\n}\n\nexport class PatchTeamCode {\n static _from_pb(pbf: any): PatchTeamCode {\n const o = PatchTeamCode._from_pb_init()\n pbf.readFields(PatchTeamCode._from_pb_fields, o)\n return new PatchTeamCode({...(o as any)})\n }\n\n static _from_pb_init() {\n return {team_uids: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.team_uids.push(pbf.readString())\n return\n }\n case 2: {\n o.organization_uid = pbf.readString()\n return\n }\n case 3: {\n o.remove = pbf.readBoolean()\n return\n }\n }\n }\n\n team_uids: Array<TeamUID>\n organization_uid: OrganizationUID | undefined\n remove: boolean\n\n constructor(args: {\n team_uids?: Array<TeamUID>\n organization_uid?: OrganizationUID\n remove?: boolean\n }) {\n this.team_uids = (args.team_uids || []).slice()\n this.organization_uid = args.organization_uid\n this.remove = args.remove || false\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n const i_team_uids = this.team_uids.findIndex((x) => !is_TeamUID(x))\n assert(\n i_team_uids < 0,\n () =>\n \"`this.team_uids` contains invalid item: \" +\n JSON.stringify(this.team_uids[i_team_uids]),\n )\n assert(\n this.organization_uid == null || is_OrganizationUID(this.organization_uid),\n \"`organization_uid` is not of type OrganizationUID\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.team_uids)\n for (let i = 0; i < this.team_uids.length; i++) {\n pbf.writeStringField(1, this.team_uids[i])\n }\n if (this.organization_uid) pbf.writeStringField(2, this.organization_uid, pbf)\n if (this.remove) pbf.writeBooleanField(3, this.remove, pbf)\n }\n}\n\nexport type FullTeamStruct = {\n team: TeamStruct | undefined\n team_members: TeamMembersStruct | undefined\n}\n\nexport class FullTeam {\n static _from_pb(pbf: any): FullTeam {\n const o = FullTeam._from_pb_init()\n pbf.readFields(FullTeam._from_pb_fields, o)\n return new FullTeam({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.team = pbf_readMessage(Team, pbf)\n return\n }\n case 2: {\n o.team_members = pbf_readMessage(TeamMembers, pbf)\n return\n }\n }\n }\n\n team: Team | undefined\n team_members: TeamMembers | undefined\n\n constructor(args: {team?: Team; team_members?: TeamMembers}) {\n this.team = args.team\n this.team_members = args.team_members\n makeObservable(this, {team: observable, team_members: observable})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.team) pbf_writeMessage(1, this.team, pbf)\n if (this.team_members) pbf_writeMessage(2, this.team_members, pbf)\n }\n}\n\nexport type AccountAuthStruct = {\n uid: AccountUID\n version: number\n first_change: ChangeMetadataStruct\n last_change: ChangeMetadataStruct\n account_state: AccountState\n auth_providers: Array<AuthProvider>\n}\n\nexport class AccountAuth {\n static _from_pb(pbf: any): AccountAuth {\n const o = AccountAuth._from_pb_init()\n pbf.readFields(AccountAuth._from_pb_fields, o)\n return new AccountAuth({...(o as any)})\n }\n\n static _from_pb_init() {\n return {auth_providers: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.version = pbf.readVarint()\n return\n }\n case 3: {\n o.first_change = pbf_readMessage(ChangeMetadata, pbf)\n return\n }\n case 4: {\n o.last_change = pbf_readMessage(ChangeMetadata, pbf)\n return\n }\n case 6: {\n o.account_state = pbf.readVarint()\n return\n }\n case 7: {\n o.auth_providers = pbf.readPackedVarint()\n return\n }\n }\n }\n\n uid: AccountUID\n version: number\n first_change: ChangeMetadata\n last_change: ChangeMetadata\n account_state: AccountState\n auth_providers: Array<AuthProvider>\n\n constructor(args: {\n uid: AccountUID\n version: number\n first_change: ChangeMetadata\n last_change: ChangeMetadata\n account_state: AccountState\n auth_providers?: Array<AuthProvider>\n }) {\n this.uid = args.uid\n this.version = args.version || 0\n this.first_change = args.first_change\n this.last_change = args.last_change\n this.account_state = args.account_state || (0 as any)\n this.auth_providers = (args.auth_providers || []).slice()\n makeObservable(this, {\n version: observable,\n first_change: observable,\n last_change: observable,\n account_state: observable,\n auth_providers: observable,\n })\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_AccountUID(this.uid), \"`uid` is not of type AccountUID\")\n assert(this.version != null, \"`version` required\")\n assert(this.first_change, \"`first_change` required\")\n assert(this.last_change, \"`last_change` required\")\n assert(this.account_state, \"`account_state` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.version) pbf.writeVarintField(2, this.version, pbf)\n if (this.first_change) pbf_writeMessage(3, this.first_change, pbf)\n if (this.last_change) pbf_writeMessage(4, this.last_change, pbf)\n if (this.account_state) pbf.writeVarintField(6, this.account_state, pbf)\n pbf.writePackedVarint(7, this.auth_providers)\n }\n}\n\nexport type SourceCampaignStruct = {\n type: SourceCampaignType\n id: string\n name: string\n content: string\n term: string\n medium: string\n source: string\n ad_group: string\n match_type: string\n device: string\n invite_by: AccountUID | undefined\n invite_uid: InviteUID | undefined\n invite_team_code_uid: TeamCodeUID | undefined\n}\n\nexport class SourceCampaign {\n static _from_pb(pbf: any): SourceCampaign {\n const o = SourceCampaign._from_pb_init()\n pbf.readFields(SourceCampaign._from_pb_fields, o)\n return new SourceCampaign({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.type = pbf.readVarint()\n return\n }\n case 2: {\n o.id = pbf.readString()\n return\n }\n case 3: {\n o.name = pbf.readString()\n return\n }\n case 4: {\n o.content = pbf.readString()\n return\n }\n case 5: {\n o.term = pbf.readString()\n return\n }\n case 7: {\n o.medium = pbf.readString()\n return\n }\n case 8: {\n o.source = pbf.readString()\n return\n }\n case 9: {\n o.ad_group = pbf.readString()\n return\n }\n case 10: {\n o.match_type = pbf.readString()\n return\n }\n case 11: {\n o.device = pbf.readString()\n return\n }\n case 12: {\n o.invite_by = pbf.readString()\n return\n }\n case 13: {\n o.invite_uid = pbf.readString()\n return\n }\n case 14: {\n o.invite_team_code_uid = pbf.readString()\n return\n }\n }\n }\n\n type: SourceCampaignType\n id: string\n name: string\n content: string\n term: string\n medium: string\n source: string\n ad_group: string\n match_type: string\n device: string\n invite_by: AccountUID | undefined\n invite_uid: InviteUID | undefined\n invite_team_code_uid: TeamCodeUID | undefined\n\n constructor(args: {\n type: SourceCampaignType\n id?: string\n name?: string\n content?: string\n term?: string\n medium?: string\n source?: string\n ad_group?: string\n match_type?: string\n device?: string\n invite_by?: AccountUID\n invite_uid?: InviteUID\n invite_team_code_uid?: TeamCodeUID\n }) {\n this.type = args.type || (0 as any)\n this.id = args.id || \"\"\n this.name = args.name || \"\"\n this.content = args.content || \"\"\n this.term = args.term || \"\"\n this.medium = args.medium || \"\"\n this.source = args.source || \"\"\n this.ad_group = args.ad_group || \"\"\n this.match_type = args.match_type || \"\"\n this.device = args.device || \"\"\n this.invite_by = args.invite_by\n this.invite_uid = args.invite_uid\n this.invite_team_code_uid = args.invite_team_code_uid\n makeObservable(this, {\n type: observable,\n id: observable,\n name: observable,\n content: observable,\n term: observable,\n medium: observable,\n source: observable,\n ad_group: observable,\n match_type: observable,\n device: observable,\n invite_by: observable,\n invite_uid: observable,\n invite_team_code_uid: observable,\n })\n this.verify()\n }\n\n public verify() {\n assert(this.type, \"`type` required\")\n assert(\n this.invite_by == null || is_AccountUID(this.invite_by),\n \"`invite_by` is not of type AccountUID\",\n )\n assert(\n this.invite_uid == null || is_InviteUID(this.invite_uid),\n \"`invite_uid` is not of type InviteUID\",\n )\n assert(\n this.invite_team_code_uid == null || is_TeamCodeUID(this.invite_team_code_uid),\n \"`invite_team_code_uid` is not of type TeamCodeUID\",\n )\n limits.LIMIT_SMALL_TEXT.check(this.name ? this.name.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.type) pbf.writeVarintField(1, this.type, pbf)\n if (this.id) pbf.writeStringField(2, this.id, pbf)\n if (this.name) pbf.writeStringField(3, this.name, pbf)\n if (this.content) pbf.writeStringField(4, this.content, pbf)\n if (this.term) pbf.writeStringField(5, this.term, pbf)\n if (this.medium) pbf.writeStringField(7, this.medium, pbf)\n if (this.source) pbf.writeStringField(8, this.source, pbf)\n if (this.ad_group) pbf.writeStringField(9, this.ad_group, pbf)\n if (this.match_type) pbf.writeStringField(10, this.match_type, pbf)\n if (this.device) pbf.writeStringField(11, this.device, pbf)\n if (this.invite_by) pbf.writeStringField(12, this.invite_by, pbf)\n if (this.invite_uid) pbf.writeStringField(13, this.invite_uid, pbf)\n if (this.invite_team_code_uid) pbf.writeStringField(14, this.invite_team_code_uid, pbf)\n }\n}\n\nexport type AccountAttributesStruct = {\n uid: AccountUID\n version: number\n first_change: ChangeMetadataStruct\n last_change: ChangeMetadataStruct\n email: string\n phone: string\n tracking_id: string\n crm_id: string\n chargebee_id: string\n source_campaign: SourceCampaignStruct\n bubbles_seen: number\n plan: Plan\n feature_switches: Array<FeatureSwitch>\n team_uids: Array<TeamUID>\n admin_organization_uids: Array<OrganizationUID>\n create_organization_uid: OrganizationUID | undefined\n accepted_terms_version: string\n}\n\nexport class AccountAttributes extends _AccountAttributes {\n static _from_pb(pbf: any): AccountAttributes {\n const o = AccountAttributes._from_pb_init()\n pbf.readFields(AccountAttributes._from_pb_fields, o)\n return new AccountAttributes({...(o as any)})\n }\n\n static _from_pb_init() {\n return {\n plan: Plan.free,\n feature_switches: [],\n team_uids: [],\n admin_organization_uids: [],\n } as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.version = pbf.readVarint()\n return\n }\n case 3: {\n o.first_change = pbf_readMessage(ChangeMetadata, pbf)\n return\n }\n case 4: {\n o.last_change = pbf_readMessage(ChangeMetadata, pbf)\n return\n }\n case 5: {\n o.email = pbf.readString()\n return\n }\n case 19: {\n o.phone = pbf.readString()\n return\n }\n case 6: {\n o.tracking_id = pbf.readString()\n return\n }\n case 7: {\n o.crm_id = pbf.readString()\n return\n }\n case 13: {\n o.chargebee_id = pbf.readString()\n return\n }\n case 8: {\n o.source_campaign = pbf_readMessage(SourceCampaign, pbf)\n return\n }\n case 10: {\n o.bubbles_seen = pbf.readVarint()\n return\n }\n case 14: {\n o.plan = pbf.readVarint()\n return\n }\n case 12: {\n o.feature_switches = pbf.readPackedVarint()\n return\n }\n case 16: {\n o.team_uids.push(pbf.readString())\n return\n }\n case 17: {\n o.admin_organization_uids.push(pbf.readString())\n return\n }\n case 18: {\n o.create_organization_uid = pbf.readString()\n return\n }\n case 20: {\n o.accepted_terms_version = pbf.readString()\n return\n }\n }\n }\n\n uid: AccountUID\n version: number\n first_change: ChangeMetadata\n last_change: ChangeMetadata\n email: string\n phone: string\n tracking_id: string\n crm_id: string\n chargebee_id: string\n source_campaign: SourceCampaign\n bubbles_seen: number\n plan: Plan\n feature_switches: Array<FeatureSwitch>\n team_uids: Array<TeamUID>\n admin_organization_uids: Array<OrganizationUID>\n create_organization_uid: OrganizationUID | undefined\n accepted_terms_version: string\n\n constructor(args: {\n uid: AccountUID\n version: number\n first_change: ChangeMetadata\n last_change: ChangeMetadata\n email: string\n phone?: string\n tracking_id?: string\n crm_id?: string\n chargebee_id?: string\n source_campaign: SourceCampaign\n bubbles_seen?: number\n plan: Plan\n feature_switches?: Array<FeatureSwitch>\n team_uids?: Array<TeamUID>\n admin_organization_uids?: Array<OrganizationUID>\n create_organization_uid?: OrganizationUID\n accepted_terms_version?: string\n }) {\n super()\n this.uid = args.uid\n this.version = args.version || 0\n this.first_change = args.first_change\n this.last_change = args.last_change\n this.email = args.email || \"\"\n this.phone = args.phone || \"\"\n this.tracking_id = args.tracking_id || \"\"\n this.crm_id = args.crm_id || \"\"\n this.chargebee_id = args.chargebee_id || \"\"\n this.source_campaign = args.source_campaign\n this.bubbles_seen = args.bubbles_seen || 0\n this.plan = args.plan || (0 as any)\n this.feature_switches = (args.feature_switches || []).slice()\n this.team_uids = (args.team_uids || []).slice()\n this.admin_organization_uids = (args.admin_organization_uids || []).slice()\n this.create_organization_uid = args.create_organization_uid\n this.accepted_terms_version = args.accepted_terms_version || \"\"\n makeObservable(this, {\n version: observable,\n first_change: observable,\n last_change: observable,\n email: observable,\n phone: observable,\n tracking_id: observable,\n crm_id: observable,\n chargebee_id: observable,\n source_campaign: observable,\n bubbles_seen: observable,\n plan: observable,\n feature_switches: observable,\n team_uids: observable,\n admin_organization_uids: observable,\n create_organization_uid: observable,\n accepted_terms_version: observable,\n })\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_AccountUID(this.uid), \"`uid` is not of type AccountUID\")\n assert(this.version != null, \"`version` required\")\n assert(this.first_change, \"`first_change` required\")\n assert(this.last_change, \"`last_change` required\")\n assert(this.email, \"`email` required\")\n assert(this.source_campaign, \"`source_campaign` required\")\n assert(this.plan, \"`plan` required\")\n const i_team_uids = this.team_uids.findIndex((x) => !is_TeamUID(x))\n assert(\n i_team_uids < 0,\n () =>\n \"`this.team_uids` contains invalid item: \" +\n JSON.stringify(this.team_uids[i_team_uids]),\n )\n const i_admin_organization_uids = this.admin_organization_uids.findIndex(\n (x) => !is_OrganizationUID(x),\n )\n assert(\n i_admin_organization_uids < 0,\n () =>\n \"`this.admin_organization_uids` contains invalid item: \" +\n JSON.stringify(this.admin_organization_uids[i_admin_organization_uids]),\n )\n assert(\n this.create_organization_uid == null ||\n is_OrganizationUID(this.create_organization_uid),\n \"`create_organization_uid` is not of type OrganizationUID\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.version) pbf.writeVarintField(2, this.version, pbf)\n if (this.first_change) pbf_writeMessage(3, this.first_change, pbf)\n if (this.last_change) pbf_writeMessage(4, this.last_change, pbf)\n if (this.email) pbf.writeStringField(5, this.email, pbf)\n if (this.phone) pbf.writeStringField(19, this.phone, pbf)\n if (this.tracking_id) pbf.writeStringField(6, this.tracking_id, pbf)\n if (this.crm_id) pbf.writeStringField(7, this.crm_id, pbf)\n if (this.chargebee_id) pbf.writeStringField(13, this.chargebee_id, pbf)\n if (this.source_campaign) pbf_writeMessage(8, this.source_campaign, pbf)\n if (this.bubbles_seen) pbf.writeVarintField(10, this.bubbles_seen, pbf)\n if (this.plan) pbf.writeVarintField(14, this.plan, pbf)\n pbf.writePackedVarint(12, this.feature_switches)\n if (this.team_uids)\n for (let i = 0; i < this.team_uids.length; i++) {\n pbf.writeStringField(16, this.team_uids[i])\n }\n if (this.admin_organization_uids)\n for (let i = 0; i < this.admin_organization_uids.length; i++) {\n pbf.writeStringField(17, this.admin_organization_uids[i])\n }\n if (this.create_organization_uid)\n pbf.writeStringField(18, this.create_organization_uid, pbf)\n if (this.accepted_terms_version) pbf.writeStringField(20, this.accepted_terms_version, pbf)\n }\n}\n\nexport type AccountBoardSettingsStruct = {\n board_uid: BoardUID\n mute_email_notifications: boolean\n archived: boolean\n mute_push_notifications: boolean\n}\n\nexport class AccountBoardSettings {\n static _from_pb(pbf: any): AccountBoardSettings {\n const o = AccountBoardSettings._from_pb_init()\n pbf.readFields(AccountBoardSettings._from_pb_fields, o)\n return new AccountBoardSettings({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_uid = pbf.readString()\n return\n }\n case 2: {\n o.mute_email_notifications = pbf.readBoolean()\n return\n }\n case 3: {\n o.archived = pbf.readBoolean()\n return\n }\n case 4: {\n o.mute_push_notifications = pbf.readBoolean()\n return\n }\n }\n }\n\n board_uid: BoardUID\n mute_email_notifications: boolean\n archived: boolean\n mute_push_notifications: boolean\n\n constructor(args: {\n board_uid: BoardUID\n mute_email_notifications?: boolean\n archived?: boolean\n mute_push_notifications?: boolean\n }) {\n this.board_uid = args.board_uid\n this.mute_email_notifications = args.mute_email_notifications || false\n this.archived = args.archived || false\n this.mute_push_notifications = args.mute_push_notifications || false\n makeObservable(this, {\n board_uid: observable,\n mute_email_notifications: observable,\n archived: observable,\n mute_push_notifications: observable,\n })\n this.verify()\n }\n\n public verify() {\n assert(this.board_uid, \"`board_uid` required\")\n assert(is_BoardUID(this.board_uid), \"`board_uid` is not of type BoardUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_uid) pbf.writeStringField(1, this.board_uid, pbf)\n if (this.mute_email_notifications)\n pbf.writeBooleanField(2, this.mute_email_notifications, pbf)\n if (this.archived) pbf.writeBooleanField(3, this.archived, pbf)\n if (this.mute_push_notifications)\n pbf.writeBooleanField(4, this.mute_push_notifications, pbf)\n }\n}\n\nexport type AccountSettingsStruct = {\n uid: AccountUID\n version: number\n first_change: ChangeMetadataStruct\n last_change: ChangeMetadataStruct\n board_settings: Array<AccountBoardSettingsStruct>\n default_disable_board_changed_emails: boolean\n auto_close_board_chooser: boolean\n sort_boards_alphabetically: boolean\n board_changed_push_subscriptions: Array<PushSubscriptionStruct>\n}\n\nexport class AccountSettings extends _AccountSettings {\n static _from_pb(pbf: any): AccountSettings {\n const o = AccountSettings._from_pb_init()\n pbf.readFields(AccountSettings._from_pb_fields, o)\n return new AccountSettings({...(o as any)})\n }\n\n static _from_pb_init() {\n return {board_settings: [], board_changed_push_subscriptions: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.version = pbf.readVarint()\n return\n }\n case 3: {\n o.first_change = pbf_readMessage(ChangeMetadata, pbf)\n return\n }\n case 4: {\n o.last_change = pbf_readMessage(ChangeMetadata, pbf)\n return\n }\n case 5: {\n o.board_settings.push(pbf_readMessage(AccountBoardSettings, pbf))\n return\n }\n case 6: {\n o.default_disable_board_changed_emails = pbf.readBoolean()\n return\n }\n case 7: {\n o.auto_close_board_chooser = pbf.readBoolean()\n return\n }\n case 8: {\n o.sort_boards_alphabetically = pbf.readBoolean()\n return\n }\n case 9: {\n o.board_changed_push_subscriptions.push(pbf_readMessage(PushSubscription, pbf))\n return\n }\n }\n }\n\n uid: AccountUID\n version: number\n first_change: ChangeMetadata\n last_change: ChangeMetadata\n board_settings: Array<AccountBoardSettings>\n default_disable_board_changed_emails: boolean\n auto_close_board_chooser: boolean\n sort_boards_alphabetically: boolean\n board_changed_push_subscriptions: Array<PushSubscription>\n\n constructor(args: {\n uid: AccountUID\n version: number\n first_change: ChangeMetadata\n last_change: ChangeMetadata\n board_settings?: Array<AccountBoardSettings>\n default_disable_board_changed_emails?: boolean\n auto_close_board_chooser?: boolean\n sort_boards_alphabetically?: boolean\n board_changed_push_subscriptions?: Array<PushSubscription>\n }) {\n super()\n this.uid = args.uid\n this.version = args.version || 0\n this.first_change = args.first_change\n this.last_change = args.last_change\n this.board_settings = (args.board_settings || []).slice()\n this.default_disable_board_changed_emails =\n args.default_disable_board_changed_emails || false\n this.auto_close_board_chooser = args.auto_close_board_chooser || false\n this.sort_boards_alphabetically = args.sort_boards_alphabetically || false\n this.board_changed_push_subscriptions = (\n args.board_changed_push_subscriptions || []\n ).slice()\n makeObservable(this, {\n version: observable,\n first_change: observable,\n last_change: observable,\n board_settings: observable,\n default_disable_board_changed_emails: observable,\n auto_close_board_chooser: observable,\n sort_boards_alphabetically: observable,\n board_changed_push_subscriptions: observable,\n })\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_AccountUID(this.uid), \"`uid` is not of type AccountUID\")\n assert(this.version != null, \"`version` required\")\n assert(this.first_change, \"`first_change` required\")\n assert(this.last_change, \"`last_change` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.version) pbf.writeVarintField(2, this.version, pbf)\n if (this.first_change) pbf_writeMessage(3, this.first_change, pbf)\n if (this.last_change) pbf_writeMessage(4, this.last_change, pbf)\n if (this.board_settings)\n for (let i = 0; i < this.board_settings.length; i++) {\n pbf_writeMessage(5, this.board_settings[i], pbf)\n }\n if (this.default_disable_board_changed_emails)\n pbf.writeBooleanField(6, this.default_disable_board_changed_emails, pbf)\n if (this.auto_close_board_chooser)\n pbf.writeBooleanField(7, this.auto_close_board_chooser, pbf)\n if (this.sort_boards_alphabetically)\n pbf.writeBooleanField(8, this.sort_boards_alphabetically, pbf)\n if (this.board_changed_push_subscriptions)\n for (let i = 0; i < this.board_changed_push_subscriptions.length; i++) {\n pbf_writeMessage(9, this.board_changed_push_subscriptions[i], pbf)\n }\n }\n}\n\nexport type BoardQuotaStruct = {\n num_boards: number\n num_cards: number\n sum_blob_size: number\n max_blob_size: number\n}\n\nexport class BoardQuota {\n static _from_pb(pbf: any): BoardQuota {\n const o = BoardQuota._from_pb_init()\n pbf.readFields(BoardQuota._from_pb_fields, o)\n return new BoardQuota({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.num_boards = pbf.readVarint()\n return\n }\n case 4: {\n o.num_cards = pbf.readVarint()\n return\n }\n case 7: {\n o.sum_blob_size = pbf.readVarint()\n return\n }\n case 8: {\n o.max_blob_size = pbf.readVarint()\n return\n }\n }\n }\n\n num_boards: number\n num_cards: number\n sum_blob_size: number\n max_blob_size: number\n\n constructor(args: {\n num_boards?: number\n num_cards?: number\n sum_blob_size?: number\n max_blob_size?: number\n }) {\n this.num_boards = args.num_boards || 0\n this.num_cards = args.num_cards || 0\n this.sum_blob_size = args.sum_blob_size || 0\n this.max_blob_size = args.max_blob_size || 0\n makeObservable(this, {\n num_boards: observable,\n num_cards: observable,\n sum_blob_size: observable,\n max_blob_size: observable,\n })\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.num_boards) pbf.writeVarintField(1, this.num_boards, pbf)\n if (this.num_cards) pbf.writeVarintField(4, this.num_cards, pbf)\n if (this.sum_blob_size) pbf.writeVarintField(7, this.sum_blob_size, pbf)\n if (this.max_blob_size) pbf.writeVarintField(8, this.max_blob_size, pbf)\n }\n}\n\nexport type SeenStruct = {\n date: Date\n client: Client\n}\n\nexport class Seen {\n static _from_pb(pbf: any): Seen {\n const o = Seen._from_pb_init()\n pbf.readFields(Seen._from_pb_fields, o)\n return new Seen({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.date = new Date(pbf.readVarint() / 1000)\n return\n }\n case 2: {\n o.client = pbf.readVarint()\n return\n }\n }\n }\n\n date: Date\n client: Client\n\n constructor(args: {date: Date; client: Client}) {\n this.date = args.date\n this.client = args.client || (0 as any)\n makeObservable(this, {date: observable, client: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.date, \"`date` required\")\n assert(this.client, \"`client` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.date) pbf.writeVarintField(1, this.date.getTime() * 1000, pbf)\n if (this.client) pbf.writeVarintField(2, this.client, pbf)\n }\n}\n\nexport type BoardLastSeenStruct = {\n board_uid: BoardUID\n seen: SeenStruct\n}\n\nexport class BoardLastSeen {\n static _from_pb(pbf: any): BoardLastSeen {\n const o = BoardLastSeen._from_pb_init()\n pbf.readFields(BoardLastSeen._from_pb_fields, o)\n return new BoardLastSeen({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_uid = pbf.readString()\n return\n }\n case 2: {\n o.seen = pbf_readMessage(Seen, pbf)\n return\n }\n }\n }\n\n board_uid: BoardUID\n seen: Seen\n\n constructor(args: {board_uid: BoardUID; seen: Seen}) {\n this.board_uid = args.board_uid\n this.seen = args.seen\n makeObservable(this, {board_uid: observable, seen: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.board_uid, \"`board_uid` required\")\n assert(is_BoardUID(this.board_uid), \"`board_uid` is not of type BoardUID\")\n assert(this.seen, \"`seen` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_uid) pbf.writeStringField(1, this.board_uid, pbf)\n if (this.seen) pbf_writeMessage(2, this.seen, pbf)\n }\n}\n\nexport type SignUpStruct = {\n auth_provider: AuthProvider\n ttfl: number\n}\n\nexport class SignUp {\n static _from_pb(pbf: any): SignUp {\n const o = SignUp._from_pb_init()\n pbf.readFields(SignUp._from_pb_fields, o)\n return new SignUp({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.auth_provider = pbf.readVarint()\n return\n }\n case 2: {\n o.ttfl = pbf.readVarint()\n return\n }\n }\n }\n\n auth_provider: AuthProvider\n ttfl: number\n\n constructor(args: {auth_provider: AuthProvider; ttfl?: number}) {\n this.auth_provider = args.auth_provider || (0 as any)\n this.ttfl = args.ttfl || 0\n makeObservable(this, {auth_provider: observable, ttfl: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.auth_provider, \"`auth_provider` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.auth_provider) pbf.writeVarintField(1, this.auth_provider, pbf)\n if (this.ttfl) pbf.writeVarintField(2, this.ttfl, pbf)\n }\n}\n\nexport type LoginStruct = {\n auth_provider: AuthProvider\n}\n\nexport class Login {\n static _from_pb(pbf: any): Login {\n const o = Login._from_pb_init()\n pbf.readFields(Login._from_pb_fields, o)\n return new Login({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.auth_provider = pbf.readVarint()\n return\n }\n }\n }\n\n auth_provider: AuthProvider\n\n constructor(args: {auth_provider: AuthProvider}) {\n this.auth_provider = args.auth_provider || (0 as any)\n makeObservable(this, {auth_provider: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.auth_provider, \"`auth_provider` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.auth_provider) pbf.writeVarintField(1, this.auth_provider, pbf)\n }\n}\n\nexport type PageViewStruct = {\n __pb_cannot_be_empty: boolean\n}\n\nexport class PageView {\n static _from_pb(pbf: any): PageView {\n const o = PageView._from_pb_init()\n pbf.readFields(PageView._from_pb_fields, o)\n return new PageView({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.__pb_cannot_be_empty = pbf.readBoolean()\n return\n }\n }\n }\n\n __pb_cannot_be_empty: boolean\n\n constructor(args: {__pb_cannot_be_empty?: boolean}) {\n this.__pb_cannot_be_empty = args.__pb_cannot_be_empty || false\n makeObservable(this, {__pb_cannot_be_empty: observable})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.__pb_cannot_be_empty) pbf.writeBooleanField(1, this.__pb_cannot_be_empty, pbf)\n }\n}\n\nexport type EngagementStruct = {\n engagement_type: EngagementType\n}\n\nexport class Engagement {\n static _from_pb(pbf: any): Engagement {\n const o = Engagement._from_pb_init()\n pbf.readFields(Engagement._from_pb_fields, o)\n return new Engagement({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.engagement_type = pbf.readVarint()\n return\n }\n }\n }\n\n engagement_type: EngagementType\n\n constructor(args: {engagement_type: EngagementType}) {\n this.engagement_type = args.engagement_type || (0 as any)\n makeObservable(this, {engagement_type: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.engagement_type, \"`engagement_type` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.engagement_type) pbf.writeVarintField(1, this.engagement_type, pbf)\n }\n}\n\nexport type CheckoutStruct = {\n plan_id: string\n coupon: string\n checkout_stage: CheckoutStage\n}\n\nexport class Checkout {\n static _from_pb(pbf: any): Checkout {\n const o = Checkout._from_pb_init()\n pbf.readFields(Checkout._from_pb_fields, o)\n return new Checkout({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.plan_id = pbf.readString()\n return\n }\n case 2: {\n o.coupon = pbf.readString()\n return\n }\n case 3: {\n o.checkout_stage = pbf.readVarint()\n return\n }\n }\n }\n\n plan_id: string\n coupon: string\n checkout_stage: CheckoutStage\n\n constructor(args: {plan_id: string; coupon?: string; checkout_stage: CheckoutStage}) {\n this.plan_id = args.plan_id || \"\"\n this.coupon = args.coupon || \"\"\n this.checkout_stage = args.checkout_stage || (0 as any)\n makeObservable(this, {plan_id: observable, coupon: observable, checkout_stage: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.plan_id, \"`plan_id` required\")\n assert(this.checkout_stage, \"`checkout_stage` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.plan_id) pbf.writeStringField(1, this.plan_id, pbf)\n if (this.coupon) pbf.writeStringField(2, this.coupon, pbf)\n if (this.checkout_stage) pbf.writeVarintField(3, this.checkout_stage, pbf)\n }\n}\n\nexport type PortalStruct = {\n portal_action: PortalAction\n}\n\nexport class Portal {\n static _from_pb(pbf: any): Portal {\n const o = Portal._from_pb_init()\n pbf.readFields(Portal._from_pb_fields, o)\n return new Portal({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.portal_action = pbf.readVarint()\n return\n }\n }\n }\n\n portal_action: PortalAction\n\n constructor(args: {portal_action: PortalAction}) {\n this.portal_action = args.portal_action || (0 as any)\n makeObservable(this, {portal_action: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.portal_action, \"`portal_action` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.portal_action) pbf.writeVarintField(1, this.portal_action, pbf)\n }\n}\n\nexport type UserEventStruct = {\n seen: SeenStruct\n board_uid: BoardUID | undefined\n __deprecated_action: string\n sign_up: SignUpStruct | undefined\n login: LoginStruct | undefined\n page_view: PageViewStruct | undefined\n engagement: EngagementStruct | undefined\n checkout: CheckoutStruct | undefined\n portal: PortalStruct | undefined\n tracking_id: string\n session_start_date: Date\n source_campaign: SourceCampaignStruct | undefined\n feature_switches: Array<FeatureSwitch>\n plan: Plan\n team_uids: Array<TeamUID>\n client_version: string\n cohort_date: Date | undefined\n}\n\nexport class UserEvent {\n static _from_pb(pbf: any): UserEvent {\n const o = UserEvent._from_pb_init()\n pbf.readFields(UserEvent._from_pb_fields, o)\n return new UserEvent({...(o as any)})\n }\n\n static _from_pb_init() {\n return {\n session_start_date: now(),\n feature_switches: [],\n team_uids: [],\n client_version: \"unset\",\n } as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.seen = pbf_readMessage(Seen, pbf)\n return\n }\n case 8: {\n o.board_uid = pbf.readString()\n return\n }\n case 6: {\n o.__deprecated_action = pbf.readString()\n return\n }\n case 9: {\n o.sign_up = pbf_readMessage(SignUp, pbf)\n return\n }\n case 10: {\n o.login = pbf_readMessage(Login, pbf)\n return\n }\n case 11: {\n o.page_view = pbf_readMessage(PageView, pbf)\n return\n }\n case 12: {\n o.engagement = pbf_readMessage(Engagement, pbf)\n return\n }\n case 13: {\n o.checkout = pbf_readMessage(Checkout, pbf)\n return\n }\n case 14: {\n o.portal = pbf_readMessage(Portal, pbf)\n return\n }\n case 16: {\n o.tracking_id = pbf.readString()\n return\n }\n case 18: {\n o.session_start_date = new Date(pbf.readVarint() / 1000)\n return\n }\n case 19: {\n o.source_campaign = pbf_readMessage(SourceCampaign, pbf)\n return\n }\n case 20: {\n o.feature_switches = pbf.readPackedVarint()\n return\n }\n case 21: {\n o.plan = pbf.readVarint()\n return\n }\n case 22: {\n o.team_uids.push(pbf.readString())\n return\n }\n case 23: {\n o.client_version = pbf.readString()\n return\n }\n case 25: {\n o.cohort_date = new Date(pbf.readVarint() / 1000)\n return\n }\n }\n }\n\n seen: Seen\n board_uid: BoardUID | undefined\n __deprecated_action: string\n sign_up: SignUp | undefined\n login: Login | undefined\n page_view: PageView | undefined\n engagement: Engagement | undefined\n checkout: Checkout | undefined\n portal: Portal | undefined\n tracking_id: string\n session_start_date: Date\n source_campaign: SourceCampaign | undefined\n feature_switches: Array<FeatureSwitch>\n plan: Plan\n team_uids: Array<TeamUID>\n client_version: string\n cohort_date: Date | undefined\n\n constructor(args: {\n seen: Seen\n board_uid?: BoardUID\n __deprecated_action?: string\n sign_up?: SignUp\n login?: Login\n page_view?: PageView\n engagement?: Engagement\n checkout?: Checkout\n portal?: Portal\n tracking_id?: string\n session_start_date: Date\n source_campaign?: SourceCampaign\n feature_switches?: Array<FeatureSwitch>\n plan?: Plan\n team_uids?: Array<TeamUID>\n client_version: string\n cohort_date?: Date\n }) {\n this.seen = args.seen\n this.board_uid = args.board_uid\n this.__deprecated_action = args.__deprecated_action || \"\"\n this.sign_up = args.sign_up\n this.login = args.login\n this.page_view = args.page_view\n this.engagement = args.engagement\n this.checkout = args.checkout\n this.portal = args.portal\n this.tracking_id = args.tracking_id || \"\"\n this.session_start_date = args.session_start_date\n this.source_campaign = args.source_campaign\n this.feature_switches = (args.feature_switches || []).slice()\n this.plan = args.plan || (0 as any)\n this.team_uids = (args.team_uids || []).slice()\n this.client_version = args.client_version || \"\"\n this.cohort_date = args.cohort_date\n makeObservable(this, {\n seen: observable,\n board_uid: observable,\n __deprecated_action: observable,\n sign_up: observable,\n login: observable,\n page_view: observable,\n engagement: observable,\n checkout: observable,\n portal: observable,\n tracking_id: observable,\n session_start_date: observable,\n source_campaign: observable,\n feature_switches: observable,\n plan: observable,\n team_uids: observable,\n client_version: observable,\n cohort_date: observable,\n })\n this.verify()\n }\n\n public get kind(): string | SignUp | Login | PageView | Engagement | Checkout | Portal {\n return not_null(\n this.__deprecated_action ||\n this.sign_up ||\n this.login ||\n this.page_view ||\n this.engagement ||\n this.checkout ||\n this.portal,\n )\n }\n\n public verify() {\n assert(this.seen, \"`seen` required\")\n assert(\n this.board_uid == null || is_BoardUID(this.board_uid),\n \"`board_uid` is not of type BoardUID\",\n )\n assert(this.session_start_date, \"`session_start_date` required\")\n const i_team_uids = this.team_uids.findIndex((x) => !is_TeamUID(x))\n assert(\n i_team_uids < 0,\n () =>\n \"`this.team_uids` contains invalid item: \" +\n JSON.stringify(this.team_uids[i_team_uids]),\n )\n assert(this.client_version, \"`client_version` required\")\n assert(\n [\n this.__deprecated_action,\n this.sign_up,\n this.login,\n this.page_view,\n this.engagement,\n this.checkout,\n this.portal,\n ].filter((x) => !!x).length === 1,\n \"Exactly one of [`__deprecated_action`, `sign_up`, `login`, `page_view`, `engagement`, `checkout`, `portal`] required\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.seen) pbf_writeMessage(1, this.seen, pbf)\n if (this.board_uid) pbf.writeStringField(8, this.board_uid, pbf)\n if (this.__deprecated_action) pbf.writeStringField(6, this.__deprecated_action, pbf)\n if (this.sign_up) pbf_writeMessage(9, this.sign_up, pbf)\n if (this.login) pbf_writeMessage(10, this.login, pbf)\n if (this.page_view) pbf_writeMessage(11, this.page_view, pbf)\n if (this.engagement) pbf_writeMessage(12, this.engagement, pbf)\n if (this.checkout) pbf_writeMessage(13, this.checkout, pbf)\n if (this.portal) pbf_writeMessage(14, this.portal, pbf)\n if (this.tracking_id) pbf.writeStringField(16, this.tracking_id, pbf)\n if (this.session_start_date)\n pbf.writeVarintField(18, this.session_start_date.getTime() * 1000, pbf)\n if (this.source_campaign) pbf_writeMessage(19, this.source_campaign, pbf)\n pbf.writePackedVarint(20, this.feature_switches)\n if (this.plan) pbf.writeVarintField(21, this.plan, pbf)\n if (this.team_uids)\n for (let i = 0; i < this.team_uids.length; i++) {\n pbf.writeStringField(22, this.team_uids[i])\n }\n if (this.client_version) pbf.writeStringField(23, this.client_version, pbf)\n if (this.cohort_date) pbf.writeVarintField(25, this.cohort_date.getTime() * 1000, pbf)\n }\n}\n\nexport type FullAccountStruct = {\n account: AccountStruct | undefined\n account_auth: AccountAuthStruct | undefined\n account_attributes: AccountAttributesStruct | undefined\n account_settings: AccountSettingsStruct | undefined\n}\n\nexport class FullAccount {\n static _from_pb(pbf: any): FullAccount {\n const o = FullAccount._from_pb_init()\n pbf.readFields(FullAccount._from_pb_fields, o)\n return new FullAccount({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.account = pbf_readMessage(Account, pbf)\n return\n }\n case 2: {\n o.account_auth = pbf_readMessage(AccountAuth, pbf)\n return\n }\n case 3: {\n o.account_attributes = pbf_readMessage(AccountAttributes, pbf)\n return\n }\n case 4: {\n o.account_settings = pbf_readMessage(AccountSettings, pbf)\n return\n }\n }\n }\n\n account: Account | undefined\n account_auth: AccountAuth | undefined\n account_attributes: AccountAttributes | undefined\n account_settings: AccountSettings | undefined\n\n constructor(args: {\n account?: Account\n account_auth?: AccountAuth\n account_attributes?: AccountAttributes\n account_settings?: AccountSettings\n }) {\n this.account = args.account\n this.account_auth = args.account_auth\n this.account_attributes = args.account_attributes\n this.account_settings = args.account_settings\n makeObservable(this, {\n account: observable,\n account_auth: observable,\n account_attributes: observable,\n account_settings: observable,\n })\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.account) pbf_writeMessage(1, this.account, pbf)\n if (this.account_auth) pbf_writeMessage(2, this.account_auth, pbf)\n if (this.account_attributes) pbf_writeMessage(3, this.account_attributes, pbf)\n if (this.account_settings) pbf_writeMessage(4, this.account_settings, pbf)\n }\n}\n\nexport type AccountAnalyticsStruct = {\n uid: AccountUID\n board_last_seen: Array<BoardLastSeenStruct>\n version: number\n}\n\nexport class AccountAnalytics {\n static _from_pb(pbf: any): AccountAnalytics {\n const o = AccountAnalytics._from_pb_init()\n pbf.readFields(AccountAnalytics._from_pb_fields, o)\n return new AccountAnalytics({...(o as any)})\n }\n\n static _from_pb_init() {\n return {board_last_seen: [], version: 1} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.board_last_seen.push(pbf_readMessage(BoardLastSeen, pbf))\n return\n }\n case 3: {\n o.version = pbf.readVarint()\n return\n }\n }\n }\n\n uid: AccountUID\n board_last_seen: Array<BoardLastSeen>\n version: number\n\n constructor(args: {uid: AccountUID; board_last_seen?: Array<BoardLastSeen>; version: number}) {\n this.uid = args.uid\n this.board_last_seen = (args.board_last_seen || []).slice()\n this.version = args.version || 0\n makeObservable(this, {board_last_seen: observable, version: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_AccountUID(this.uid), \"`uid` is not of type AccountUID\")\n assert(this.version != null, \"`version` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.board_last_seen)\n for (let i = 0; i < this.board_last_seen.length; i++) {\n pbf_writeMessage(2, this.board_last_seen[i], pbf)\n }\n if (this.version) pbf.writeVarintField(3, this.version, pbf)\n }\n}\n\nexport type ACLStruct = {\n _full_access: Array<PrincipalUID>\n _edit: Array<PrincipalUID>\n _comment: Array<PrincipalUID>\n _read: Array<PrincipalUID>\n}\n\nexport class ACL extends _ACL {\n static _from_pb(pbf: any): ACL {\n const o = ACL._from_pb_init()\n pbf.readFields(ACL._from_pb_fields, o)\n return new ACL({...(o as any)})\n }\n\n static _from_pb_init() {\n return {_full_access: [], _edit: [], _comment: [], _read: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o._full_access.push(pbf.readString())\n return\n }\n case 2: {\n o._edit.push(pbf.readString())\n return\n }\n case 3: {\n o._comment.push(pbf.readString())\n return\n }\n case 4: {\n o._read.push(pbf.readString())\n return\n }\n }\n }\n\n constructor(args: {\n _full_access: Array<PrincipalUID>\n _edit?: Array<PrincipalUID>\n _comment?: Array<PrincipalUID>\n _read?: Array<PrincipalUID>\n }) {\n super({\n _full_access: args._full_access,\n _edit: args._edit,\n _comment: args._comment,\n _read: args._read,\n })\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this._full_access)\n for (let i = 0; i < this._full_access.length; i++) {\n pbf.writeStringField(1, this._full_access[i])\n }\n if (this._edit)\n for (let i = 0; i < this._edit.length; i++) {\n pbf.writeStringField(2, this._edit[i])\n }\n if (this._comment)\n for (let i = 0; i < this._comment.length; i++) {\n pbf.writeStringField(3, this._comment[i])\n }\n if (this._read)\n for (let i = 0; i < this._read.length; i++) {\n pbf.writeStringField(4, this._read[i])\n }\n }\n}\n\nexport type BoardStyleStruct = {\n background_color: string\n background_image_url: string\n background_image_blob: BlobStruct | undefined\n background_is_pattern: boolean\n}\n\nexport class BoardStyle {\n static _from_pb(pbf: any): BoardStyle {\n const o = BoardStyle._from_pb_init()\n pbf.readFields(BoardStyle._from_pb_fields, o)\n return new BoardStyle({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.background_color = pbf.readString()\n return\n }\n case 2: {\n o.background_image_url = pbf.readString()\n return\n }\n case 3: {\n o.background_image_blob = pbf_readMessage(Blob, pbf)\n return\n }\n case 4: {\n o.background_is_pattern = pbf.readBoolean()\n return\n }\n }\n }\n\n background_color: string\n background_image_url: string\n background_image_blob: Blob | undefined\n background_is_pattern: boolean\n\n constructor(args: {\n background_color?: string\n background_image_url?: string\n background_image_blob?: Blob\n background_is_pattern?: boolean\n }) {\n this.background_color = args.background_color || \"\"\n this.background_image_url = args.background_image_url || \"\"\n this.background_image_blob = args.background_image_blob\n this.background_is_pattern = args.background_is_pattern || false\n makeObservable(this, {\n background_color: observable,\n background_image_url: observable,\n background_image_blob: observable,\n background_is_pattern: observable,\n })\n this.verify()\n }\n\n public get background_image(): string | Blob | undefined {\n return this.background_image_url || this.background_image_blob\n }\n\n public verify() {\n limits.LIMIT_URL.check(this.background_image_url ? this.background_image_url.length : 0)\n assert(\n [this.background_image_url, this.background_image_blob].filter((x) => !!x).length <= 1,\n \"Only one of [`background_image_url`, `background_image_blob`] allowed\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.background_color) pbf.writeStringField(1, this.background_color, pbf)\n if (this.background_image_url) pbf.writeStringField(2, this.background_image_url, pbf)\n if (this.background_image_blob) pbf_writeMessage(3, this.background_image_blob, pbf)\n if (this.background_is_pattern) pbf.writeBooleanField(4, this.background_is_pattern, pbf)\n }\n}\n\nexport type BoardInviteStruct = {\n uid: BoardInviteUID\n email: string\n principal_uid: PrincipalUID | undefined\n access_level: AccessLevel\n created_by: AccountUID\n created_at: Date\n}\n\nexport class BoardInvite extends _Invite {\n static _from_pb(pbf: any): BoardInvite {\n const o = BoardInvite._from_pb_init()\n pbf.readFields(BoardInvite._from_pb_fields, o)\n return new BoardInvite({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.email = pbf.readString()\n return\n }\n case 5: {\n o.principal_uid = pbf.readString()\n return\n }\n case 6: {\n o.access_level = pbf.readVarint()\n return\n }\n case 3: {\n o.created_by = pbf.readString()\n return\n }\n case 4: {\n o.created_at = new Date(pbf.readVarint() / 1000)\n return\n }\n }\n }\n\n uid: BoardInviteUID\n email: string\n principal_uid: PrincipalUID | undefined\n access_level: AccessLevel\n created_by: AccountUID\n\n constructor(args: {\n uid: BoardInviteUID\n email?: string\n principal_uid?: PrincipalUID\n access_level?: AccessLevel\n created_by: AccountUID\n created_at: Date\n }) {\n super({\n created_at: args.created_at,\n })\n this.uid = args.uid\n this.email = args.email || \"\"\n this.principal_uid = args.principal_uid\n this.access_level = args.access_level || AccessLevel.full_access\n this.created_by = args.created_by\n makeObservable(this, {\n email: observable,\n principal_uid: observable,\n access_level: observable,\n created_by: observable,\n })\n this.verify()\n }\n\n public get invited(): string | PrincipalUID {\n return not_null(this.email || this.principal_uid)\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_BoardInviteUID(this.uid), \"`uid` is not of type BoardInviteUID\")\n assert(\n this.principal_uid == null || is_PrincipalUID(this.principal_uid),\n \"`principal_uid` is not of type PrincipalUID\",\n )\n assert(this.created_by, \"`created_by` required\")\n assert(is_AccountUID(this.created_by), \"`created_by` is not of type AccountUID\")\n assert(\n [this.email, this.principal_uid].filter((x) => !!x).length === 1,\n \"Exactly one of [`email`, `principal_uid`] required\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.email) pbf.writeStringField(2, this.email, pbf)\n if (this.principal_uid) pbf.writeStringField(5, this.principal_uid, pbf)\n if (this.access_level) pbf.writeVarintField(6, this.access_level, pbf)\n if (this.created_by) pbf.writeStringField(3, this.created_by, pbf)\n if (this.created_at) pbf.writeVarintField(4, this.created_at.getTime() * 1000, pbf)\n }\n}\n\nexport type BoardChangelogEntryStruct = {\n patch_op_type: BoardPatchOpType\n date: Date\n account_uid: AccountUID\n board_version: number\n}\n\nexport class BoardChangelogEntry {\n static _from_pb(pbf: any): BoardChangelogEntry {\n const o = BoardChangelogEntry._from_pb_init()\n pbf.readFields(BoardChangelogEntry._from_pb_fields, o)\n return new BoardChangelogEntry({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.patch_op_type = pbf.readVarint()\n return\n }\n case 2: {\n o.date = new Date(pbf.readVarint() / 1000)\n return\n }\n case 3: {\n o.account_uid = pbf.readString()\n return\n }\n case 4: {\n o.board_version = pbf.readVarint()\n return\n }\n }\n }\n\n patch_op_type: BoardPatchOpType\n date: Date\n account_uid: AccountUID\n board_version: number\n\n constructor(args: {\n patch_op_type: BoardPatchOpType\n date: Date\n account_uid: AccountUID\n board_version: number\n }) {\n this.patch_op_type = args.patch_op_type || (0 as any)\n this.date = args.date\n this.account_uid = args.account_uid\n this.board_version = args.board_version || 0\n makeObservable(this, {\n patch_op_type: observable,\n date: observable,\n account_uid: observable,\n board_version: observable,\n })\n this.verify()\n }\n\n public verify() {\n assert(this.patch_op_type, \"`patch_op_type` required\")\n assert(this.date, \"`date` required\")\n assert(this.account_uid, \"`account_uid` required\")\n assert(is_AccountUID(this.account_uid), \"`account_uid` is not of type AccountUID\")\n assert(this.board_version != null, \"`board_version` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.patch_op_type) pbf.writeVarintField(1, this.patch_op_type, pbf)\n if (this.date) pbf.writeVarintField(2, this.date.getTime() * 1000, pbf)\n if (this.account_uid) pbf.writeStringField(3, this.account_uid, pbf)\n if (this.board_version) pbf.writeVarintField(4, this.board_version, pbf)\n }\n}\n\nexport type BoardStruct = {\n uid: BoardUID\n version: number\n first_change: ChangeMetadataStruct\n last_change: ChangeMetadataStruct\n board_type: BoardType\n owner: AccountUID\n name: string\n acl: ACLStruct\n board_style: BoardStyleStruct\n root: CardStruct\n indexed_by_search_engines: boolean\n board_invites: Array<BoardInviteStruct>\n changelog: Array<BoardChangelogEntryStruct>\n}\n\nexport class Board extends _Board {\n static _from_pb(pbf: any): Board {\n const o = Board._from_pb_init()\n pbf.readFields(Board._from_pb_fields, o)\n return new Board({...(o as any)})\n }\n\n static _from_pb_init() {\n return {board_invites: [], changelog: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.version = pbf.readVarint()\n return\n }\n case 3: {\n o.first_change = pbf_readMessage(ChangeMetadata, pbf)\n return\n }\n case 4: {\n o.last_change = pbf_readMessage(ChangeMetadata, pbf)\n return\n }\n case 5: {\n o.board_type = pbf.readVarint()\n return\n }\n case 6: {\n o.owner = pbf.readString()\n return\n }\n case 7: {\n o.name = pbf.readString()\n return\n }\n case 8: {\n o.acl = pbf_readMessage(ACL, pbf)\n return\n }\n case 9: {\n o.board_style = pbf_readMessage(BoardStyle, pbf)\n return\n }\n case 10: {\n o.root = pbf_readMessage(Card, pbf)\n return\n }\n case 13: {\n o.indexed_by_search_engines = pbf.readBoolean()\n return\n }\n case 11: {\n o.board_invites.push(pbf_readMessage(BoardInvite, pbf))\n return\n }\n case 12: {\n o.changelog.push(pbf_readMessage(BoardChangelogEntry, pbf))\n return\n }\n }\n }\n\n owner: AccountUID\n name: string\n acl: ACL\n board_style: BoardStyle\n indexed_by_search_engines: boolean\n\n constructor(args: {\n uid: BoardUID\n version: number\n first_change: ChangeMetadata\n last_change: ChangeMetadata\n board_type: BoardType\n owner: AccountUID\n name: string\n acl: ACL\n board_style: BoardStyle\n root: Card\n indexed_by_search_engines?: boolean\n board_invites?: Array<BoardInvite>\n changelog: Array<BoardChangelogEntry>\n }) {\n super({\n uid: args.uid,\n root: args.root,\n board_invites: args.board_invites,\n board_type: args.board_type,\n version: args.version,\n first_change: args.first_change,\n last_change: args.last_change,\n changelog: args.changelog,\n })\n this.owner = args.owner\n this.name = args.name || \"\"\n this.acl = args.acl\n this.board_style = args.board_style\n this.indexed_by_search_engines = args.indexed_by_search_engines || false\n makeObservable(this, {\n owner: observable,\n name: observable,\n acl: observable,\n board_style: observable,\n indexed_by_search_engines: observable,\n })\n this.verify()\n }\n\n public verify() {\n assert(this.owner, \"`owner` required\")\n assert(is_AccountUID(this.owner), \"`owner` is not of type AccountUID\")\n assert(this.name, \"`name` required\")\n assert(this.acl, \"`acl` required\")\n assert(this.board_style, \"`board_style` required\")\n limits.LIMIT_SMALL_TEXT.check(this.name ? this.name.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.version) pbf.writeVarintField(2, this.version, pbf)\n if (this.first_change) pbf_writeMessage(3, this.first_change, pbf)\n if (this.last_change) pbf_writeMessage(4, this.last_change, pbf)\n if (this.board_type) pbf.writeVarintField(5, this.board_type, pbf)\n if (this.owner) pbf.writeStringField(6, this.owner, pbf)\n if (this.name) pbf.writeStringField(7, this.name, pbf)\n if (this.acl) pbf_writeMessage(8, this.acl, pbf)\n if (this.board_style) pbf_writeMessage(9, this.board_style, pbf)\n if (this.root) pbf_writeMessage(10, this.root, pbf)\n if (this.indexed_by_search_engines)\n pbf.writeBooleanField(13, this.indexed_by_search_engines, pbf)\n if (this.board_invites)\n for (let i = 0; i < this.board_invites.length; i++) {\n pbf_writeMessage(11, this.board_invites[i], pbf)\n }\n if (this.changelog)\n for (let i = 0; i < this.changelog.length; i++) {\n pbf_writeMessage(12, this.changelog[i], pbf)\n }\n }\n}\n\nexport type ContentItemStatsStruct = {\n num: number\n sum_blob_size: number\n max_blob_size: number\n}\n\nexport class ContentItemStats {\n static _from_pb(pbf: any): ContentItemStats {\n const o = ContentItemStats._from_pb_init()\n pbf.readFields(ContentItemStats._from_pb_fields, o)\n return new ContentItemStats({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.num = pbf.readVarint()\n return\n }\n case 2: {\n o.sum_blob_size = pbf.readVarint()\n return\n }\n case 3: {\n o.max_blob_size = pbf.readVarint()\n return\n }\n }\n }\n\n num: number\n sum_blob_size: number\n max_blob_size: number\n\n constructor(args: {num?: number; sum_blob_size?: number; max_blob_size?: number}) {\n this.num = args.num || 0\n this.sum_blob_size = args.sum_blob_size || 0\n this.max_blob_size = args.max_blob_size || 0\n makeObservable(this, {\n num: observable,\n sum_blob_size: observable,\n max_blob_size: observable,\n })\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.num) pbf.writeVarintField(1, this.num, pbf)\n if (this.sum_blob_size) pbf.writeVarintField(2, this.sum_blob_size, pbf)\n if (this.max_blob_size) pbf.writeVarintField(3, this.max_blob_size, pbf)\n }\n}\n\nexport type BoardStatsStruct = {\n note_cards: ContentItemStatsStruct\n link_cards: ContentItemStatsStruct\n file_cards: ContentItemStatsStruct\n note_comments: ContentItemStatsStruct\n link_comments: ContentItemStatsStruct\n file_comments: ContentItemStatsStruct\n}\n\nexport class BoardStats {\n static _from_pb(pbf: any): BoardStats {\n const o = BoardStats._from_pb_init()\n pbf.readFields(BoardStats._from_pb_fields, o)\n return new BoardStats({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.note_cards = pbf_readMessage(ContentItemStats, pbf)\n return\n }\n case 2: {\n o.link_cards = pbf_readMessage(ContentItemStats, pbf)\n return\n }\n case 3: {\n o.file_cards = pbf_readMessage(ContentItemStats, pbf)\n return\n }\n case 5: {\n o.note_comments = pbf_readMessage(ContentItemStats, pbf)\n return\n }\n case 6: {\n o.link_comments = pbf_readMessage(ContentItemStats, pbf)\n return\n }\n case 7: {\n o.file_comments = pbf_readMessage(ContentItemStats, pbf)\n return\n }\n }\n }\n\n note_cards: ContentItemStats\n link_cards: ContentItemStats\n file_cards: ContentItemStats\n note_comments: ContentItemStats\n link_comments: ContentItemStats\n file_comments: ContentItemStats\n\n constructor(args: {\n note_cards: ContentItemStats\n link_cards: ContentItemStats\n file_cards: ContentItemStats\n note_comments: ContentItemStats\n link_comments: ContentItemStats\n file_comments: ContentItemStats\n }) {\n this.note_cards = args.note_cards\n this.link_cards = args.link_cards\n this.file_cards = args.file_cards\n this.note_comments = args.note_comments\n this.link_comments = args.link_comments\n this.file_comments = args.file_comments\n makeObservable(this, {\n note_cards: observable,\n link_cards: observable,\n file_cards: observable,\n note_comments: observable,\n link_comments: observable,\n file_comments: observable,\n })\n this.verify()\n }\n\n public verify() {\n assert(this.note_cards, \"`note_cards` required\")\n assert(this.link_cards, \"`link_cards` required\")\n assert(this.file_cards, \"`file_cards` required\")\n assert(this.note_comments, \"`note_comments` required\")\n assert(this.link_comments, \"`link_comments` required\")\n assert(this.file_comments, \"`file_comments` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.note_cards) pbf_writeMessage(1, this.note_cards, pbf)\n if (this.link_cards) pbf_writeMessage(2, this.link_cards, pbf)\n if (this.file_cards) pbf_writeMessage(3, this.file_cards, pbf)\n if (this.note_comments) pbf_writeMessage(5, this.note_comments, pbf)\n if (this.link_comments) pbf_writeMessage(6, this.link_comments, pbf)\n if (this.file_comments) pbf_writeMessage(7, this.file_comments, pbf)\n }\n}\n\nexport type BoardInfoStruct = {\n uid: BoardUID\n version: number\n first_change: ChangeMetadataStruct\n last_change: ChangeMetadataStruct\n last_important_change: ChangeMetadataStruct | undefined\n board_type: BoardType\n owner: AccountUID\n name: string\n acl: ACLStruct\n board_style: BoardStyleStruct\n board_stats: BoardStatsStruct | undefined\n indexed_by_search_engines: boolean\n}\n\nexport class BoardInfo extends _BoardInfo {\n static _from_pb(pbf: any): BoardInfo {\n const o = BoardInfo._from_pb_init()\n pbf.readFields(BoardInfo._from_pb_fields, o)\n return new BoardInfo({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.version = pbf.readVarint()\n return\n }\n case 3: {\n o.first_change = pbf_readMessage(ChangeMetadata, pbf)\n return\n }\n case 4: {\n o.last_change = pbf_readMessage(ChangeMetadata, pbf)\n return\n }\n case 15: {\n o.last_important_change = pbf_readMessage(ChangeMetadata, pbf)\n return\n }\n case 5: {\n o.board_type = pbf.readVarint()\n return\n }\n case 6: {\n o.owner = pbf.readString()\n return\n }\n case 7: {\n o.name = pbf.readString()\n return\n }\n case 8: {\n o.acl = pbf_readMessage(ACL, pbf)\n return\n }\n case 9: {\n o.board_style = pbf_readMessage(BoardStyle, pbf)\n return\n }\n case 16: {\n o.board_stats = pbf_readMessage(BoardStats, pbf)\n return\n }\n case 17: {\n o.indexed_by_search_engines = pbf.readBoolean()\n return\n }\n }\n }\n\n uid: BoardUID\n version: number\n first_change: ChangeMetadata\n last_change: ChangeMetadata\n last_important_change: ChangeMetadata | undefined\n board_type: BoardType\n owner: AccountUID\n name: string\n acl: ACL\n board_style: BoardStyle\n board_stats: BoardStats | undefined\n indexed_by_search_engines: boolean\n\n constructor(args: {\n uid: BoardUID\n version: number\n first_change: ChangeMetadata\n last_change: ChangeMetadata\n last_important_change?: ChangeMetadata\n board_type: BoardType\n owner: AccountUID\n name: string\n acl: ACL\n board_style: BoardStyle\n board_stats?: BoardStats\n indexed_by_search_engines?: boolean\n }) {\n super()\n this.uid = args.uid\n this.version = args.version || 0\n this.first_change = args.first_change\n this.last_change = args.last_change\n this.last_important_change = args.last_important_change\n this.board_type = args.board_type || (0 as any)\n this.owner = args.owner\n this.name = args.name || \"\"\n this.acl = args.acl\n this.board_style = args.board_style\n this.board_stats = args.board_stats\n this.indexed_by_search_engines = args.indexed_by_search_engines || false\n makeObservable(this, {\n version: observable,\n first_change: observable,\n last_change: observable,\n last_important_change: observable,\n board_type: observable,\n owner: observable,\n name: observable,\n acl: observable,\n board_style: observable,\n board_stats: observable,\n indexed_by_search_engines: observable,\n })\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_BoardUID(this.uid), \"`uid` is not of type BoardUID\")\n assert(this.version != null, \"`version` required\")\n assert(this.first_change, \"`first_change` required\")\n assert(this.last_change, \"`last_change` required\")\n assert(this.board_type, \"`board_type` required\")\n assert(this.owner, \"`owner` required\")\n assert(is_AccountUID(this.owner), \"`owner` is not of type AccountUID\")\n assert(this.name, \"`name` required\")\n assert(this.acl, \"`acl` required\")\n assert(this.board_style, \"`board_style` required\")\n limits.LIMIT_SMALL_TEXT.check(this.name ? this.name.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.version) pbf.writeVarintField(2, this.version, pbf)\n if (this.first_change) pbf_writeMessage(3, this.first_change, pbf)\n if (this.last_change) pbf_writeMessage(4, this.last_change, pbf)\n if (this.last_important_change) pbf_writeMessage(15, this.last_important_change, pbf)\n if (this.board_type) pbf.writeVarintField(5, this.board_type, pbf)\n if (this.owner) pbf.writeStringField(6, this.owner, pbf)\n if (this.name) pbf.writeStringField(7, this.name, pbf)\n if (this.acl) pbf_writeMessage(8, this.acl, pbf)\n if (this.board_style) pbf_writeMessage(9, this.board_style, pbf)\n if (this.board_stats) pbf_writeMessage(16, this.board_stats, pbf)\n if (this.indexed_by_search_engines)\n pbf.writeBooleanField(17, this.indexed_by_search_engines, pbf)\n }\n}\n\nexport type TaskStruct = {\n status: TaskStatus\n assignee: AccountUID | undefined\n date: Date | undefined\n}\n\nexport class Task {\n static _from_pb(pbf: any): Task {\n const o = Task._from_pb_init()\n pbf.readFields(Task._from_pb_fields, o)\n return new Task({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.status = pbf.readVarint()\n return\n }\n case 4: {\n o.assignee = pbf.readString()\n return\n }\n case 5: {\n o.date = new Date(pbf.readVarint() / 1000)\n return\n }\n }\n }\n\n status: TaskStatus\n assignee: AccountUID | undefined\n date: Date | undefined\n\n constructor(args: {status?: TaskStatus; assignee?: AccountUID; date?: Date}) {\n this.status = args.status || (0 as any)\n this.assignee = args.assignee\n this.date = args.date\n makeObservable(this, {status: observable, assignee: observable, date: observable})\n this.verify()\n }\n\n public verify() {\n assert(\n this.assignee == null || is_AccountUID(this.assignee),\n \"`assignee` is not of type AccountUID\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.status) pbf.writeVarintField(1, this.status, pbf)\n if (this.assignee) pbf.writeStringField(4, this.assignee, pbf)\n if (this.date) pbf.writeVarintField(5, this.date.getTime() * 1000, pbf)\n }\n}\n\nexport type CardChangelogEntryStruct = {\n patch_op_type: CardPatchOpType\n date: Date\n account_uid: AccountUID\n board_version: number\n board_uid: BoardUID | undefined\n extra_archived: boolean\n extra_task_status: TaskStatus\n extra_task_assignee: AccountUID | undefined\n extra_task_date: Date | undefined\n extra_src_board_uid: BoardUID | undefined\n extra_card_color: CardColor\n}\n\nexport class CardChangelogEntry {\n static _from_pb(pbf: any): CardChangelogEntry {\n const o = CardChangelogEntry._from_pb_init()\n pbf.readFields(CardChangelogEntry._from_pb_fields, o)\n return new CardChangelogEntry({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.patch_op_type = pbf.readVarint()\n return\n }\n case 2: {\n o.date = new Date(pbf.readVarint() / 1000)\n return\n }\n case 3: {\n o.account_uid = pbf.readString()\n return\n }\n case 4: {\n o.board_version = pbf.readVarint()\n return\n }\n case 11: {\n o.board_uid = pbf.readString()\n return\n }\n case 5: {\n o.extra_archived = pbf.readBoolean()\n return\n }\n case 6: {\n o.extra_task_status = pbf.readVarint()\n return\n }\n case 7: {\n o.extra_task_assignee = pbf.readString()\n return\n }\n case 10: {\n o.extra_task_date = new Date(pbf.readVarint() / 1000)\n return\n }\n case 8: {\n o.extra_src_board_uid = pbf.readString()\n return\n }\n case 9: {\n o.extra_card_color = pbf.readVarint()\n return\n }\n }\n }\n\n patch_op_type: CardPatchOpType\n date: Date\n account_uid: AccountUID\n board_version: number\n board_uid: BoardUID | undefined\n extra_archived: boolean\n extra_task_status: TaskStatus\n extra_task_assignee: AccountUID | undefined\n extra_task_date: Date | undefined\n extra_src_board_uid: BoardUID | undefined\n extra_card_color: CardColor\n\n constructor(args: {\n patch_op_type: CardPatchOpType\n date: Date\n account_uid: AccountUID\n board_version: number\n board_uid?: BoardUID\n extra_archived?: boolean\n extra_task_status?: TaskStatus\n extra_task_assignee?: AccountUID\n extra_task_date?: Date\n extra_src_board_uid?: BoardUID\n extra_card_color?: CardColor\n }) {\n this.patch_op_type = args.patch_op_type || (0 as any)\n this.date = args.date\n this.account_uid = args.account_uid\n this.board_version = args.board_version || 0\n this.board_uid = args.board_uid\n this.extra_archived = args.extra_archived || false\n this.extra_task_status = args.extra_task_status || (0 as any)\n this.extra_task_assignee = args.extra_task_assignee\n this.extra_task_date = args.extra_task_date\n this.extra_src_board_uid = args.extra_src_board_uid\n this.extra_card_color = args.extra_card_color || (0 as any)\n makeObservable(this, {\n patch_op_type: observable,\n date: observable,\n account_uid: observable,\n board_version: observable,\n board_uid: observable,\n extra_archived: observable,\n extra_task_status: observable,\n extra_task_assignee: observable,\n extra_task_date: observable,\n extra_src_board_uid: observable,\n extra_card_color: observable,\n })\n this.verify()\n }\n\n public verify() {\n assert(this.patch_op_type, \"`patch_op_type` required\")\n assert(this.date, \"`date` required\")\n assert(this.account_uid, \"`account_uid` required\")\n assert(is_AccountUID(this.account_uid), \"`account_uid` is not of type AccountUID\")\n assert(this.board_version != null, \"`board_version` required\")\n assert(\n this.board_uid == null || is_BoardUID(this.board_uid),\n \"`board_uid` is not of type BoardUID\",\n )\n assert(\n this.extra_task_assignee == null || is_AccountUID(this.extra_task_assignee),\n \"`extra_task_assignee` is not of type AccountUID\",\n )\n assert(\n this.extra_src_board_uid == null || is_BoardUID(this.extra_src_board_uid),\n \"`extra_src_board_uid` is not of type BoardUID\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.patch_op_type) pbf.writeVarintField(1, this.patch_op_type, pbf)\n if (this.date) pbf.writeVarintField(2, this.date.getTime() * 1000, pbf)\n if (this.account_uid) pbf.writeStringField(3, this.account_uid, pbf)\n if (this.board_version) pbf.writeVarintField(4, this.board_version, pbf)\n if (this.board_uid) pbf.writeStringField(11, this.board_uid, pbf)\n if (this.extra_archived) pbf.writeBooleanField(5, this.extra_archived, pbf)\n if (this.extra_task_status) pbf.writeVarintField(6, this.extra_task_status, pbf)\n if (this.extra_task_assignee) pbf.writeStringField(7, this.extra_task_assignee, pbf)\n if (this.extra_task_date)\n pbf.writeVarintField(10, this.extra_task_date.getTime() * 1000, pbf)\n if (this.extra_src_board_uid) pbf.writeStringField(8, this.extra_src_board_uid, pbf)\n if (this.extra_card_color) pbf.writeVarintField(9, this.extra_card_color, pbf)\n }\n}\n\nexport type CardStruct = {\n uid: CardUID\n changelog: Array<CardChangelogEntryStruct>\n archived: boolean\n color: CardColor\n task: TaskStruct | undefined\n note: NoteStruct | undefined\n link: LinkStruct | undefined\n file: FileStruct | undefined\n inbox: InboxStruct | undefined\n root: RootStruct | undefined\n column: ColumnStruct | undefined\n comments: Array<CommentStruct>\n children: Array<CardStruct>\n}\n\nexport class Card extends _Card {\n static _from_pb(pbf: any): Card {\n const o = Card._from_pb_init()\n pbf.readFields(Card._from_pb_fields, o)\n return new Card({...(o as any)})\n }\n\n static _from_pb_init() {\n return {changelog: [], comments: [], children: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.deprecated_first_change = pbf_readMessage(ChangeMetadata, pbf)\n return\n }\n case 3: {\n o.deprecated_last_change = pbf_readMessage(ChangeMetadata, pbf)\n return\n }\n case 17: {\n o.changelog.push(pbf_readMessage(CardChangelogEntry, pbf))\n return\n }\n case 4: {\n o.archived = pbf.readBoolean()\n return\n }\n case 5: {\n o.color = pbf.readVarint()\n return\n }\n case 15: {\n o.task = pbf_readMessage(Task, pbf)\n return\n }\n case 7: {\n o.note = pbf_readMessage(Note, pbf)\n return\n }\n case 8: {\n o.link = pbf_readMessage(Link, pbf)\n return\n }\n case 9: {\n o.file = pbf_readMessage(File, pbf)\n return\n }\n case 10: {\n o.deprecated_board_ref = pbf_readMessage(DeprecatedBoardRef, pbf)\n return\n }\n case 11: {\n o.inbox = pbf_readMessage(Inbox, pbf)\n return\n }\n case 12: {\n o.root = pbf_readMessage(Root, pbf)\n return\n }\n case 16: {\n o.column = pbf_readMessage(Column, pbf)\n return\n }\n case 13: {\n o.comments.push(pbf_readMessage(Comment, pbf))\n return\n }\n case 14: {\n o.children.push(pbf_readMessage(Card, pbf))\n return\n }\n }\n }\n\n uid: CardUID\n archived: boolean\n color: CardColor\n task: Task | undefined\n note: Note | undefined\n inbox: Inbox | undefined\n root: Root | undefined\n column: Column | undefined\n comments: Array<Comment>\n\n constructor(args: {\n uid: CardUID\n deprecated_first_change?: ChangeMetadata\n deprecated_last_change?: ChangeMetadata\n changelog: Array<CardChangelogEntry>\n archived?: boolean\n color?: CardColor\n task?: Task\n note?: Note\n link?: Link\n file?: File\n deprecated_board_ref?: DeprecatedBoardRef\n inbox?: Inbox\n root?: Root\n column?: Column\n comments?: Array<Comment>\n children?: Array<Card>\n }) {\n super({\n children: args.children,\n deprecated_first_change: args.deprecated_first_change,\n deprecated_last_change: args.deprecated_last_change,\n changelog: args.changelog,\n deprecated_board_ref: args.deprecated_board_ref,\n link: args.link,\n file: args.file,\n })\n this.uid = args.uid\n this.archived = args.archived || false\n this.color = args.color || (0 as any)\n this.task = args.task\n this.note = args.note\n this.inbox = args.inbox\n this.root = args.root\n this.column = args.column\n this.comments = (args.comments || []).slice()\n makeObservable(this, {\n archived: observable,\n color: observable,\n task: observable,\n note: observable,\n inbox: observable,\n root: observable,\n column: observable,\n comments: observable,\n })\n this.verify()\n }\n\n public get kind(): Note | Link | File | Inbox | Root | Column {\n return not_null(\n this.note || this.link || this.file || this.inbox || this.root || this.column,\n )\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_CardUID(this.uid), \"`uid` is not of type CardUID\")\n assert(\n [this.note, this.link, this.file, this.inbox, this.root, this.column].filter((x) => !!x)\n .length === 1,\n \"Exactly one of [`note`, `link`, `file`, `inbox`, `root`, `column`] required\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.changelog)\n for (let i = 0; i < this.changelog.length; i++) {\n pbf_writeMessage(17, this.changelog[i], pbf)\n }\n if (this.archived) pbf.writeBooleanField(4, this.archived, pbf)\n if (this.color) pbf.writeVarintField(5, this.color, pbf)\n if (this.task) pbf_writeMessage(15, this.task, pbf)\n if (this.note) pbf_writeMessage(7, this.note, pbf)\n if (this.link) pbf_writeMessage(8, this.link, pbf)\n if (this.file) pbf_writeMessage(9, this.file, pbf)\n if (this.inbox) pbf_writeMessage(11, this.inbox, pbf)\n if (this.root) pbf_writeMessage(12, this.root, pbf)\n if (this.column) pbf_writeMessage(16, this.column, pbf)\n if (this.comments)\n for (let i = 0; i < this.comments.length; i++) {\n pbf_writeMessage(13, this.comments[i], pbf)\n }\n if (this.children)\n for (let i = 0; i < this.children.length; i++) {\n pbf_writeMessage(14, this.children[i], pbf)\n }\n }\n}\n\nexport type CommentChangelogEntryStruct = {\n patch_op_type: CommentPatchOpType\n date: Date\n account_uid: AccountUID\n board_version: number\n board_uid: BoardUID | undefined\n}\n\nexport class CommentChangelogEntry {\n static _from_pb(pbf: any): CommentChangelogEntry {\n const o = CommentChangelogEntry._from_pb_init()\n pbf.readFields(CommentChangelogEntry._from_pb_fields, o)\n return new CommentChangelogEntry({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.patch_op_type = pbf.readVarint()\n return\n }\n case 2: {\n o.date = new Date(pbf.readVarint() / 1000)\n return\n }\n case 3: {\n o.account_uid = pbf.readString()\n return\n }\n case 4: {\n o.board_version = pbf.readVarint()\n return\n }\n case 5: {\n o.board_uid = pbf.readString()\n return\n }\n }\n }\n\n patch_op_type: CommentPatchOpType\n date: Date\n account_uid: AccountUID\n board_version: number\n board_uid: BoardUID | undefined\n\n constructor(args: {\n patch_op_type: CommentPatchOpType\n date: Date\n account_uid: AccountUID\n board_version: number\n board_uid?: BoardUID\n }) {\n this.patch_op_type = args.patch_op_type || (0 as any)\n this.date = args.date\n this.account_uid = args.account_uid\n this.board_version = args.board_version || 0\n this.board_uid = args.board_uid\n makeObservable(this, {\n patch_op_type: observable,\n date: observable,\n account_uid: observable,\n board_version: observable,\n board_uid: observable,\n })\n this.verify()\n }\n\n public verify() {\n assert(this.patch_op_type, \"`patch_op_type` required\")\n assert(this.date, \"`date` required\")\n assert(this.account_uid, \"`account_uid` required\")\n assert(is_AccountUID(this.account_uid), \"`account_uid` is not of type AccountUID\")\n assert(this.board_version != null, \"`board_version` required\")\n assert(\n this.board_uid == null || is_BoardUID(this.board_uid),\n \"`board_uid` is not of type BoardUID\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.patch_op_type) pbf.writeVarintField(1, this.patch_op_type, pbf)\n if (this.date) pbf.writeVarintField(2, this.date.getTime() * 1000, pbf)\n if (this.account_uid) pbf.writeStringField(3, this.account_uid, pbf)\n if (this.board_version) pbf.writeVarintField(4, this.board_version, pbf)\n if (this.board_uid) pbf.writeStringField(5, this.board_uid, pbf)\n }\n}\n\nexport type CommentStruct = {\n uid: CommentUID\n changelog: Array<CommentChangelogEntryStruct>\n note: NoteStruct | undefined\n link: LinkStruct | undefined\n file: FileStruct | undefined\n removed: RemovedStruct | undefined\n}\n\nexport class Comment extends _Comment {\n static _from_pb(pbf: any): Comment {\n const o = Comment._from_pb_init()\n pbf.readFields(Comment._from_pb_fields, o)\n return new Comment({...(o as any)})\n }\n\n static _from_pb_init() {\n return {changelog: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 7: {\n o.deprecated_first_change = pbf_readMessage(ChangeMetadata, pbf)\n return\n }\n case 2: {\n o.deprecated_last_change = pbf_readMessage(ChangeMetadata, pbf)\n return\n }\n case 8: {\n o.changelog.push(pbf_readMessage(CommentChangelogEntry, pbf))\n return\n }\n case 4: {\n o.note = pbf_readMessage(Note, pbf)\n return\n }\n case 5: {\n o.link = pbf_readMessage(Link, pbf)\n return\n }\n case 6: {\n o.file = pbf_readMessage(File, pbf)\n return\n }\n case 9: {\n o.removed = pbf_readMessage(Removed, pbf)\n return\n }\n }\n }\n\n uid: CommentUID\n note: Note | undefined\n link: Link | undefined\n file: File | undefined\n removed: Removed | undefined\n\n constructor(args: {\n uid: CommentUID\n deprecated_first_change?: ChangeMetadata\n deprecated_last_change?: ChangeMetadata\n changelog: Array<CommentChangelogEntry>\n note?: Note\n link?: Link\n file?: File\n removed?: Removed\n }) {\n super({\n deprecated_first_change: args.deprecated_first_change,\n deprecated_last_change: args.deprecated_last_change,\n changelog: args.changelog,\n })\n this.uid = args.uid\n this.note = args.note\n this.link = args.link\n this.file = args.file\n this.removed = args.removed\n makeObservable(this, {\n note: observable,\n link: observable,\n file: observable,\n removed: observable,\n })\n this.verify()\n }\n\n public get kind(): Note | Link | File | Removed {\n return not_null(this.note || this.link || this.file || this.removed)\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_CommentUID(this.uid), \"`uid` is not of type CommentUID\")\n assert(\n [this.note, this.link, this.file, this.removed].filter((x) => !!x).length === 1,\n \"Exactly one of [`note`, `link`, `file`, `removed`] required\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.changelog)\n for (let i = 0; i < this.changelog.length; i++) {\n pbf_writeMessage(8, this.changelog[i], pbf)\n }\n if (this.note) pbf_writeMessage(4, this.note, pbf)\n if (this.link) pbf_writeMessage(5, this.link, pbf)\n if (this.file) pbf_writeMessage(6, this.file, pbf)\n if (this.removed) pbf_writeMessage(9, this.removed, pbf)\n }\n}\n\nexport type RemovedStruct = {\n change: BoardChangeMetadataStruct\n}\n\nexport class Removed {\n static _from_pb(pbf: any): Removed {\n const o = Removed._from_pb_init()\n pbf.readFields(Removed._from_pb_fields, o)\n return new Removed({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.change = pbf_readMessage(BoardChangeMetadata, pbf)\n return\n }\n }\n }\n\n change: BoardChangeMetadata\n\n constructor(args: {change: BoardChangeMetadata}) {\n this.change = args.change\n makeObservable(this, {change: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.change, \"`change` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.change) pbf_writeMessage(1, this.change, pbf)\n }\n}\n\nexport type NoteStruct = {\n title: string\n safe_html: string\n}\n\nexport class Note {\n static _from_pb(pbf: any): Note {\n const o = Note._from_pb_init()\n pbf.readFields(Note._from_pb_fields, o)\n return new Note({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 2: {\n o.title = pbf.readString()\n return\n }\n case 1: {\n o.safe_html = pbf.readString()\n return\n }\n }\n }\n\n title: string\n safe_html: string\n\n constructor(args: {title?: string; safe_html?: string}) {\n this.title = args.title || \"\"\n this.safe_html = args.safe_html || \"\"\n makeObservable(this, {title: observable, safe_html: observable})\n this.verify()\n }\n\n public verify() {\n limits.LIMIT_SMALL_TEXT.check(this.title ? this.title.length : 0)\n limits.LIMIT_HTML.check(this.safe_html ? this.safe_html.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.title) pbf.writeStringField(2, this.title, pbf)\n if (this.safe_html) pbf.writeStringField(1, this.safe_html, pbf)\n }\n}\n\nexport type ImageCardDisplayStruct = {\n kind: ImageCardDisplayKind\n cinema_forced_aspect_ratio: number\n is_pattern: boolean\n background_color: string\n}\n\nexport class ImageCardDisplay {\n static _from_pb(pbf: any): ImageCardDisplay {\n const o = ImageCardDisplay._from_pb_init()\n pbf.readFields(ImageCardDisplay._from_pb_fields, o)\n return new ImageCardDisplay({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.kind = pbf.readVarint()\n return\n }\n case 2: {\n o.cinema_forced_aspect_ratio = pbf.readFloat()\n return\n }\n case 3: {\n o.is_pattern = pbf.readBoolean()\n return\n }\n case 4: {\n o.background_color = pbf.readString()\n return\n }\n }\n }\n\n kind: ImageCardDisplayKind\n cinema_forced_aspect_ratio: number\n is_pattern: boolean\n background_color: string\n\n constructor(args: {\n kind?: ImageCardDisplayKind\n cinema_forced_aspect_ratio?: number\n is_pattern?: boolean\n background_color?: string\n }) {\n this.kind = args.kind || ImageCardDisplayKind.condensed\n this.cinema_forced_aspect_ratio = args.cinema_forced_aspect_ratio || 0\n this.is_pattern = args.is_pattern || false\n this.background_color = args.background_color || \"\"\n makeObservable(this, {\n kind: observable,\n cinema_forced_aspect_ratio: observable,\n is_pattern: observable,\n background_color: observable,\n })\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.kind) pbf.writeVarintField(1, this.kind, pbf)\n if (this.cinema_forced_aspect_ratio)\n pbf.writeFloatField(2, this.cinema_forced_aspect_ratio, pbf)\n if (this.is_pattern) pbf.writeBooleanField(3, this.is_pattern, pbf)\n if (this.background_color) pbf.writeStringField(4, this.background_color, pbf)\n }\n}\n\nexport type LinkStyleStruct = {\n image: LinkStyleImage\n image_blob: BlobStruct | undefined\n display: ImageCardDisplayStruct\n}\n\nexport class LinkStyle extends _LinkStyle {\n static _from_pb(pbf: any): LinkStyle {\n const o = LinkStyle._from_pb_init()\n pbf.readFields(LinkStyle._from_pb_fields, o)\n return new LinkStyle({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.image = pbf.readVarint()\n return\n }\n case 2: {\n o.image_blob = pbf_readMessage(Blob, pbf)\n return\n }\n case 3: {\n o.deprecated_display_kind = pbf.readVarint()\n return\n }\n case 4: {\n o.display = pbf_readMessage(ImageCardDisplay, pbf)\n return\n }\n }\n }\n\n image: LinkStyleImage\n image_blob: Blob | undefined\n\n constructor(args: {\n image?: LinkStyleImage\n image_blob?: Blob\n deprecated_display_kind?: ImageCardDisplayKind\n display?: ImageCardDisplay\n }) {\n super({\n display: args.display,\n deprecated_display_kind: args.deprecated_display_kind,\n })\n this.image = args.image || (0 as any)\n this.image_blob = args.image_blob\n makeObservable(this, {image: observable, image_blob: observable})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.image) pbf.writeVarintField(1, this.image, pbf)\n if (this.image_blob) pbf_writeMessage(2, this.image_blob, pbf)\n if (this.display) pbf_writeMessage(4, this.display, pbf)\n }\n}\n\nexport type LinkStruct = {\n url: string\n title: string\n style: LinkStyleStruct\n}\n\nexport class Link {\n static _from_pb(pbf: any): Link {\n const o = Link._from_pb_init()\n pbf.readFields(Link._from_pb_fields, o)\n return new Link({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.url = pbf.readString()\n return\n }\n case 2: {\n o.title = pbf.readString()\n return\n }\n case 3: {\n o.style = pbf_readMessage(LinkStyle, pbf)\n return\n }\n }\n }\n\n url: string\n title: string\n style: LinkStyle\n\n constructor(args: {url?: string; title?: string; style?: LinkStyle}) {\n this.url = args.url || \"\"\n this.title = args.title || \"\"\n this.style = args.style || new_LinkStyle()\n makeObservable(this, {url: observable, title: observable, style: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.style, \"`style` required\")\n limits.LIMIT_URL.check(this.url ? this.url.length : 0)\n limits.LIMIT_SMALL_TEXT.check(this.title ? this.title.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.url) pbf.writeStringField(1, this.url, pbf)\n if (this.title) pbf.writeStringField(2, this.title, pbf)\n if (this.style) pbf_writeMessage(3, this.style, pbf)\n }\n}\n\nexport type FileStruct = {\n blob: BlobStruct\n file_name: string\n title: string\n preview_image_blob: BlobStruct | undefined\n display: ImageCardDisplayStruct\n}\n\nexport class File extends _File {\n static _from_pb(pbf: any): File {\n const o = File._from_pb_init()\n pbf.readFields(File._from_pb_fields, o)\n return new File({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.blob = pbf_readMessage(Blob, pbf)\n return\n }\n case 2: {\n o.file_name = pbf.readString()\n return\n }\n case 3: {\n o.title = pbf.readString()\n return\n }\n case 5: {\n o.preview_image_blob = pbf_readMessage(Blob, pbf)\n return\n }\n case 4: {\n o.deprecated_display_kind = pbf.readVarint()\n return\n }\n case 6: {\n o.display = pbf_readMessage(ImageCardDisplay, pbf)\n return\n }\n }\n }\n\n blob: Blob\n file_name: string\n title: string\n preview_image_blob: Blob | undefined\n\n constructor(args: {\n blob: Blob\n file_name?: string\n title?: string\n preview_image_blob?: Blob\n deprecated_display_kind?: ImageCardDisplayKind\n display?: ImageCardDisplay\n }) {\n super({\n display: args.display,\n deprecated_display_kind: args.deprecated_display_kind,\n })\n this.blob = args.blob\n this.file_name = args.file_name || \"\"\n this.title = args.title || \"\"\n this.preview_image_blob = args.preview_image_blob\n makeObservable(this, {\n blob: observable,\n file_name: observable,\n title: observable,\n preview_image_blob: observable,\n })\n this.verify()\n }\n\n public verify() {\n assert(this.blob, \"`blob` required\")\n limits.LIMIT_SMALL_TEXT.check(this.file_name ? this.file_name.length : 0)\n limits.LIMIT_SMALL_TEXT.check(this.title ? this.title.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.blob) pbf_writeMessage(1, this.blob, pbf)\n if (this.file_name) pbf.writeStringField(2, this.file_name, pbf)\n if (this.title) pbf.writeStringField(3, this.title, pbf)\n if (this.preview_image_blob) pbf_writeMessage(5, this.preview_image_blob, pbf)\n if (this.display) pbf_writeMessage(6, this.display, pbf)\n }\n}\n\nexport type BlobStruct = {\n uid: BlobUID\n size: number\n md5_base64: string\n mime_type: string\n}\n\nexport class Blob {\n static _from_pb(pbf: any): Blob {\n const o = Blob._from_pb_init()\n pbf.readFields(Blob._from_pb_fields, o)\n return new Blob({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 3: {\n o.size = pbf.readVarint()\n return\n }\n case 4: {\n o.md5_base64 = pbf.readString()\n return\n }\n case 5: {\n o.mime_type = pbf.readString()\n return\n }\n }\n }\n\n uid: BlobUID\n size: number\n md5_base64: string\n mime_type: string\n\n constructor(args: {uid: BlobUID; size: number; md5_base64: string; mime_type: string}) {\n this.uid = args.uid\n this.size = args.size || 0\n this.md5_base64 = args.md5_base64 || \"\"\n this.mime_type = args.mime_type || \"\"\n makeObservable(this, {size: observable, md5_base64: observable, mime_type: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_BlobUID(this.uid), \"`uid` is not of type BlobUID\")\n assert(this.size != null, \"`size` required\")\n assert(this.md5_base64, \"`md5_base64` required\")\n assert(this.mime_type, \"`mime_type` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.size) pbf.writeVarintField(3, this.size, pbf)\n if (this.md5_base64) pbf.writeStringField(4, this.md5_base64, pbf)\n if (this.mime_type) pbf.writeStringField(5, this.mime_type, pbf)\n }\n}\n\nexport type DeprecatedBoardRefStruct = {\n board_uid: BoardUID\n}\n\nexport class DeprecatedBoardRef {\n static _from_pb(pbf: any): DeprecatedBoardRef {\n const o = DeprecatedBoardRef._from_pb_init()\n pbf.readFields(DeprecatedBoardRef._from_pb_fields, o)\n return new DeprecatedBoardRef({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_uid = pbf.readString()\n return\n }\n }\n }\n\n board_uid: BoardUID\n\n constructor(args: {board_uid: BoardUID}) {\n this.board_uid = args.board_uid\n makeObservable(this, {board_uid: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.board_uid, \"`board_uid` required\")\n assert(is_BoardUID(this.board_uid), \"`board_uid` is not of type BoardUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_uid) pbf.writeStringField(1, this.board_uid, pbf)\n }\n}\n\nexport type InboxStruct = {\n __special_card_type_marking_the_inbox__: boolean\n}\n\nexport class Inbox {\n static _from_pb(pbf: any): Inbox {\n const o = Inbox._from_pb_init()\n pbf.readFields(Inbox._from_pb_fields, o)\n return new Inbox({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.__special_card_type_marking_the_inbox__ = pbf.readBoolean()\n return\n }\n }\n }\n\n __special_card_type_marking_the_inbox__: boolean\n\n constructor(args: {__special_card_type_marking_the_inbox__?: boolean}) {\n this.__special_card_type_marking_the_inbox__ =\n args.__special_card_type_marking_the_inbox__ || false\n makeObservable(this, {__special_card_type_marking_the_inbox__: observable})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.__special_card_type_marking_the_inbox__)\n pbf.writeBooleanField(1, this.__special_card_type_marking_the_inbox__, pbf)\n }\n}\n\nexport type ColumnStruct = {\n __special_card_type_marking_a_column__: boolean\n}\n\nexport class Column {\n static _from_pb(pbf: any): Column {\n const o = Column._from_pb_init()\n pbf.readFields(Column._from_pb_fields, o)\n return new Column({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.__special_card_type_marking_a_column__ = pbf.readBoolean()\n return\n }\n }\n }\n\n __special_card_type_marking_a_column__: boolean\n\n constructor(args: {__special_card_type_marking_a_column__?: boolean}) {\n this.__special_card_type_marking_a_column__ =\n args.__special_card_type_marking_a_column__ || false\n makeObservable(this, {__special_card_type_marking_a_column__: observable})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.__special_card_type_marking_a_column__)\n pbf.writeBooleanField(1, this.__special_card_type_marking_a_column__, pbf)\n }\n}\n\nexport type RootStruct = {\n __special_card_type_marking_the_root__: boolean\n}\n\nexport class Root {\n static _from_pb(pbf: any): Root {\n const o = Root._from_pb_init()\n pbf.readFields(Root._from_pb_fields, o)\n return new Root({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.__special_card_type_marking_the_root__ = pbf.readBoolean()\n return\n }\n }\n }\n\n __special_card_type_marking_the_root__: boolean\n\n constructor(args: {__special_card_type_marking_the_root__?: boolean}) {\n this.__special_card_type_marking_the_root__ =\n args.__special_card_type_marking_the_root__ || false\n makeObservable(this, {__special_card_type_marking_the_root__: observable})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.__special_card_type_marking_the_root__)\n pbf.writeBooleanField(1, this.__special_card_type_marking_the_root__, pbf)\n }\n}\n\nexport type AbuseReportStruct = {\n uid: AbuseReportUID\n board_uid: BoardUID\n board_version: number\n card_uid: CardUID | undefined\n reason: string\n reporter_email: string\n reporter_account_uid: AccountUID | undefined\n created_at: Date\n resolved_at: Date | undefined\n resolved_by: AccountUID | undefined\n}\n\nexport class AbuseReport {\n static _from_pb(pbf: any): AbuseReport {\n const o = AbuseReport._from_pb_init()\n pbf.readFields(AbuseReport._from_pb_fields, o)\n return new AbuseReport({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.board_uid = pbf.readString()\n return\n }\n case 3: {\n o.board_version = pbf.readVarint()\n return\n }\n case 4: {\n o.card_uid = pbf.readString()\n return\n }\n case 5: {\n o.reason = pbf.readString()\n return\n }\n case 6: {\n o.reporter_email = pbf.readString()\n return\n }\n case 7: {\n o.reporter_account_uid = pbf.readString()\n return\n }\n case 8: {\n o.created_at = new Date(pbf.readVarint() / 1000)\n return\n }\n case 9: {\n o.resolved_at = new Date(pbf.readVarint() / 1000)\n return\n }\n case 10: {\n o.resolved_by = pbf.readString()\n return\n }\n }\n }\n\n uid: AbuseReportUID\n board_uid: BoardUID\n board_version: number\n card_uid: CardUID | undefined\n reason: string\n reporter_email: string\n reporter_account_uid: AccountUID | undefined\n created_at: Date\n resolved_at: Date | undefined\n resolved_by: AccountUID | undefined\n\n constructor(args: {\n uid: AbuseReportUID\n board_uid: BoardUID\n board_version: number\n card_uid?: CardUID\n reason: string\n reporter_email: string\n reporter_account_uid?: AccountUID\n created_at: Date\n resolved_at?: Date\n resolved_by?: AccountUID\n }) {\n this.uid = args.uid\n this.board_uid = args.board_uid\n this.board_version = args.board_version || 0\n this.card_uid = args.card_uid\n this.reason = args.reason || \"\"\n this.reporter_email = args.reporter_email || \"\"\n this.reporter_account_uid = args.reporter_account_uid\n this.created_at = args.created_at\n this.resolved_at = args.resolved_at\n this.resolved_by = args.resolved_by\n makeObservable(this, {\n board_uid: observable,\n board_version: observable,\n card_uid: observable,\n reason: observable,\n reporter_email: observable,\n reporter_account_uid: observable,\n created_at: observable,\n resolved_at: observable,\n resolved_by: observable,\n })\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_AbuseReportUID(this.uid), \"`uid` is not of type AbuseReportUID\")\n assert(this.board_uid, \"`board_uid` required\")\n assert(is_BoardUID(this.board_uid), \"`board_uid` is not of type BoardUID\")\n assert(this.board_version != null, \"`board_version` required\")\n assert(\n this.card_uid == null || is_CardUID(this.card_uid),\n \"`card_uid` is not of type CardUID\",\n )\n assert(this.reason, \"`reason` required\")\n assert(this.reporter_email, \"`reporter_email` required\")\n assert(\n this.reporter_account_uid == null || is_AccountUID(this.reporter_account_uid),\n \"`reporter_account_uid` is not of type AccountUID\",\n )\n assert(this.created_at, \"`created_at` required\")\n assert(\n this.resolved_by == null || is_AccountUID(this.resolved_by),\n \"`resolved_by` is not of type AccountUID\",\n )\n limits.LIMIT_MEDIUM_TEXT.check(this.reason ? this.reason.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.board_uid) pbf.writeStringField(2, this.board_uid, pbf)\n if (this.board_version) pbf.writeVarintField(3, this.board_version, pbf)\n if (this.card_uid) pbf.writeStringField(4, this.card_uid, pbf)\n if (this.reason) pbf.writeStringField(5, this.reason, pbf)\n if (this.reporter_email) pbf.writeStringField(6, this.reporter_email, pbf)\n if (this.reporter_account_uid) pbf.writeStringField(7, this.reporter_account_uid, pbf)\n if (this.created_at) pbf.writeVarintField(8, this.created_at.getTime() * 1000, pbf)\n if (this.resolved_at) pbf.writeVarintField(9, this.resolved_at.getTime() * 1000, pbf)\n if (this.resolved_by) pbf.writeStringField(10, this.resolved_by, pbf)\n }\n}\n\nexport type BoardBundleStruct = {\n board: BoardStruct\n media_infos: Array<MediaInfoStruct>\n url_infos: Array<URLInfoStruct>\n accounts: Array<AccountStruct>\n svg_thumbnail_blob_uids: Array<BlobUID>\n}\n\nexport class BoardBundle {\n static _from_pb(pbf: any): BoardBundle {\n const o = BoardBundle._from_pb_init()\n pbf.readFields(BoardBundle._from_pb_fields, o)\n return new BoardBundle({...(o as any)})\n }\n\n static _from_pb_init() {\n return {media_infos: [], url_infos: [], accounts: [], svg_thumbnail_blob_uids: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board = pbf_readMessage(Board, pbf)\n return\n }\n case 2: {\n o.media_infos.push(pbf_readMessage(MediaInfo, pbf))\n return\n }\n case 3: {\n o.url_infos.push(pbf_readMessage(URLInfo, pbf))\n return\n }\n case 4: {\n o.accounts.push(pbf_readMessage(Account, pbf))\n return\n }\n case 6: {\n o.svg_thumbnail_blob_uids.push(pbf.readString())\n return\n }\n }\n }\n\n board: Board\n media_infos: Array<MediaInfo>\n url_infos: Array<URLInfo>\n accounts: Array<Account>\n svg_thumbnail_blob_uids: Array<BlobUID>\n\n constructor(args: {\n board: Board\n media_infos: Array<MediaInfo>\n url_infos: Array<URLInfo>\n accounts: Array<Account>\n svg_thumbnail_blob_uids: Array<BlobUID>\n }) {\n this.board = args.board\n this.media_infos = (args.media_infos || []).slice()\n this.url_infos = (args.url_infos || []).slice()\n this.accounts = (args.accounts || []).slice()\n this.svg_thumbnail_blob_uids = (args.svg_thumbnail_blob_uids || []).slice()\n makeObservable(this, {\n board: observable,\n media_infos: observable,\n url_infos: observable,\n accounts: observable,\n svg_thumbnail_blob_uids: observable,\n })\n this.verify()\n }\n\n public verify() {\n assert(this.board, \"`board` required\")\n assert(this.media_infos, \"`media_infos` required\")\n assert(this.url_infos, \"`url_infos` required\")\n assert(this.accounts, \"`accounts` required\")\n assert(this.svg_thumbnail_blob_uids, \"`svg_thumbnail_blob_uids` required\")\n const i_svg_thumbnail_blob_uids = this.svg_thumbnail_blob_uids.findIndex(\n (x) => !is_BlobUID(x),\n )\n assert(\n i_svg_thumbnail_blob_uids < 0,\n () =>\n \"`this.svg_thumbnail_blob_uids` contains invalid item: \" +\n JSON.stringify(this.svg_thumbnail_blob_uids[i_svg_thumbnail_blob_uids]),\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board) pbf_writeMessage(1, this.board, pbf)\n if (this.media_infos)\n for (let i = 0; i < this.media_infos.length; i++) {\n pbf_writeMessage(2, this.media_infos[i], pbf)\n }\n if (this.url_infos)\n for (let i = 0; i < this.url_infos.length; i++) {\n pbf_writeMessage(3, this.url_infos[i], pbf)\n }\n if (this.accounts)\n for (let i = 0; i < this.accounts.length; i++) {\n pbf_writeMessage(4, this.accounts[i], pbf)\n }\n if (this.svg_thumbnail_blob_uids)\n for (let i = 0; i < this.svg_thumbnail_blob_uids.length; i++) {\n pbf.writeStringField(6, this.svg_thumbnail_blob_uids[i])\n }\n }\n}\n\nexport type PublicBoardBundleStruct = {\n board_base64: string\n media_infos_base64: Array<string>\n url_infos_base64: Array<string>\n accounts_base64: Array<string>\n board_info: BoardInfoStruct\n svg_thumbnail_blob_uids: Array<BlobUID>\n}\n\nexport class PublicBoardBundle {\n static _from_pb(pbf: any): PublicBoardBundle {\n const o = PublicBoardBundle._from_pb_init()\n pbf.readFields(PublicBoardBundle._from_pb_fields, o)\n return new PublicBoardBundle({...(o as any)})\n }\n\n static _from_pb_init() {\n return {\n media_infos_base64: [],\n url_infos_base64: [],\n accounts_base64: [],\n svg_thumbnail_blob_uids: [],\n } as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_base64 = pbf.readString()\n return\n }\n case 2: {\n o.media_infos_base64.push(pbf.readString())\n return\n }\n case 3: {\n o.url_infos_base64.push(pbf.readString())\n return\n }\n case 4: {\n o.accounts_base64.push(pbf.readString())\n return\n }\n case 5: {\n o.board_info = pbf_readMessage(BoardInfo, pbf)\n return\n }\n case 6: {\n o.svg_thumbnail_blob_uids.push(pbf.readString())\n return\n }\n }\n }\n\n board_base64: string\n media_infos_base64: Array<string>\n url_infos_base64: Array<string>\n accounts_base64: Array<string>\n board_info: BoardInfo\n svg_thumbnail_blob_uids: Array<BlobUID>\n\n constructor(args: {\n board_base64: string\n media_infos_base64: Array<string>\n url_infos_base64: Array<string>\n accounts_base64: Array<string>\n board_info: BoardInfo\n svg_thumbnail_blob_uids: Array<BlobUID>\n }) {\n this.board_base64 = args.board_base64 || \"\"\n this.media_infos_base64 = (args.media_infos_base64 || []).slice()\n this.url_infos_base64 = (args.url_infos_base64 || []).slice()\n this.accounts_base64 = (args.accounts_base64 || []).slice()\n this.board_info = args.board_info\n this.svg_thumbnail_blob_uids = (args.svg_thumbnail_blob_uids || []).slice()\n makeObservable(this, {\n board_base64: observable,\n media_infos_base64: observable,\n url_infos_base64: observable,\n accounts_base64: observable,\n board_info: observable,\n svg_thumbnail_blob_uids: observable,\n })\n this.verify()\n }\n\n public verify() {\n assert(this.board_base64, \"`board_base64` required\")\n assert(this.media_infos_base64, \"`media_infos_base64` required\")\n assert(this.url_infos_base64, \"`url_infos_base64` required\")\n assert(this.accounts_base64, \"`accounts_base64` required\")\n assert(this.board_info, \"`board_info` required\")\n assert(this.svg_thumbnail_blob_uids, \"`svg_thumbnail_blob_uids` required\")\n const i_svg_thumbnail_blob_uids = this.svg_thumbnail_blob_uids.findIndex(\n (x) => !is_BlobUID(x),\n )\n assert(\n i_svg_thumbnail_blob_uids < 0,\n () =>\n \"`this.svg_thumbnail_blob_uids` contains invalid item: \" +\n JSON.stringify(this.svg_thumbnail_blob_uids[i_svg_thumbnail_blob_uids]),\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_base64) pbf.writeStringField(1, this.board_base64, pbf)\n if (this.media_infos_base64)\n for (let i = 0; i < this.media_infos_base64.length; i++) {\n pbf.writeStringField(2, this.media_infos_base64[i])\n }\n if (this.url_infos_base64)\n for (let i = 0; i < this.url_infos_base64.length; i++) {\n pbf.writeStringField(3, this.url_infos_base64[i])\n }\n if (this.accounts_base64)\n for (let i = 0; i < this.accounts_base64.length; i++) {\n pbf.writeStringField(4, this.accounts_base64[i])\n }\n if (this.board_info) pbf_writeMessage(5, this.board_info, pbf)\n if (this.svg_thumbnail_blob_uids)\n for (let i = 0; i < this.svg_thumbnail_blob_uids.length; i++) {\n pbf.writeStringField(6, this.svg_thumbnail_blob_uids[i])\n }\n }\n}\n\nexport type MeetStatusStruct = {\n board_uid: BoardUID\n participants: Array<AccountUID>\n version: number\n last_change: ChangeMetadataStruct\n}\n\nexport class MeetStatus {\n static _from_pb(pbf: any): MeetStatus {\n const o = MeetStatus._from_pb_init()\n pbf.readFields(MeetStatus._from_pb_fields, o)\n return new MeetStatus({...(o as any)})\n }\n\n static _from_pb_init() {\n return {participants: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_uid = pbf.readString()\n return\n }\n case 2: {\n o.participants.push(pbf.readString())\n return\n }\n case 3: {\n o.version = pbf.readVarint()\n return\n }\n case 4: {\n o.last_change = pbf_readMessage(ChangeMetadata, pbf)\n return\n }\n }\n }\n\n board_uid: BoardUID\n participants: Array<AccountUID>\n version: number\n last_change: ChangeMetadata\n\n constructor(args: {\n board_uid: BoardUID\n participants: Array<AccountUID>\n version: number\n last_change: ChangeMetadata\n }) {\n this.board_uid = args.board_uid\n this.participants = (args.participants || []).slice()\n this.version = args.version || 0\n this.last_change = args.last_change\n makeObservable(this, {\n board_uid: observable,\n participants: observable,\n version: observable,\n last_change: observable,\n })\n this.verify()\n }\n\n public verify() {\n assert(this.board_uid, \"`board_uid` required\")\n assert(is_BoardUID(this.board_uid), \"`board_uid` is not of type BoardUID\")\n assert(this.participants, \"`participants` required\")\n const i_participants = this.participants.findIndex((x) => !is_AccountUID(x))\n assert(\n i_participants < 0,\n () =>\n \"`this.participants` contains invalid item: \" +\n JSON.stringify(this.participants[i_participants]),\n )\n assert(this.version != null, \"`version` required\")\n assert(this.last_change, \"`last_change` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_uid) pbf.writeStringField(1, this.board_uid, pbf)\n if (this.participants)\n for (let i = 0; i < this.participants.length; i++) {\n pbf.writeStringField(2, this.participants[i])\n }\n if (this.version) pbf.writeVarintField(3, this.version, pbf)\n if (this.last_change) pbf_writeMessage(4, this.last_change, pbf)\n }\n}\n\nexport type OAuth2ClientStruct = {\n uid: OAuth2ClientUID\n display_name: string\n description: string\n url: string\n logo_url: string\n is_public: boolean\n}\n\nexport class OAuth2Client {\n static _from_pb(pbf: any): OAuth2Client {\n const o = OAuth2Client._from_pb_init()\n pbf.readFields(OAuth2Client._from_pb_fields, o)\n return new OAuth2Client({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.display_name = pbf.readString()\n return\n }\n case 3: {\n o.description = pbf.readString()\n return\n }\n case 4: {\n o.url = pbf.readString()\n return\n }\n case 5: {\n o.logo_url = pbf.readString()\n return\n }\n case 6: {\n o.is_public = pbf.readBoolean()\n return\n }\n }\n }\n\n uid: OAuth2ClientUID\n display_name: string\n description: string\n url: string\n logo_url: string\n is_public: boolean\n\n constructor(args: {\n uid: OAuth2ClientUID\n display_name: string\n description?: string\n url?: string\n logo_url?: string\n is_public?: boolean\n }) {\n this.uid = args.uid\n this.display_name = args.display_name || \"\"\n this.description = args.description || \"\"\n this.url = args.url || \"\"\n this.logo_url = args.logo_url || \"\"\n this.is_public = args.is_public || false\n makeObservable(this, {\n display_name: observable,\n description: observable,\n url: observable,\n logo_url: observable,\n is_public: observable,\n })\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_OAuth2ClientUID(this.uid), \"`uid` is not of type OAuth2ClientUID\")\n assert(this.display_name, \"`display_name` required\")\n limits.LIMIT_SMALL_TEXT.check(this.display_name ? this.display_name.length : 0)\n limits.LIMIT_URL.check(this.url ? this.url.length : 0)\n limits.LIMIT_URL.check(this.logo_url ? this.logo_url.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.display_name) pbf.writeStringField(2, this.display_name, pbf)\n if (this.description) pbf.writeStringField(3, this.description, pbf)\n if (this.url) pbf.writeStringField(4, this.url, pbf)\n if (this.logo_url) pbf.writeStringField(5, this.logo_url, pbf)\n if (this.is_public) pbf.writeBooleanField(6, this.is_public, pbf)\n }\n}\n\nexport type OAuth2ClientConfigStruct = {\n redirect_uris: Array<string>\n origins: Array<string>\n}\n\nexport class OAuth2ClientConfig {\n static _from_pb(pbf: any): OAuth2ClientConfig {\n const o = OAuth2ClientConfig._from_pb_init()\n pbf.readFields(OAuth2ClientConfig._from_pb_fields, o)\n return new OAuth2ClientConfig({...(o as any)})\n }\n\n static _from_pb_init() {\n return {redirect_uris: [], origins: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.redirect_uris.push(pbf.readString())\n return\n }\n case 2: {\n o.origins.push(pbf.readString())\n return\n }\n }\n }\n\n redirect_uris: Array<string>\n origins: Array<string>\n\n constructor(args: {redirect_uris: Array<string>; origins: Array<string>}) {\n this.redirect_uris = (args.redirect_uris || []).slice()\n this.origins = (args.origins || []).slice()\n makeObservable(this, {redirect_uris: observable, origins: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.redirect_uris, \"`redirect_uris` required\")\n assert(this.origins, \"`origins` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.redirect_uris)\n for (let i = 0; i < this.redirect_uris.length; i++) {\n pbf.writeStringField(1, this.redirect_uris[i])\n }\n if (this.origins)\n for (let i = 0; i < this.origins.length; i++) {\n pbf.writeStringField(2, this.origins[i])\n }\n }\n}\n\nexport type AddBoardValueStruct = {\n name: string\n board_style: BoardStyleStruct | undefined\n}\n\nexport class AddBoardValue {\n static _from_pb(pbf: any): AddBoardValue {\n const o = AddBoardValue._from_pb_init()\n pbf.readFields(AddBoardValue._from_pb_fields, o)\n return new AddBoardValue({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.name = pbf.readString()\n return\n }\n case 2: {\n o.board_style = pbf_readMessage(BoardStyle, pbf)\n return\n }\n }\n }\n\n name: string\n board_style: BoardStyle | undefined\n\n constructor(args: {name: string; board_style?: BoardStyle}) {\n this.name = args.name || \"\"\n this.board_style = args.board_style\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.name, \"`name` required\")\n limits.LIMIT_SMALL_TEXT.check(this.name ? this.name.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.name) pbf.writeStringField(1, this.name, pbf)\n if (this.board_style) pbf_writeMessage(2, this.board_style, pbf)\n }\n}\n\nexport type AddBoardStruct = {\n value: AddBoardValueStruct\n}\n\nexport class AddBoard extends AddOp {\n static ACCESS_LEVEL = <const>AccessLevel.full_access\n\n static _from_pb(pbf: any): AddBoard {\n const o = AddBoard._from_pb_init()\n pbf.readFields(AddBoard._from_pb_fields, o)\n return new AddBoard({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.value = pbf_readMessage(AddBoardValue, pbf)\n return\n }\n }\n }\n\n value: AddBoardValue\n\n constructor(args: {value: AddBoardValue}) {\n super()\n this.value = args.value\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.value, \"`value` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.value) pbf_writeMessage(1, this.value, pbf)\n }\n}\n\nexport type CopyBoardStruct = {\n src_board_uid: BoardUID\n}\n\nexport class CopyBoard extends MoveCopyOp {\n static ACCESS_LEVEL = <const>AccessLevel.full_access\n\n static _from_pb(pbf: any): CopyBoard {\n const o = CopyBoard._from_pb_init()\n pbf.readFields(CopyBoard._from_pb_fields, o)\n return new CopyBoard({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.src_board_uid = pbf.readString()\n return\n }\n }\n }\n\n src_board_uid: BoardUID\n\n constructor(args: {src_board_uid: BoardUID}) {\n super()\n this.src_board_uid = args.src_board_uid\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.src_board_uid, \"`src_board_uid` required\")\n assert(is_BoardUID(this.src_board_uid), \"`src_board_uid` is not of type BoardUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.src_board_uid) pbf.writeStringField(1, this.src_board_uid, pbf)\n }\n}\n\nexport type AddPeopleBoardValueStruct = {\n account_uid: AccountUID\n board_style: BoardStyleStruct | undefined\n}\n\nexport class AddPeopleBoardValue {\n static _from_pb(pbf: any): AddPeopleBoardValue {\n const o = AddPeopleBoardValue._from_pb_init()\n pbf.readFields(AddPeopleBoardValue._from_pb_fields, o)\n return new AddPeopleBoardValue({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.account_uid = pbf.readString()\n return\n }\n case 2: {\n o.board_style = pbf_readMessage(BoardStyle, pbf)\n return\n }\n }\n }\n\n account_uid: AccountUID\n board_style: BoardStyle | undefined\n\n constructor(args: {account_uid: AccountUID; board_style?: BoardStyle}) {\n this.account_uid = args.account_uid\n this.board_style = args.board_style\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.account_uid, \"`account_uid` required\")\n assert(is_AccountUID(this.account_uid), \"`account_uid` is not of type AccountUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.account_uid) pbf.writeStringField(1, this.account_uid, pbf)\n if (this.board_style) pbf_writeMessage(2, this.board_style, pbf)\n }\n}\n\nexport type AddPeopleBoardStruct = {\n value: AddPeopleBoardValueStruct\n}\n\nexport class AddPeopleBoard extends AddOp {\n static ACCESS_LEVEL = <const>AccessLevel.full_access\n\n static _from_pb(pbf: any): AddPeopleBoard {\n const o = AddPeopleBoard._from_pb_init()\n pbf.readFields(AddPeopleBoard._from_pb_fields, o)\n return new AddPeopleBoard({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.value = pbf_readMessage(AddPeopleBoardValue, pbf)\n return\n }\n }\n }\n\n value: AddPeopleBoardValue\n\n constructor(args: {value: AddPeopleBoardValue}) {\n super()\n this.value = args.value\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.value, \"`value` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.value) pbf_writeMessage(1, this.value, pbf)\n }\n}\n\nexport type AddSystemBoardValueStruct = {\n board_type: BoardType\n board_style: BoardStyleStruct | undefined\n}\n\nexport class AddSystemBoardValue {\n static _from_pb(pbf: any): AddSystemBoardValue {\n const o = AddSystemBoardValue._from_pb_init()\n pbf.readFields(AddSystemBoardValue._from_pb_fields, o)\n return new AddSystemBoardValue({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_type = pbf.readVarint()\n return\n }\n case 2: {\n o.board_style = pbf_readMessage(BoardStyle, pbf)\n return\n }\n }\n }\n\n board_type: BoardType\n board_style: BoardStyle | undefined\n\n constructor(args: {board_type: BoardType; board_style?: BoardStyle}) {\n this.board_type = args.board_type || (0 as any)\n this.board_style = args.board_style\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.board_type, \"`board_type` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_type) pbf.writeVarintField(1, this.board_type, pbf)\n if (this.board_style) pbf_writeMessage(2, this.board_style, pbf)\n }\n}\n\nexport type AddSystemBoardStruct = {\n value: AddSystemBoardValueStruct\n}\n\nexport class AddSystemBoard extends AddOp {\n static ACCESS_LEVEL = <const>AccessLevel.full_access\n\n static _from_pb(pbf: any): AddSystemBoard {\n const o = AddSystemBoard._from_pb_init()\n pbf.readFields(AddSystemBoard._from_pb_fields, o)\n return new AddSystemBoard({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.value = pbf_readMessage(AddSystemBoardValue, pbf)\n return\n }\n }\n }\n\n value: AddSystemBoardValue\n\n constructor(args: {value: AddSystemBoardValue}) {\n super()\n this.value = args.value\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.value, \"`value` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.value) pbf_writeMessage(1, this.value, pbf)\n }\n}\n\nexport type RemoveBoardStruct = {}\n\nexport class RemoveBoard extends RemoveOp {\n static ACCESS_LEVEL = <const>AccessLevel.full_access\n\n static _from_pb(pbf: any): RemoveBoard {\n const o = RemoveBoard._from_pb_init()\n pbf.readFields(RemoveBoard._from_pb_fields, o)\n return new RemoveBoard({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n }\n }\n\n constructor(args: {}) {\n super()\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {}\n}\n\nexport type SetBoardNameStruct = {\n value: string\n}\n\nexport class SetBoardName extends SetOp {\n static ACCESS_LEVEL = <const>AccessLevel.edit\n static _FIELD_PATH = <const>\"name\"\n\n static _from_pb(pbf: any): SetBoardName {\n const o = SetBoardName._from_pb_init()\n pbf.readFields(SetBoardName._from_pb_fields, o)\n return new SetBoardName({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.value = pbf.readString()\n return\n }\n }\n }\n\n value: string\n\n constructor(args: {value: string}) {\n super()\n this.value = args.value || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.value, \"`value` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.value) pbf.writeStringField(1, this.value, pbf)\n }\n}\n\nexport type SetBoardIndexedBySearchEnginesStruct = {\n value: boolean\n}\n\nexport class SetBoardIndexedBySearchEngines extends SetOp {\n static ACCESS_LEVEL = <const>AccessLevel.full_access\n static _FIELD_PATH = <const>\"indexed_by_search_engines\"\n\n static _from_pb(pbf: any): SetBoardIndexedBySearchEngines {\n const o = SetBoardIndexedBySearchEngines._from_pb_init()\n pbf.readFields(SetBoardIndexedBySearchEngines._from_pb_fields, o)\n return new SetBoardIndexedBySearchEngines({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.value = pbf.readBoolean()\n return\n }\n }\n }\n\n value: boolean\n\n constructor(args: {value: boolean}) {\n super()\n this.value = args.value || false\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.value != null, \"`value` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.value) pbf.writeBooleanField(1, this.value, pbf)\n }\n}\n\nexport type CustomAddBoardACLStruct = {\n principal_uid: PrincipalUID\n access_level: AccessLevel\n}\n\nexport class CustomAddBoardACL extends CustomOp {\n static ACCESS_LEVEL = <const>AccessLevel.full_access\n\n static _from_pb(pbf: any): CustomAddBoardACL {\n const o = CustomAddBoardACL._from_pb_init()\n pbf.readFields(CustomAddBoardACL._from_pb_fields, o)\n return new CustomAddBoardACL({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.principal_uid = pbf.readString()\n return\n }\n case 2: {\n o.access_level = pbf.readVarint()\n return\n }\n }\n }\n\n principal_uid: PrincipalUID\n access_level: AccessLevel\n\n constructor(args: {principal_uid: PrincipalUID; access_level?: AccessLevel}) {\n super()\n this.principal_uid = args.principal_uid\n this.access_level = args.access_level || AccessLevel.read\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.principal_uid, \"`principal_uid` required\")\n assert(is_PrincipalUID(this.principal_uid), \"`principal_uid` is not of type PrincipalUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.principal_uid) pbf.writeStringField(1, this.principal_uid, pbf)\n if (this.access_level) pbf.writeVarintField(2, this.access_level, pbf)\n }\n}\n\nexport type CustomSetBoardACLAccessLevelStruct = {\n principal_uid: PrincipalUID\n access_level: AccessLevel\n}\n\nexport class CustomSetBoardACLAccessLevel extends CustomOp {\n static ACCESS_LEVEL = <const>AccessLevel.full_access\n\n static _from_pb(pbf: any): CustomSetBoardACLAccessLevel {\n const o = CustomSetBoardACLAccessLevel._from_pb_init()\n pbf.readFields(CustomSetBoardACLAccessLevel._from_pb_fields, o)\n return new CustomSetBoardACLAccessLevel({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.principal_uid = pbf.readString()\n return\n }\n case 2: {\n o.access_level = pbf.readVarint()\n return\n }\n }\n }\n\n principal_uid: PrincipalUID\n access_level: AccessLevel\n\n constructor(args: {principal_uid: PrincipalUID; access_level: AccessLevel}) {\n super()\n this.principal_uid = args.principal_uid\n this.access_level = args.access_level || (0 as any)\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.principal_uid, \"`principal_uid` required\")\n assert(is_PrincipalUID(this.principal_uid), \"`principal_uid` is not of type PrincipalUID\")\n assert(this.access_level, \"`access_level` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.principal_uid) pbf.writeStringField(1, this.principal_uid, pbf)\n if (this.access_level) pbf.writeVarintField(2, this.access_level, pbf)\n }\n}\n\nexport type CustomSetBoardOwnerStruct = {\n account_uid: AccountUID\n}\n\nexport class CustomSetBoardOwner extends CustomOp {\n static ACCESS_LEVEL = <const>AccessLevel.full_access\n\n static _from_pb(pbf: any): CustomSetBoardOwner {\n const o = CustomSetBoardOwner._from_pb_init()\n pbf.readFields(CustomSetBoardOwner._from_pb_fields, o)\n return new CustomSetBoardOwner({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.account_uid = pbf.readString()\n return\n }\n }\n }\n\n account_uid: AccountUID\n\n constructor(args: {account_uid: AccountUID}) {\n super()\n this.account_uid = args.account_uid\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.account_uid, \"`account_uid` required\")\n assert(is_AccountUID(this.account_uid), \"`account_uid` is not of type AccountUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.account_uid) pbf.writeStringField(1, this.account_uid, pbf)\n }\n}\n\nexport type CustomRemoveBoardACLStruct = {\n value: PrincipalUID\n}\n\nexport class CustomRemoveBoardACL extends CustomOp {\n static ACCESS_LEVEL = <const>AccessLevel.full_access\n\n static _from_pb(pbf: any): CustomRemoveBoardACL {\n const o = CustomRemoveBoardACL._from_pb_init()\n pbf.readFields(CustomRemoveBoardACL._from_pb_fields, o)\n return new CustomRemoveBoardACL({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.value = pbf.readString()\n return\n }\n }\n }\n\n value: PrincipalUID\n\n constructor(args: {value: PrincipalUID}) {\n super()\n this.value = args.value\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.value, \"`value` required\")\n assert(is_PrincipalUID(this.value), \"`value` is not of type PrincipalUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.value) pbf.writeStringField(1, this.value, pbf)\n }\n}\n\nexport type AddBoardInviteValueStruct = {\n uid: BoardInviteUID\n email: string\n principal_uid: PrincipalUID | undefined\n access_level: AccessLevel\n}\n\nexport class AddBoardInviteValue {\n static _from_pb(pbf: any): AddBoardInviteValue {\n const o = AddBoardInviteValue._from_pb_init()\n pbf.readFields(AddBoardInviteValue._from_pb_fields, o)\n return new AddBoardInviteValue({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.email = pbf.readString()\n return\n }\n case 3: {\n o.principal_uid = pbf.readString()\n return\n }\n case 4: {\n o.access_level = pbf.readVarint()\n return\n }\n }\n }\n\n uid: BoardInviteUID\n email: string\n principal_uid: PrincipalUID | undefined\n access_level: AccessLevel\n\n constructor(args: {\n uid: BoardInviteUID\n email?: string\n principal_uid?: PrincipalUID\n access_level?: AccessLevel\n }) {\n this.uid = args.uid\n this.email = args.email || \"\"\n this.principal_uid = args.principal_uid\n this.access_level = args.access_level || AccessLevel.full_access\n makeObservable(this, {})\n this.verify()\n }\n\n public get invited(): string | PrincipalUID {\n return not_null(this.email || this.principal_uid)\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_BoardInviteUID(this.uid), \"`uid` is not of type BoardInviteUID\")\n assert(\n this.principal_uid == null || is_PrincipalUID(this.principal_uid),\n \"`principal_uid` is not of type PrincipalUID\",\n )\n assert(\n [this.email, this.principal_uid].filter((x) => !!x).length === 1,\n \"Exactly one of [`email`, `principal_uid`] required\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.email) pbf.writeStringField(2, this.email, pbf)\n if (this.principal_uid) pbf.writeStringField(3, this.principal_uid, pbf)\n if (this.access_level) pbf.writeVarintField(4, this.access_level, pbf)\n }\n}\n\nexport type CustomAddBoardInviteStruct = {\n value: AddBoardInviteValueStruct\n}\n\nexport class CustomAddBoardInvite extends CustomOp {\n static ACCESS_LEVEL = <const>AccessLevel.full_access\n\n static _from_pb(pbf: any): CustomAddBoardInvite {\n const o = CustomAddBoardInvite._from_pb_init()\n pbf.readFields(CustomAddBoardInvite._from_pb_fields, o)\n return new CustomAddBoardInvite({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.value = pbf_readMessage(AddBoardInviteValue, pbf)\n return\n }\n }\n }\n\n value: AddBoardInviteValue\n\n constructor(args: {value: AddBoardInviteValue}) {\n super()\n this.value = args.value\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.value, \"`value` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.value) pbf_writeMessage(1, this.value, pbf)\n }\n}\n\nexport type RemoveBoardInviteStruct = {\n uid: BoardInviteUID\n}\n\nexport class RemoveBoardInvite extends RemoveOp {\n static ACCESS_LEVEL = <const>AccessLevel.full_access\n\n static _from_pb(pbf: any): RemoveBoardInvite {\n const o = RemoveBoardInvite._from_pb_init()\n pbf.readFields(RemoveBoardInvite._from_pb_fields, o)\n return new RemoveBoardInvite({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n }\n }\n\n uid: BoardInviteUID\n\n constructor(args: {uid: BoardInviteUID}) {\n super()\n this.uid = args.uid\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_BoardInviteUID(this.uid), \"`uid` is not of type BoardInviteUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n }\n}\n\nexport type SetBoardBoardStyleBackgroundColorStruct = {\n value: string\n}\n\nexport class SetBoardBoardStyleBackgroundColor extends SetOp {\n static ACCESS_LEVEL = <const>AccessLevel.edit\n static _FIELD_PATH = <const>\"board_style.background_color\"\n\n static _from_pb(pbf: any): SetBoardBoardStyleBackgroundColor {\n const o = SetBoardBoardStyleBackgroundColor._from_pb_init()\n pbf.readFields(SetBoardBoardStyleBackgroundColor._from_pb_fields, o)\n return new SetBoardBoardStyleBackgroundColor({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.value = pbf.readString()\n return\n }\n }\n }\n\n value: string\n\n constructor(args: {value?: string}) {\n super()\n this.value = args.value || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.value) pbf.writeStringField(1, this.value, pbf)\n }\n}\n\nexport type SetBoardBoardStyleBackgroundImageURLStruct = {\n value: string\n}\n\nexport class SetBoardBoardStyleBackgroundImageURL extends SetOp {\n static ACCESS_LEVEL = <const>AccessLevel.edit\n static _FIELD_PATH = <const>\"board_style.background_image_url\"\n\n static _from_pb(pbf: any): SetBoardBoardStyleBackgroundImageURL {\n const o = SetBoardBoardStyleBackgroundImageURL._from_pb_init()\n pbf.readFields(SetBoardBoardStyleBackgroundImageURL._from_pb_fields, o)\n return new SetBoardBoardStyleBackgroundImageURL({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.value = pbf.readString()\n return\n }\n }\n }\n\n value: string\n\n constructor(args: {value?: string}) {\n super()\n this.value = args.value || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.value) pbf.writeStringField(1, this.value, pbf)\n }\n}\n\nexport type SetBoardBoardStyleStruct = {\n value: BoardStyleStruct\n}\n\nexport class SetBoardBoardStyle extends SetOp {\n static ACCESS_LEVEL = <const>AccessLevel.edit\n static _FIELD_PATH = <const>\"board_style\"\n\n static _from_pb(pbf: any): SetBoardBoardStyle {\n const o = SetBoardBoardStyle._from_pb_init()\n pbf.readFields(SetBoardBoardStyle._from_pb_fields, o)\n return new SetBoardBoardStyle({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.value = pbf_readMessage(BoardStyle, pbf)\n return\n }\n }\n }\n\n value: BoardStyle\n\n constructor(args: {value: BoardStyle}) {\n super()\n this.value = args.value\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.value, \"`value` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.value) pbf_writeMessage(1, this.value, pbf)\n }\n}\n\nexport type RemoveCardStruct = {\n uid: CardUID\n}\n\nexport class RemoveCard extends RemoveOp {\n static ACCESS_LEVEL = <const>AccessLevel.edit\n\n static _from_pb(pbf: any): RemoveCard {\n const o = RemoveCard._from_pb_init()\n pbf.readFields(RemoveCard._from_pb_fields, o)\n return new RemoveCard({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n }\n }\n\n uid: CardUID\n\n constructor(args: {uid: CardUID}) {\n super()\n this.uid = args.uid\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_CardUID(this.uid), \"`uid` is not of type CardUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n }\n}\n\nexport type SetCardArchivedStruct = {\n uid: CardUID\n value: boolean\n}\n\nexport class SetCardArchived extends SetOp {\n static ACCESS_LEVEL = <const>AccessLevel.edit\n static _FIELD_PATH = <const>\"archived\"\n\n static _from_pb(pbf: any): SetCardArchived {\n const o = SetCardArchived._from_pb_init()\n pbf.readFields(SetCardArchived._from_pb_fields, o)\n return new SetCardArchived({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.value = pbf.readBoolean()\n return\n }\n }\n }\n\n uid: CardUID\n value: boolean\n\n constructor(args: {uid: CardUID; value: boolean}) {\n super()\n this.uid = args.uid\n this.value = args.value || false\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_CardUID(this.uid), \"`uid` is not of type CardUID\")\n assert(this.value != null, \"`value` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.value) pbf.writeBooleanField(2, this.value, pbf)\n }\n}\n\nexport type SetCardColorStruct = {\n uid: CardUID\n value: CardColor\n}\n\nexport class SetCardColor extends SetOp {\n static ACCESS_LEVEL = <const>AccessLevel.edit\n static _FIELD_PATH = <const>\"color\"\n\n static _from_pb(pbf: any): SetCardColor {\n const o = SetCardColor._from_pb_init()\n pbf.readFields(SetCardColor._from_pb_fields, o)\n return new SetCardColor({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.value = pbf.readVarint()\n return\n }\n }\n }\n\n uid: CardUID\n value: CardColor\n\n constructor(args: {uid: CardUID; value?: CardColor}) {\n super()\n this.uid = args.uid\n this.value = args.value || (0 as any)\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_CardUID(this.uid), \"`uid` is not of type CardUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.value) pbf.writeVarintField(2, this.value, pbf)\n }\n}\n\nexport type CustomAddTaskStruct = {\n uid: CardUID\n}\n\nexport class CustomAddTask extends CustomOp {\n static ACCESS_LEVEL = <const>AccessLevel.edit\n\n static _from_pb(pbf: any): CustomAddTask {\n const o = CustomAddTask._from_pb_init()\n pbf.readFields(CustomAddTask._from_pb_fields, o)\n return new CustomAddTask({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n }\n }\n\n uid: CardUID\n\n constructor(args: {uid: CardUID}) {\n super()\n this.uid = args.uid\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_CardUID(this.uid), \"`uid` is not of type CardUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n }\n}\n\nexport type CustomRemoveTaskStruct = {\n uid: CardUID\n}\n\nexport class CustomRemoveTask extends CustomOp {\n static ACCESS_LEVEL = <const>AccessLevel.edit\n\n static _from_pb(pbf: any): CustomRemoveTask {\n const o = CustomRemoveTask._from_pb_init()\n pbf.readFields(CustomRemoveTask._from_pb_fields, o)\n return new CustomRemoveTask({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n }\n }\n\n uid: CardUID\n\n constructor(args: {uid: CardUID}) {\n super()\n this.uid = args.uid\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_CardUID(this.uid), \"`uid` is not of type CardUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n }\n}\n\nexport type SetTaskStatusStruct = {\n uid: CardUID\n value: TaskStatus\n}\n\nexport class SetTaskStatus extends SetOp {\n static ACCESS_LEVEL = <const>AccessLevel.edit\n static _FIELD_PATH = <const>\"task.status\"\n\n static _from_pb(pbf: any): SetTaskStatus {\n const o = SetTaskStatus._from_pb_init()\n pbf.readFields(SetTaskStatus._from_pb_fields, o)\n return new SetTaskStatus({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.value = pbf.readVarint()\n return\n }\n }\n }\n\n uid: CardUID\n value: TaskStatus\n\n constructor(args: {uid: CardUID; value?: TaskStatus}) {\n super()\n this.uid = args.uid\n this.value = args.value || (0 as any)\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_CardUID(this.uid), \"`uid` is not of type CardUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.value) pbf.writeVarintField(2, this.value, pbf)\n }\n}\n\nexport type SetTaskAssigneeStruct = {\n uid: CardUID\n value: AccountUID | undefined\n}\n\nexport class SetTaskAssignee extends SetOp {\n static ACCESS_LEVEL = <const>AccessLevel.edit\n static _FIELD_PATH = <const>\"task.assignee\"\n\n static _from_pb(pbf: any): SetTaskAssignee {\n const o = SetTaskAssignee._from_pb_init()\n pbf.readFields(SetTaskAssignee._from_pb_fields, o)\n return new SetTaskAssignee({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.value = pbf.readString()\n return\n }\n }\n }\n\n uid: CardUID\n value: AccountUID | undefined\n\n constructor(args: {uid: CardUID; value?: AccountUID}) {\n super()\n this.uid = args.uid\n this.value = args.value\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_CardUID(this.uid), \"`uid` is not of type CardUID\")\n assert(this.value == null || is_AccountUID(this.value), \"`value` is not of type AccountUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.value) pbf.writeStringField(2, this.value, pbf)\n }\n}\n\nexport type SetTaskDateStruct = {\n uid: CardUID\n value: Date | undefined\n}\n\nexport class SetTaskDate extends SetOp {\n static ACCESS_LEVEL = <const>AccessLevel.edit\n static _FIELD_PATH = <const>\"task.date\"\n\n static _from_pb(pbf: any): SetTaskDate {\n const o = SetTaskDate._from_pb_init()\n pbf.readFields(SetTaskDate._from_pb_fields, o)\n return new SetTaskDate({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.value = new Date(pbf.readVarint() / 1000)\n return\n }\n }\n }\n\n uid: CardUID\n value: Date | undefined\n\n constructor(args: {uid: CardUID; value?: Date}) {\n super()\n this.uid = args.uid\n this.value = args.value\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_CardUID(this.uid), \"`uid` is not of type CardUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.value) pbf.writeVarintField(2, this.value.getTime() * 1000, pbf)\n }\n}\n\nexport type MoveCardStruct = {\n uid: CardUID\n target_board_uid: BoardUID | undefined\n target_card_uid: CardUID | undefined\n target_pos: number\n}\n\nexport class MoveCard extends MoveCopyOp {\n static ACCESS_LEVEL = <const>AccessLevel.edit\n\n static _from_pb(pbf: any): MoveCard {\n const o = MoveCard._from_pb_init()\n pbf.readFields(MoveCard._from_pb_fields, o)\n return new MoveCard({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.target_board_uid = pbf.readString()\n return\n }\n case 3: {\n o.target_card_uid = pbf.readString()\n return\n }\n case 4: {\n o.target_pos = pbf.readVarint()\n return\n }\n }\n }\n\n uid: CardUID\n target_board_uid: BoardUID | undefined\n target_card_uid: CardUID | undefined\n target_pos: number\n\n constructor(args: {\n uid: CardUID\n target_board_uid?: BoardUID\n target_card_uid?: CardUID\n target_pos?: number\n }) {\n super()\n this.uid = args.uid\n this.target_board_uid = args.target_board_uid\n this.target_card_uid = args.target_card_uid\n this.target_pos = args.target_pos || 0\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_CardUID(this.uid), \"`uid` is not of type CardUID\")\n assert(\n this.target_board_uid == null || is_BoardUID(this.target_board_uid),\n \"`target_board_uid` is not of type BoardUID\",\n )\n assert(\n this.target_card_uid == null || is_CardUID(this.target_card_uid),\n \"`target_card_uid` is not of type CardUID\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.target_board_uid) pbf.writeStringField(2, this.target_board_uid, pbf)\n if (this.target_card_uid) pbf.writeStringField(3, this.target_card_uid, pbf)\n if (this.target_pos) pbf.writeVarintField(4, this.target_pos, pbf)\n }\n}\n\nexport type AddCardValueStruct = {\n uid: CardUID\n note: NoteStruct | undefined\n link: LinkStruct | undefined\n file: FileStruct | undefined\n column: ColumnStruct | undefined\n}\n\nexport class AddCardValue {\n static _from_pb(pbf: any): AddCardValue {\n const o = AddCardValue._from_pb_init()\n pbf.readFields(AddCardValue._from_pb_fields, o)\n return new AddCardValue({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.note = pbf_readMessage(Note, pbf)\n return\n }\n case 3: {\n o.link = pbf_readMessage(Link, pbf)\n return\n }\n case 4: {\n o.file = pbf_readMessage(File, pbf)\n return\n }\n case 6: {\n o.column = pbf_readMessage(Column, pbf)\n return\n }\n }\n }\n\n uid: CardUID\n note: Note | undefined\n link: Link | undefined\n file: File | undefined\n column: Column | undefined\n\n constructor(args: {uid: CardUID; note?: Note; link?: Link; file?: File; column?: Column}) {\n this.uid = args.uid\n this.note = args.note\n this.link = args.link\n this.file = args.file\n this.column = args.column\n makeObservable(this, {})\n this.verify()\n }\n\n public get kind(): Note | Link | File | Column {\n return not_null(this.note || this.link || this.file || this.column)\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_CardUID(this.uid), \"`uid` is not of type CardUID\")\n assert(\n [this.note, this.link, this.file, this.column].filter((x) => !!x).length === 1,\n \"Exactly one of [`note`, `link`, `file`, `column`] required\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.note) pbf_writeMessage(2, this.note, pbf)\n if (this.link) pbf_writeMessage(3, this.link, pbf)\n if (this.file) pbf_writeMessage(4, this.file, pbf)\n if (this.column) pbf_writeMessage(6, this.column, pbf)\n }\n}\n\nexport type AddCardStruct = {\n value: AddCardValueStruct\n target_card_uid: CardUID | undefined\n target_pos: number\n}\n\nexport class AddCard extends AddOp {\n static ACCESS_LEVEL = <const>AccessLevel.edit\n\n static _from_pb(pbf: any): AddCard {\n const o = AddCard._from_pb_init()\n pbf.readFields(AddCard._from_pb_fields, o)\n return new AddCard({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.value = pbf_readMessage(AddCardValue, pbf)\n return\n }\n case 2: {\n o.target_card_uid = pbf.readString()\n return\n }\n case 3: {\n o.target_pos = pbf.readVarint()\n return\n }\n }\n }\n\n value: AddCardValue\n target_card_uid: CardUID | undefined\n target_pos: number\n\n constructor(args: {value: AddCardValue; target_card_uid?: CardUID; target_pos?: number}) {\n super()\n this.value = args.value\n this.target_card_uid = args.target_card_uid\n this.target_pos = args.target_pos || 0\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.value, \"`value` required\")\n assert(\n this.target_card_uid == null || is_CardUID(this.target_card_uid),\n \"`target_card_uid` is not of type CardUID\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.value) pbf_writeMessage(1, this.value, pbf)\n if (this.target_card_uid) pbf.writeStringField(2, this.target_card_uid, pbf)\n if (this.target_pos) pbf.writeVarintField(3, this.target_pos, pbf)\n }\n}\n\nexport type SetCardNoteSafeHtmlStruct = {\n uid: CardUID\n value: string\n}\n\nexport class SetCardNoteSafeHtml extends SetOp {\n static ACCESS_LEVEL = <const>AccessLevel.edit\n static _FIELD_PATH = <const>\"note.safe_html\"\n\n static _from_pb(pbf: any): SetCardNoteSafeHtml {\n const o = SetCardNoteSafeHtml._from_pb_init()\n pbf.readFields(SetCardNoteSafeHtml._from_pb_fields, o)\n return new SetCardNoteSafeHtml({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.value = pbf.readString()\n return\n }\n }\n }\n\n uid: CardUID\n value: string\n\n constructor(args: {uid: CardUID; value?: string}) {\n super()\n this.uid = args.uid\n this.value = args.value || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_CardUID(this.uid), \"`uid` is not of type CardUID\")\n limits.LIMIT_HTML.check(this.value ? this.value.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.value) pbf.writeStringField(2, this.value, pbf)\n }\n}\n\nexport type SetCardNoteTitleStruct = {\n uid: CardUID\n value: string\n}\n\nexport class SetCardNoteTitle extends SetOp {\n static ACCESS_LEVEL = <const>AccessLevel.edit\n static _FIELD_PATH = <const>\"note.title\"\n\n static _from_pb(pbf: any): SetCardNoteTitle {\n const o = SetCardNoteTitle._from_pb_init()\n pbf.readFields(SetCardNoteTitle._from_pb_fields, o)\n return new SetCardNoteTitle({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.value = pbf.readString()\n return\n }\n }\n }\n\n uid: CardUID\n value: string\n\n constructor(args: {uid: CardUID; value?: string}) {\n super()\n this.uid = args.uid\n this.value = args.value || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_CardUID(this.uid), \"`uid` is not of type CardUID\")\n limits.LIMIT_SMALL_TEXT.check(this.value ? this.value.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.value) pbf.writeStringField(2, this.value, pbf)\n }\n}\n\nexport type SetCardLinkTitleStruct = {\n uid: CardUID\n value: string\n}\n\nexport class SetCardLinkTitle extends SetOp {\n static ACCESS_LEVEL = <const>AccessLevel.edit\n static _FIELD_PATH = <const>\"link.title\"\n\n static _from_pb(pbf: any): SetCardLinkTitle {\n const o = SetCardLinkTitle._from_pb_init()\n pbf.readFields(SetCardLinkTitle._from_pb_fields, o)\n return new SetCardLinkTitle({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.value = pbf.readString()\n return\n }\n }\n }\n\n uid: CardUID\n value: string\n\n constructor(args: {uid: CardUID; value?: string}) {\n super()\n this.uid = args.uid\n this.value = args.value || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_CardUID(this.uid), \"`uid` is not of type CardUID\")\n limits.LIMIT_SMALL_TEXT.check(this.value ? this.value.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.value) pbf.writeStringField(2, this.value, pbf)\n }\n}\n\nexport type SetCardLinkURLStruct = {\n uid: CardUID\n value: string\n}\n\nexport class SetCardLinkURL extends SetOp {\n static ACCESS_LEVEL = <const>AccessLevel.edit\n static _FIELD_PATH = <const>\"link.url\"\n\n static _from_pb(pbf: any): SetCardLinkURL {\n const o = SetCardLinkURL._from_pb_init()\n pbf.readFields(SetCardLinkURL._from_pb_fields, o)\n return new SetCardLinkURL({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.value = pbf.readString()\n return\n }\n }\n }\n\n uid: CardUID\n value: string\n\n constructor(args: {uid: CardUID; value: string}) {\n super()\n this.uid = args.uid\n this.value = args.value || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_CardUID(this.uid), \"`uid` is not of type CardUID\")\n assert(this.value, \"`value` required\")\n limits.LIMIT_URL.check(this.value ? this.value.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.value) pbf.writeStringField(2, this.value, pbf)\n }\n}\n\nexport type SetCardLinkStyleStruct = {\n uid: CardUID\n value: LinkStyleStruct | undefined\n}\n\nexport class SetCardLinkStyle extends SetOp {\n static ACCESS_LEVEL = <const>AccessLevel.edit\n static _FIELD_PATH = <const>\"link.style\"\n\n static _from_pb(pbf: any): SetCardLinkStyle {\n const o = SetCardLinkStyle._from_pb_init()\n pbf.readFields(SetCardLinkStyle._from_pb_fields, o)\n return new SetCardLinkStyle({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.value = pbf_readMessage(LinkStyle, pbf)\n return\n }\n }\n }\n\n uid: CardUID\n value: LinkStyle | undefined\n\n constructor(args: {uid: CardUID; value?: LinkStyle}) {\n super()\n this.uid = args.uid\n this.value = args.value\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_CardUID(this.uid), \"`uid` is not of type CardUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.value) pbf_writeMessage(2, this.value, pbf)\n }\n}\n\nexport type SetCardFileFileNameStruct = {\n uid: CardUID\n value: string\n}\n\nexport class SetCardFileFileName extends SetOp {\n static ACCESS_LEVEL = <const>AccessLevel.edit\n static _FIELD_PATH = <const>\"file.file_name\"\n\n static _from_pb(pbf: any): SetCardFileFileName {\n const o = SetCardFileFileName._from_pb_init()\n pbf.readFields(SetCardFileFileName._from_pb_fields, o)\n return new SetCardFileFileName({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.value = pbf.readString()\n return\n }\n }\n }\n\n uid: CardUID\n value: string\n\n constructor(args: {uid: CardUID; value: string}) {\n super()\n this.uid = args.uid\n this.value = args.value || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_CardUID(this.uid), \"`uid` is not of type CardUID\")\n assert(this.value, \"`value` required\")\n limits.LIMIT_SMALL_TEXT.check(this.value ? this.value.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.value) pbf.writeStringField(2, this.value, pbf)\n }\n}\n\nexport type SetCardFileTitleStruct = {\n uid: CardUID\n value: string\n}\n\nexport class SetCardFileTitle extends SetOp {\n static ACCESS_LEVEL = <const>AccessLevel.edit\n static _FIELD_PATH = <const>\"file.title\"\n\n static _from_pb(pbf: any): SetCardFileTitle {\n const o = SetCardFileTitle._from_pb_init()\n pbf.readFields(SetCardFileTitle._from_pb_fields, o)\n return new SetCardFileTitle({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.value = pbf.readString()\n return\n }\n }\n }\n\n uid: CardUID\n value: string\n\n constructor(args: {uid: CardUID; value?: string}) {\n super()\n this.uid = args.uid\n this.value = args.value || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_CardUID(this.uid), \"`uid` is not of type CardUID\")\n limits.LIMIT_SMALL_TEXT.check(this.value ? this.value.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.value) pbf.writeStringField(2, this.value, pbf)\n }\n}\n\nexport type SetCardFileDisplayStruct = {\n uid: CardUID\n value: ImageCardDisplayStruct | undefined\n}\n\nexport class SetCardFileDisplay extends SetOp {\n static ACCESS_LEVEL = <const>AccessLevel.edit\n static _FIELD_PATH = <const>\"file.display\"\n\n static _from_pb(pbf: any): SetCardFileDisplay {\n const o = SetCardFileDisplay._from_pb_init()\n pbf.readFields(SetCardFileDisplay._from_pb_fields, o)\n return new SetCardFileDisplay({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.value = pbf_readMessage(ImageCardDisplay, pbf)\n return\n }\n }\n }\n\n uid: CardUID\n value: ImageCardDisplay | undefined\n\n constructor(args: {uid: CardUID; value?: ImageCardDisplay}) {\n super()\n this.uid = args.uid\n this.value = args.value\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_CardUID(this.uid), \"`uid` is not of type CardUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.value) pbf_writeMessage(2, this.value, pbf)\n }\n}\n\nexport type SetCardFileBlobStruct = {\n uid: CardUID\n value: BlobStruct\n}\n\nexport class SetCardFileBlob extends SetOp {\n static ACCESS_LEVEL = <const>AccessLevel.edit\n static _FIELD_PATH = <const>\"file.blob\"\n\n static _from_pb(pbf: any): SetCardFileBlob {\n const o = SetCardFileBlob._from_pb_init()\n pbf.readFields(SetCardFileBlob._from_pb_fields, o)\n return new SetCardFileBlob({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.value = pbf_readMessage(Blob, pbf)\n return\n }\n }\n }\n\n uid: CardUID\n value: Blob\n\n constructor(args: {uid: CardUID; value: Blob}) {\n super()\n this.uid = args.uid\n this.value = args.value\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_CardUID(this.uid), \"`uid` is not of type CardUID\")\n assert(this.value, \"`value` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.value) pbf_writeMessage(2, this.value, pbf)\n }\n}\n\nexport type SetCardFilePreviewImageBlobStruct = {\n uid: CardUID\n value: BlobStruct | undefined\n}\n\nexport class SetCardFilePreviewImageBlob extends SetOp {\n static ACCESS_LEVEL = <const>AccessLevel.edit\n static _FIELD_PATH = <const>\"file.preview_image_blob\"\n\n static _from_pb(pbf: any): SetCardFilePreviewImageBlob {\n const o = SetCardFilePreviewImageBlob._from_pb_init()\n pbf.readFields(SetCardFilePreviewImageBlob._from_pb_fields, o)\n return new SetCardFilePreviewImageBlob({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.value = pbf_readMessage(Blob, pbf)\n return\n }\n }\n }\n\n uid: CardUID\n value: Blob | undefined\n\n constructor(args: {uid: CardUID; value?: Blob}) {\n super()\n this.uid = args.uid\n this.value = args.value\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_CardUID(this.uid), \"`uid` is not of type CardUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.value) pbf_writeMessage(2, this.value, pbf)\n }\n}\n\nexport type PasteCardStruct = {\n value: CardStruct\n target_card_uid: CardUID | undefined\n into_inbox: boolean\n into_root: boolean\n target_pos: number\n src_board_uid: BoardUID | undefined\n}\n\nexport class PasteCard extends PasteOp {\n static ACCESS_LEVEL = <const>AccessLevel.edit\n\n static _from_pb(pbf: any): PasteCard {\n const o = PasteCard._from_pb_init()\n pbf.readFields(PasteCard._from_pb_fields, o)\n return new PasteCard({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.value = pbf_readMessage(Card, pbf)\n return\n }\n case 2: {\n o.target_card_uid = pbf.readString()\n return\n }\n case 4: {\n o.into_inbox = pbf.readBoolean()\n return\n }\n case 5: {\n o.into_root = pbf.readBoolean()\n return\n }\n case 3: {\n o.target_pos = pbf.readVarint()\n return\n }\n case 6: {\n o.src_board_uid = pbf.readString()\n return\n }\n }\n }\n\n value: Card\n target_card_uid: CardUID | undefined\n into_inbox: boolean\n into_root: boolean\n target_pos: number\n src_board_uid: BoardUID | undefined\n\n constructor(args: {\n value: Card\n target_card_uid?: CardUID\n into_inbox?: boolean\n into_root?: boolean\n target_pos?: number\n src_board_uid?: BoardUID\n }) {\n super()\n this.value = args.value\n this.target_card_uid = args.target_card_uid\n this.into_inbox = args.into_inbox || false\n this.into_root = args.into_root || false\n this.target_pos = args.target_pos || 0\n this.src_board_uid = args.src_board_uid\n makeObservable(this, {})\n this.verify()\n }\n\n public get target(): CardUID | boolean | boolean {\n return not_null(this.target_card_uid || this.into_inbox || this.into_root)\n }\n\n public verify() {\n assert(this.value, \"`value` required\")\n assert(\n this.target_card_uid == null || is_CardUID(this.target_card_uid),\n \"`target_card_uid` is not of type CardUID\",\n )\n assert(\n this.src_board_uid == null || is_BoardUID(this.src_board_uid),\n \"`src_board_uid` is not of type BoardUID\",\n )\n assert(\n [this.target_card_uid, this.into_inbox, this.into_root].filter((x) => !!x).length === 1,\n \"Exactly one of [`target_card_uid`, `into_inbox`, `into_root`] required\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.value) pbf_writeMessage(1, this.value, pbf)\n if (this.target_card_uid) pbf.writeStringField(2, this.target_card_uid, pbf)\n if (this.into_inbox) pbf.writeBooleanField(4, this.into_inbox, pbf)\n if (this.into_root) pbf.writeBooleanField(5, this.into_root, pbf)\n if (this.target_pos) pbf.writeVarintField(3, this.target_pos, pbf)\n if (this.src_board_uid) pbf.writeStringField(6, this.src_board_uid, pbf)\n }\n}\n\nexport type CopyCardStruct = {\n uid: CardUID\n target_board_uid: BoardUID | undefined\n target_card_uid: CardUID | undefined\n new_card_uid: CardUID | undefined\n target_pos: number\n retain_archived_flag: boolean\n}\n\nexport class CopyCard extends MoveCopyOp {\n static ACCESS_LEVEL = <const>AccessLevel.edit\n\n static _from_pb(pbf: any): CopyCard {\n const o = CopyCard._from_pb_init()\n pbf.readFields(CopyCard._from_pb_fields, o)\n return new CopyCard({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.target_board_uid = pbf.readString()\n return\n }\n case 3: {\n o.target_card_uid = pbf.readString()\n return\n }\n case 6: {\n o.new_card_uid = pbf.readString()\n return\n }\n case 4: {\n o.target_pos = pbf.readVarint()\n return\n }\n case 8: {\n o.retain_archived_flag = pbf.readBoolean()\n return\n }\n }\n }\n\n uid: CardUID\n target_board_uid: BoardUID | undefined\n target_card_uid: CardUID | undefined\n new_card_uid: CardUID | undefined\n target_pos: number\n retain_archived_flag: boolean\n\n constructor(args: {\n uid: CardUID\n target_board_uid?: BoardUID\n target_card_uid?: CardUID\n new_card_uid?: CardUID\n target_pos?: number\n retain_archived_flag?: boolean\n }) {\n super()\n this.uid = args.uid\n this.target_board_uid = args.target_board_uid\n this.target_card_uid = args.target_card_uid\n this.new_card_uid = args.new_card_uid\n this.target_pos = args.target_pos || 0\n this.retain_archived_flag = args.retain_archived_flag || false\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_CardUID(this.uid), \"`uid` is not of type CardUID\")\n assert(\n this.target_board_uid == null || is_BoardUID(this.target_board_uid),\n \"`target_board_uid` is not of type BoardUID\",\n )\n assert(\n this.target_card_uid == null || is_CardUID(this.target_card_uid),\n \"`target_card_uid` is not of type CardUID\",\n )\n assert(\n this.new_card_uid == null || is_CardUID(this.new_card_uid),\n \"`new_card_uid` is not of type CardUID\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.target_board_uid) pbf.writeStringField(2, this.target_board_uid, pbf)\n if (this.target_card_uid) pbf.writeStringField(3, this.target_card_uid, pbf)\n if (this.new_card_uid) pbf.writeStringField(6, this.new_card_uid, pbf)\n if (this.target_pos) pbf.writeVarintField(4, this.target_pos, pbf)\n if (this.retain_archived_flag) pbf.writeBooleanField(8, this.retain_archived_flag, pbf)\n }\n}\n\nexport type AddCommentValueStruct = {\n uid: CommentUID\n note: NoteStruct | undefined\n link: LinkStruct | undefined\n file: FileStruct | undefined\n}\n\nexport class AddCommentValue {\n static _from_pb(pbf: any): AddCommentValue {\n const o = AddCommentValue._from_pb_init()\n pbf.readFields(AddCommentValue._from_pb_fields, o)\n return new AddCommentValue({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.note = pbf_readMessage(Note, pbf)\n return\n }\n case 3: {\n o.link = pbf_readMessage(Link, pbf)\n return\n }\n case 4: {\n o.file = pbf_readMessage(File, pbf)\n return\n }\n }\n }\n\n uid: CommentUID\n note: Note | undefined\n link: Link | undefined\n file: File | undefined\n\n constructor(args: {uid: CommentUID; note?: Note; link?: Link; file?: File}) {\n this.uid = args.uid\n this.note = args.note\n this.link = args.link\n this.file = args.file\n makeObservable(this, {})\n this.verify()\n }\n\n public get kind(): Note | Link | File {\n return not_null(this.note || this.link || this.file)\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_CommentUID(this.uid), \"`uid` is not of type CommentUID\")\n assert(\n [this.note, this.link, this.file].filter((x) => !!x).length === 1,\n \"Exactly one of [`note`, `link`, `file`] required\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.note) pbf_writeMessage(2, this.note, pbf)\n if (this.link) pbf_writeMessage(3, this.link, pbf)\n if (this.file) pbf_writeMessage(4, this.file, pbf)\n }\n}\n\nexport type AddCommentStruct = {\n value: AddCommentValueStruct\n target_card_uid: CardUID\n target_pos: number\n}\n\nexport class AddComment extends AddOp {\n static ACCESS_LEVEL = <const>AccessLevel.comment\n\n static _from_pb(pbf: any): AddComment {\n const o = AddComment._from_pb_init()\n pbf.readFields(AddComment._from_pb_fields, o)\n return new AddComment({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.value = pbf_readMessage(AddCommentValue, pbf)\n return\n }\n case 2: {\n o.target_card_uid = pbf.readString()\n return\n }\n case 3: {\n o.target_pos = pbf.readVarint()\n return\n }\n }\n }\n\n value: AddCommentValue\n target_card_uid: CardUID\n target_pos: number\n\n constructor(args: {value: AddCommentValue; target_card_uid: CardUID; target_pos: number}) {\n super()\n this.value = args.value\n this.target_card_uid = args.target_card_uid\n this.target_pos = args.target_pos || 0\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.value, \"`value` required\")\n assert(this.target_card_uid, \"`target_card_uid` required\")\n assert(is_CardUID(this.target_card_uid), \"`target_card_uid` is not of type CardUID\")\n assert(this.target_pos != null, \"`target_pos` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.value) pbf_writeMessage(1, this.value, pbf)\n if (this.target_card_uid) pbf.writeStringField(2, this.target_card_uid, pbf)\n if (this.target_pos) pbf.writeVarintField(3, this.target_pos, pbf)\n }\n}\n\nexport type CustomRemoveCommentStruct = {\n uid: CommentUID\n}\n\nexport class CustomRemoveComment extends CustomOp {\n static ACCESS_LEVEL = <const>AccessLevel.comment\n\n static _from_pb(pbf: any): CustomRemoveComment {\n const o = CustomRemoveComment._from_pb_init()\n pbf.readFields(CustomRemoveComment._from_pb_fields, o)\n return new CustomRemoveComment({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n }\n }\n\n uid: CommentUID\n\n constructor(args: {uid: CommentUID}) {\n super()\n this.uid = args.uid\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_CommentUID(this.uid), \"`uid` is not of type CommentUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n }\n}\n\nexport type PatchOpContainerStruct = {\n AddBoard: AddBoardStruct | undefined\n CopyBoard: CopyBoardStruct | undefined\n AddPeopleBoard: AddPeopleBoardStruct | undefined\n AddSystemBoard: AddSystemBoardStruct | undefined\n RemoveBoard: RemoveBoardStruct | undefined\n SetBoardName: SetBoardNameStruct | undefined\n CustomAddBoardACL: CustomAddBoardACLStruct | undefined\n CustomRemoveBoardACL: CustomRemoveBoardACLStruct | undefined\n CustomSetBoardACLAccessLevel: CustomSetBoardACLAccessLevelStruct | undefined\n CustomSetBoardOwner: CustomSetBoardOwnerStruct | undefined\n SetBoardBoardStyleBackgroundColor: SetBoardBoardStyleBackgroundColorStruct | undefined\n SetBoardBoardStyleBackgroundImageURL: SetBoardBoardStyleBackgroundImageURLStruct | undefined\n SetBoardBoardStyle: SetBoardBoardStyleStruct | undefined\n SetBoardIndexedBySearchEngines: SetBoardIndexedBySearchEnginesStruct | undefined\n RemoveCard: RemoveCardStruct | undefined\n MoveCard: MoveCardStruct | undefined\n SetCardArchived: SetCardArchivedStruct | undefined\n SetCardColor: SetCardColorStruct | undefined\n CustomAddTask: CustomAddTaskStruct | undefined\n CustomRemoveTask: CustomRemoveTaskStruct | undefined\n SetTaskStatus: SetTaskStatusStruct | undefined\n SetTaskAssignee: SetTaskAssigneeStruct | undefined\n SetTaskDate: SetTaskDateStruct | undefined\n AddCard: AddCardStruct | undefined\n PasteCard: PasteCardStruct | undefined\n CopyCard: CopyCardStruct | undefined\n SetCardNoteSafeHtml: SetCardNoteSafeHtmlStruct | undefined\n SetCardNoteTitle: SetCardNoteTitleStruct | undefined\n SetCardLinkURL: SetCardLinkURLStruct | undefined\n SetCardLinkTitle: SetCardLinkTitleStruct | undefined\n SetCardLinkStyle: SetCardLinkStyleStruct | undefined\n SetCardFileFileName: SetCardFileFileNameStruct | undefined\n SetCardFileTitle: SetCardFileTitleStruct | undefined\n SetCardFileDisplay: SetCardFileDisplayStruct | undefined\n SetCardFileBlob: SetCardFileBlobStruct | undefined\n SetCardFilePreviewImageBlob: SetCardFilePreviewImageBlobStruct | undefined\n AddComment: AddCommentStruct | undefined\n CustomRemoveComment: CustomRemoveCommentStruct | undefined\n CustomAddBoardInvite: CustomAddBoardInviteStruct | undefined\n RemoveBoardInvite: RemoveBoardInviteStruct | undefined\n}\n\nexport class PatchOpContainer extends _PatchOpContainer {\n static _from_pb(pbf: any): PatchOpContainer {\n const o = PatchOpContainer._from_pb_init()\n pbf.readFields(PatchOpContainer._from_pb_fields, o)\n return new PatchOpContainer({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.AddBoard = pbf_readMessage(AddBoard, pbf)\n return\n }\n case 48: {\n o.CopyBoard = pbf_readMessage(CopyBoard, pbf)\n return\n }\n case 38: {\n o.AddPeopleBoard = pbf_readMessage(AddPeopleBoard, pbf)\n return\n }\n case 2: {\n o.AddSystemBoard = pbf_readMessage(AddSystemBoard, pbf)\n return\n }\n case 3: {\n o.RemoveBoard = pbf_readMessage(RemoveBoard, pbf)\n return\n }\n case 4: {\n o.SetBoardName = pbf_readMessage(SetBoardName, pbf)\n return\n }\n case 5: {\n o.CustomAddBoardACL = pbf_readMessage(CustomAddBoardACL, pbf)\n return\n }\n case 6: {\n o.CustomRemoveBoardACL = pbf_readMessage(CustomRemoveBoardACL, pbf)\n return\n }\n case 37: {\n o.CustomSetBoardACLAccessLevel = pbf_readMessage(CustomSetBoardACLAccessLevel, pbf)\n return\n }\n case 41: {\n o.CustomSetBoardOwner = pbf_readMessage(CustomSetBoardOwner, pbf)\n return\n }\n case 7: {\n o.SetBoardBoardStyleBackgroundColor = pbf_readMessage(\n SetBoardBoardStyleBackgroundColor,\n pbf,\n )\n return\n }\n case 8: {\n o.SetBoardBoardStyleBackgroundImageURL = pbf_readMessage(\n SetBoardBoardStyleBackgroundImageURL,\n pbf,\n )\n return\n }\n case 36: {\n o.SetBoardBoardStyle = pbf_readMessage(SetBoardBoardStyle, pbf)\n return\n }\n case 49: {\n o.SetBoardIndexedBySearchEngines = pbf_readMessage(\n SetBoardIndexedBySearchEngines,\n pbf,\n )\n return\n }\n case 9: {\n o.RemoveCard = pbf_readMessage(RemoveCard, pbf)\n return\n }\n case 10: {\n o.MoveCard = pbf_readMessage(MoveCard, pbf)\n return\n }\n case 11: {\n o.SetCardArchived = pbf_readMessage(SetCardArchived, pbf)\n return\n }\n case 12: {\n o.SetCardColor = pbf_readMessage(SetCardColor, pbf)\n return\n }\n case 34: {\n o.CustomAddTask = pbf_readMessage(CustomAddTask, pbf)\n return\n }\n case 35: {\n o.CustomRemoveTask = pbf_readMessage(CustomRemoveTask, pbf)\n return\n }\n case 13: {\n o.SetTaskStatus = pbf_readMessage(SetTaskStatus, pbf)\n return\n }\n case 33: {\n o.SetTaskAssignee = pbf_readMessage(SetTaskAssignee, pbf)\n return\n }\n case 40: {\n o.SetTaskDate = pbf_readMessage(SetTaskDate, pbf)\n return\n }\n case 17: {\n o.AddCard = pbf_readMessage(AddCard, pbf)\n return\n }\n case 18: {\n o.PasteCard = pbf_readMessage(PasteCard, pbf)\n return\n }\n case 39: {\n o.CopyCard = pbf_readMessage(CopyCard, pbf)\n return\n }\n case 20: {\n o.SetCardNoteSafeHtml = pbf_readMessage(SetCardNoteSafeHtml, pbf)\n return\n }\n case 21: {\n o.SetCardNoteTitle = pbf_readMessage(SetCardNoteTitle, pbf)\n return\n }\n case 22: {\n o.SetCardLinkURL = pbf_readMessage(SetCardLinkURL, pbf)\n return\n }\n case 23: {\n o.SetCardLinkTitle = pbf_readMessage(SetCardLinkTitle, pbf)\n return\n }\n case 43: {\n o.SetCardLinkStyle = pbf_readMessage(SetCardLinkStyle, pbf)\n return\n }\n case 24: {\n o.SetCardFileFileName = pbf_readMessage(SetCardFileFileName, pbf)\n return\n }\n case 44: {\n o.SetCardFileTitle = pbf_readMessage(SetCardFileTitle, pbf)\n return\n }\n case 45: {\n o.SetCardFileDisplay = pbf_readMessage(SetCardFileDisplay, pbf)\n return\n }\n case 46: {\n o.SetCardFileBlob = pbf_readMessage(SetCardFileBlob, pbf)\n return\n }\n case 47: {\n o.SetCardFilePreviewImageBlob = pbf_readMessage(SetCardFilePreviewImageBlob, pbf)\n return\n }\n case 30: {\n o.AddComment = pbf_readMessage(AddComment, pbf)\n return\n }\n case 42: {\n o.CustomRemoveComment = pbf_readMessage(CustomRemoveComment, pbf)\n return\n }\n case 31: {\n o.CustomAddBoardInvite = pbf_readMessage(CustomAddBoardInvite, pbf)\n return\n }\n case 32: {\n o.RemoveBoardInvite = pbf_readMessage(RemoveBoardInvite, pbf)\n return\n }\n }\n }\n\n AddBoard: AddBoard | undefined\n CopyBoard: CopyBoard | undefined\n AddPeopleBoard: AddPeopleBoard | undefined\n AddSystemBoard: AddSystemBoard | undefined\n RemoveBoard: RemoveBoard | undefined\n SetBoardName: SetBoardName | undefined\n CustomAddBoardACL: CustomAddBoardACL | undefined\n CustomRemoveBoardACL: CustomRemoveBoardACL | undefined\n CustomSetBoardACLAccessLevel: CustomSetBoardACLAccessLevel | undefined\n CustomSetBoardOwner: CustomSetBoardOwner | undefined\n SetBoardBoardStyleBackgroundColor: SetBoardBoardStyleBackgroundColor | undefined\n SetBoardBoardStyleBackgroundImageURL: SetBoardBoardStyleBackgroundImageURL | undefined\n SetBoardBoardStyle: SetBoardBoardStyle | undefined\n SetBoardIndexedBySearchEngines: SetBoardIndexedBySearchEngines | undefined\n RemoveCard: RemoveCard | undefined\n MoveCard: MoveCard | undefined\n SetCardArchived: SetCardArchived | undefined\n SetCardColor: SetCardColor | undefined\n CustomAddTask: CustomAddTask | undefined\n CustomRemoveTask: CustomRemoveTask | undefined\n SetTaskStatus: SetTaskStatus | undefined\n SetTaskAssignee: SetTaskAssignee | undefined\n SetTaskDate: SetTaskDate | undefined\n AddCard: AddCard | undefined\n PasteCard: PasteCard | undefined\n CopyCard: CopyCard | undefined\n SetCardNoteSafeHtml: SetCardNoteSafeHtml | undefined\n SetCardNoteTitle: SetCardNoteTitle | undefined\n SetCardLinkURL: SetCardLinkURL | undefined\n SetCardLinkTitle: SetCardLinkTitle | undefined\n SetCardLinkStyle: SetCardLinkStyle | undefined\n SetCardFileFileName: SetCardFileFileName | undefined\n SetCardFileTitle: SetCardFileTitle | undefined\n SetCardFileDisplay: SetCardFileDisplay | undefined\n SetCardFileBlob: SetCardFileBlob | undefined\n SetCardFilePreviewImageBlob: SetCardFilePreviewImageBlob | undefined\n AddComment: AddComment | undefined\n CustomRemoveComment: CustomRemoveComment | undefined\n CustomAddBoardInvite: CustomAddBoardInvite | undefined\n RemoveBoardInvite: RemoveBoardInvite | undefined\n\n constructor(args: {\n AddBoard?: AddBoard\n CopyBoard?: CopyBoard\n AddPeopleBoard?: AddPeopleBoard\n AddSystemBoard?: AddSystemBoard\n RemoveBoard?: RemoveBoard\n SetBoardName?: SetBoardName\n CustomAddBoardACL?: CustomAddBoardACL\n CustomRemoveBoardACL?: CustomRemoveBoardACL\n CustomSetBoardACLAccessLevel?: CustomSetBoardACLAccessLevel\n CustomSetBoardOwner?: CustomSetBoardOwner\n SetBoardBoardStyleBackgroundColor?: SetBoardBoardStyleBackgroundColor\n SetBoardBoardStyleBackgroundImageURL?: SetBoardBoardStyleBackgroundImageURL\n SetBoardBoardStyle?: SetBoardBoardStyle\n SetBoardIndexedBySearchEngines?: SetBoardIndexedBySearchEngines\n RemoveCard?: RemoveCard\n MoveCard?: MoveCard\n SetCardArchived?: SetCardArchived\n SetCardColor?: SetCardColor\n CustomAddTask?: CustomAddTask\n CustomRemoveTask?: CustomRemoveTask\n SetTaskStatus?: SetTaskStatus\n SetTaskAssignee?: SetTaskAssignee\n SetTaskDate?: SetTaskDate\n AddCard?: AddCard\n PasteCard?: PasteCard\n CopyCard?: CopyCard\n SetCardNoteSafeHtml?: SetCardNoteSafeHtml\n SetCardNoteTitle?: SetCardNoteTitle\n SetCardLinkURL?: SetCardLinkURL\n SetCardLinkTitle?: SetCardLinkTitle\n SetCardLinkStyle?: SetCardLinkStyle\n SetCardFileFileName?: SetCardFileFileName\n SetCardFileTitle?: SetCardFileTitle\n SetCardFileDisplay?: SetCardFileDisplay\n SetCardFileBlob?: SetCardFileBlob\n SetCardFilePreviewImageBlob?: SetCardFilePreviewImageBlob\n AddComment?: AddComment\n CustomRemoveComment?: CustomRemoveComment\n CustomAddBoardInvite?: CustomAddBoardInvite\n RemoveBoardInvite?: RemoveBoardInvite\n }) {\n super()\n this.AddBoard = args.AddBoard\n this.CopyBoard = args.CopyBoard\n this.AddPeopleBoard = args.AddPeopleBoard\n this.AddSystemBoard = args.AddSystemBoard\n this.RemoveBoard = args.RemoveBoard\n this.SetBoardName = args.SetBoardName\n this.CustomAddBoardACL = args.CustomAddBoardACL\n this.CustomRemoveBoardACL = args.CustomRemoveBoardACL\n this.CustomSetBoardACLAccessLevel = args.CustomSetBoardACLAccessLevel\n this.CustomSetBoardOwner = args.CustomSetBoardOwner\n this.SetBoardBoardStyleBackgroundColor = args.SetBoardBoardStyleBackgroundColor\n this.SetBoardBoardStyleBackgroundImageURL = args.SetBoardBoardStyleBackgroundImageURL\n this.SetBoardBoardStyle = args.SetBoardBoardStyle\n this.SetBoardIndexedBySearchEngines = args.SetBoardIndexedBySearchEngines\n this.RemoveCard = args.RemoveCard\n this.MoveCard = args.MoveCard\n this.SetCardArchived = args.SetCardArchived\n this.SetCardColor = args.SetCardColor\n this.CustomAddTask = args.CustomAddTask\n this.CustomRemoveTask = args.CustomRemoveTask\n this.SetTaskStatus = args.SetTaskStatus\n this.SetTaskAssignee = args.SetTaskAssignee\n this.SetTaskDate = args.SetTaskDate\n this.AddCard = args.AddCard\n this.PasteCard = args.PasteCard\n this.CopyCard = args.CopyCard\n this.SetCardNoteSafeHtml = args.SetCardNoteSafeHtml\n this.SetCardNoteTitle = args.SetCardNoteTitle\n this.SetCardLinkURL = args.SetCardLinkURL\n this.SetCardLinkTitle = args.SetCardLinkTitle\n this.SetCardLinkStyle = args.SetCardLinkStyle\n this.SetCardFileFileName = args.SetCardFileFileName\n this.SetCardFileTitle = args.SetCardFileTitle\n this.SetCardFileDisplay = args.SetCardFileDisplay\n this.SetCardFileBlob = args.SetCardFileBlob\n this.SetCardFilePreviewImageBlob = args.SetCardFilePreviewImageBlob\n this.AddComment = args.AddComment\n this.CustomRemoveComment = args.CustomRemoveComment\n this.CustomAddBoardInvite = args.CustomAddBoardInvite\n this.RemoveBoardInvite = args.RemoveBoardInvite\n makeObservable(this, {})\n this.verify()\n }\n\n public get op():\n | AddBoard\n | CopyBoard\n | AddPeopleBoard\n | AddSystemBoard\n | RemoveBoard\n | SetBoardName\n | CustomAddBoardACL\n | CustomRemoveBoardACL\n | CustomSetBoardACLAccessLevel\n | CustomSetBoardOwner\n | SetBoardBoardStyleBackgroundColor\n | SetBoardBoardStyleBackgroundImageURL\n | SetBoardBoardStyle\n | SetBoardIndexedBySearchEngines\n | RemoveCard\n | MoveCard\n | SetCardArchived\n | SetCardColor\n | CustomAddTask\n | CustomRemoveTask\n | SetTaskStatus\n | SetTaskAssignee\n | SetTaskDate\n | AddCard\n | PasteCard\n | CopyCard\n | SetCardNoteSafeHtml\n | SetCardNoteTitle\n | SetCardLinkURL\n | SetCardLinkTitle\n | SetCardLinkStyle\n | SetCardFileFileName\n | SetCardFileTitle\n | SetCardFileDisplay\n | SetCardFileBlob\n | SetCardFilePreviewImageBlob\n | AddComment\n | CustomRemoveComment\n | CustomAddBoardInvite\n | RemoveBoardInvite {\n return not_null(\n this.AddBoard ||\n this.CopyBoard ||\n this.AddPeopleBoard ||\n this.AddSystemBoard ||\n this.RemoveBoard ||\n this.SetBoardName ||\n this.CustomAddBoardACL ||\n this.CustomRemoveBoardACL ||\n this.CustomSetBoardACLAccessLevel ||\n this.CustomSetBoardOwner ||\n this.SetBoardBoardStyleBackgroundColor ||\n this.SetBoardBoardStyleBackgroundImageURL ||\n this.SetBoardBoardStyle ||\n this.SetBoardIndexedBySearchEngines ||\n this.RemoveCard ||\n this.MoveCard ||\n this.SetCardArchived ||\n this.SetCardColor ||\n this.CustomAddTask ||\n this.CustomRemoveTask ||\n this.SetTaskStatus ||\n this.SetTaskAssignee ||\n this.SetTaskDate ||\n this.AddCard ||\n this.PasteCard ||\n this.CopyCard ||\n this.SetCardNoteSafeHtml ||\n this.SetCardNoteTitle ||\n this.SetCardLinkURL ||\n this.SetCardLinkTitle ||\n this.SetCardLinkStyle ||\n this.SetCardFileFileName ||\n this.SetCardFileTitle ||\n this.SetCardFileDisplay ||\n this.SetCardFileBlob ||\n this.SetCardFilePreviewImageBlob ||\n this.AddComment ||\n this.CustomRemoveComment ||\n this.CustomAddBoardInvite ||\n this.RemoveBoardInvite,\n )\n }\n\n public verify() {\n assert(\n [\n this.AddBoard,\n this.CopyBoard,\n this.AddPeopleBoard,\n this.AddSystemBoard,\n this.RemoveBoard,\n this.SetBoardName,\n this.CustomAddBoardACL,\n this.CustomRemoveBoardACL,\n this.CustomSetBoardACLAccessLevel,\n this.CustomSetBoardOwner,\n this.SetBoardBoardStyleBackgroundColor,\n this.SetBoardBoardStyleBackgroundImageURL,\n this.SetBoardBoardStyle,\n this.SetBoardIndexedBySearchEngines,\n this.RemoveCard,\n this.MoveCard,\n this.SetCardArchived,\n this.SetCardColor,\n this.CustomAddTask,\n this.CustomRemoveTask,\n this.SetTaskStatus,\n this.SetTaskAssignee,\n this.SetTaskDate,\n this.AddCard,\n this.PasteCard,\n this.CopyCard,\n this.SetCardNoteSafeHtml,\n this.SetCardNoteTitle,\n this.SetCardLinkURL,\n this.SetCardLinkTitle,\n this.SetCardLinkStyle,\n this.SetCardFileFileName,\n this.SetCardFileTitle,\n this.SetCardFileDisplay,\n this.SetCardFileBlob,\n this.SetCardFilePreviewImageBlob,\n this.AddComment,\n this.CustomRemoveComment,\n this.CustomAddBoardInvite,\n this.RemoveBoardInvite,\n ].filter((x) => !!x).length === 1,\n \"Exactly one of [`AddBoard`, `CopyBoard`, `AddPeopleBoard`, `AddSystemBoard`, `RemoveBoard`, `SetBoardName`, `CustomAddBoardACL`, `CustomRemoveBoardACL`, `CustomSetBoardACLAccessLevel`, `CustomSetBoardOwner`, `SetBoardBoardStyleBackgroundColor`, `SetBoardBoardStyleBackgroundImageURL`, `SetBoardBoardStyle`, `SetBoardIndexedBySearchEngines`, `RemoveCard`, `MoveCard`, `SetCardArchived`, `SetCardColor`, `CustomAddTask`, `CustomRemoveTask`, `SetTaskStatus`, `SetTaskAssignee`, `SetTaskDate`, `AddCard`, `PasteCard`, `CopyCard`, `SetCardNoteSafeHtml`, `SetCardNoteTitle`, `SetCardLinkURL`, `SetCardLinkTitle`, `SetCardLinkStyle`, `SetCardFileFileName`, `SetCardFileTitle`, `SetCardFileDisplay`, `SetCardFileBlob`, `SetCardFilePreviewImageBlob`, `AddComment`, `CustomRemoveComment`, `CustomAddBoardInvite`, `RemoveBoardInvite`] required\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.AddBoard) pbf_writeMessage(1, this.AddBoard, pbf)\n if (this.CopyBoard) pbf_writeMessage(48, this.CopyBoard, pbf)\n if (this.AddPeopleBoard) pbf_writeMessage(38, this.AddPeopleBoard, pbf)\n if (this.AddSystemBoard) pbf_writeMessage(2, this.AddSystemBoard, pbf)\n if (this.RemoveBoard) pbf_writeMessage(3, this.RemoveBoard, pbf)\n if (this.SetBoardName) pbf_writeMessage(4, this.SetBoardName, pbf)\n if (this.CustomAddBoardACL) pbf_writeMessage(5, this.CustomAddBoardACL, pbf)\n if (this.CustomRemoveBoardACL) pbf_writeMessage(6, this.CustomRemoveBoardACL, pbf)\n if (this.CustomSetBoardACLAccessLevel)\n pbf_writeMessage(37, this.CustomSetBoardACLAccessLevel, pbf)\n if (this.CustomSetBoardOwner) pbf_writeMessage(41, this.CustomSetBoardOwner, pbf)\n if (this.SetBoardBoardStyleBackgroundColor)\n pbf_writeMessage(7, this.SetBoardBoardStyleBackgroundColor, pbf)\n if (this.SetBoardBoardStyleBackgroundImageURL)\n pbf_writeMessage(8, this.SetBoardBoardStyleBackgroundImageURL, pbf)\n if (this.SetBoardBoardStyle) pbf_writeMessage(36, this.SetBoardBoardStyle, pbf)\n if (this.SetBoardIndexedBySearchEngines)\n pbf_writeMessage(49, this.SetBoardIndexedBySearchEngines, pbf)\n if (this.RemoveCard) pbf_writeMessage(9, this.RemoveCard, pbf)\n if (this.MoveCard) pbf_writeMessage(10, this.MoveCard, pbf)\n if (this.SetCardArchived) pbf_writeMessage(11, this.SetCardArchived, pbf)\n if (this.SetCardColor) pbf_writeMessage(12, this.SetCardColor, pbf)\n if (this.CustomAddTask) pbf_writeMessage(34, this.CustomAddTask, pbf)\n if (this.CustomRemoveTask) pbf_writeMessage(35, this.CustomRemoveTask, pbf)\n if (this.SetTaskStatus) pbf_writeMessage(13, this.SetTaskStatus, pbf)\n if (this.SetTaskAssignee) pbf_writeMessage(33, this.SetTaskAssignee, pbf)\n if (this.SetTaskDate) pbf_writeMessage(40, this.SetTaskDate, pbf)\n if (this.AddCard) pbf_writeMessage(17, this.AddCard, pbf)\n if (this.PasteCard) pbf_writeMessage(18, this.PasteCard, pbf)\n if (this.CopyCard) pbf_writeMessage(39, this.CopyCard, pbf)\n if (this.SetCardNoteSafeHtml) pbf_writeMessage(20, this.SetCardNoteSafeHtml, pbf)\n if (this.SetCardNoteTitle) pbf_writeMessage(21, this.SetCardNoteTitle, pbf)\n if (this.SetCardLinkURL) pbf_writeMessage(22, this.SetCardLinkURL, pbf)\n if (this.SetCardLinkTitle) pbf_writeMessage(23, this.SetCardLinkTitle, pbf)\n if (this.SetCardLinkStyle) pbf_writeMessage(43, this.SetCardLinkStyle, pbf)\n if (this.SetCardFileFileName) pbf_writeMessage(24, this.SetCardFileFileName, pbf)\n if (this.SetCardFileTitle) pbf_writeMessage(44, this.SetCardFileTitle, pbf)\n if (this.SetCardFileDisplay) pbf_writeMessage(45, this.SetCardFileDisplay, pbf)\n if (this.SetCardFileBlob) pbf_writeMessage(46, this.SetCardFileBlob, pbf)\n if (this.SetCardFilePreviewImageBlob)\n pbf_writeMessage(47, this.SetCardFilePreviewImageBlob, pbf)\n if (this.AddComment) pbf_writeMessage(30, this.AddComment, pbf)\n if (this.CustomRemoveComment) pbf_writeMessage(42, this.CustomRemoveComment, pbf)\n if (this.CustomAddBoardInvite) pbf_writeMessage(31, this.CustomAddBoardInvite, pbf)\n if (this.RemoveBoardInvite) pbf_writeMessage(32, this.RemoveBoardInvite, pbf)\n }\n}\n\nexport type BlobUIDMappingStruct = {\n src: BlobUID\n target: BlobUID\n}\n\nexport class BlobUIDMapping {\n static _from_pb(pbf: any): BlobUIDMapping {\n const o = BlobUIDMapping._from_pb_init()\n pbf.readFields(BlobUIDMapping._from_pb_fields, o)\n return new BlobUIDMapping({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.src = pbf.readString()\n return\n }\n case 2: {\n o.target = pbf.readString()\n return\n }\n }\n }\n\n src: BlobUID\n target: BlobUID\n\n constructor(args: {src: BlobUID; target: BlobUID}) {\n this.src = args.src\n this.target = args.target\n makeObservable(this, {src: observable, target: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.src, \"`src` required\")\n assert(is_BlobUID(this.src), \"`src` is not of type BlobUID\")\n assert(this.target, \"`target` required\")\n assert(is_BlobUID(this.target), \"`target` is not of type BlobUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.src) pbf.writeStringField(1, this.src, pbf)\n if (this.target) pbf.writeStringField(2, this.target, pbf)\n }\n}\n\nexport type PatchStruct = {\n uid: PatchUID\n created_by: AccountUID\n applied_at: Date\n board_uid: BoardUID\n ops: Array<PatchOpContainerStruct>\n blob_uid_mapping: Array<BlobUIDMappingStruct>\n}\n\nexport class Patch extends _Patch {\n static _from_pb(pbf: any): Patch {\n const o = Patch._from_pb_init()\n pbf.readFields(Patch._from_pb_fields, o)\n return new Patch({...(o as any)})\n }\n\n static _from_pb_init() {\n return {ops: [], blob_uid_mapping: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.created_by = pbf.readString()\n return\n }\n case 3: {\n o.applied_at = new Date(pbf.readVarint() / 1000)\n return\n }\n case 4: {\n o.board_uid = pbf.readString()\n return\n }\n case 5: {\n o.ops.push(pbf_readMessage(PatchOpContainer, pbf))\n return\n }\n case 6: {\n o.blob_uid_mapping.push(pbf_readMessage(BlobUIDMapping, pbf))\n return\n }\n }\n }\n\n uid: PatchUID\n created_by: AccountUID\n applied_at: Date\n board_uid: BoardUID\n ops: Array<PatchOpContainer>\n blob_uid_mapping: Array<BlobUIDMapping>\n\n constructor(args: {\n uid: PatchUID\n created_by: AccountUID\n applied_at: Date\n board_uid: BoardUID\n ops: Array<PatchOpContainer>\n blob_uid_mapping?: Array<BlobUIDMapping>\n }) {\n super()\n this.uid = args.uid\n this.created_by = args.created_by\n this.applied_at = args.applied_at\n this.board_uid = args.board_uid\n this.ops = (args.ops || []).slice()\n this.blob_uid_mapping = (args.blob_uid_mapping || []).slice()\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_PatchUID(this.uid), \"`uid` is not of type PatchUID\")\n assert(this.created_by, \"`created_by` required\")\n assert(is_AccountUID(this.created_by), \"`created_by` is not of type AccountUID\")\n assert(this.applied_at, \"`applied_at` required\")\n assert(this.board_uid, \"`board_uid` required\")\n assert(is_BoardUID(this.board_uid), \"`board_uid` is not of type BoardUID\")\n assert(this.ops, \"`ops` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.created_by) pbf.writeStringField(2, this.created_by, pbf)\n if (this.applied_at) pbf.writeVarintField(3, this.applied_at.getTime() * 1000, pbf)\n if (this.board_uid) pbf.writeStringField(4, this.board_uid, pbf)\n if (this.ops)\n for (let i = 0; i < this.ops.length; i++) {\n pbf_writeMessage(5, this.ops[i], pbf)\n }\n if (this.blob_uid_mapping)\n for (let i = 0; i < this.blob_uid_mapping.length; i++) {\n pbf_writeMessage(6, this.blob_uid_mapping[i], pbf)\n }\n }\n}\n\nexport type CallFunctionErrorResponseStruct = {\n cling_error_code: ClingErrorCode\n message: string\n uids: Array<UID>\n}\n\nexport class CallFunctionErrorResponse {\n static _from_pb(pbf: any): CallFunctionErrorResponse {\n const o = CallFunctionErrorResponse._from_pb_init()\n pbf.readFields(CallFunctionErrorResponse._from_pb_fields, o)\n return new CallFunctionErrorResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {uids: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.cling_error_code = pbf.readVarint()\n return\n }\n case 2: {\n o.message = pbf.readString()\n return\n }\n case 3: {\n o.uids.push(pbf.readString())\n return\n }\n }\n }\n\n cling_error_code: ClingErrorCode\n message: string\n uids: Array<UID>\n\n constructor(args: {cling_error_code: ClingErrorCode; message?: string; uids?: Array<UID>}) {\n this.cling_error_code = args.cling_error_code || (0 as any)\n this.message = args.message || \"\"\n this.uids = (args.uids || []).slice()\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.cling_error_code, \"`cling_error_code` required\")\n const i_uids = this.uids.findIndex((x) => !is_UID(x))\n assert(\n i_uids < 0,\n () => \"`this.uids` contains invalid item: \" + JSON.stringify(this.uids[i_uids]),\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.cling_error_code) pbf.writeVarintField(1, this.cling_error_code, pbf)\n if (this.message) pbf.writeStringField(2, this.message, pbf)\n if (this.uids)\n for (let i = 0; i < this.uids.length; i++) {\n pbf.writeStringField(3, this.uids[i])\n }\n }\n}\n\nexport type QueryUserMetaRequestStruct = {}\n\nexport class QueryUserMetaRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): QueryUserMetaRequest {\n const o = QueryUserMetaRequest._from_pb_init()\n pbf.readFields(QueryUserMetaRequest._from_pb_fields, o)\n return new QueryUserMetaRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n }\n }\n\n constructor(args: {}) {\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {}\n}\n\nexport type QueryUserMetaResponseStruct = {\n currency: string\n}\n\nexport class QueryUserMetaResponse {\n static _from_pb(pbf: any): QueryUserMetaResponse {\n const o = QueryUserMetaResponse._from_pb_init()\n pbf.readFields(QueryUserMetaResponse._from_pb_fields, o)\n return new QueryUserMetaResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 2: {\n o.currency = pbf.readString()\n return\n }\n }\n }\n\n currency: string\n\n constructor(args: {currency?: string}) {\n this.currency = args.currency || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.currency) pbf.writeStringField(2, this.currency, pbf)\n }\n}\n\nexport type QueryAccountAnalyticsRequestStruct = {\n account_uids: Array<AccountUID>\n}\n\nexport class QueryAccountAnalyticsRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): QueryAccountAnalyticsRequest {\n const o = QueryAccountAnalyticsRequest._from_pb_init()\n pbf.readFields(QueryAccountAnalyticsRequest._from_pb_fields, o)\n return new QueryAccountAnalyticsRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {account_uids: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 2: {\n o.account_uids.push(pbf.readString())\n return\n }\n }\n }\n\n account_uids: Array<AccountUID>\n\n constructor(args: {account_uids: Array<AccountUID>}) {\n this.account_uids = (args.account_uids || []).slice()\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.account_uids, \"`account_uids` required\")\n const i_account_uids = this.account_uids.findIndex((x) => !is_AccountUID(x))\n assert(\n i_account_uids < 0,\n () =>\n \"`this.account_uids` contains invalid item: \" +\n JSON.stringify(this.account_uids[i_account_uids]),\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.account_uids)\n for (let i = 0; i < this.account_uids.length; i++) {\n pbf.writeStringField(2, this.account_uids[i])\n }\n }\n}\n\nexport type QueryAccountAnalyticsResponseStruct = {\n account_analytics: Array<AccountAnalyticsStruct>\n}\n\nexport class QueryAccountAnalyticsResponse {\n static _from_pb(pbf: any): QueryAccountAnalyticsResponse {\n const o = QueryAccountAnalyticsResponse._from_pb_init()\n pbf.readFields(QueryAccountAnalyticsResponse._from_pb_fields, o)\n return new QueryAccountAnalyticsResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {account_analytics: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.account_analytics.push(pbf_readMessage(AccountAnalytics, pbf))\n return\n }\n }\n }\n\n account_analytics: Array<AccountAnalytics>\n\n constructor(args: {account_analytics: Array<AccountAnalytics>}) {\n this.account_analytics = (args.account_analytics || []).slice()\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.account_analytics, \"`account_analytics` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.account_analytics)\n for (let i = 0; i < this.account_analytics.length; i++) {\n pbf_writeMessage(1, this.account_analytics[i], pbf)\n }\n }\n}\n\nexport type QueryOrganizationRequestStruct = {\n organization_uid: OrganizationUID | undefined\n chargebee_id: string\n with_member_count: boolean\n return_if_gone: boolean\n}\n\nexport class QueryOrganizationRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): QueryOrganizationRequest {\n const o = QueryOrganizationRequest._from_pb_init()\n pbf.readFields(QueryOrganizationRequest._from_pb_fields, o)\n return new QueryOrganizationRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.organization_uid = pbf.readString()\n return\n }\n case 2: {\n o.chargebee_id = pbf.readString()\n return\n }\n case 3: {\n o.with_member_count = pbf.readBoolean()\n return\n }\n case 4: {\n o.return_if_gone = pbf.readBoolean()\n return\n }\n }\n }\n\n organization_uid: OrganizationUID | undefined\n chargebee_id: string\n with_member_count: boolean\n return_if_gone: boolean\n\n constructor(args: {\n organization_uid?: OrganizationUID\n chargebee_id?: string\n with_member_count?: boolean\n return_if_gone?: boolean\n }) {\n this.organization_uid = args.organization_uid\n this.chargebee_id = args.chargebee_id || \"\"\n this.with_member_count = args.with_member_count || false\n this.return_if_gone = args.return_if_gone || false\n makeObservable(this, {})\n this.verify()\n }\n\n public get kind(): OrganizationUID | string {\n return not_null(this.organization_uid || this.chargebee_id)\n }\n\n public verify() {\n assert(\n this.organization_uid == null || is_OrganizationUID(this.organization_uid),\n \"`organization_uid` is not of type OrganizationUID\",\n )\n assert(\n [this.organization_uid, this.chargebee_id].filter((x) => !!x).length === 1,\n \"Exactly one of [`organization_uid`, `chargebee_id`] required\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.organization_uid) pbf.writeStringField(1, this.organization_uid, pbf)\n if (this.chargebee_id) pbf.writeStringField(2, this.chargebee_id, pbf)\n if (this.with_member_count) pbf.writeBooleanField(3, this.with_member_count, pbf)\n if (this.return_if_gone) pbf.writeBooleanField(4, this.return_if_gone, pbf)\n }\n}\n\nexport type QueryOrganizationResponseStruct = {\n organization: OrganizationStruct\n member_count: number\n}\n\nexport class QueryOrganizationResponse {\n static _from_pb(pbf: any): QueryOrganizationResponse {\n const o = QueryOrganizationResponse._from_pb_init()\n pbf.readFields(QueryOrganizationResponse._from_pb_fields, o)\n return new QueryOrganizationResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.organization = pbf_readMessage(Organization, pbf)\n return\n }\n case 2: {\n o.member_count = pbf.readVarint()\n return\n }\n }\n }\n\n organization: Organization\n member_count: number\n\n constructor(args: {organization: Organization; member_count?: number}) {\n this.organization = args.organization\n this.member_count = args.member_count || 0\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.organization, \"`organization` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.organization) pbf_writeMessage(1, this.organization, pbf)\n if (this.member_count) pbf.writeVarintField(2, this.member_count, pbf)\n }\n}\n\nexport type QueryOrganizationMemberRequestStruct = {\n account_uid: AccountUID\n}\n\nexport class QueryOrganizationMemberRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): QueryOrganizationMemberRequest {\n const o = QueryOrganizationMemberRequest._from_pb_init()\n pbf.readFields(QueryOrganizationMemberRequest._from_pb_fields, o)\n return new QueryOrganizationMemberRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.account_uid = pbf.readString()\n return\n }\n }\n }\n\n account_uid: AccountUID\n\n constructor(args: {account_uid: AccountUID}) {\n this.account_uid = args.account_uid\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.account_uid, \"`account_uid` required\")\n assert(is_AccountUID(this.account_uid), \"`account_uid` is not of type AccountUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.account_uid) pbf.writeStringField(1, this.account_uid, pbf)\n }\n}\n\nexport type QueryOrganizationMemberResponseStruct = {\n account: AccountStruct\n source_campaign: SourceCampaignStruct\n}\n\nexport class QueryOrganizationMemberResponse {\n static _from_pb(pbf: any): QueryOrganizationMemberResponse {\n const o = QueryOrganizationMemberResponse._from_pb_init()\n pbf.readFields(QueryOrganizationMemberResponse._from_pb_fields, o)\n return new QueryOrganizationMemberResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.account = pbf_readMessage(Account, pbf)\n return\n }\n case 2: {\n o.source_campaign = pbf_readMessage(SourceCampaign, pbf)\n return\n }\n }\n }\n\n account: Account\n source_campaign: SourceCampaign\n\n constructor(args: {account: Account; source_campaign: SourceCampaign}) {\n this.account = args.account\n this.source_campaign = args.source_campaign\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.account, \"`account` required\")\n assert(this.source_campaign, \"`source_campaign` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.account) pbf_writeMessage(1, this.account, pbf)\n if (this.source_campaign) pbf_writeMessage(2, this.source_campaign, pbf)\n }\n}\n\nexport type PatchOrganizationRequestStruct = {\n organization_uid: OrganizationUID\n patch: PatchOrganizationStruct\n}\n\nexport class PatchOrganizationRequest {\n static HTTP_METHOD = <const>\"PUT\"\n\n static _from_pb(pbf: any): PatchOrganizationRequest {\n const o = PatchOrganizationRequest._from_pb_init()\n pbf.readFields(PatchOrganizationRequest._from_pb_fields, o)\n return new PatchOrganizationRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.organization_uid = pbf.readString()\n return\n }\n case 2: {\n o.patch = pbf_readMessage(PatchOrganization, pbf)\n return\n }\n }\n }\n\n organization_uid: OrganizationUID\n patch: PatchOrganization\n\n constructor(args: {organization_uid: OrganizationUID; patch: PatchOrganization}) {\n this.organization_uid = args.organization_uid\n this.patch = args.patch\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.organization_uid, \"`organization_uid` required\")\n assert(\n is_OrganizationUID(this.organization_uid),\n \"`organization_uid` is not of type OrganizationUID\",\n )\n assert(this.patch, \"`patch` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.organization_uid) pbf.writeStringField(1, this.organization_uid, pbf)\n if (this.patch) pbf_writeMessage(2, this.patch, pbf)\n }\n}\n\nexport type PatchOrganizationResponseStruct = {\n organization: OrganizationStruct | undefined\n}\n\nexport class PatchOrganizationResponse {\n static _from_pb(pbf: any): PatchOrganizationResponse {\n const o = PatchOrganizationResponse._from_pb_init()\n pbf.readFields(PatchOrganizationResponse._from_pb_fields, o)\n return new PatchOrganizationResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.organization = pbf_readMessage(Organization, pbf)\n return\n }\n }\n }\n\n organization: Organization | undefined\n\n constructor(args: {organization?: Organization}) {\n this.organization = args.organization\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.organization) pbf_writeMessage(1, this.organization, pbf)\n }\n}\n\nexport type PatchTeamRequestStruct = {\n team_uid: TeamUID\n patch: PatchTeamStruct\n}\n\nexport class PatchTeamRequest {\n static HTTP_METHOD = <const>\"PUT\"\n\n static _from_pb(pbf: any): PatchTeamRequest {\n const o = PatchTeamRequest._from_pb_init()\n pbf.readFields(PatchTeamRequest._from_pb_fields, o)\n return new PatchTeamRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.team_uid = pbf.readString()\n return\n }\n case 2: {\n o.patch = pbf_readMessage(PatchTeam, pbf)\n return\n }\n }\n }\n\n team_uid: TeamUID\n patch: PatchTeam\n\n constructor(args: {team_uid: TeamUID; patch: PatchTeam}) {\n this.team_uid = args.team_uid\n this.patch = args.patch\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.team_uid, \"`team_uid` required\")\n assert(is_TeamUID(this.team_uid), \"`team_uid` is not of type TeamUID\")\n assert(this.patch, \"`patch` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.team_uid) pbf.writeStringField(1, this.team_uid, pbf)\n if (this.patch) pbf_writeMessage(2, this.patch, pbf)\n }\n}\n\nexport type PatchTeamResponseStruct = {\n team: TeamStruct | undefined\n}\n\nexport class PatchTeamResponse {\n static _from_pb(pbf: any): PatchTeamResponse {\n const o = PatchTeamResponse._from_pb_init()\n pbf.readFields(PatchTeamResponse._from_pb_fields, o)\n return new PatchTeamResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.team = pbf_readMessage(Team, pbf)\n return\n }\n }\n }\n\n team: Team | undefined\n\n constructor(args: {team?: Team}) {\n this.team = args.team\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.team) pbf_writeMessage(1, this.team, pbf)\n }\n}\n\nexport type PatchTeamCodeRequestStruct = {\n team_code_uid: TeamCodeUID\n patch: PatchTeamCodeStruct\n}\n\nexport class PatchTeamCodeRequest {\n static HTTP_METHOD = <const>\"PUT\"\n\n static _from_pb(pbf: any): PatchTeamCodeRequest {\n const o = PatchTeamCodeRequest._from_pb_init()\n pbf.readFields(PatchTeamCodeRequest._from_pb_fields, o)\n return new PatchTeamCodeRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.team_code_uid = pbf.readString()\n return\n }\n case 2: {\n o.patch = pbf_readMessage(PatchTeamCode, pbf)\n return\n }\n }\n }\n\n team_code_uid: TeamCodeUID\n patch: PatchTeamCode\n\n constructor(args: {team_code_uid: TeamCodeUID; patch: PatchTeamCode}) {\n this.team_code_uid = args.team_code_uid\n this.patch = args.patch\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.team_code_uid, \"`team_code_uid` required\")\n assert(is_TeamCodeUID(this.team_code_uid), \"`team_code_uid` is not of type TeamCodeUID\")\n assert(this.patch, \"`patch` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.team_code_uid) pbf.writeStringField(1, this.team_code_uid, pbf)\n if (this.patch) pbf_writeMessage(2, this.patch, pbf)\n }\n}\n\nexport type PatchTeamCodeResponseStruct = {\n team_code: TeamCodeStruct | undefined\n}\n\nexport class PatchTeamCodeResponse {\n static _from_pb(pbf: any): PatchTeamCodeResponse {\n const o = PatchTeamCodeResponse._from_pb_init()\n pbf.readFields(PatchTeamCodeResponse._from_pb_fields, o)\n return new PatchTeamCodeResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.team_code = pbf_readMessage(TeamCode, pbf)\n return\n }\n }\n }\n\n team_code: TeamCode | undefined\n\n constructor(args: {team_code?: TeamCode}) {\n this.team_code = args.team_code\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.team_code) pbf_writeMessage(1, this.team_code, pbf)\n }\n}\n\nexport type QueryTeamCodesRequestStruct = {\n team_code_uid: TeamCodeUID | undefined\n organization_uid: OrganizationUID | undefined\n}\n\nexport class QueryTeamCodesRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): QueryTeamCodesRequest {\n const o = QueryTeamCodesRequest._from_pb_init()\n pbf.readFields(QueryTeamCodesRequest._from_pb_fields, o)\n return new QueryTeamCodesRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.team_code_uid = pbf.readString()\n return\n }\n case 2: {\n o.organization_uid = pbf.readString()\n return\n }\n }\n }\n\n team_code_uid: TeamCodeUID | undefined\n organization_uid: OrganizationUID | undefined\n\n constructor(args: {team_code_uid?: TeamCodeUID; organization_uid?: OrganizationUID}) {\n this.team_code_uid = args.team_code_uid\n this.organization_uid = args.organization_uid\n makeObservable(this, {})\n this.verify()\n }\n\n public get query(): TeamCodeUID | OrganizationUID {\n return not_null(this.team_code_uid || this.organization_uid)\n }\n\n public verify() {\n assert(\n this.team_code_uid == null || is_TeamCodeUID(this.team_code_uid),\n \"`team_code_uid` is not of type TeamCodeUID\",\n )\n assert(\n this.organization_uid == null || is_OrganizationUID(this.organization_uid),\n \"`organization_uid` is not of type OrganizationUID\",\n )\n assert(\n [this.team_code_uid, this.organization_uid].filter((x) => !!x).length === 1,\n \"Exactly one of [`team_code_uid`, `organization_uid`] required\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.team_code_uid) pbf.writeStringField(1, this.team_code_uid, pbf)\n if (this.organization_uid) pbf.writeStringField(2, this.organization_uid, pbf)\n }\n}\n\nexport type QueryTeamCodesResponseStruct = {\n team_codes: Array<TeamCodeStruct>\n}\n\nexport class QueryTeamCodesResponse {\n static _from_pb(pbf: any): QueryTeamCodesResponse {\n const o = QueryTeamCodesResponse._from_pb_init()\n pbf.readFields(QueryTeamCodesResponse._from_pb_fields, o)\n return new QueryTeamCodesResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {team_codes: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.team_codes.push(pbf_readMessage(TeamCode, pbf))\n return\n }\n }\n }\n\n team_codes: Array<TeamCode>\n\n constructor(args: {team_codes: Array<TeamCode>}) {\n this.team_codes = (args.team_codes || []).slice()\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.team_codes, \"`team_codes` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.team_codes)\n for (let i = 0; i < this.team_codes.length; i++) {\n pbf_writeMessage(1, this.team_codes[i], pbf)\n }\n }\n}\n\nexport type QueryTeamsRequestStruct = {\n team_uids: Array<TeamUID>\n with_team_member_account_uids: boolean\n with_team_member_accounts: boolean\n ignore_inaccessible_team_members: boolean\n}\n\nexport class QueryTeamsRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): QueryTeamsRequest {\n const o = QueryTeamsRequest._from_pb_init()\n pbf.readFields(QueryTeamsRequest._from_pb_fields, o)\n return new QueryTeamsRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {team_uids: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.team_uids.push(pbf.readString())\n return\n }\n case 3: {\n o.with_team_member_account_uids = pbf.readBoolean()\n return\n }\n case 4: {\n o.with_team_member_accounts = pbf.readBoolean()\n return\n }\n case 5: {\n o.ignore_inaccessible_team_members = pbf.readBoolean()\n return\n }\n }\n }\n\n team_uids: Array<TeamUID>\n with_team_member_account_uids: boolean\n with_team_member_accounts: boolean\n ignore_inaccessible_team_members: boolean\n\n constructor(args: {\n team_uids: Array<TeamUID>\n with_team_member_account_uids?: boolean\n with_team_member_accounts?: boolean\n ignore_inaccessible_team_members?: boolean\n }) {\n this.team_uids = (args.team_uids || []).slice()\n this.with_team_member_account_uids = args.with_team_member_account_uids || false\n this.with_team_member_accounts = args.with_team_member_accounts || false\n this.ignore_inaccessible_team_members = args.ignore_inaccessible_team_members || false\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.team_uids, \"`team_uids` required\")\n const i_team_uids = this.team_uids.findIndex((x) => !is_TeamUID(x))\n assert(\n i_team_uids < 0,\n () =>\n \"`this.team_uids` contains invalid item: \" +\n JSON.stringify(this.team_uids[i_team_uids]),\n )\n limits.LIMIT_GET_ITEMS_10.check(this.team_uids ? this.team_uids.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.team_uids)\n for (let i = 0; i < this.team_uids.length; i++) {\n pbf.writeStringField(1, this.team_uids[i])\n }\n if (this.with_team_member_account_uids)\n pbf.writeBooleanField(3, this.with_team_member_account_uids, pbf)\n if (this.with_team_member_accounts)\n pbf.writeBooleanField(4, this.with_team_member_accounts, pbf)\n if (this.ignore_inaccessible_team_members)\n pbf.writeBooleanField(5, this.ignore_inaccessible_team_members, pbf)\n }\n}\n\nexport type QueryTeamsResponseTeamMembersStruct = {\n team_uid: TeamUID\n account_uids: Array<AccountUID>\n accounts: Array<AccountStruct>\n}\n\nexport class QueryTeamsResponseTeamMembers {\n static _from_pb(pbf: any): QueryTeamsResponseTeamMembers {\n const o = QueryTeamsResponseTeamMembers._from_pb_init()\n pbf.readFields(QueryTeamsResponseTeamMembers._from_pb_fields, o)\n return new QueryTeamsResponseTeamMembers({...(o as any)})\n }\n\n static _from_pb_init() {\n return {account_uids: [], accounts: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.team_uid = pbf.readString()\n return\n }\n case 2: {\n o.account_uids.push(pbf.readString())\n return\n }\n case 3: {\n o.accounts.push(pbf_readMessage(Account, pbf))\n return\n }\n }\n }\n\n team_uid: TeamUID\n account_uids: Array<AccountUID>\n accounts: Array<Account>\n\n constructor(args: {\n team_uid: TeamUID\n account_uids?: Array<AccountUID>\n accounts?: Array<Account>\n }) {\n this.team_uid = args.team_uid\n this.account_uids = (args.account_uids || []).slice()\n this.accounts = (args.accounts || []).slice()\n makeObservable(this, {team_uid: observable, account_uids: observable, accounts: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.team_uid, \"`team_uid` required\")\n assert(is_TeamUID(this.team_uid), \"`team_uid` is not of type TeamUID\")\n const i_account_uids = this.account_uids.findIndex((x) => !is_AccountUID(x))\n assert(\n i_account_uids < 0,\n () =>\n \"`this.account_uids` contains invalid item: \" +\n JSON.stringify(this.account_uids[i_account_uids]),\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.team_uid) pbf.writeStringField(1, this.team_uid, pbf)\n if (this.account_uids)\n for (let i = 0; i < this.account_uids.length; i++) {\n pbf.writeStringField(2, this.account_uids[i])\n }\n if (this.accounts)\n for (let i = 0; i < this.accounts.length; i++) {\n pbf_writeMessage(3, this.accounts[i], pbf)\n }\n }\n}\n\nexport type _QueryTeamsResponseTeamMembersBinaryStruct = {\n team_uid: TeamUID\n account_uids: Array<AccountUID>\n accounts: Array<Uint8Array>\n}\n\nexport class _QueryTeamsResponseTeamMembersBinary {\n static _from_pb(pbf: any): _QueryTeamsResponseTeamMembersBinary {\n const o = _QueryTeamsResponseTeamMembersBinary._from_pb_init()\n pbf.readFields(_QueryTeamsResponseTeamMembersBinary._from_pb_fields, o)\n return new _QueryTeamsResponseTeamMembersBinary({...(o as any)})\n }\n\n static _from_pb_init() {\n return {account_uids: [], accounts: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.team_uid = pbf.readString()\n return\n }\n case 2: {\n o.account_uids.push(pbf.readString())\n return\n }\n case 3: {\n o.accounts.push(pbf.readBytes())\n return\n }\n }\n }\n\n team_uid: TeamUID\n account_uids: Array<AccountUID>\n accounts: Array<Uint8Array>\n\n constructor(args: {\n team_uid: TeamUID\n account_uids?: Array<AccountUID>\n accounts?: Array<Uint8Array>\n }) {\n this.team_uid = args.team_uid\n this.account_uids = (args.account_uids || []).slice()\n this.accounts = (args.accounts || []).slice()\n makeObservable(this, {team_uid: observable, account_uids: observable, accounts: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.team_uid, \"`team_uid` required\")\n assert(is_TeamUID(this.team_uid), \"`team_uid` is not of type TeamUID\")\n const i_account_uids = this.account_uids.findIndex((x) => !is_AccountUID(x))\n assert(\n i_account_uids < 0,\n () =>\n \"`this.account_uids` contains invalid item: \" +\n JSON.stringify(this.account_uids[i_account_uids]),\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.team_uid) pbf.writeStringField(1, this.team_uid, pbf)\n if (this.account_uids)\n for (let i = 0; i < this.account_uids.length; i++) {\n pbf.writeStringField(2, this.account_uids[i])\n }\n if (this.accounts)\n for (let i = 0; i < this.accounts.length; i++) {\n pbf.writeBytesField(3, this.accounts[i])\n }\n }\n}\n\nexport type QueryTeamsResponseStruct = {\n teams: Array<TeamStruct>\n team_members: Array<QueryTeamsResponseTeamMembersStruct>\n}\n\nexport class QueryTeamsResponse {\n static _from_pb(pbf: any): QueryTeamsResponse {\n const o = QueryTeamsResponse._from_pb_init()\n pbf.readFields(QueryTeamsResponse._from_pb_fields, o)\n return new QueryTeamsResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {teams: [], team_members: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.teams.push(pbf_readMessage(Team, pbf))\n return\n }\n case 2: {\n o.team_members.push(pbf_readMessage(QueryTeamsResponseTeamMembers, pbf))\n return\n }\n }\n }\n\n teams: Array<Team>\n team_members: Array<QueryTeamsResponseTeamMembers>\n\n constructor(args: {teams: Array<Team>; team_members?: Array<QueryTeamsResponseTeamMembers>}) {\n this.teams = (args.teams || []).slice()\n this.team_members = (args.team_members || []).slice()\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.teams, \"`teams` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.teams)\n for (let i = 0; i < this.teams.length; i++) {\n pbf_writeMessage(1, this.teams[i], pbf)\n }\n if (this.team_members)\n for (let i = 0; i < this.team_members.length; i++) {\n pbf_writeMessage(2, this.team_members[i], pbf)\n }\n }\n}\n\nexport type _QueryTeamsResponseBinaryStruct = {\n teams: Array<Uint8Array>\n team_members: Array<_QueryTeamsResponseTeamMembersBinaryStruct>\n}\n\nexport class _QueryTeamsResponseBinary {\n static _from_pb(pbf: any): _QueryTeamsResponseBinary {\n const o = _QueryTeamsResponseBinary._from_pb_init()\n pbf.readFields(_QueryTeamsResponseBinary._from_pb_fields, o)\n return new _QueryTeamsResponseBinary({...(o as any)})\n }\n\n static _from_pb_init() {\n return {teams: [], team_members: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.teams.push(pbf.readBytes())\n return\n }\n case 2: {\n o.team_members.push(pbf_readMessage(_QueryTeamsResponseTeamMembersBinary, pbf))\n return\n }\n }\n }\n\n teams: Array<Uint8Array>\n team_members: Array<_QueryTeamsResponseTeamMembersBinary>\n\n constructor(args: {\n teams?: Array<Uint8Array>\n team_members?: Array<_QueryTeamsResponseTeamMembersBinary>\n }) {\n this.teams = (args.teams || []).slice()\n this.team_members = (args.team_members || []).slice()\n makeObservable(this, {teams: observable, team_members: observable})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.teams)\n for (let i = 0; i < this.teams.length; i++) {\n pbf.writeBytesField(1, this.teams[i])\n }\n if (this.team_members)\n for (let i = 0; i < this.team_members.length; i++) {\n pbf_writeMessage(2, this.team_members[i], pbf)\n }\n }\n}\n\nexport type QueryFullAccountsRequestStruct = {\n principal_uids: Array<PrincipalUID>\n chargebee_ids: Array<string>\n emails: Array<string>\n with_account_uids: boolean\n with_account: boolean\n with_account_auth: boolean\n with_account_attributes: boolean\n with_account_settings: boolean\n ignore_missing: boolean\n}\n\nexport class QueryFullAccountsRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): QueryFullAccountsRequest {\n const o = QueryFullAccountsRequest._from_pb_init()\n pbf.readFields(QueryFullAccountsRequest._from_pb_fields, o)\n return new QueryFullAccountsRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {principal_uids: [], chargebee_ids: [], emails: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.principal_uids.push(pbf.readString())\n return\n }\n case 7: {\n o.chargebee_ids.push(pbf.readString())\n return\n }\n case 8: {\n o.emails.push(pbf.readString())\n return\n }\n case 9: {\n o.with_account_uids = pbf.readBoolean()\n return\n }\n case 2: {\n o.with_account = pbf.readBoolean()\n return\n }\n case 3: {\n o.with_account_auth = pbf.readBoolean()\n return\n }\n case 4: {\n o.with_account_attributes = pbf.readBoolean()\n return\n }\n case 5: {\n o.with_account_settings = pbf.readBoolean()\n return\n }\n case 6: {\n o.ignore_missing = pbf.readBoolean()\n return\n }\n }\n }\n\n principal_uids: Array<PrincipalUID>\n chargebee_ids: Array<string>\n emails: Array<string>\n with_account_uids: boolean\n with_account: boolean\n with_account_auth: boolean\n with_account_attributes: boolean\n with_account_settings: boolean\n ignore_missing: boolean\n\n constructor(args: {\n principal_uids?: Array<PrincipalUID>\n chargebee_ids?: Array<string>\n emails?: Array<string>\n with_account_uids?: boolean\n with_account?: boolean\n with_account_auth?: boolean\n with_account_attributes?: boolean\n with_account_settings?: boolean\n ignore_missing?: boolean\n }) {\n this.principal_uids = (args.principal_uids || []).slice()\n this.chargebee_ids = (args.chargebee_ids || []).slice()\n this.emails = (args.emails || []).slice()\n this.with_account_uids = args.with_account_uids || false\n this.with_account = args.with_account || false\n this.with_account_auth = args.with_account_auth || false\n this.with_account_attributes = args.with_account_attributes || false\n this.with_account_settings = args.with_account_settings || false\n this.ignore_missing = args.ignore_missing || false\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n const i_principal_uids = this.principal_uids.findIndex((x) => !is_PrincipalUID(x))\n assert(\n i_principal_uids < 0,\n () =>\n \"`this.principal_uids` contains invalid item: \" +\n JSON.stringify(this.principal_uids[i_principal_uids]),\n )\n limits.LIMIT_GET_ITEMS_100.check(this.principal_uids ? this.principal_uids.length : 0)\n limits.LIMIT_GET_ITEMS_100.check(this.chargebee_ids ? this.chargebee_ids.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.principal_uids)\n for (let i = 0; i < this.principal_uids.length; i++) {\n pbf.writeStringField(1, this.principal_uids[i])\n }\n if (this.chargebee_ids)\n for (let i = 0; i < this.chargebee_ids.length; i++) {\n pbf.writeStringField(7, this.chargebee_ids[i])\n }\n if (this.emails)\n for (let i = 0; i < this.emails.length; i++) {\n pbf.writeStringField(8, this.emails[i])\n }\n if (this.with_account_uids) pbf.writeBooleanField(9, this.with_account_uids, pbf)\n if (this.with_account) pbf.writeBooleanField(2, this.with_account, pbf)\n if (this.with_account_auth) pbf.writeBooleanField(3, this.with_account_auth, pbf)\n if (this.with_account_attributes)\n pbf.writeBooleanField(4, this.with_account_attributes, pbf)\n if (this.with_account_settings) pbf.writeBooleanField(5, this.with_account_settings, pbf)\n if (this.ignore_missing) pbf.writeBooleanField(6, this.ignore_missing, pbf)\n }\n}\n\nexport type QueryFullAccountsResponseStruct = {\n full_accounts: Array<FullAccountStruct>\n account_uids: Array<AccountUID>\n}\n\nexport class QueryFullAccountsResponse {\n static _from_pb(pbf: any): QueryFullAccountsResponse {\n const o = QueryFullAccountsResponse._from_pb_init()\n pbf.readFields(QueryFullAccountsResponse._from_pb_fields, o)\n return new QueryFullAccountsResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {full_accounts: [], account_uids: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.full_accounts.push(pbf_readMessage(FullAccount, pbf))\n return\n }\n case 2: {\n o.account_uids.push(pbf.readString())\n return\n }\n }\n }\n\n full_accounts: Array<FullAccount>\n account_uids: Array<AccountUID>\n\n constructor(args: {full_accounts: Array<FullAccount>; account_uids?: Array<AccountUID>}) {\n this.full_accounts = (args.full_accounts || []).slice()\n this.account_uids = (args.account_uids || []).slice()\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.full_accounts, \"`full_accounts` required\")\n const i_account_uids = this.account_uids.findIndex((x) => !is_AccountUID(x))\n assert(\n i_account_uids < 0,\n () =>\n \"`this.account_uids` contains invalid item: \" +\n JSON.stringify(this.account_uids[i_account_uids]),\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.full_accounts)\n for (let i = 0; i < this.full_accounts.length; i++) {\n pbf_writeMessage(1, this.full_accounts[i], pbf)\n }\n if (this.account_uids)\n for (let i = 0; i < this.account_uids.length; i++) {\n pbf.writeStringField(2, this.account_uids[i])\n }\n }\n}\n\nexport type QueryAccountsRequestStruct = {\n account_uids: Array<AccountUID>\n}\n\nexport class QueryAccountsRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): QueryAccountsRequest {\n const o = QueryAccountsRequest._from_pb_init()\n pbf.readFields(QueryAccountsRequest._from_pb_fields, o)\n return new QueryAccountsRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {account_uids: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.account_uids.push(pbf.readString())\n return\n }\n }\n }\n\n account_uids: Array<AccountUID>\n\n constructor(args: {account_uids: Array<AccountUID>}) {\n this.account_uids = (args.account_uids || []).slice()\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.account_uids, \"`account_uids` required\")\n const i_account_uids = this.account_uids.findIndex((x) => !is_AccountUID(x))\n assert(\n i_account_uids < 0,\n () =>\n \"`this.account_uids` contains invalid item: \" +\n JSON.stringify(this.account_uids[i_account_uids]),\n )\n limits.LIMIT_GET_ITEMS_100.check(this.account_uids ? this.account_uids.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.account_uids)\n for (let i = 0; i < this.account_uids.length; i++) {\n pbf.writeStringField(1, this.account_uids[i])\n }\n }\n}\n\nexport type QueryAccountsResponseStruct = {\n accounts: Array<AccountStruct>\n}\n\nexport class QueryAccountsResponse {\n static _from_pb(pbf: any): QueryAccountsResponse {\n const o = QueryAccountsResponse._from_pb_init()\n pbf.readFields(QueryAccountsResponse._from_pb_fields, o)\n return new QueryAccountsResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {accounts: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.accounts.push(pbf_readMessage(Account, pbf))\n return\n }\n }\n }\n\n accounts: Array<Account>\n\n constructor(args: {accounts: Array<Account>}) {\n this.accounts = (args.accounts || []).slice()\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.accounts, \"`accounts` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.accounts)\n for (let i = 0; i < this.accounts.length; i++) {\n pbf_writeMessage(1, this.accounts[i], pbf)\n }\n }\n}\n\nexport type _QueryAccountsResponseBinaryStruct = {\n accounts: Array<Uint8Array>\n}\n\nexport class _QueryAccountsResponseBinary {\n static _from_pb(pbf: any): _QueryAccountsResponseBinary {\n const o = _QueryAccountsResponseBinary._from_pb_init()\n pbf.readFields(_QueryAccountsResponseBinary._from_pb_fields, o)\n return new _QueryAccountsResponseBinary({...(o as any)})\n }\n\n static _from_pb_init() {\n return {accounts: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.accounts.push(pbf.readBytes())\n return\n }\n }\n }\n\n accounts: Array<Uint8Array>\n\n constructor(args: {accounts: Array<Uint8Array>}) {\n this.accounts = (args.accounts || []).slice()\n makeObservable(this, {accounts: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.accounts, \"`accounts` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.accounts)\n for (let i = 0; i < this.accounts.length; i++) {\n pbf.writeBytesField(1, this.accounts[i])\n }\n }\n}\n\nexport type UpdateProfileImageRequestStruct = {\n url: string\n temp_upload_id: string\n}\n\nexport class UpdateProfileImageRequest {\n static HTTP_METHOD = <const>\"PUT\"\n\n static _from_pb(pbf: any): UpdateProfileImageRequest {\n const o = UpdateProfileImageRequest._from_pb_init()\n pbf.readFields(UpdateProfileImageRequest._from_pb_fields, o)\n return new UpdateProfileImageRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.url = pbf.readString()\n return\n }\n case 2: {\n o.temp_upload_id = pbf.readString()\n return\n }\n }\n }\n\n url: string\n temp_upload_id: string\n\n constructor(args: {url?: string; temp_upload_id?: string}) {\n this.url = args.url || \"\"\n this.temp_upload_id = args.temp_upload_id || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public get src(): string | string {\n return not_null(this.url || this.temp_upload_id)\n }\n\n public verify() {\n limits.LIMIT_URL.check(this.url ? this.url.length : 0)\n assert(\n [this.url, this.temp_upload_id].filter((x) => !!x).length === 1,\n \"Exactly one of [`url`, `temp_upload_id`] required\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.url) pbf.writeStringField(1, this.url, pbf)\n if (this.temp_upload_id) pbf.writeStringField(2, this.temp_upload_id, pbf)\n }\n}\n\nexport type UpdateProfileImageResponseStruct = {\n profile_image_url: string\n}\n\nexport class UpdateProfileImageResponse {\n static _from_pb(pbf: any): UpdateProfileImageResponse {\n const o = UpdateProfileImageResponse._from_pb_init()\n pbf.readFields(UpdateProfileImageResponse._from_pb_fields, o)\n return new UpdateProfileImageResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.profile_image_url = pbf.readString()\n return\n }\n }\n }\n\n profile_image_url: string\n\n constructor(args: {profile_image_url: string}) {\n this.profile_image_url = args.profile_image_url || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.profile_image_url, \"`profile_image_url` required\")\n limits.LIMIT_URL.check(this.profile_image_url ? this.profile_image_url.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.profile_image_url) pbf.writeStringField(1, this.profile_image_url, pbf)\n }\n}\n\nexport type SearchBoardsRequestStruct = {\n card_uid: CardUID\n}\n\nexport class SearchBoardsRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): SearchBoardsRequest {\n const o = SearchBoardsRequest._from_pb_init()\n pbf.readFields(SearchBoardsRequest._from_pb_fields, o)\n return new SearchBoardsRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.card_uid = pbf.readString()\n return\n }\n }\n }\n\n card_uid: CardUID\n\n constructor(args: {card_uid: CardUID}) {\n this.card_uid = args.card_uid\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.card_uid, \"`card_uid` required\")\n assert(is_CardUID(this.card_uid), \"`card_uid` is not of type CardUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.card_uid) pbf.writeStringField(1, this.card_uid, pbf)\n }\n}\n\nexport type SearchBoardsMatchStruct = {\n board_uid: BoardUID | undefined\n content_uid: UID | undefined\n}\n\nexport class SearchBoardsMatch {\n static _from_pb(pbf: any): SearchBoardsMatch {\n const o = SearchBoardsMatch._from_pb_init()\n pbf.readFields(SearchBoardsMatch._from_pb_fields, o)\n return new SearchBoardsMatch({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_uid = pbf.readString()\n return\n }\n case 2: {\n o.content_uid = pbf.readString()\n return\n }\n }\n }\n\n board_uid: BoardUID | undefined\n content_uid: UID | undefined\n\n constructor(args: {board_uid?: BoardUID; content_uid?: UID}) {\n this.board_uid = args.board_uid\n this.content_uid = args.content_uid\n makeObservable(this, {board_uid: observable, content_uid: observable})\n this.verify()\n }\n\n public verify() {\n assert(\n this.board_uid == null || is_BoardUID(this.board_uid),\n \"`board_uid` is not of type BoardUID\",\n )\n assert(\n this.content_uid == null || is_UID(this.content_uid),\n \"`content_uid` is not of type UID\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_uid) pbf.writeStringField(1, this.board_uid, pbf)\n if (this.content_uid) pbf.writeStringField(2, this.content_uid, pbf)\n }\n}\n\nexport type SearchBoardsResponseStruct = {\n matches: Array<SearchBoardsMatchStruct>\n}\n\nexport class SearchBoardsResponse {\n static _from_pb(pbf: any): SearchBoardsResponse {\n const o = SearchBoardsResponse._from_pb_init()\n pbf.readFields(SearchBoardsResponse._from_pb_fields, o)\n return new SearchBoardsResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {matches: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.matches.push(pbf_readMessage(SearchBoardsMatch, pbf))\n return\n }\n }\n }\n\n matches: Array<SearchBoardsMatch>\n\n constructor(args: {matches: Array<SearchBoardsMatch>}) {\n this.matches = (args.matches || []).slice()\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.matches, \"`matches` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.matches)\n for (let i = 0; i < this.matches.length; i++) {\n pbf_writeMessage(1, this.matches[i], pbf)\n }\n }\n}\n\nexport type QueryBoardRequestStruct = {\n board_uid: BoardUID\n version: number\n}\n\nexport class QueryBoardRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): QueryBoardRequest {\n const o = QueryBoardRequest._from_pb_init()\n pbf.readFields(QueryBoardRequest._from_pb_fields, o)\n return new QueryBoardRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_uid = pbf.readString()\n return\n }\n case 2: {\n o.version = pbf.readVarint()\n return\n }\n }\n }\n\n board_uid: BoardUID\n version: number\n\n constructor(args: {board_uid: BoardUID; version?: number}) {\n this.board_uid = args.board_uid\n this.version = args.version || 0\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.board_uid, \"`board_uid` required\")\n assert(is_BoardUID(this.board_uid), \"`board_uid` is not of type BoardUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_uid) pbf.writeStringField(1, this.board_uid, pbf)\n if (this.version) pbf.writeVarintField(2, this.version, pbf)\n }\n}\n\nexport type QueryBoardResponseStruct = {\n board: BoardStruct\n}\n\nexport class QueryBoardResponse {\n static _from_pb(pbf: any): QueryBoardResponse {\n const o = QueryBoardResponse._from_pb_init()\n pbf.readFields(QueryBoardResponse._from_pb_fields, o)\n return new QueryBoardResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board = pbf_readMessage(Board, pbf)\n return\n }\n }\n }\n\n board: Board\n\n constructor(args: {board: Board}) {\n this.board = args.board\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.board, \"`board` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board) pbf_writeMessage(1, this.board, pbf)\n }\n}\n\nexport type _QueryBoardResponseBinaryStruct = {\n board: Uint8Array\n}\n\nexport class _QueryBoardResponseBinary {\n static _from_pb(pbf: any): _QueryBoardResponseBinary {\n const o = _QueryBoardResponseBinary._from_pb_init()\n pbf.readFields(_QueryBoardResponseBinary._from_pb_fields, o)\n return new _QueryBoardResponseBinary({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board = pbf.readBytes()\n return\n }\n }\n }\n\n board: Uint8Array\n\n constructor(args: {board: Uint8Array}) {\n this.board = args.board\n makeObservable(this, {board: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.board, \"`board` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board) pbf.writeBytesField(1, this.board, pbf)\n }\n}\n\nexport type QueryBoardVersionRequestStruct = {\n board_uid: BoardUID\n version: number\n}\n\nexport class QueryBoardVersionRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): QueryBoardVersionRequest {\n const o = QueryBoardVersionRequest._from_pb_init()\n pbf.readFields(QueryBoardVersionRequest._from_pb_fields, o)\n return new QueryBoardVersionRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_uid = pbf.readString()\n return\n }\n case 2: {\n o.version = pbf.readVarint()\n return\n }\n }\n }\n\n board_uid: BoardUID\n version: number\n\n constructor(args: {board_uid: BoardUID; version: number}) {\n this.board_uid = args.board_uid\n this.version = args.version || 0\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.board_uid, \"`board_uid` required\")\n assert(is_BoardUID(this.board_uid), \"`board_uid` is not of type BoardUID\")\n assert(this.version != null, \"`version` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_uid) pbf.writeStringField(1, this.board_uid, pbf)\n if (this.version) pbf.writeVarintField(2, this.version, pbf)\n }\n}\n\nexport type QueryBoardVersionResponseStruct = {\n board: BoardStruct\n}\n\nexport class QueryBoardVersionResponse {\n static _from_pb(pbf: any): QueryBoardVersionResponse {\n const o = QueryBoardVersionResponse._from_pb_init()\n pbf.readFields(QueryBoardVersionResponse._from_pb_fields, o)\n return new QueryBoardVersionResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board = pbf_readMessage(Board, pbf)\n return\n }\n }\n }\n\n board: Board\n\n constructor(args: {board: Board}) {\n this.board = args.board\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.board, \"`board` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board) pbf_writeMessage(1, this.board, pbf)\n }\n}\n\nexport type UpdateBoardRequestStruct = {\n board_uid: BoardUID\n}\n\nexport class UpdateBoardRequest {\n static HTTP_METHOD = <const>\"PUT\"\n\n static _from_pb(pbf: any): UpdateBoardRequest {\n const o = UpdateBoardRequest._from_pb_init()\n pbf.readFields(UpdateBoardRequest._from_pb_fields, o)\n return new UpdateBoardRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_uid = pbf.readString()\n return\n }\n }\n }\n\n board_uid: BoardUID\n\n constructor(args: {board_uid: BoardUID}) {\n this.board_uid = args.board_uid\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.board_uid, \"`board_uid` required\")\n assert(is_BoardUID(this.board_uid), \"`board_uid` is not of type BoardUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_uid) pbf.writeStringField(1, this.board_uid, pbf)\n }\n}\n\nexport type UpdateBoardResponseStruct = {}\n\nexport class UpdateBoardResponse {\n static _from_pb(pbf: any): UpdateBoardResponse {\n const o = UpdateBoardResponse._from_pb_init()\n pbf.readFields(UpdateBoardResponse._from_pb_fields, o)\n return new UpdateBoardResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n }\n }\n\n constructor(args: {}) {\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {}\n}\n\nexport type QueryBoardInfosRequestStruct = {\n board_uids: Array<BoardUID>\n ignore_missing: boolean\n ignore_not_accessible: boolean\n}\n\nexport class QueryBoardInfosRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): QueryBoardInfosRequest {\n const o = QueryBoardInfosRequest._from_pb_init()\n pbf.readFields(QueryBoardInfosRequest._from_pb_fields, o)\n return new QueryBoardInfosRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {board_uids: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_uids.push(pbf.readString())\n return\n }\n case 2: {\n o.ignore_missing = pbf.readBoolean()\n return\n }\n case 3: {\n o.ignore_not_accessible = pbf.readBoolean()\n return\n }\n }\n }\n\n board_uids: Array<BoardUID>\n ignore_missing: boolean\n ignore_not_accessible: boolean\n\n constructor(args: {\n board_uids?: Array<BoardUID>\n ignore_missing?: boolean\n ignore_not_accessible?: boolean\n }) {\n this.board_uids = (args.board_uids || []).slice()\n this.ignore_missing = args.ignore_missing || false\n this.ignore_not_accessible = args.ignore_not_accessible || false\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n const i_board_uids = this.board_uids.findIndex((x) => !is_BoardUID(x))\n assert(\n i_board_uids < 0,\n () =>\n \"`this.board_uids` contains invalid item: \" +\n JSON.stringify(this.board_uids[i_board_uids]),\n )\n limits.LIMIT_GET_ITEMS_100.check(this.board_uids ? this.board_uids.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_uids)\n for (let i = 0; i < this.board_uids.length; i++) {\n pbf.writeStringField(1, this.board_uids[i])\n }\n if (this.ignore_missing) pbf.writeBooleanField(2, this.ignore_missing, pbf)\n if (this.ignore_not_accessible) pbf.writeBooleanField(3, this.ignore_not_accessible, pbf)\n }\n}\n\nexport type QueryBoardInfosResponseStruct = {\n board_infos: Array<BoardInfoStruct>\n}\n\nexport class QueryBoardInfosResponse {\n static _from_pb(pbf: any): QueryBoardInfosResponse {\n const o = QueryBoardInfosResponse._from_pb_init()\n pbf.readFields(QueryBoardInfosResponse._from_pb_fields, o)\n return new QueryBoardInfosResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {board_infos: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_infos.push(pbf_readMessage(BoardInfo, pbf))\n return\n }\n }\n }\n\n board_infos: Array<BoardInfo>\n\n constructor(args: {board_infos: Array<BoardInfo>}) {\n this.board_infos = (args.board_infos || []).slice()\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.board_infos, \"`board_infos` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_infos)\n for (let i = 0; i < this.board_infos.length; i++) {\n pbf_writeMessage(1, this.board_infos[i], pbf)\n }\n }\n}\n\nexport type _QueryBoardInfosResponseBinaryStruct = {\n board_infos: Array<Uint8Array>\n}\n\nexport class _QueryBoardInfosResponseBinary {\n static _from_pb(pbf: any): _QueryBoardInfosResponseBinary {\n const o = _QueryBoardInfosResponseBinary._from_pb_init()\n pbf.readFields(_QueryBoardInfosResponseBinary._from_pb_fields, o)\n return new _QueryBoardInfosResponseBinary({...(o as any)})\n }\n\n static _from_pb_init() {\n return {board_infos: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_infos.push(pbf.readBytes())\n return\n }\n }\n }\n\n board_infos: Array<Uint8Array>\n\n constructor(args: {board_infos: Array<Uint8Array>}) {\n this.board_infos = (args.board_infos || []).slice()\n makeObservable(this, {board_infos: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.board_infos, \"`board_infos` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_infos)\n for (let i = 0; i < this.board_infos.length; i++) {\n pbf.writeBytesField(1, this.board_infos[i])\n }\n }\n}\n\nexport type QueryBoardInfoVersionRequestStruct = {\n board_uid: BoardUID\n version: number\n}\n\nexport class QueryBoardInfoVersionRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): QueryBoardInfoVersionRequest {\n const o = QueryBoardInfoVersionRequest._from_pb_init()\n pbf.readFields(QueryBoardInfoVersionRequest._from_pb_fields, o)\n return new QueryBoardInfoVersionRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_uid = pbf.readString()\n return\n }\n case 2: {\n o.version = pbf.readVarint()\n return\n }\n }\n }\n\n board_uid: BoardUID\n version: number\n\n constructor(args: {board_uid: BoardUID; version: number}) {\n this.board_uid = args.board_uid\n this.version = args.version || 0\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.board_uid, \"`board_uid` required\")\n assert(is_BoardUID(this.board_uid), \"`board_uid` is not of type BoardUID\")\n assert(this.version != null, \"`version` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_uid) pbf.writeStringField(1, this.board_uid, pbf)\n if (this.version) pbf.writeVarintField(2, this.version, pbf)\n }\n}\n\nexport type QueryBoardInfoVersionResponseStruct = {\n board_info: BoardInfoStruct\n}\n\nexport class QueryBoardInfoVersionResponse {\n static _from_pb(pbf: any): QueryBoardInfoVersionResponse {\n const o = QueryBoardInfoVersionResponse._from_pb_init()\n pbf.readFields(QueryBoardInfoVersionResponse._from_pb_fields, o)\n return new QueryBoardInfoVersionResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_info = pbf_readMessage(BoardInfo, pbf)\n return\n }\n }\n }\n\n board_info: BoardInfo\n\n constructor(args: {board_info: BoardInfo}) {\n this.board_info = args.board_info\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.board_info, \"`board_info` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_info) pbf_writeMessage(1, this.board_info, pbf)\n }\n}\n\nexport type QueryBoardQuotaUsageRequestStruct = {}\n\nexport class QueryBoardQuotaUsageRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): QueryBoardQuotaUsageRequest {\n const o = QueryBoardQuotaUsageRequest._from_pb_init()\n pbf.readFields(QueryBoardQuotaUsageRequest._from_pb_fields, o)\n return new QueryBoardQuotaUsageRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n }\n }\n\n constructor(args: {}) {\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {}\n}\n\nexport type QueryBoardQuotaUsageResponseStruct = {\n board_quota_usage: BoardQuotaStruct\n}\n\nexport class QueryBoardQuotaUsageResponse {\n static _from_pb(pbf: any): QueryBoardQuotaUsageResponse {\n const o = QueryBoardQuotaUsageResponse._from_pb_init()\n pbf.readFields(QueryBoardQuotaUsageResponse._from_pb_fields, o)\n return new QueryBoardQuotaUsageResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_quota_usage = pbf_readMessage(BoardQuota, pbf)\n return\n }\n }\n }\n\n board_quota_usage: BoardQuota\n\n constructor(args: {board_quota_usage: BoardQuota}) {\n this.board_quota_usage = args.board_quota_usage\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.board_quota_usage, \"`board_quota_usage` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_quota_usage) pbf_writeMessage(1, this.board_quota_usage, pbf)\n }\n}\n\nexport type _QueryBoardStatsResponseBinaryStruct = {\n board_stats_entries: Array<Uint8Array>\n}\n\nexport class _QueryBoardStatsResponseBinary {\n static _from_pb(pbf: any): _QueryBoardStatsResponseBinary {\n const o = _QueryBoardStatsResponseBinary._from_pb_init()\n pbf.readFields(_QueryBoardStatsResponseBinary._from_pb_fields, o)\n return new _QueryBoardStatsResponseBinary({...(o as any)})\n }\n\n static _from_pb_init() {\n return {board_stats_entries: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_stats_entries.push(pbf.readBytes())\n return\n }\n }\n }\n\n board_stats_entries: Array<Uint8Array>\n\n constructor(args: {board_stats_entries: Array<Uint8Array>}) {\n this.board_stats_entries = (args.board_stats_entries || []).slice()\n makeObservable(this, {board_stats_entries: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.board_stats_entries, \"`board_stats_entries` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_stats_entries)\n for (let i = 0; i < this.board_stats_entries.length; i++) {\n pbf.writeBytesField(1, this.board_stats_entries[i])\n }\n }\n}\n\nexport type ExportBoardRequestStruct = {\n board_uid: BoardUID\n}\n\nexport class ExportBoardRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): ExportBoardRequest {\n const o = ExportBoardRequest._from_pb_init()\n pbf.readFields(ExportBoardRequest._from_pb_fields, o)\n return new ExportBoardRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_uid = pbf.readString()\n return\n }\n }\n }\n\n board_uid: BoardUID\n\n constructor(args: {board_uid: BoardUID}) {\n this.board_uid = args.board_uid\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.board_uid, \"`board_uid` required\")\n assert(is_BoardUID(this.board_uid), \"`board_uid` is not of type BoardUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_uid) pbf.writeStringField(1, this.board_uid, pbf)\n }\n}\n\nexport type ExportBoardResponseStruct = {\n job_id: string\n}\n\nexport class ExportBoardResponse {\n static _from_pb(pbf: any): ExportBoardResponse {\n const o = ExportBoardResponse._from_pb_init()\n pbf.readFields(ExportBoardResponse._from_pb_fields, o)\n return new ExportBoardResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.job_id = pbf.readString()\n return\n }\n }\n }\n\n job_id: string\n\n constructor(args: {job_id: string}) {\n this.job_id = args.job_id || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.job_id, \"`job_id` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.job_id) pbf.writeStringField(1, this.job_id, pbf)\n }\n}\n\nexport type ExportBoardJobStruct = {\n job_id: string\n created_by: AccountUID\n board_uid: BoardUID\n modified_at: Date\n status: JobStatus\n download_url: string\n error: string\n}\n\nexport class ExportBoardJob {\n static _from_pb(pbf: any): ExportBoardJob {\n const o = ExportBoardJob._from_pb_init()\n pbf.readFields(ExportBoardJob._from_pb_fields, o)\n return new ExportBoardJob({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.job_id = pbf.readString()\n return\n }\n case 2: {\n o.created_by = pbf.readString()\n return\n }\n case 3: {\n o.board_uid = pbf.readString()\n return\n }\n case 4: {\n o.modified_at = new Date(pbf.readVarint() / 1000)\n return\n }\n case 5: {\n o.status = pbf.readVarint()\n return\n }\n case 6: {\n o.download_url = pbf.readString()\n return\n }\n case 7: {\n o.error = pbf.readString()\n return\n }\n }\n }\n\n job_id: string\n created_by: AccountUID\n board_uid: BoardUID\n modified_at: Date\n status: JobStatus\n download_url: string\n error: string\n\n constructor(args: {\n job_id: string\n created_by: AccountUID\n board_uid: BoardUID\n modified_at: Date\n status: JobStatus\n download_url?: string\n error?: string\n }) {\n this.job_id = args.job_id || \"\"\n this.created_by = args.created_by\n this.board_uid = args.board_uid\n this.modified_at = args.modified_at\n this.status = args.status || (0 as any)\n this.download_url = args.download_url || \"\"\n this.error = args.error || \"\"\n makeObservable(this, {\n job_id: observable,\n created_by: observable,\n board_uid: observable,\n modified_at: observable,\n status: observable,\n download_url: observable,\n error: observable,\n })\n this.verify()\n }\n\n public verify() {\n assert(this.job_id, \"`job_id` required\")\n assert(this.created_by, \"`created_by` required\")\n assert(is_AccountUID(this.created_by), \"`created_by` is not of type AccountUID\")\n assert(this.board_uid, \"`board_uid` required\")\n assert(is_BoardUID(this.board_uid), \"`board_uid` is not of type BoardUID\")\n assert(this.modified_at, \"`modified_at` required\")\n assert(this.status, \"`status` required\")\n limits.LIMIT_URL.check(this.download_url ? this.download_url.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.job_id) pbf.writeStringField(1, this.job_id, pbf)\n if (this.created_by) pbf.writeStringField(2, this.created_by, pbf)\n if (this.board_uid) pbf.writeStringField(3, this.board_uid, pbf)\n if (this.modified_at) pbf.writeVarintField(4, this.modified_at.getTime() * 1000, pbf)\n if (this.status) pbf.writeVarintField(5, this.status, pbf)\n if (this.download_url) pbf.writeStringField(6, this.download_url, pbf)\n if (this.error) pbf.writeStringField(7, this.error, pbf)\n }\n}\n\nexport type PubSubExportBoardStruct = {\n job_id: string\n}\n\nexport class PubSubExportBoard {\n static _from_pb(pbf: any): PubSubExportBoard {\n const o = PubSubExportBoard._from_pb_init()\n pbf.readFields(PubSubExportBoard._from_pb_fields, o)\n return new PubSubExportBoard({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.job_id = pbf.readString()\n return\n }\n }\n }\n\n job_id: string\n\n constructor(args: {job_id: string}) {\n this.job_id = args.job_id || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.job_id, \"`job_id` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.job_id) pbf.writeStringField(1, this.job_id, pbf)\n }\n}\n\nexport type QueryExportBoardJobRequestStruct = {\n job_id: string\n}\n\nexport class QueryExportBoardJobRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): QueryExportBoardJobRequest {\n const o = QueryExportBoardJobRequest._from_pb_init()\n pbf.readFields(QueryExportBoardJobRequest._from_pb_fields, o)\n return new QueryExportBoardJobRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.job_id = pbf.readString()\n return\n }\n }\n }\n\n job_id: string\n\n constructor(args: {job_id: string}) {\n this.job_id = args.job_id || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.job_id, \"`job_id` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.job_id) pbf.writeStringField(1, this.job_id, pbf)\n }\n}\n\nexport type QueryExportBoardJobResponseStruct = {\n job: ExportBoardJobStruct\n}\n\nexport class QueryExportBoardJobResponse {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): QueryExportBoardJobResponse {\n const o = QueryExportBoardJobResponse._from_pb_init()\n pbf.readFields(QueryExportBoardJobResponse._from_pb_fields, o)\n return new QueryExportBoardJobResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.job = pbf_readMessage(ExportBoardJob, pbf)\n return\n }\n }\n }\n\n job: ExportBoardJob\n\n constructor(args: {job: ExportBoardJob}) {\n this.job = args.job\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.job, \"`job` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.job) pbf_writeMessage(1, this.job, pbf)\n }\n}\n\nexport type ImportBoardRequestStruct = {\n url: string\n temp_upload_id: string\n board_uid: BoardUID | undefined\n}\n\nexport class ImportBoardRequest {\n static HTTP_METHOD = <const>\"PUT\"\n\n static _from_pb(pbf: any): ImportBoardRequest {\n const o = ImportBoardRequest._from_pb_init()\n pbf.readFields(ImportBoardRequest._from_pb_fields, o)\n return new ImportBoardRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.url = pbf.readString()\n return\n }\n case 2: {\n o.temp_upload_id = pbf.readString()\n return\n }\n case 4: {\n o.board_uid = pbf.readString()\n return\n }\n }\n }\n\n url: string\n temp_upload_id: string\n board_uid: BoardUID | undefined\n\n constructor(args: {url?: string; temp_upload_id?: string; board_uid?: BoardUID}) {\n this.url = args.url || \"\"\n this.temp_upload_id = args.temp_upload_id || \"\"\n this.board_uid = args.board_uid\n makeObservable(this, {})\n this.verify()\n }\n\n public get source(): string | string {\n return not_null(this.url || this.temp_upload_id)\n }\n\n public verify() {\n assert(\n this.board_uid == null || is_BoardUID(this.board_uid),\n \"`board_uid` is not of type BoardUID\",\n )\n limits.LIMIT_URL.check(this.url ? this.url.length : 0)\n assert(\n [this.url, this.temp_upload_id].filter((x) => !!x).length === 1,\n \"Exactly one of [`url`, `temp_upload_id`] required\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.url) pbf.writeStringField(1, this.url, pbf)\n if (this.temp_upload_id) pbf.writeStringField(2, this.temp_upload_id, pbf)\n if (this.board_uid) pbf.writeStringField(4, this.board_uid, pbf)\n }\n}\n\nexport type ImportBoardResponseStruct = {\n job_id: string\n}\n\nexport class ImportBoardResponse {\n static _from_pb(pbf: any): ImportBoardResponse {\n const o = ImportBoardResponse._from_pb_init()\n pbf.readFields(ImportBoardResponse._from_pb_fields, o)\n return new ImportBoardResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.job_id = pbf.readString()\n return\n }\n }\n }\n\n job_id: string\n\n constructor(args: {job_id: string}) {\n this.job_id = args.job_id || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.job_id, \"`job_id` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.job_id) pbf.writeStringField(1, this.job_id, pbf)\n }\n}\n\nexport type ImportBoardJobStruct = {\n job_id: string\n created_by: AccountUID\n request: ImportBoardRequestStruct\n modified_at: Date\n status: JobStatus\n error: string\n board_uid: BoardUID\n}\n\nexport class ImportBoardJob {\n static _from_pb(pbf: any): ImportBoardJob {\n const o = ImportBoardJob._from_pb_init()\n pbf.readFields(ImportBoardJob._from_pb_fields, o)\n return new ImportBoardJob({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.job_id = pbf.readString()\n return\n }\n case 2: {\n o.created_by = pbf.readString()\n return\n }\n case 3: {\n o.request = pbf_readMessage(ImportBoardRequest, pbf)\n return\n }\n case 4: {\n o.modified_at = new Date(pbf.readVarint() / 1000)\n return\n }\n case 5: {\n o.status = pbf.readVarint()\n return\n }\n case 6: {\n o.error = pbf.readString()\n return\n }\n case 7: {\n o.board_uid = pbf.readString()\n return\n }\n }\n }\n\n job_id: string\n created_by: AccountUID\n request: ImportBoardRequest\n modified_at: Date\n status: JobStatus\n error: string\n board_uid: BoardUID\n\n constructor(args: {\n job_id: string\n created_by: AccountUID\n request: ImportBoardRequest\n modified_at: Date\n status: JobStatus\n error?: string\n board_uid: BoardUID\n }) {\n this.job_id = args.job_id || \"\"\n this.created_by = args.created_by\n this.request = args.request\n this.modified_at = args.modified_at\n this.status = args.status || (0 as any)\n this.error = args.error || \"\"\n this.board_uid = args.board_uid\n makeObservable(this, {\n job_id: observable,\n created_by: observable,\n request: observable,\n modified_at: observable,\n status: observable,\n error: observable,\n board_uid: observable,\n })\n this.verify()\n }\n\n public verify() {\n assert(this.job_id, \"`job_id` required\")\n assert(this.created_by, \"`created_by` required\")\n assert(is_AccountUID(this.created_by), \"`created_by` is not of type AccountUID\")\n assert(this.request, \"`request` required\")\n assert(this.modified_at, \"`modified_at` required\")\n assert(this.status, \"`status` required\")\n assert(this.board_uid, \"`board_uid` required\")\n assert(is_BoardUID(this.board_uid), \"`board_uid` is not of type BoardUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.job_id) pbf.writeStringField(1, this.job_id, pbf)\n if (this.created_by) pbf.writeStringField(2, this.created_by, pbf)\n if (this.request) pbf_writeMessage(3, this.request, pbf)\n if (this.modified_at) pbf.writeVarintField(4, this.modified_at.getTime() * 1000, pbf)\n if (this.status) pbf.writeVarintField(5, this.status, pbf)\n if (this.error) pbf.writeStringField(6, this.error, pbf)\n if (this.board_uid) pbf.writeStringField(7, this.board_uid, pbf)\n }\n}\n\nexport type PubSubImportBoardStruct = {\n job_id: string\n}\n\nexport class PubSubImportBoard {\n static _from_pb(pbf: any): PubSubImportBoard {\n const o = PubSubImportBoard._from_pb_init()\n pbf.readFields(PubSubImportBoard._from_pb_fields, o)\n return new PubSubImportBoard({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.job_id = pbf.readString()\n return\n }\n }\n }\n\n job_id: string\n\n constructor(args: {job_id: string}) {\n this.job_id = args.job_id || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.job_id, \"`job_id` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.job_id) pbf.writeStringField(1, this.job_id, pbf)\n }\n}\n\nexport type QueryImportBoardJobRequestStruct = {\n job_id: string\n}\n\nexport class QueryImportBoardJobRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): QueryImportBoardJobRequest {\n const o = QueryImportBoardJobRequest._from_pb_init()\n pbf.readFields(QueryImportBoardJobRequest._from_pb_fields, o)\n return new QueryImportBoardJobRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.job_id = pbf.readString()\n return\n }\n }\n }\n\n job_id: string\n\n constructor(args: {job_id: string}) {\n this.job_id = args.job_id || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.job_id, \"`job_id` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.job_id) pbf.writeStringField(1, this.job_id, pbf)\n }\n}\n\nexport type QueryImportBoardJobResponseStruct = {\n job: ImportBoardJobStruct\n}\n\nexport class QueryImportBoardJobResponse {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): QueryImportBoardJobResponse {\n const o = QueryImportBoardJobResponse._from_pb_init()\n pbf.readFields(QueryImportBoardJobResponse._from_pb_fields, o)\n return new QueryImportBoardJobResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.job = pbf_readMessage(ImportBoardJob, pbf)\n return\n }\n }\n }\n\n job: ImportBoardJob\n\n constructor(args: {job: ImportBoardJob}) {\n this.job = args.job\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.job, \"`job` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.job) pbf_writeMessage(1, this.job, pbf)\n }\n}\n\nexport type PatchBoardRequestStruct = {\n patch_uid: PatchUID\n board_uid: BoardUID\n ops: Array<PatchOpContainerStruct>\n blob_uid_mapping: Array<BlobUIDMappingStruct>\n}\n\nexport class PatchBoardRequest {\n static HTTP_METHOD = <const>\"PUT\"\n static MAX_CONCURRENT_FROM_CLIENT = <const>1\n\n static _from_pb(pbf: any): PatchBoardRequest {\n const o = PatchBoardRequest._from_pb_init()\n pbf.readFields(PatchBoardRequest._from_pb_fields, o)\n return new PatchBoardRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {ops: [], blob_uid_mapping: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.patch_uid = pbf.readString()\n return\n }\n case 2: {\n o.board_uid = pbf.readString()\n return\n }\n case 3: {\n o.ops.push(pbf_readMessage(PatchOpContainer, pbf))\n return\n }\n case 4: {\n o.blob_uid_mapping.push(pbf_readMessage(BlobUIDMapping, pbf))\n return\n }\n }\n }\n\n patch_uid: PatchUID\n board_uid: BoardUID\n ops: Array<PatchOpContainer>\n blob_uid_mapping: Array<BlobUIDMapping>\n\n constructor(args: {\n patch_uid: PatchUID\n board_uid: BoardUID\n ops: Array<PatchOpContainer>\n blob_uid_mapping: Array<BlobUIDMapping>\n }) {\n this.patch_uid = args.patch_uid\n this.board_uid = args.board_uid\n this.ops = (args.ops || []).slice()\n this.blob_uid_mapping = (args.blob_uid_mapping || []).slice()\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.patch_uid, \"`patch_uid` required\")\n assert(is_PatchUID(this.patch_uid), \"`patch_uid` is not of type PatchUID\")\n assert(this.board_uid, \"`board_uid` required\")\n assert(is_BoardUID(this.board_uid), \"`board_uid` is not of type BoardUID\")\n assert(this.ops, \"`ops` required\")\n assert(this.blob_uid_mapping, \"`blob_uid_mapping` required\")\n limits.LIMIT_PATCH_OPS.check(this.ops ? this.ops.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.patch_uid) pbf.writeStringField(1, this.patch_uid, pbf)\n if (this.board_uid) pbf.writeStringField(2, this.board_uid, pbf)\n if (this.ops)\n for (let i = 0; i < this.ops.length; i++) {\n pbf_writeMessage(3, this.ops[i], pbf)\n }\n if (this.blob_uid_mapping)\n for (let i = 0; i < this.blob_uid_mapping.length; i++) {\n pbf_writeMessage(4, this.blob_uid_mapping[i], pbf)\n }\n }\n}\n\nexport type BoardUIDAndVersionStruct = {\n board_uid: BoardUID\n version: number\n}\n\nexport class BoardUIDAndVersion {\n static _from_pb(pbf: any): BoardUIDAndVersion {\n const o = BoardUIDAndVersion._from_pb_init()\n pbf.readFields(BoardUIDAndVersion._from_pb_fields, o)\n return new BoardUIDAndVersion({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_uid = pbf.readString()\n return\n }\n case 2: {\n o.version = pbf.readVarint()\n return\n }\n }\n }\n\n board_uid: BoardUID\n version: number\n\n constructor(args: {board_uid: BoardUID; version: number}) {\n this.board_uid = args.board_uid\n this.version = args.version || 0\n makeObservable(this, {board_uid: observable, version: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.board_uid, \"`board_uid` required\")\n assert(is_BoardUID(this.board_uid), \"`board_uid` is not of type BoardUID\")\n assert(this.version != null, \"`version` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_uid) pbf.writeStringField(1, this.board_uid, pbf)\n if (this.version) pbf.writeVarintField(2, this.version, pbf)\n }\n}\n\nexport type BoardUIDsAndVersionsMessageStruct = {\n board_uids_and_versions: Array<BoardUIDAndVersionStruct>\n}\n\nexport class BoardUIDsAndVersionsMessage {\n static _from_pb(pbf: any): BoardUIDsAndVersionsMessage {\n const o = BoardUIDsAndVersionsMessage._from_pb_init()\n pbf.readFields(BoardUIDsAndVersionsMessage._from_pb_fields, o)\n return new BoardUIDsAndVersionsMessage({...(o as any)})\n }\n\n static _from_pb_init() {\n return {board_uids_and_versions: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_uids_and_versions.push(pbf_readMessage(BoardUIDAndVersion, pbf))\n return\n }\n }\n }\n\n board_uids_and_versions: Array<BoardUIDAndVersion>\n\n constructor(args: {board_uids_and_versions: Array<BoardUIDAndVersion>}) {\n this.board_uids_and_versions = (args.board_uids_and_versions || []).slice()\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.board_uids_and_versions, \"`board_uids_and_versions` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_uids_and_versions)\n for (let i = 0; i < this.board_uids_and_versions.length; i++) {\n pbf_writeMessage(1, this.board_uids_and_versions[i], pbf)\n }\n }\n}\n\nexport type PatchBoardResponseStruct = {\n board_uids_and_versions: Array<BoardUIDAndVersionStruct>\n}\n\nexport class PatchBoardResponse {\n static _from_pb(pbf: any): PatchBoardResponse {\n const o = PatchBoardResponse._from_pb_init()\n pbf.readFields(PatchBoardResponse._from_pb_fields, o)\n return new PatchBoardResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {board_uids_and_versions: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_uids_and_versions.push(pbf_readMessage(BoardUIDAndVersion, pbf))\n return\n }\n }\n }\n\n board_uids_and_versions: Array<BoardUIDAndVersion>\n\n constructor(args: {board_uids_and_versions: Array<BoardUIDAndVersion>}) {\n this.board_uids_and_versions = (args.board_uids_and_versions || []).slice()\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.board_uids_and_versions, \"`board_uids_and_versions` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_uids_and_versions)\n for (let i = 0; i < this.board_uids_and_versions.length; i++) {\n pbf_writeMessage(1, this.board_uids_and_versions[i], pbf)\n }\n }\n}\n\nexport type PatchMembershipRequestStruct = {\n account_uid: AccountUID\n add_team_uids: Array<TeamUID>\n remove_team_uids: Array<TeamUID>\n add_admin_organization_uids: Array<OrganizationUID>\n remove_admin_organization_uids: Array<OrganizationUID>\n}\n\nexport class PatchMembershipRequest {\n static HTTP_METHOD = <const>\"PUT\"\n\n static _from_pb(pbf: any): PatchMembershipRequest {\n const o = PatchMembershipRequest._from_pb_init()\n pbf.readFields(PatchMembershipRequest._from_pb_fields, o)\n return new PatchMembershipRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {\n add_team_uids: [],\n remove_team_uids: [],\n add_admin_organization_uids: [],\n remove_admin_organization_uids: [],\n } as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.account_uid = pbf.readString()\n return\n }\n case 2: {\n o.add_team_uids.push(pbf.readString())\n return\n }\n case 3: {\n o.remove_team_uids.push(pbf.readString())\n return\n }\n case 4: {\n o.add_admin_organization_uids.push(pbf.readString())\n return\n }\n case 5: {\n o.remove_admin_organization_uids.push(pbf.readString())\n return\n }\n }\n }\n\n account_uid: AccountUID\n add_team_uids: Array<TeamUID>\n remove_team_uids: Array<TeamUID>\n add_admin_organization_uids: Array<OrganizationUID>\n remove_admin_organization_uids: Array<OrganizationUID>\n\n constructor(args: {\n account_uid: AccountUID\n add_team_uids?: Array<TeamUID>\n remove_team_uids?: Array<TeamUID>\n add_admin_organization_uids?: Array<OrganizationUID>\n remove_admin_organization_uids?: Array<OrganizationUID>\n }) {\n this.account_uid = args.account_uid\n this.add_team_uids = (args.add_team_uids || []).slice()\n this.remove_team_uids = (args.remove_team_uids || []).slice()\n this.add_admin_organization_uids = (args.add_admin_organization_uids || []).slice()\n this.remove_admin_organization_uids = (args.remove_admin_organization_uids || []).slice()\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.account_uid, \"`account_uid` required\")\n assert(is_AccountUID(this.account_uid), \"`account_uid` is not of type AccountUID\")\n const i_add_team_uids = this.add_team_uids.findIndex((x) => !is_TeamUID(x))\n assert(\n i_add_team_uids < 0,\n () =>\n \"`this.add_team_uids` contains invalid item: \" +\n JSON.stringify(this.add_team_uids[i_add_team_uids]),\n )\n const i_remove_team_uids = this.remove_team_uids.findIndex((x) => !is_TeamUID(x))\n assert(\n i_remove_team_uids < 0,\n () =>\n \"`this.remove_team_uids` contains invalid item: \" +\n JSON.stringify(this.remove_team_uids[i_remove_team_uids]),\n )\n const i_add_admin_organization_uids = this.add_admin_organization_uids.findIndex(\n (x) => !is_OrganizationUID(x),\n )\n assert(\n i_add_admin_organization_uids < 0,\n () =>\n \"`this.add_admin_organization_uids` contains invalid item: \" +\n JSON.stringify(this.add_admin_organization_uids[i_add_admin_organization_uids]),\n )\n const i_remove_admin_organization_uids = this.remove_admin_organization_uids.findIndex(\n (x) => !is_OrganizationUID(x),\n )\n assert(\n i_remove_admin_organization_uids < 0,\n () =>\n \"`this.remove_admin_organization_uids` contains invalid item: \" +\n JSON.stringify(\n this.remove_admin_organization_uids[i_remove_admin_organization_uids],\n ),\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.account_uid) pbf.writeStringField(1, this.account_uid, pbf)\n if (this.add_team_uids)\n for (let i = 0; i < this.add_team_uids.length; i++) {\n pbf.writeStringField(2, this.add_team_uids[i])\n }\n if (this.remove_team_uids)\n for (let i = 0; i < this.remove_team_uids.length; i++) {\n pbf.writeStringField(3, this.remove_team_uids[i])\n }\n if (this.add_admin_organization_uids)\n for (let i = 0; i < this.add_admin_organization_uids.length; i++) {\n pbf.writeStringField(4, this.add_admin_organization_uids[i])\n }\n if (this.remove_admin_organization_uids)\n for (let i = 0; i < this.remove_admin_organization_uids.length; i++) {\n pbf.writeStringField(5, this.remove_admin_organization_uids[i])\n }\n }\n}\n\nexport type PatchMembershipResponseStruct = {}\n\nexport class PatchMembershipResponse {\n static _from_pb(pbf: any): PatchMembershipResponse {\n const o = PatchMembershipResponse._from_pb_init()\n pbf.readFields(PatchMembershipResponse._from_pb_fields, o)\n return new PatchMembershipResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n }\n }\n\n constructor(args: {}) {\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {}\n}\n\nexport type PatchAccountStruct = {\n given_name: string\n family_name: string\n profile_image_url: string\n locale: Locale | undefined\n}\n\nexport class PatchAccount {\n static _from_pb(pbf: any): PatchAccount {\n const o = PatchAccount._from_pb_init()\n pbf.readFields(PatchAccount._from_pb_fields, o)\n return new PatchAccount({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.given_name = pbf.readString()\n return\n }\n case 2: {\n o.family_name = pbf.readString()\n return\n }\n case 3: {\n o.profile_image_url = pbf.readString()\n return\n }\n case 4: {\n o.locale = pbf.readString()\n return\n }\n }\n }\n\n given_name: string\n family_name: string\n profile_image_url: string\n locale: Locale | undefined\n\n constructor(args: {\n given_name?: string\n family_name?: string\n profile_image_url?: string\n locale?: Locale\n }) {\n this.given_name = args.given_name || \"\"\n this.family_name = args.family_name || \"\"\n this.profile_image_url = args.profile_image_url || \"\"\n this.locale = args.locale\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.locale == null || is_Locale(this.locale), \"`locale` is not of type Locale\")\n limits.LIMIT_SMALL_TEXT.check(this.given_name ? this.given_name.length : 0)\n limits.LIMIT_SMALL_TEXT.check(this.family_name ? this.family_name.length : 0)\n limits.LIMIT_URL.check(this.profile_image_url ? this.profile_image_url.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.given_name) pbf.writeStringField(1, this.given_name, pbf)\n if (this.family_name) pbf.writeStringField(2, this.family_name, pbf)\n if (this.profile_image_url) pbf.writeStringField(3, this.profile_image_url, pbf)\n if (this.locale) pbf.writeStringField(4, this.locale, pbf)\n }\n}\n\nexport type PatchAccountAuthStruct = {\n account_state: AccountState\n auth_providers: Array<AuthProvider>\n}\n\nexport class PatchAccountAuth {\n static _from_pb(pbf: any): PatchAccountAuth {\n const o = PatchAccountAuth._from_pb_init()\n pbf.readFields(PatchAccountAuth._from_pb_fields, o)\n return new PatchAccountAuth({...(o as any)})\n }\n\n static _from_pb_init() {\n return {auth_providers: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 2: {\n o.account_state = pbf.readVarint()\n return\n }\n case 3: {\n o.auth_providers = pbf.readPackedVarint()\n return\n }\n }\n }\n\n account_state: AccountState\n auth_providers: Array<AuthProvider>\n\n constructor(args: {account_state?: AccountState; auth_providers?: Array<AuthProvider>}) {\n this.account_state = args.account_state || (0 as any)\n this.auth_providers = (args.auth_providers || []).slice()\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.account_state) pbf.writeVarintField(2, this.account_state, pbf)\n pbf.writePackedVarint(3, this.auth_providers)\n }\n}\n\nexport type PatchAccountAttributesStruct = {\n email: string\n phone: string\n tracking_id: string\n crm_id: string\n chargebee_id: string\n source_campaign: SourceCampaignStruct | undefined\n bubbles_seen__or_mask: number\n feature_switches: Array<FeatureSwitch>\n plan: Plan\n clear_feature_switches: boolean\n team_uids: Array<TeamUID>\n clear_team_uids: boolean\n admin_organization_uids: Array<OrganizationUID>\n clear_admin_organization_uids: boolean\n create_organization_uid: OrganizationUID | undefined\n clear_create_organization_uid: boolean\n accepted_terms_version: string\n}\n\nexport class PatchAccountAttributes {\n static _from_pb(pbf: any): PatchAccountAttributes {\n const o = PatchAccountAttributes._from_pb_init()\n pbf.readFields(PatchAccountAttributes._from_pb_fields, o)\n return new PatchAccountAttributes({...(o as any)})\n }\n\n static _from_pb_init() {\n return {feature_switches: [], team_uids: [], admin_organization_uids: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.email = pbf.readString()\n return\n }\n case 19: {\n o.phone = pbf.readString()\n return\n }\n case 2: {\n o.tracking_id = pbf.readString()\n return\n }\n case 3: {\n o.crm_id = pbf.readString()\n return\n }\n case 11: {\n o.chargebee_id = pbf.readString()\n return\n }\n case 4: {\n o.source_campaign = pbf_readMessage(SourceCampaign, pbf)\n return\n }\n case 6: {\n o.bubbles_seen__or_mask = pbf.readVarint()\n return\n }\n case 9: {\n o.feature_switches = pbf.readPackedVarint()\n return\n }\n case 12: {\n o.plan = pbf.readVarint()\n return\n }\n case 10: {\n o.clear_feature_switches = pbf.readBoolean()\n return\n }\n case 13: {\n o.team_uids.push(pbf.readString())\n return\n }\n case 14: {\n o.clear_team_uids = pbf.readBoolean()\n return\n }\n case 15: {\n o.admin_organization_uids.push(pbf.readString())\n return\n }\n case 16: {\n o.clear_admin_organization_uids = pbf.readBoolean()\n return\n }\n case 17: {\n o.create_organization_uid = pbf.readString()\n return\n }\n case 18: {\n o.clear_create_organization_uid = pbf.readBoolean()\n return\n }\n case 20: {\n o.accepted_terms_version = pbf.readString()\n return\n }\n }\n }\n\n email: string\n phone: string\n tracking_id: string\n crm_id: string\n chargebee_id: string\n source_campaign: SourceCampaign | undefined\n bubbles_seen__or_mask: number\n feature_switches: Array<FeatureSwitch>\n plan: Plan\n clear_feature_switches: boolean\n team_uids: Array<TeamUID>\n clear_team_uids: boolean\n admin_organization_uids: Array<OrganizationUID>\n clear_admin_organization_uids: boolean\n create_organization_uid: OrganizationUID | undefined\n clear_create_organization_uid: boolean\n accepted_terms_version: string\n\n constructor(args: {\n email?: string\n phone?: string\n tracking_id?: string\n crm_id?: string\n chargebee_id?: string\n source_campaign?: SourceCampaign\n bubbles_seen__or_mask?: number\n feature_switches?: Array<FeatureSwitch>\n plan?: Plan\n clear_feature_switches?: boolean\n team_uids?: Array<TeamUID>\n clear_team_uids?: boolean\n admin_organization_uids?: Array<OrganizationUID>\n clear_admin_organization_uids?: boolean\n create_organization_uid?: OrganizationUID\n clear_create_organization_uid?: boolean\n accepted_terms_version?: string\n }) {\n this.email = args.email || \"\"\n this.phone = args.phone || \"\"\n this.tracking_id = args.tracking_id || \"\"\n this.crm_id = args.crm_id || \"\"\n this.chargebee_id = args.chargebee_id || \"\"\n this.source_campaign = args.source_campaign\n this.bubbles_seen__or_mask = args.bubbles_seen__or_mask || 0\n this.feature_switches = (args.feature_switches || []).slice()\n this.plan = args.plan || (0 as any)\n this.clear_feature_switches = args.clear_feature_switches || false\n this.team_uids = (args.team_uids || []).slice()\n this.clear_team_uids = args.clear_team_uids || false\n this.admin_organization_uids = (args.admin_organization_uids || []).slice()\n this.clear_admin_organization_uids = args.clear_admin_organization_uids || false\n this.create_organization_uid = args.create_organization_uid\n this.clear_create_organization_uid = args.clear_create_organization_uid || false\n this.accepted_terms_version = args.accepted_terms_version || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n const i_team_uids = this.team_uids.findIndex((x) => !is_TeamUID(x))\n assert(\n i_team_uids < 0,\n () =>\n \"`this.team_uids` contains invalid item: \" +\n JSON.stringify(this.team_uids[i_team_uids]),\n )\n const i_admin_organization_uids = this.admin_organization_uids.findIndex(\n (x) => !is_OrganizationUID(x),\n )\n assert(\n i_admin_organization_uids < 0,\n () =>\n \"`this.admin_organization_uids` contains invalid item: \" +\n JSON.stringify(this.admin_organization_uids[i_admin_organization_uids]),\n )\n assert(\n this.create_organization_uid == null ||\n is_OrganizationUID(this.create_organization_uid),\n \"`create_organization_uid` is not of type OrganizationUID\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.email) pbf.writeStringField(1, this.email, pbf)\n if (this.phone) pbf.writeStringField(19, this.phone, pbf)\n if (this.tracking_id) pbf.writeStringField(2, this.tracking_id, pbf)\n if (this.crm_id) pbf.writeStringField(3, this.crm_id, pbf)\n if (this.chargebee_id) pbf.writeStringField(11, this.chargebee_id, pbf)\n if (this.source_campaign) pbf_writeMessage(4, this.source_campaign, pbf)\n if (this.bubbles_seen__or_mask) pbf.writeVarintField(6, this.bubbles_seen__or_mask, pbf)\n pbf.writePackedVarint(9, this.feature_switches)\n if (this.plan) pbf.writeVarintField(12, this.plan, pbf)\n if (this.clear_feature_switches) pbf.writeBooleanField(10, this.clear_feature_switches, pbf)\n if (this.team_uids)\n for (let i = 0; i < this.team_uids.length; i++) {\n pbf.writeStringField(13, this.team_uids[i])\n }\n if (this.clear_team_uids) pbf.writeBooleanField(14, this.clear_team_uids, pbf)\n if (this.admin_organization_uids)\n for (let i = 0; i < this.admin_organization_uids.length; i++) {\n pbf.writeStringField(15, this.admin_organization_uids[i])\n }\n if (this.clear_admin_organization_uids)\n pbf.writeBooleanField(16, this.clear_admin_organization_uids, pbf)\n if (this.create_organization_uid)\n pbf.writeStringField(17, this.create_organization_uid, pbf)\n if (this.clear_create_organization_uid)\n pbf.writeBooleanField(18, this.clear_create_organization_uid, pbf)\n if (this.accepted_terms_version) pbf.writeStringField(20, this.accepted_terms_version, pbf)\n }\n}\n\nexport type PatchAccountBoardSettingsStruct = {\n board_uid: BoardUID\n remove: boolean\n mute_email_notifications: TriState\n mute_push_notifications: TriState\n set_archived: boolean\n clear_archived: boolean\n}\n\nexport class PatchAccountBoardSettings {\n static _from_pb(pbf: any): PatchAccountBoardSettings {\n const o = PatchAccountBoardSettings._from_pb_init()\n pbf.readFields(PatchAccountBoardSettings._from_pb_fields, o)\n return new PatchAccountBoardSettings({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_uid = pbf.readString()\n return\n }\n case 2: {\n o.remove = pbf.readBoolean()\n return\n }\n case 3: {\n o.mute_email_notifications = pbf.readVarint()\n return\n }\n case 7: {\n o.mute_push_notifications = pbf.readVarint()\n return\n }\n case 5: {\n o.set_archived = pbf.readBoolean()\n return\n }\n case 6: {\n o.clear_archived = pbf.readBoolean()\n return\n }\n }\n }\n\n board_uid: BoardUID\n remove: boolean\n mute_email_notifications: TriState\n mute_push_notifications: TriState\n set_archived: boolean\n clear_archived: boolean\n\n constructor(args: {\n board_uid: BoardUID\n remove?: boolean\n mute_email_notifications?: TriState\n mute_push_notifications?: TriState\n set_archived?: boolean\n clear_archived?: boolean\n }) {\n this.board_uid = args.board_uid\n this.remove = args.remove || false\n this.mute_email_notifications = args.mute_email_notifications || (0 as any)\n this.mute_push_notifications = args.mute_push_notifications || (0 as any)\n this.set_archived = args.set_archived || false\n this.clear_archived = args.clear_archived || false\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.board_uid, \"`board_uid` required\")\n assert(is_BoardUID(this.board_uid), \"`board_uid` is not of type BoardUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_uid) pbf.writeStringField(1, this.board_uid, pbf)\n if (this.remove) pbf.writeBooleanField(2, this.remove, pbf)\n if (this.mute_email_notifications)\n pbf.writeVarintField(3, this.mute_email_notifications, pbf)\n if (this.mute_push_notifications) pbf.writeVarintField(7, this.mute_push_notifications, pbf)\n if (this.set_archived) pbf.writeBooleanField(5, this.set_archived, pbf)\n if (this.clear_archived) pbf.writeBooleanField(6, this.clear_archived, pbf)\n }\n}\n\nexport type PatchAccountSettingsStruct = {\n board_settings: Array<PatchAccountBoardSettingsStruct>\n default_disable_board_changed_emails: TriState\n auto_close_board_chooser: TriState\n sort_boards_alphabetically: TriState\n add_board_changed_push_subscription: PushSubscriptionStruct | undefined\n remove_board_changed_push_subscription: PushSubscriptionStruct | undefined\n clear_board_changed_push_subscriptions: boolean\n}\n\nexport class PatchAccountSettings {\n static _from_pb(pbf: any): PatchAccountSettings {\n const o = PatchAccountSettings._from_pb_init()\n pbf.readFields(PatchAccountSettings._from_pb_fields, o)\n return new PatchAccountSettings({...(o as any)})\n }\n\n static _from_pb_init() {\n return {board_settings: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_settings.push(pbf_readMessage(PatchAccountBoardSettings, pbf))\n return\n }\n case 2: {\n o.default_disable_board_changed_emails = pbf.readVarint()\n return\n }\n case 3: {\n o.auto_close_board_chooser = pbf.readVarint()\n return\n }\n case 4: {\n o.sort_boards_alphabetically = pbf.readVarint()\n return\n }\n case 5: {\n o.add_board_changed_push_subscription = pbf_readMessage(PushSubscription, pbf)\n return\n }\n case 6: {\n o.remove_board_changed_push_subscription = pbf_readMessage(PushSubscription, pbf)\n return\n }\n case 7: {\n o.clear_board_changed_push_subscriptions = pbf.readBoolean()\n return\n }\n }\n }\n\n board_settings: Array<PatchAccountBoardSettings>\n default_disable_board_changed_emails: TriState\n auto_close_board_chooser: TriState\n sort_boards_alphabetically: TriState\n add_board_changed_push_subscription: PushSubscription | undefined\n remove_board_changed_push_subscription: PushSubscription | undefined\n clear_board_changed_push_subscriptions: boolean\n\n constructor(args: {\n board_settings?: Array<PatchAccountBoardSettings>\n default_disable_board_changed_emails?: TriState\n auto_close_board_chooser?: TriState\n sort_boards_alphabetically?: TriState\n add_board_changed_push_subscription?: PushSubscription\n remove_board_changed_push_subscription?: PushSubscription\n clear_board_changed_push_subscriptions?: boolean\n }) {\n this.board_settings = (args.board_settings || []).slice()\n this.default_disable_board_changed_emails =\n args.default_disable_board_changed_emails || (0 as any)\n this.auto_close_board_chooser = args.auto_close_board_chooser || (0 as any)\n this.sort_boards_alphabetically = args.sort_boards_alphabetically || (0 as any)\n this.add_board_changed_push_subscription = args.add_board_changed_push_subscription\n this.remove_board_changed_push_subscription = args.remove_board_changed_push_subscription\n this.clear_board_changed_push_subscriptions =\n args.clear_board_changed_push_subscriptions || false\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_settings)\n for (let i = 0; i < this.board_settings.length; i++) {\n pbf_writeMessage(1, this.board_settings[i], pbf)\n }\n if (this.default_disable_board_changed_emails)\n pbf.writeVarintField(2, this.default_disable_board_changed_emails, pbf)\n if (this.auto_close_board_chooser)\n pbf.writeVarintField(3, this.auto_close_board_chooser, pbf)\n if (this.sort_boards_alphabetically)\n pbf.writeVarintField(4, this.sort_boards_alphabetically, pbf)\n if (this.add_board_changed_push_subscription)\n pbf_writeMessage(5, this.add_board_changed_push_subscription, pbf)\n if (this.remove_board_changed_push_subscription)\n pbf_writeMessage(6, this.remove_board_changed_push_subscription, pbf)\n if (this.clear_board_changed_push_subscriptions)\n pbf.writeBooleanField(7, this.clear_board_changed_push_subscriptions, pbf)\n }\n}\n\nexport type PatchFullAccountRequestStruct = {\n patch_uid: PatchUID\n return_patched_full_account: boolean\n patch_account: PatchAccountStruct | undefined\n patch_account_auth: PatchAccountAuthStruct | undefined\n patch_account_attributes: PatchAccountAttributesStruct | undefined\n patch_account_settings: PatchAccountSettingsStruct | undefined\n remove: boolean\n}\n\nexport class PatchFullAccountRequest {\n static HTTP_METHOD = <const>\"PUT\"\n\n static _from_pb(pbf: any): PatchFullAccountRequest {\n const o = PatchFullAccountRequest._from_pb_init()\n pbf.readFields(PatchFullAccountRequest._from_pb_fields, o)\n return new PatchFullAccountRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.patch_uid = pbf.readString()\n return\n }\n case 2: {\n o.return_patched_full_account = pbf.readBoolean()\n return\n }\n case 3: {\n o.patch_account = pbf_readMessage(PatchAccount, pbf)\n return\n }\n case 4: {\n o.patch_account_auth = pbf_readMessage(PatchAccountAuth, pbf)\n return\n }\n case 5: {\n o.patch_account_attributes = pbf_readMessage(PatchAccountAttributes, pbf)\n return\n }\n case 6: {\n o.patch_account_settings = pbf_readMessage(PatchAccountSettings, pbf)\n return\n }\n case 7: {\n o.remove = pbf.readBoolean()\n return\n }\n }\n }\n\n patch_uid: PatchUID\n return_patched_full_account: boolean\n patch_account: PatchAccount | undefined\n patch_account_auth: PatchAccountAuth | undefined\n patch_account_attributes: PatchAccountAttributes | undefined\n patch_account_settings: PatchAccountSettings | undefined\n remove: boolean\n\n constructor(args: {\n patch_uid: PatchUID\n return_patched_full_account?: boolean\n patch_account?: PatchAccount\n patch_account_auth?: PatchAccountAuth\n patch_account_attributes?: PatchAccountAttributes\n patch_account_settings?: PatchAccountSettings\n remove?: boolean\n }) {\n this.patch_uid = args.patch_uid\n this.return_patched_full_account = args.return_patched_full_account || false\n this.patch_account = args.patch_account\n this.patch_account_auth = args.patch_account_auth\n this.patch_account_attributes = args.patch_account_attributes\n this.patch_account_settings = args.patch_account_settings\n this.remove = args.remove || false\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.patch_uid, \"`patch_uid` required\")\n assert(is_PatchUID(this.patch_uid), \"`patch_uid` is not of type PatchUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.patch_uid) pbf.writeStringField(1, this.patch_uid, pbf)\n if (this.return_patched_full_account)\n pbf.writeBooleanField(2, this.return_patched_full_account, pbf)\n if (this.patch_account) pbf_writeMessage(3, this.patch_account, pbf)\n if (this.patch_account_auth) pbf_writeMessage(4, this.patch_account_auth, pbf)\n if (this.patch_account_attributes) pbf_writeMessage(5, this.patch_account_attributes, pbf)\n if (this.patch_account_settings) pbf_writeMessage(6, this.patch_account_settings, pbf)\n if (this.remove) pbf.writeBooleanField(7, this.remove, pbf)\n }\n}\n\nexport type PatchFullAccountResponseStruct = {\n full_account: FullAccountStruct | undefined\n is_new: boolean\n}\n\nexport class PatchFullAccountResponse {\n static _from_pb(pbf: any): PatchFullAccountResponse {\n const o = PatchFullAccountResponse._from_pb_init()\n pbf.readFields(PatchFullAccountResponse._from_pb_fields, o)\n return new PatchFullAccountResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.full_account = pbf_readMessage(FullAccount, pbf)\n return\n }\n case 2: {\n o.is_new = pbf.readBoolean()\n return\n }\n }\n }\n\n full_account: FullAccount | undefined\n is_new: boolean\n\n constructor(args: {full_account?: FullAccount; is_new?: boolean}) {\n this.full_account = args.full_account\n this.is_new = args.is_new || false\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.full_account) pbf_writeMessage(1, this.full_account, pbf)\n if (this.is_new) pbf.writeBooleanField(2, this.is_new, pbf)\n }\n}\n\nexport type LogoutOnAllDevicesRequestStruct = {}\n\nexport class LogoutOnAllDevicesRequest {\n static HTTP_METHOD = <const>\"PUT\"\n\n static _from_pb(pbf: any): LogoutOnAllDevicesRequest {\n const o = LogoutOnAllDevicesRequest._from_pb_init()\n pbf.readFields(LogoutOnAllDevicesRequest._from_pb_fields, o)\n return new LogoutOnAllDevicesRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n }\n }\n\n constructor(args: {}) {\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {}\n}\n\nexport type LogoutOnAllDevicesResponseStruct = {}\n\nexport class LogoutOnAllDevicesResponse {\n static _from_pb(pbf: any): LogoutOnAllDevicesResponse {\n const o = LogoutOnAllDevicesResponse._from_pb_init()\n pbf.readFields(LogoutOnAllDevicesResponse._from_pb_fields, o)\n return new LogoutOnAllDevicesResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n }\n }\n\n constructor(args: {}) {\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {}\n}\n\nexport type SignUpRequestStruct = {\n given_name: string\n family_name: string\n profile_image_url: string\n locale: Locale | undefined\n source_campaign: SourceCampaignStruct | undefined\n team_code_uid: TeamCodeUID | undefined\n invite_code: string\n create_organization_uid: OrganizationUID | undefined\n}\n\nexport class SignUpRequest {\n static HTTP_METHOD = <const>\"PUT\"\n static MAX_CONCURRENT_FROM_CLIENT = <const>1\n\n static _from_pb(pbf: any): SignUpRequest {\n const o = SignUpRequest._from_pb_init()\n pbf.readFields(SignUpRequest._from_pb_fields, o)\n return new SignUpRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.given_name = pbf.readString()\n return\n }\n case 2: {\n o.family_name = pbf.readString()\n return\n }\n case 3: {\n o.profile_image_url = pbf.readString()\n return\n }\n case 4: {\n o.locale = pbf.readString()\n return\n }\n case 5: {\n o.source_campaign = pbf_readMessage(SourceCampaign, pbf)\n return\n }\n case 6: {\n o.team_code_uid = pbf.readString()\n return\n }\n case 7: {\n o.invite_code = pbf.readString()\n return\n }\n case 8: {\n o.create_organization_uid = pbf.readString()\n return\n }\n }\n }\n\n given_name: string\n family_name: string\n profile_image_url: string\n locale: Locale | undefined\n source_campaign: SourceCampaign | undefined\n team_code_uid: TeamCodeUID | undefined\n invite_code: string\n create_organization_uid: OrganizationUID | undefined\n\n constructor(args: {\n given_name?: string\n family_name?: string\n profile_image_url?: string\n locale?: Locale\n source_campaign?: SourceCampaign\n team_code_uid?: TeamCodeUID\n invite_code?: string\n create_organization_uid?: OrganizationUID\n }) {\n this.given_name = args.given_name || \"\"\n this.family_name = args.family_name || \"\"\n this.profile_image_url = args.profile_image_url || \"\"\n this.locale = args.locale\n this.source_campaign = args.source_campaign\n this.team_code_uid = args.team_code_uid\n this.invite_code = args.invite_code || \"\"\n this.create_organization_uid = args.create_organization_uid\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.locale == null || is_Locale(this.locale), \"`locale` is not of type Locale\")\n assert(\n this.team_code_uid == null || is_TeamCodeUID(this.team_code_uid),\n \"`team_code_uid` is not of type TeamCodeUID\",\n )\n assert(\n this.create_organization_uid == null ||\n is_OrganizationUID(this.create_organization_uid),\n \"`create_organization_uid` is not of type OrganizationUID\",\n )\n limits.LIMIT_SMALL_TEXT.check(this.given_name ? this.given_name.length : 0)\n limits.LIMIT_SMALL_TEXT.check(this.family_name ? this.family_name.length : 0)\n limits.LIMIT_URL.check(this.profile_image_url ? this.profile_image_url.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.given_name) pbf.writeStringField(1, this.given_name, pbf)\n if (this.family_name) pbf.writeStringField(2, this.family_name, pbf)\n if (this.profile_image_url) pbf.writeStringField(3, this.profile_image_url, pbf)\n if (this.locale) pbf.writeStringField(4, this.locale, pbf)\n if (this.source_campaign) pbf_writeMessage(5, this.source_campaign, pbf)\n if (this.team_code_uid) pbf.writeStringField(6, this.team_code_uid, pbf)\n if (this.invite_code) pbf.writeStringField(7, this.invite_code, pbf)\n if (this.create_organization_uid) pbf.writeStringField(8, this.create_organization_uid, pbf)\n }\n}\n\nexport type SignUpResponseStruct = {\n full_account: FullAccountStruct | undefined\n already_exists: boolean\n invite_invalid: boolean\n invite_failed: boolean\n redirect_to_board_uid: BoardUID | undefined\n}\n\nexport class SignUpResponse {\n static _from_pb(pbf: any): SignUpResponse {\n const o = SignUpResponse._from_pb_init()\n pbf.readFields(SignUpResponse._from_pb_fields, o)\n return new SignUpResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.full_account = pbf_readMessage(FullAccount, pbf)\n return\n }\n case 2: {\n o.already_exists = pbf.readBoolean()\n return\n }\n case 3: {\n o.invite_invalid = pbf.readBoolean()\n return\n }\n case 4: {\n o.invite_failed = pbf.readBoolean()\n return\n }\n case 5: {\n o.redirect_to_board_uid = pbf.readString()\n return\n }\n }\n }\n\n full_account: FullAccount | undefined\n already_exists: boolean\n invite_invalid: boolean\n invite_failed: boolean\n redirect_to_board_uid: BoardUID | undefined\n\n constructor(args: {\n full_account?: FullAccount\n already_exists?: boolean\n invite_invalid?: boolean\n invite_failed?: boolean\n redirect_to_board_uid?: BoardUID\n }) {\n this.full_account = args.full_account\n this.already_exists = args.already_exists || false\n this.invite_invalid = args.invite_invalid || false\n this.invite_failed = args.invite_failed || false\n this.redirect_to_board_uid = args.redirect_to_board_uid\n makeObservable(this, {})\n this.verify()\n }\n\n public get result(): FullAccount | boolean | boolean | boolean {\n return not_null(\n this.full_account || this.already_exists || this.invite_invalid || this.invite_failed,\n )\n }\n\n public verify() {\n assert(\n this.redirect_to_board_uid == null || is_BoardUID(this.redirect_to_board_uid),\n \"`redirect_to_board_uid` is not of type BoardUID\",\n )\n assert(\n [\n this.full_account,\n this.already_exists,\n this.invite_invalid,\n this.invite_failed,\n ].filter((x) => !!x).length === 1,\n \"Exactly one of [`full_account`, `already_exists`, `invite_invalid`, `invite_failed`] required\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.full_account) pbf_writeMessage(1, this.full_account, pbf)\n if (this.already_exists) pbf.writeBooleanField(2, this.already_exists, pbf)\n if (this.invite_invalid) pbf.writeBooleanField(3, this.invite_invalid, pbf)\n if (this.invite_failed) pbf.writeBooleanField(4, this.invite_failed, pbf)\n if (this.redirect_to_board_uid) pbf.writeStringField(5, this.redirect_to_board_uid, pbf)\n }\n}\n\nexport type ManageAuthSendVerifyEmailMessageStruct = {\n email: string\n language: Language\n sign_up_request: SignUpRequestStruct\n}\n\nexport class ManageAuthSendVerifyEmailMessage {\n static _from_pb(pbf: any): ManageAuthSendVerifyEmailMessage {\n const o = ManageAuthSendVerifyEmailMessage._from_pb_init()\n pbf.readFields(ManageAuthSendVerifyEmailMessage._from_pb_fields, o)\n return new ManageAuthSendVerifyEmailMessage({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.email = pbf.readString()\n return\n }\n case 2: {\n o.language = pbf.readString()\n return\n }\n case 4: {\n o.sign_up_request = pbf_readMessage(SignUpRequest, pbf)\n return\n }\n }\n }\n\n email: string\n language: Language\n sign_up_request: SignUpRequest\n\n constructor(args: {email: string; language: Language; sign_up_request: SignUpRequest}) {\n this.email = args.email || \"\"\n this.language = args.language\n this.sign_up_request = args.sign_up_request\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.email, \"`email` required\")\n assert(this.language, \"`language` required\")\n assert(is_Language(this.language), \"`language` is not of type Language\")\n assert(this.sign_up_request, \"`sign_up_request` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.email) pbf.writeStringField(1, this.email, pbf)\n if (this.language) pbf.writeStringField(2, this.language, pbf)\n if (this.sign_up_request) pbf_writeMessage(4, this.sign_up_request, pbf)\n }\n}\n\nexport type ManageAuthSendResetPasswordMessageStruct = {\n email: string\n language: Language\n}\n\nexport class ManageAuthSendResetPasswordMessage {\n static _from_pb(pbf: any): ManageAuthSendResetPasswordMessage {\n const o = ManageAuthSendResetPasswordMessage._from_pb_init()\n pbf.readFields(ManageAuthSendResetPasswordMessage._from_pb_fields, o)\n return new ManageAuthSendResetPasswordMessage({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.email = pbf.readString()\n return\n }\n case 2: {\n o.language = pbf.readString()\n return\n }\n }\n }\n\n email: string\n language: Language\n\n constructor(args: {email: string; language: Language}) {\n this.email = args.email || \"\"\n this.language = args.language\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.email, \"`email` required\")\n assert(this.language, \"`language` required\")\n assert(is_Language(this.language), \"`language` is not of type Language\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.email) pbf.writeStringField(1, this.email, pbf)\n if (this.language) pbf.writeStringField(2, this.language, pbf)\n }\n}\n\nexport type ManageAuthSendChangeEmailMessageStruct = {\n email: string\n language: Language\n}\n\nexport class ManageAuthSendChangeEmailMessage {\n static _from_pb(pbf: any): ManageAuthSendChangeEmailMessage {\n const o = ManageAuthSendChangeEmailMessage._from_pb_init()\n pbf.readFields(ManageAuthSendChangeEmailMessage._from_pb_fields, o)\n return new ManageAuthSendChangeEmailMessage({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.email = pbf.readString()\n return\n }\n case 2: {\n o.language = pbf.readString()\n return\n }\n }\n }\n\n email: string\n language: Language\n\n constructor(args: {email: string; language: Language}) {\n this.email = args.email || \"\"\n this.language = args.language\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.email, \"`email` required\")\n assert(this.language, \"`language` required\")\n assert(is_Language(this.language), \"`language` is not of type Language\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.email) pbf.writeStringField(1, this.email, pbf)\n if (this.language) pbf.writeStringField(2, this.language, pbf)\n }\n}\n\nexport type ManageAuthApplyAuthActionCodeStruct = {\n auth_action_code_uid: AuthActionCodeUID\n new_password: string\n}\n\nexport class ManageAuthApplyAuthActionCode {\n static _from_pb(pbf: any): ManageAuthApplyAuthActionCode {\n const o = ManageAuthApplyAuthActionCode._from_pb_init()\n pbf.readFields(ManageAuthApplyAuthActionCode._from_pb_fields, o)\n return new ManageAuthApplyAuthActionCode({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.auth_action_code_uid = pbf.readString()\n return\n }\n case 2: {\n o.new_password = pbf.readString()\n return\n }\n }\n }\n\n auth_action_code_uid: AuthActionCodeUID\n new_password: string\n\n constructor(args: {auth_action_code_uid: AuthActionCodeUID; new_password?: string}) {\n this.auth_action_code_uid = args.auth_action_code_uid\n this.new_password = args.new_password || \"\"\n makeObservable(this, {auth_action_code_uid: observable, new_password: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.auth_action_code_uid, \"`auth_action_code_uid` required\")\n assert(\n is_AuthActionCodeUID(this.auth_action_code_uid),\n \"`auth_action_code_uid` is not of type AuthActionCodeUID\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.auth_action_code_uid) pbf.writeStringField(1, this.auth_action_code_uid, pbf)\n if (this.new_password) pbf.writeStringField(2, this.new_password, pbf)\n }\n}\n\nexport type ManageAuthSyncEmailFromGIPStruct = {}\n\nexport class ManageAuthSyncEmailFromGIP {\n static _from_pb(pbf: any): ManageAuthSyncEmailFromGIP {\n const o = ManageAuthSyncEmailFromGIP._from_pb_init()\n pbf.readFields(ManageAuthSyncEmailFromGIP._from_pb_fields, o)\n return new ManageAuthSyncEmailFromGIP({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n }\n }\n\n constructor(args: {}) {\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {}\n}\n\nexport type ManageAuthRequestStruct = {\n send_verify_email_message: ManageAuthSendVerifyEmailMessageStruct | undefined\n send_reset_password_message: ManageAuthSendResetPasswordMessageStruct | undefined\n send_change_email_message: ManageAuthSendChangeEmailMessageStruct | undefined\n sync_email_from_gip: ManageAuthSyncEmailFromGIPStruct | undefined\n apply_auth_action_code: ManageAuthApplyAuthActionCodeStruct | undefined\n}\n\nexport class ManageAuthRequest {\n static HTTP_METHOD = <const>\"PUT\"\n static MAX_CONCURRENT_FROM_CLIENT = <const>1\n\n static _from_pb(pbf: any): ManageAuthRequest {\n const o = ManageAuthRequest._from_pb_init()\n pbf.readFields(ManageAuthRequest._from_pb_fields, o)\n return new ManageAuthRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.send_verify_email_message = pbf_readMessage(ManageAuthSendVerifyEmailMessage, pbf)\n return\n }\n case 2: {\n o.send_reset_password_message = pbf_readMessage(\n ManageAuthSendResetPasswordMessage,\n pbf,\n )\n return\n }\n case 3: {\n o.send_change_email_message = pbf_readMessage(ManageAuthSendChangeEmailMessage, pbf)\n return\n }\n case 4: {\n o.sync_email_from_gip = pbf_readMessage(ManageAuthSyncEmailFromGIP, pbf)\n return\n }\n case 5: {\n o.apply_auth_action_code = pbf_readMessage(ManageAuthApplyAuthActionCode, pbf)\n return\n }\n }\n }\n\n send_verify_email_message: ManageAuthSendVerifyEmailMessage | undefined\n send_reset_password_message: ManageAuthSendResetPasswordMessage | undefined\n send_change_email_message: ManageAuthSendChangeEmailMessage | undefined\n sync_email_from_gip: ManageAuthSyncEmailFromGIP | undefined\n apply_auth_action_code: ManageAuthApplyAuthActionCode | undefined\n\n constructor(args: {\n send_verify_email_message?: ManageAuthSendVerifyEmailMessage\n send_reset_password_message?: ManageAuthSendResetPasswordMessage\n send_change_email_message?: ManageAuthSendChangeEmailMessage\n sync_email_from_gip?: ManageAuthSyncEmailFromGIP\n apply_auth_action_code?: ManageAuthApplyAuthActionCode\n }) {\n this.send_verify_email_message = args.send_verify_email_message\n this.send_reset_password_message = args.send_reset_password_message\n this.send_change_email_message = args.send_change_email_message\n this.sync_email_from_gip = args.sync_email_from_gip\n this.apply_auth_action_code = args.apply_auth_action_code\n makeObservable(this, {})\n this.verify()\n }\n\n public get action():\n | ManageAuthSendVerifyEmailMessage\n | ManageAuthSendResetPasswordMessage\n | ManageAuthSendChangeEmailMessage\n | ManageAuthSyncEmailFromGIP\n | ManageAuthApplyAuthActionCode {\n return not_null(\n this.send_verify_email_message ||\n this.send_reset_password_message ||\n this.send_change_email_message ||\n this.sync_email_from_gip ||\n this.apply_auth_action_code,\n )\n }\n\n public verify() {\n assert(\n [\n this.send_verify_email_message,\n this.send_reset_password_message,\n this.send_change_email_message,\n this.sync_email_from_gip,\n this.apply_auth_action_code,\n ].filter((x) => !!x).length === 1,\n \"Exactly one of [`send_verify_email_message`, `send_reset_password_message`, `send_change_email_message`, `sync_email_from_gip`, `apply_auth_action_code`] required\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.send_verify_email_message) pbf_writeMessage(1, this.send_verify_email_message, pbf)\n if (this.send_reset_password_message)\n pbf_writeMessage(2, this.send_reset_password_message, pbf)\n if (this.send_change_email_message) pbf_writeMessage(3, this.send_change_email_message, pbf)\n if (this.sync_email_from_gip) pbf_writeMessage(4, this.sync_email_from_gip, pbf)\n if (this.apply_auth_action_code) pbf_writeMessage(5, this.apply_auth_action_code, pbf)\n }\n}\n\nexport type ManageAuthResponseStruct = {\n sign_up_response: SignUpResponseStruct | undefined\n test_only_verify_url: string\n}\n\nexport class ManageAuthResponse {\n static _from_pb(pbf: any): ManageAuthResponse {\n const o = ManageAuthResponse._from_pb_init()\n pbf.readFields(ManageAuthResponse._from_pb_fields, o)\n return new ManageAuthResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 2: {\n o.sign_up_response = pbf_readMessage(SignUpResponse, pbf)\n return\n }\n case 3: {\n o.test_only_verify_url = pbf.readString()\n return\n }\n }\n }\n\n sign_up_response: SignUpResponse | undefined\n test_only_verify_url: string\n\n constructor(args: {sign_up_response?: SignUpResponse; test_only_verify_url?: string}) {\n this.sign_up_response = args.sign_up_response\n this.test_only_verify_url = args.test_only_verify_url || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n limits.LIMIT_URL.check(this.test_only_verify_url ? this.test_only_verify_url.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.sign_up_response) pbf_writeMessage(2, this.sign_up_response, pbf)\n if (this.test_only_verify_url) pbf.writeStringField(3, this.test_only_verify_url, pbf)\n }\n}\n\nexport type ManageSessionRequestStruct = {\n update_jwt: string\n logout: boolean\n}\n\nexport class ManageSessionRequest {\n static HTTP_METHOD = <const>\"POST\"\n\n static _from_pb(pbf: any): ManageSessionRequest {\n const o = ManageSessionRequest._from_pb_init()\n pbf.readFields(ManageSessionRequest._from_pb_fields, o)\n return new ManageSessionRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.update_jwt = pbf.readString()\n return\n }\n case 2: {\n o.logout = pbf.readBoolean()\n return\n }\n }\n }\n\n update_jwt: string\n logout: boolean\n\n constructor(args: {update_jwt?: string; logout?: boolean}) {\n this.update_jwt = args.update_jwt || \"\"\n this.logout = args.logout || false\n makeObservable(this, {})\n this.verify()\n }\n\n public get action(): string | boolean {\n return not_null(this.update_jwt || this.logout)\n }\n\n public verify() {\n assert(\n [this.update_jwt, this.logout].filter((x) => !!x).length === 1,\n \"Exactly one of [`update_jwt`, `logout`] required\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.update_jwt) pbf.writeStringField(1, this.update_jwt, pbf)\n if (this.logout) pbf.writeBooleanField(2, this.logout, pbf)\n }\n}\n\nexport type ManageSessionResponseStruct = {\n csrf_token: string\n}\n\nexport class ManageSessionResponse {\n static _from_pb(pbf: any): ManageSessionResponse {\n const o = ManageSessionResponse._from_pb_init()\n pbf.readFields(ManageSessionResponse._from_pb_fields, o)\n return new ManageSessionResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.csrf_token = pbf.readString()\n return\n }\n }\n }\n\n csrf_token: string\n\n constructor(args: {csrf_token?: string}) {\n this.csrf_token = args.csrf_token || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.csrf_token) pbf.writeStringField(1, this.csrf_token, pbf)\n }\n}\n\nexport type InitOauth2FlowValidateStruct = {}\n\nexport class InitOauth2FlowValidate {\n static _from_pb(pbf: any): InitOauth2FlowValidate {\n const o = InitOauth2FlowValidate._from_pb_init()\n pbf.readFields(InitOauth2FlowValidate._from_pb_fields, o)\n return new InitOauth2FlowValidate({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n }\n }\n\n constructor(args: {}) {\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {}\n}\n\nexport type InitOauth2FlowAuthorizeStruct = {}\n\nexport class InitOauth2FlowAuthorize {\n static _from_pb(pbf: any): InitOauth2FlowAuthorize {\n const o = InitOauth2FlowAuthorize._from_pb_init()\n pbf.readFields(InitOauth2FlowAuthorize._from_pb_fields, o)\n return new InitOauth2FlowAuthorize({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n }\n }\n\n constructor(args: {}) {\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {}\n}\n\nexport type InitOauth2FlowRequestStruct = {\n query_string: string\n validate: InitOauth2FlowValidateStruct | undefined\n authorize: InitOauth2FlowAuthorizeStruct | undefined\n}\n\nexport class InitOauth2FlowRequest {\n static HTTP_METHOD = <const>\"GET\"\n static MAX_CONCURRENT_FROM_CLIENT = <const>1\n\n static _from_pb(pbf: any): InitOauth2FlowRequest {\n const o = InitOauth2FlowRequest._from_pb_init()\n pbf.readFields(InitOauth2FlowRequest._from_pb_fields, o)\n return new InitOauth2FlowRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.query_string = pbf.readString()\n return\n }\n case 2: {\n o.validate = pbf_readMessage(InitOauth2FlowValidate, pbf)\n return\n }\n case 3: {\n o.authorize = pbf_readMessage(InitOauth2FlowAuthorize, pbf)\n return\n }\n }\n }\n\n query_string: string\n validate: InitOauth2FlowValidate | undefined\n authorize: InitOauth2FlowAuthorize | undefined\n\n constructor(args: {\n query_string: string\n validate?: InitOauth2FlowValidate\n authorize?: InitOauth2FlowAuthorize\n }) {\n this.query_string = args.query_string || \"\"\n this.validate = args.validate\n this.authorize = args.authorize\n makeObservable(this, {})\n this.verify()\n }\n\n public get action(): InitOauth2FlowValidate | InitOauth2FlowAuthorize {\n return not_null(this.validate || this.authorize)\n }\n\n public verify() {\n assert(this.query_string, \"`query_string` required\")\n assert(\n [this.validate, this.authorize].filter((x) => !!x).length === 1,\n \"Exactly one of [`validate`, `authorize`] required\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.query_string) pbf.writeStringField(1, this.query_string, pbf)\n if (this.validate) pbf_writeMessage(2, this.validate, pbf)\n if (this.authorize) pbf_writeMessage(3, this.authorize, pbf)\n }\n}\n\nexport type InitOauth2FlowValidateResponseStruct = {\n client_name: string\n api_scopes: Array<APIScope>\n decline_redirect_uri: string\n}\n\nexport class InitOauth2FlowValidateResponse {\n static _from_pb(pbf: any): InitOauth2FlowValidateResponse {\n const o = InitOauth2FlowValidateResponse._from_pb_init()\n pbf.readFields(InitOauth2FlowValidateResponse._from_pb_fields, o)\n return new InitOauth2FlowValidateResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {api_scopes: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.client_name = pbf.readString()\n return\n }\n case 2: {\n o.api_scopes = pbf.readPackedVarint()\n return\n }\n case 3: {\n o.decline_redirect_uri = pbf.readString()\n return\n }\n }\n }\n\n client_name: string\n api_scopes: Array<APIScope>\n decline_redirect_uri: string\n\n constructor(args: {\n client_name: string\n api_scopes: Array<APIScope>\n decline_redirect_uri: string\n }) {\n this.client_name = args.client_name || \"\"\n this.api_scopes = (args.api_scopes || []).slice()\n this.decline_redirect_uri = args.decline_redirect_uri || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.client_name, \"`client_name` required\")\n assert(this.api_scopes, \"`api_scopes` required\")\n assert(this.decline_redirect_uri, \"`decline_redirect_uri` required\")\n limits.LIMIT_SMALL_TEXT.check(this.client_name ? this.client_name.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.client_name) pbf.writeStringField(1, this.client_name, pbf)\n pbf.writePackedVarint(2, this.api_scopes)\n if (this.decline_redirect_uri) pbf.writeStringField(3, this.decline_redirect_uri, pbf)\n }\n}\n\nexport type InitOauth2FlowAuthorizeResponseStruct = {\n redirect_uri: string\n}\n\nexport class InitOauth2FlowAuthorizeResponse {\n static _from_pb(pbf: any): InitOauth2FlowAuthorizeResponse {\n const o = InitOauth2FlowAuthorizeResponse._from_pb_init()\n pbf.readFields(InitOauth2FlowAuthorizeResponse._from_pb_fields, o)\n return new InitOauth2FlowAuthorizeResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.redirect_uri = pbf.readString()\n return\n }\n }\n }\n\n redirect_uri: string\n\n constructor(args: {redirect_uri?: string}) {\n this.redirect_uri = args.redirect_uri || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.redirect_uri) pbf.writeStringField(1, this.redirect_uri, pbf)\n }\n}\n\nexport type InitOauth2FlowResponseStruct = {\n error_redirect_uri: string\n validate_response: InitOauth2FlowValidateResponseStruct | undefined\n authorize_response: InitOauth2FlowAuthorizeResponseStruct | undefined\n}\n\nexport class InitOauth2FlowResponse {\n static _from_pb(pbf: any): InitOauth2FlowResponse {\n const o = InitOauth2FlowResponse._from_pb_init()\n pbf.readFields(InitOauth2FlowResponse._from_pb_fields, o)\n return new InitOauth2FlowResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.error_redirect_uri = pbf.readString()\n return\n }\n case 2: {\n o.validate_response = pbf_readMessage(InitOauth2FlowValidateResponse, pbf)\n return\n }\n case 3: {\n o.authorize_response = pbf_readMessage(InitOauth2FlowAuthorizeResponse, pbf)\n return\n }\n }\n }\n\n error_redirect_uri: string\n validate_response: InitOauth2FlowValidateResponse | undefined\n authorize_response: InitOauth2FlowAuthorizeResponse | undefined\n\n constructor(args: {\n error_redirect_uri?: string\n validate_response?: InitOauth2FlowValidateResponse\n authorize_response?: InitOauth2FlowAuthorizeResponse\n }) {\n this.error_redirect_uri = args.error_redirect_uri || \"\"\n this.validate_response = args.validate_response\n this.authorize_response = args.authorize_response\n makeObservable(this, {})\n this.verify()\n }\n\n public get action(): string | InitOauth2FlowValidateResponse | InitOauth2FlowAuthorizeResponse {\n return not_null(\n this.error_redirect_uri || this.validate_response || this.authorize_response,\n )\n }\n\n public verify() {\n assert(\n [this.error_redirect_uri, this.validate_response, this.authorize_response].filter(\n (x) => !!x,\n ).length === 1,\n \"Exactly one of [`error_redirect_uri`, `validate_response`, `authorize_response`] required\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.error_redirect_uri) pbf.writeStringField(1, this.error_redirect_uri, pbf)\n if (this.validate_response) pbf_writeMessage(2, this.validate_response, pbf)\n if (this.authorize_response) pbf_writeMessage(3, this.authorize_response, pbf)\n }\n}\n\nexport type AuthActionChangeEmailStruct = {\n email: string\n}\n\nexport class AuthActionChangeEmail {\n static _from_pb(pbf: any): AuthActionChangeEmail {\n const o = AuthActionChangeEmail._from_pb_init()\n pbf.readFields(AuthActionChangeEmail._from_pb_fields, o)\n return new AuthActionChangeEmail({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.email = pbf.readString()\n return\n }\n }\n }\n\n email: string\n\n constructor(args: {email: string}) {\n this.email = args.email || \"\"\n makeObservable(this, {email: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.email, \"`email` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.email) pbf.writeStringField(1, this.email, pbf)\n }\n}\n\nexport type AuthActionRevertEmailStruct = {\n email: string\n}\n\nexport class AuthActionRevertEmail {\n static _from_pb(pbf: any): AuthActionRevertEmail {\n const o = AuthActionRevertEmail._from_pb_init()\n pbf.readFields(AuthActionRevertEmail._from_pb_fields, o)\n return new AuthActionRevertEmail({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.email = pbf.readString()\n return\n }\n }\n }\n\n email: string\n\n constructor(args: {email: string}) {\n this.email = args.email || \"\"\n makeObservable(this, {email: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.email, \"`email` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.email) pbf.writeStringField(1, this.email, pbf)\n }\n}\n\nexport type AuthActionVerifyEmailStruct = {\n sign_up_request: SignUpRequestStruct\n}\n\nexport class AuthActionVerifyEmail {\n static _from_pb(pbf: any): AuthActionVerifyEmail {\n const o = AuthActionVerifyEmail._from_pb_init()\n pbf.readFields(AuthActionVerifyEmail._from_pb_fields, o)\n return new AuthActionVerifyEmail({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.sign_up_request = pbf_readMessage(SignUpRequest, pbf)\n return\n }\n }\n }\n\n sign_up_request: SignUpRequest\n\n constructor(args: {sign_up_request: SignUpRequest}) {\n this.sign_up_request = args.sign_up_request\n makeObservable(this, {sign_up_request: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.sign_up_request, \"`sign_up_request` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.sign_up_request) pbf_writeMessage(1, this.sign_up_request, pbf)\n }\n}\n\nexport type AuthActionChangePasswordStruct = {}\n\nexport class AuthActionChangePassword {\n static _from_pb(pbf: any): AuthActionChangePassword {\n const o = AuthActionChangePassword._from_pb_init()\n pbf.readFields(AuthActionChangePassword._from_pb_fields, o)\n return new AuthActionChangePassword({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n }\n }\n\n constructor(args: {}) {\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {}\n}\n\nexport type AuthActionCodeStruct = {\n uid: AuthActionCodeUID\n account_uid: AccountUID\n verify_email: AuthActionVerifyEmailStruct | undefined\n change_password: AuthActionChangePasswordStruct | undefined\n change_email: AuthActionChangeEmailStruct | undefined\n revert_email: AuthActionRevertEmailStruct | undefined\n}\n\nexport class AuthActionCode {\n static _from_pb(pbf: any): AuthActionCode {\n const o = AuthActionCode._from_pb_init()\n pbf.readFields(AuthActionCode._from_pb_fields, o)\n return new AuthActionCode({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.account_uid = pbf.readString()\n return\n }\n case 3: {\n o.verify_email = pbf_readMessage(AuthActionVerifyEmail, pbf)\n return\n }\n case 4: {\n o.change_password = pbf_readMessage(AuthActionChangePassword, pbf)\n return\n }\n case 5: {\n o.change_email = pbf_readMessage(AuthActionChangeEmail, pbf)\n return\n }\n case 6: {\n o.revert_email = pbf_readMessage(AuthActionRevertEmail, pbf)\n return\n }\n }\n }\n\n uid: AuthActionCodeUID\n account_uid: AccountUID\n verify_email: AuthActionVerifyEmail | undefined\n change_password: AuthActionChangePassword | undefined\n change_email: AuthActionChangeEmail | undefined\n revert_email: AuthActionRevertEmail | undefined\n\n constructor(args: {\n uid: AuthActionCodeUID\n account_uid: AccountUID\n verify_email?: AuthActionVerifyEmail\n change_password?: AuthActionChangePassword\n change_email?: AuthActionChangeEmail\n revert_email?: AuthActionRevertEmail\n }) {\n this.uid = args.uid\n this.account_uid = args.account_uid\n this.verify_email = args.verify_email\n this.change_password = args.change_password\n this.change_email = args.change_email\n this.revert_email = args.revert_email\n makeObservable(this, {\n account_uid: observable,\n verify_email: observable,\n change_password: observable,\n change_email: observable,\n revert_email: observable,\n })\n this.verify()\n }\n\n public get action():\n | AuthActionVerifyEmail\n | AuthActionChangePassword\n | AuthActionChangeEmail\n | AuthActionRevertEmail {\n return not_null(\n this.verify_email || this.change_password || this.change_email || this.revert_email,\n )\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_AuthActionCodeUID(this.uid), \"`uid` is not of type AuthActionCodeUID\")\n assert(this.account_uid, \"`account_uid` required\")\n assert(is_AccountUID(this.account_uid), \"`account_uid` is not of type AccountUID\")\n assert(\n [this.verify_email, this.change_password, this.change_email, this.revert_email].filter(\n (x) => !!x,\n ).length === 1,\n \"Exactly one of [`verify_email`, `change_password`, `change_email`, `revert_email`] required\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.account_uid) pbf.writeStringField(2, this.account_uid, pbf)\n if (this.verify_email) pbf_writeMessage(3, this.verify_email, pbf)\n if (this.change_password) pbf_writeMessage(4, this.change_password, pbf)\n if (this.change_email) pbf_writeMessage(5, this.change_email, pbf)\n if (this.revert_email) pbf_writeMessage(6, this.revert_email, pbf)\n }\n}\n\nexport type SyncEntityBinDiffStruct = {\n diffs: Array<Uint8Array>\n}\n\nexport class SyncEntityBinDiff {\n static _from_pb(pbf: any): SyncEntityBinDiff {\n const o = SyncEntityBinDiff._from_pb_init()\n pbf.readFields(SyncEntityBinDiff._from_pb_fields, o)\n return new SyncEntityBinDiff({...(o as any)})\n }\n\n static _from_pb_init() {\n return {diffs: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.diffs.push(pbf.readBytes())\n return\n }\n }\n }\n\n diffs: Array<Uint8Array>\n\n constructor(args: {diffs: Array<Uint8Array>}) {\n this.diffs = (args.diffs || []).slice()\n makeObservable(this, {diffs: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.diffs, \"`diffs` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.diffs)\n for (let i = 0; i < this.diffs.length; i++) {\n pbf.writeBytesField(1, this.diffs[i])\n }\n }\n}\n\nexport type SyncEntityStruct = {\n uid: UID\n version: number\n type: SyncEntityType\n full_pb: Uint8Array | undefined\n bin_diff: SyncEntityBinDiffStruct | undefined\n}\n\nexport class SyncEntity {\n static _from_pb(pbf: any): SyncEntity {\n const o = SyncEntity._from_pb_init()\n pbf.readFields(SyncEntity._from_pb_fields, o)\n return new SyncEntity({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.version = pbf.readVarint()\n return\n }\n case 3: {\n o.type = pbf.readVarint()\n return\n }\n case 4: {\n o.full_pb = pbf.readBytes()\n return\n }\n case 5: {\n o.bin_diff = pbf_readMessage(SyncEntityBinDiff, pbf)\n return\n }\n }\n }\n\n uid: UID\n version: number\n type: SyncEntityType\n full_pb: Uint8Array | undefined\n bin_diff: SyncEntityBinDiff | undefined\n\n constructor(args: {\n uid: UID\n version: number\n type: SyncEntityType\n full_pb?: Uint8Array\n bin_diff?: SyncEntityBinDiff\n }) {\n this.uid = args.uid\n this.version = args.version || 0\n this.type = args.type || (0 as any)\n this.full_pb = args.full_pb\n this.bin_diff = args.bin_diff\n makeObservable(this, {\n version: observable,\n type: observable,\n full_pb: observable,\n bin_diff: observable,\n })\n this.verify()\n }\n\n public get data(): Uint8Array | SyncEntityBinDiff {\n return not_null(this.full_pb || this.bin_diff)\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_UID(this.uid), \"`uid` is not of type UID\")\n assert(this.version != null, \"`version` required\")\n assert(this.type, \"`type` required\")\n assert(\n [this.full_pb, this.bin_diff].filter((x) => !!x).length === 1,\n \"Exactly one of [`full_pb`, `bin_diff`] required\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.version) pbf.writeVarintField(2, this.version, pbf)\n if (this.type) pbf.writeVarintField(3, this.type, pbf)\n if (this.full_pb) pbf.writeBytesField(4, this.full_pb, pbf)\n if (this.bin_diff) pbf_writeMessage(5, this.bin_diff, pbf)\n }\n}\n\nexport type ReportLogEventRequestStruct = {\n message: string\n client: Client\n client_version: string\n user_agent: string\n log_history: Array<string>\n num_unreported_errors: number\n severity: ReportLogEventSeverity\n}\n\nexport class ReportLogEventRequest {\n static HTTP_METHOD = <const>\"PUT\"\n\n static _from_pb(pbf: any): ReportLogEventRequest {\n const o = ReportLogEventRequest._from_pb_init()\n pbf.readFields(ReportLogEventRequest._from_pb_fields, o)\n return new ReportLogEventRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {log_history: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.message = pbf.readString()\n return\n }\n case 2: {\n o.client = pbf.readVarint()\n return\n }\n case 3: {\n o.client_version = pbf.readString()\n return\n }\n case 4: {\n o.user_agent = pbf.readString()\n return\n }\n case 6: {\n o.log_history.push(pbf.readString())\n return\n }\n case 5: {\n o.num_unreported_errors = pbf.readVarint()\n return\n }\n case 7: {\n o.severity = pbf.readVarint()\n return\n }\n }\n }\n\n message: string\n client: Client\n client_version: string\n user_agent: string\n log_history: Array<string>\n num_unreported_errors: number\n severity: ReportLogEventSeverity\n\n constructor(args: {\n message: string\n client: Client\n client_version: string\n user_agent?: string\n log_history?: Array<string>\n num_unreported_errors?: number\n severity: ReportLogEventSeverity\n }) {\n this.message = args.message || \"\"\n this.client = args.client || (0 as any)\n this.client_version = args.client_version || \"\"\n this.user_agent = args.user_agent || \"\"\n this.log_history = (args.log_history || []).slice()\n this.num_unreported_errors = args.num_unreported_errors || 0\n this.severity = args.severity || (0 as any)\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.message, \"`message` required\")\n assert(this.client, \"`client` required\")\n assert(this.client_version, \"`client_version` required\")\n assert(this.severity, \"`severity` required\")\n limits.LIMIT_SEND_ITEMS_100.check(this.log_history ? this.log_history.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.message) pbf.writeStringField(1, this.message, pbf)\n if (this.client) pbf.writeVarintField(2, this.client, pbf)\n if (this.client_version) pbf.writeStringField(3, this.client_version, pbf)\n if (this.user_agent) pbf.writeStringField(4, this.user_agent, pbf)\n if (this.log_history)\n for (let i = 0; i < this.log_history.length; i++) {\n pbf.writeStringField(6, this.log_history[i])\n }\n if (this.num_unreported_errors) pbf.writeVarintField(5, this.num_unreported_errors, pbf)\n if (this.severity) pbf.writeVarintField(7, this.severity, pbf)\n }\n}\n\nexport type ReportLogEventResponseStruct = {}\n\nexport class ReportLogEventResponse {\n static _from_pb(pbf: any): ReportLogEventResponse {\n const o = ReportLogEventResponse._from_pb_init()\n pbf.readFields(ReportLogEventResponse._from_pb_fields, o)\n return new ReportLogEventResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n }\n }\n\n constructor(args: {}) {\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {}\n}\n\nexport type BrowserEnvStruct = {\n document_location: string\n document_referrer: string\n document_title: string\n screen_resolution: string\n screen_color_depth: string\n viewport_size: string\n user_agent: string\n user_locale: string\n user_ip: string\n}\n\nexport class BrowserEnv {\n static _from_pb(pbf: any): BrowserEnv {\n const o = BrowserEnv._from_pb_init()\n pbf.readFields(BrowserEnv._from_pb_fields, o)\n return new BrowserEnv({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.document_location = pbf.readString()\n return\n }\n case 2: {\n o.document_referrer = pbf.readString()\n return\n }\n case 9: {\n o.document_title = pbf.readString()\n return\n }\n case 3: {\n o.screen_resolution = pbf.readString()\n return\n }\n case 4: {\n o.screen_color_depth = pbf.readString()\n return\n }\n case 5: {\n o.viewport_size = pbf.readString()\n return\n }\n case 6: {\n o.user_agent = pbf.readString()\n return\n }\n case 7: {\n o.user_locale = pbf.readString()\n return\n }\n case 8: {\n o.user_ip = pbf.readString()\n return\n }\n }\n }\n\n document_location: string\n document_referrer: string\n document_title: string\n screen_resolution: string\n screen_color_depth: string\n viewport_size: string\n user_agent: string\n user_locale: string\n user_ip: string\n\n constructor(args: {\n document_location: string\n document_referrer?: string\n document_title?: string\n screen_resolution?: string\n screen_color_depth?: string\n viewport_size?: string\n user_agent?: string\n user_locale?: string\n user_ip?: string\n }) {\n this.document_location = args.document_location || \"\"\n this.document_referrer = args.document_referrer || \"\"\n this.document_title = args.document_title || \"\"\n this.screen_resolution = args.screen_resolution || \"\"\n this.screen_color_depth = args.screen_color_depth || \"\"\n this.viewport_size = args.viewport_size || \"\"\n this.user_agent = args.user_agent || \"\"\n this.user_locale = args.user_locale || \"\"\n this.user_ip = args.user_ip || \"\"\n makeObservable(this, {\n document_location: observable,\n document_referrer: observable,\n document_title: observable,\n screen_resolution: observable,\n screen_color_depth: observable,\n viewport_size: observable,\n user_agent: observable,\n user_locale: observable,\n user_ip: observable,\n })\n this.verify()\n }\n\n public verify() {\n assert(this.document_location, \"`document_location` required\")\n limits.LIMIT_SMALL_TEXT.check(this.document_title ? this.document_title.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.document_location) pbf.writeStringField(1, this.document_location, pbf)\n if (this.document_referrer) pbf.writeStringField(2, this.document_referrer, pbf)\n if (this.document_title) pbf.writeStringField(9, this.document_title, pbf)\n if (this.screen_resolution) pbf.writeStringField(3, this.screen_resolution, pbf)\n if (this.screen_color_depth) pbf.writeStringField(4, this.screen_color_depth, pbf)\n if (this.viewport_size) pbf.writeStringField(5, this.viewport_size, pbf)\n if (this.user_agent) pbf.writeStringField(6, this.user_agent, pbf)\n if (this.user_locale) pbf.writeStringField(7, this.user_locale, pbf)\n if (this.user_ip) pbf.writeStringField(8, this.user_ip, pbf)\n }\n}\n\nexport type ReportUserEventRequestStruct = {\n user_events: Array<UserEventStruct>\n browser_env: BrowserEnvStruct\n cohort_date: Date | undefined\n}\n\nexport class ReportUserEventRequest {\n static HTTP_METHOD = <const>\"PUT\"\n\n static _from_pb(pbf: any): ReportUserEventRequest {\n const o = ReportUserEventRequest._from_pb_init()\n pbf.readFields(ReportUserEventRequest._from_pb_fields, o)\n return new ReportUserEventRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {user_events: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.user_events.push(pbf_readMessage(UserEvent, pbf))\n return\n }\n case 2: {\n o.browser_env = pbf_readMessage(BrowserEnv, pbf)\n return\n }\n case 3: {\n o.cohort_date = new Date(pbf.readVarint() / 1000)\n return\n }\n }\n }\n\n user_events: Array<UserEvent>\n browser_env: BrowserEnv\n cohort_date: Date | undefined\n\n constructor(args: {\n user_events: Array<UserEvent>\n browser_env: BrowserEnv\n cohort_date?: Date\n }) {\n this.user_events = (args.user_events || []).slice()\n this.browser_env = args.browser_env\n this.cohort_date = args.cohort_date\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.user_events, \"`user_events` required\")\n assert(this.browser_env, \"`browser_env` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.user_events)\n for (let i = 0; i < this.user_events.length; i++) {\n pbf_writeMessage(1, this.user_events[i], pbf)\n }\n if (this.browser_env) pbf_writeMessage(2, this.browser_env, pbf)\n if (this.cohort_date) pbf.writeVarintField(3, this.cohort_date.getTime() * 1000, pbf)\n }\n}\n\nexport type ReportUserEventResponseStruct = {}\n\nexport class ReportUserEventResponse {\n static _from_pb(pbf: any): ReportUserEventResponse {\n const o = ReportUserEventResponse._from_pb_init()\n pbf.readFields(ReportUserEventResponse._from_pb_fields, o)\n return new ReportUserEventResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n }\n }\n\n constructor(args: {}) {\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {}\n}\n\nexport type PubSubUserEventStruct = {\n user_event: UserEventStruct\n account_uid: AccountUID\n browser_env: BrowserEnvStruct\n}\n\nexport class PubSubUserEvent {\n static _from_pb(pbf: any): PubSubUserEvent {\n const o = PubSubUserEvent._from_pb_init()\n pbf.readFields(PubSubUserEvent._from_pb_fields, o)\n return new PubSubUserEvent({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.user_event = pbf_readMessage(UserEvent, pbf)\n return\n }\n case 2: {\n o.account_uid = pbf.readString()\n return\n }\n case 4: {\n o.browser_env = pbf_readMessage(BrowserEnv, pbf)\n return\n }\n }\n }\n\n user_event: UserEvent\n account_uid: AccountUID\n browser_env: BrowserEnv\n\n constructor(args: {user_event: UserEvent; account_uid: AccountUID; browser_env: BrowserEnv}) {\n this.user_event = args.user_event\n this.account_uid = args.account_uid\n this.browser_env = args.browser_env\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.user_event, \"`user_event` required\")\n assert(this.account_uid, \"`account_uid` required\")\n assert(is_AccountUID(this.account_uid), \"`account_uid` is not of type AccountUID\")\n assert(this.browser_env, \"`browser_env` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.user_event) pbf_writeMessage(1, this.user_event, pbf)\n if (this.account_uid) pbf.writeStringField(2, this.account_uid, pbf)\n if (this.browser_env) pbf_writeMessage(4, this.browser_env, pbf)\n }\n}\n\nexport type CheckBoardAccessRequestStruct = {\n board_uid: BoardUID\n op: CheckBoardAccessOp\n}\n\nexport class CheckBoardAccessRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): CheckBoardAccessRequest {\n const o = CheckBoardAccessRequest._from_pb_init()\n pbf.readFields(CheckBoardAccessRequest._from_pb_fields, o)\n return new CheckBoardAccessRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_uid = pbf.readString()\n return\n }\n case 2: {\n o.op = pbf.readVarint()\n return\n }\n }\n }\n\n board_uid: BoardUID\n op: CheckBoardAccessOp\n\n constructor(args: {board_uid: BoardUID; op?: CheckBoardAccessOp}) {\n this.board_uid = args.board_uid\n this.op = args.op || (0 as any)\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.board_uid, \"`board_uid` required\")\n assert(is_BoardUID(this.board_uid), \"`board_uid` is not of type BoardUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_uid) pbf.writeStringField(1, this.board_uid, pbf)\n if (this.op) pbf.writeVarintField(2, this.op, pbf)\n }\n}\n\nexport type CheckBoardAccessResponseStruct = {}\n\nexport class CheckBoardAccessResponse {\n static _from_pb(pbf: any): CheckBoardAccessResponse {\n const o = CheckBoardAccessResponse._from_pb_init()\n pbf.readFields(CheckBoardAccessResponse._from_pb_fields, o)\n return new CheckBoardAccessResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n }\n }\n\n constructor(args: {}) {\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {}\n}\n\nexport type CheckItemAccessRequestStruct = {\n card_uids: Array<CardUID>\n blob_uids: Array<BlobUID>\n comment_uids: Array<CommentUID>\n}\n\nexport class CheckItemAccessRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): CheckItemAccessRequest {\n const o = CheckItemAccessRequest._from_pb_init()\n pbf.readFields(CheckItemAccessRequest._from_pb_fields, o)\n return new CheckItemAccessRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {card_uids: [], blob_uids: [], comment_uids: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 3: {\n o.card_uids.push(pbf.readString())\n return\n }\n case 4: {\n o.blob_uids.push(pbf.readString())\n return\n }\n case 5: {\n o.comment_uids.push(pbf.readString())\n return\n }\n }\n }\n\n card_uids: Array<CardUID>\n blob_uids: Array<BlobUID>\n comment_uids: Array<CommentUID>\n\n constructor(args: {\n card_uids?: Array<CardUID>\n blob_uids?: Array<BlobUID>\n comment_uids?: Array<CommentUID>\n }) {\n this.card_uids = (args.card_uids || []).slice()\n this.blob_uids = (args.blob_uids || []).slice()\n this.comment_uids = (args.comment_uids || []).slice()\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n const i_card_uids = this.card_uids.findIndex((x) => !is_CardUID(x))\n assert(\n i_card_uids < 0,\n () =>\n \"`this.card_uids` contains invalid item: \" +\n JSON.stringify(this.card_uids[i_card_uids]),\n )\n const i_blob_uids = this.blob_uids.findIndex((x) => !is_BlobUID(x))\n assert(\n i_blob_uids < 0,\n () =>\n \"`this.blob_uids` contains invalid item: \" +\n JSON.stringify(this.blob_uids[i_blob_uids]),\n )\n const i_comment_uids = this.comment_uids.findIndex((x) => !is_CommentUID(x))\n assert(\n i_comment_uids < 0,\n () =>\n \"`this.comment_uids` contains invalid item: \" +\n JSON.stringify(this.comment_uids[i_comment_uids]),\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.card_uids)\n for (let i = 0; i < this.card_uids.length; i++) {\n pbf.writeStringField(3, this.card_uids[i])\n }\n if (this.blob_uids)\n for (let i = 0; i < this.blob_uids.length; i++) {\n pbf.writeStringField(4, this.blob_uids[i])\n }\n if (this.comment_uids)\n for (let i = 0; i < this.comment_uids.length; i++) {\n pbf.writeStringField(5, this.comment_uids[i])\n }\n }\n}\n\nexport type CheckItemAccessResponseStruct = {\n resolved_blob_uids: Array<BlobUID>\n}\n\nexport class CheckItemAccessResponse {\n static _from_pb(pbf: any): CheckItemAccessResponse {\n const o = CheckItemAccessResponse._from_pb_init()\n pbf.readFields(CheckItemAccessResponse._from_pb_fields, o)\n return new CheckItemAccessResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {resolved_blob_uids: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 2: {\n o.resolved_blob_uids.push(pbf.readString())\n return\n }\n }\n }\n\n resolved_blob_uids: Array<BlobUID>\n\n constructor(args: {resolved_blob_uids?: Array<BlobUID>}) {\n this.resolved_blob_uids = (args.resolved_blob_uids || []).slice()\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n const i_resolved_blob_uids = this.resolved_blob_uids.findIndex((x) => !is_BlobUID(x))\n assert(\n i_resolved_blob_uids < 0,\n () =>\n \"`this.resolved_blob_uids` contains invalid item: \" +\n JSON.stringify(this.resolved_blob_uids[i_resolved_blob_uids]),\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.resolved_blob_uids)\n for (let i = 0; i < this.resolved_blob_uids.length; i++) {\n pbf.writeStringField(2, this.resolved_blob_uids[i])\n }\n }\n}\n\nexport type GrantItemPublicAccessRequestStruct = {\n blob_uid: BlobUID\n}\n\nexport class GrantItemPublicAccessRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): GrantItemPublicAccessRequest {\n const o = GrantItemPublicAccessRequest._from_pb_init()\n pbf.readFields(GrantItemPublicAccessRequest._from_pb_fields, o)\n return new GrantItemPublicAccessRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.blob_uid = pbf.readString()\n return\n }\n }\n }\n\n blob_uid: BlobUID\n\n constructor(args: {blob_uid: BlobUID}) {\n this.blob_uid = args.blob_uid\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.blob_uid, \"`blob_uid` required\")\n assert(is_BlobUID(this.blob_uid), \"`blob_uid` is not of type BlobUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.blob_uid) pbf.writeStringField(1, this.blob_uid, pbf)\n }\n}\n\nexport type GrantItemPublicAccessResponseStruct = {}\n\nexport class GrantItemPublicAccessResponse {\n static _from_pb(pbf: any): GrantItemPublicAccessResponse {\n const o = GrantItemPublicAccessResponse._from_pb_init()\n pbf.readFields(GrantItemPublicAccessResponse._from_pb_fields, o)\n return new GrantItemPublicAccessResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n }\n }\n\n constructor(args: {}) {\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {}\n}\n\nexport type QueryTranscodedMediaURLRequestStruct = {\n blob_uid: BlobUID\n}\n\nexport class QueryTranscodedMediaURLRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): QueryTranscodedMediaURLRequest {\n const o = QueryTranscodedMediaURLRequest._from_pb_init()\n pbf.readFields(QueryTranscodedMediaURLRequest._from_pb_fields, o)\n return new QueryTranscodedMediaURLRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.blob_uid = pbf.readString()\n return\n }\n }\n }\n\n blob_uid: BlobUID\n\n constructor(args: {blob_uid: BlobUID}) {\n this.blob_uid = args.blob_uid\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.blob_uid, \"`blob_uid` required\")\n assert(is_BlobUID(this.blob_uid), \"`blob_uid` is not of type BlobUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.blob_uid) pbf.writeStringField(1, this.blob_uid, pbf)\n }\n}\n\nexport type QueryTranscodedMediaURLResponseStruct = {\n url: string\n}\n\nexport class QueryTranscodedMediaURLResponse {\n static _from_pb(pbf: any): QueryTranscodedMediaURLResponse {\n const o = QueryTranscodedMediaURLResponse._from_pb_init()\n pbf.readFields(QueryTranscodedMediaURLResponse._from_pb_fields, o)\n return new QueryTranscodedMediaURLResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.url = pbf.readString()\n return\n }\n }\n }\n\n url: string\n\n constructor(args: {url?: string}) {\n this.url = args.url || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n limits.LIMIT_URL.check(this.url ? this.url.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.url) pbf.writeStringField(1, this.url, pbf)\n }\n}\n\nexport type QueryThumbnailURLRequestStruct = {\n blob_uid: BlobUID\n max_thumbnail_width: number\n max_thumbnail_height: number\n redirect: boolean\n image_type: ThumbnailImageType\n ttl_seconds: number\n}\n\nexport class QueryThumbnailURLRequest {\n static HTTP_METHOD = <const>\"GET\"\n static MAX_CONCURRENT_FROM_CLIENT = <const>20\n\n static _from_pb(pbf: any): QueryThumbnailURLRequest {\n const o = QueryThumbnailURLRequest._from_pb_init()\n pbf.readFields(QueryThumbnailURLRequest._from_pb_fields, o)\n return new QueryThumbnailURLRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.blob_uid = pbf.readString()\n return\n }\n case 2: {\n o.max_thumbnail_width = pbf.readVarint()\n return\n }\n case 3: {\n o.max_thumbnail_height = pbf.readVarint()\n return\n }\n case 4: {\n o.redirect = pbf.readBoolean()\n return\n }\n case 5: {\n o.image_type = pbf.readVarint()\n return\n }\n case 6: {\n o.ttl_seconds = pbf.readVarint()\n return\n }\n }\n }\n\n blob_uid: BlobUID\n max_thumbnail_width: number\n max_thumbnail_height: number\n redirect: boolean\n image_type: ThumbnailImageType\n ttl_seconds: number\n\n constructor(args: {\n blob_uid: BlobUID\n max_thumbnail_width: number\n max_thumbnail_height: number\n redirect?: boolean\n image_type?: ThumbnailImageType\n ttl_seconds?: number\n }) {\n this.blob_uid = args.blob_uid\n this.max_thumbnail_width = args.max_thumbnail_width || 0\n this.max_thumbnail_height = args.max_thumbnail_height || 0\n this.redirect = args.redirect || false\n this.image_type = args.image_type || (0 as any)\n this.ttl_seconds = args.ttl_seconds || 300\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.blob_uid, \"`blob_uid` required\")\n assert(is_BlobUID(this.blob_uid), \"`blob_uid` is not of type BlobUID\")\n assert(this.max_thumbnail_width != null, \"`max_thumbnail_width` required\")\n assert(this.max_thumbnail_height != null, \"`max_thumbnail_height` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.blob_uid) pbf.writeStringField(1, this.blob_uid, pbf)\n if (this.max_thumbnail_width) pbf.writeVarintField(2, this.max_thumbnail_width, pbf)\n if (this.max_thumbnail_height) pbf.writeVarintField(3, this.max_thumbnail_height, pbf)\n if (this.redirect) pbf.writeBooleanField(4, this.redirect, pbf)\n if (this.image_type) pbf.writeVarintField(5, this.image_type, pbf)\n if (this.ttl_seconds) pbf.writeVarintField(6, this.ttl_seconds, pbf)\n }\n}\n\nexport type QueryThumbnailURLResponseStruct = {\n url: string\n resolved_blob_uid: BlobUID\n mime_type: string\n}\n\nexport class QueryThumbnailURLResponse {\n static _from_pb(pbf: any): QueryThumbnailURLResponse {\n const o = QueryThumbnailURLResponse._from_pb_init()\n pbf.readFields(QueryThumbnailURLResponse._from_pb_fields, o)\n return new QueryThumbnailURLResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.url = pbf.readString()\n return\n }\n case 2: {\n o.resolved_blob_uid = pbf.readString()\n return\n }\n case 3: {\n o.mime_type = pbf.readString()\n return\n }\n }\n }\n\n url: string\n resolved_blob_uid: BlobUID\n mime_type: string\n\n constructor(args: {url: string; resolved_blob_uid: BlobUID; mime_type: string}) {\n this.url = args.url || \"\"\n this.resolved_blob_uid = args.resolved_blob_uid\n this.mime_type = args.mime_type || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.url, \"`url` required\")\n assert(this.resolved_blob_uid, \"`resolved_blob_uid` required\")\n assert(is_BlobUID(this.resolved_blob_uid), \"`resolved_blob_uid` is not of type BlobUID\")\n assert(this.mime_type, \"`mime_type` required\")\n limits.LIMIT_URL.check(this.url ? this.url.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.url) pbf.writeStringField(1, this.url, pbf)\n if (this.resolved_blob_uid) pbf.writeStringField(2, this.resolved_blob_uid, pbf)\n if (this.mime_type) pbf.writeStringField(3, this.mime_type, pbf)\n }\n}\n\nexport type QueryThumbnailRequestStruct = {\n blob_uid: BlobUID\n max_thumbnail_width: number\n max_thumbnail_height: number\n image_type: ThumbnailImageType\n}\n\nexport class QueryThumbnailRequest {\n static HTTP_METHOD = <const>\"GET\"\n static MAX_CONCURRENT_FROM_CLIENT = <const>20\n\n static _from_pb(pbf: any): QueryThumbnailRequest {\n const o = QueryThumbnailRequest._from_pb_init()\n pbf.readFields(QueryThumbnailRequest._from_pb_fields, o)\n return new QueryThumbnailRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.blob_uid = pbf.readString()\n return\n }\n case 2: {\n o.max_thumbnail_width = pbf.readVarint()\n return\n }\n case 3: {\n o.max_thumbnail_height = pbf.readVarint()\n return\n }\n case 4: {\n o.image_type = pbf.readVarint()\n return\n }\n }\n }\n\n blob_uid: BlobUID\n max_thumbnail_width: number\n max_thumbnail_height: number\n image_type: ThumbnailImageType\n\n constructor(args: {\n blob_uid: BlobUID\n max_thumbnail_width: number\n max_thumbnail_height: number\n image_type?: ThumbnailImageType\n }) {\n this.blob_uid = args.blob_uid\n this.max_thumbnail_width = args.max_thumbnail_width || 0\n this.max_thumbnail_height = args.max_thumbnail_height || 0\n this.image_type = args.image_type || (0 as any)\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.blob_uid, \"`blob_uid` required\")\n assert(is_BlobUID(this.blob_uid), \"`blob_uid` is not of type BlobUID\")\n assert(this.max_thumbnail_width != null, \"`max_thumbnail_width` required\")\n assert(this.max_thumbnail_height != null, \"`max_thumbnail_height` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.blob_uid) pbf.writeStringField(1, this.blob_uid, pbf)\n if (this.max_thumbnail_width) pbf.writeVarintField(2, this.max_thumbnail_width, pbf)\n if (this.max_thumbnail_height) pbf.writeVarintField(3, this.max_thumbnail_height, pbf)\n if (this.image_type) pbf.writeVarintField(4, this.image_type, pbf)\n }\n}\n\nexport type QueryThumbnailResponseStruct = {}\n\nexport class QueryThumbnailResponse {\n static _from_pb(pbf: any): QueryThumbnailResponse {\n const o = QueryThumbnailResponse._from_pb_init()\n pbf.readFields(QueryThumbnailResponse._from_pb_fields, o)\n return new QueryThumbnailResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n }\n }\n\n constructor(args: {}) {\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {}\n}\n\nexport type QueryThumbnailsRequestStruct = {\n blob_uids: Array<BlobUID>\n max_thumbnail_width: number\n max_thumbnail_height: number\n image_type: ThumbnailImageType\n}\n\nexport class QueryThumbnailsRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): QueryThumbnailsRequest {\n const o = QueryThumbnailsRequest._from_pb_init()\n pbf.readFields(QueryThumbnailsRequest._from_pb_fields, o)\n return new QueryThumbnailsRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {blob_uids: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.blob_uids.push(pbf.readString())\n return\n }\n case 2: {\n o.max_thumbnail_width = pbf.readVarint()\n return\n }\n case 3: {\n o.max_thumbnail_height = pbf.readVarint()\n return\n }\n case 4: {\n o.image_type = pbf.readVarint()\n return\n }\n }\n }\n\n blob_uids: Array<BlobUID>\n max_thumbnail_width: number\n max_thumbnail_height: number\n image_type: ThumbnailImageType\n\n constructor(args: {\n blob_uids: Array<BlobUID>\n max_thumbnail_width: number\n max_thumbnail_height: number\n image_type?: ThumbnailImageType\n }) {\n this.blob_uids = (args.blob_uids || []).slice()\n this.max_thumbnail_width = args.max_thumbnail_width || 0\n this.max_thumbnail_height = args.max_thumbnail_height || 0\n this.image_type = args.image_type || (0 as any)\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.blob_uids, \"`blob_uids` required\")\n const i_blob_uids = this.blob_uids.findIndex((x) => !is_BlobUID(x))\n assert(\n i_blob_uids < 0,\n () =>\n \"`this.blob_uids` contains invalid item: \" +\n JSON.stringify(this.blob_uids[i_blob_uids]),\n )\n assert(this.max_thumbnail_width != null, \"`max_thumbnail_width` required\")\n assert(this.max_thumbnail_height != null, \"`max_thumbnail_height` required\")\n limits.LIMIT_GET_ITEMS_100.check(this.blob_uids ? this.blob_uids.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.blob_uids)\n for (let i = 0; i < this.blob_uids.length; i++) {\n pbf.writeStringField(1, this.blob_uids[i])\n }\n if (this.max_thumbnail_width) pbf.writeVarintField(2, this.max_thumbnail_width, pbf)\n if (this.max_thumbnail_height) pbf.writeVarintField(3, this.max_thumbnail_height, pbf)\n if (this.image_type) pbf.writeVarintField(4, this.image_type, pbf)\n }\n}\n\nexport type QueryThumbnailsResponseItemStruct = {\n blob_uid: BlobUID\n resolved_blob_uid: BlobUID\n data: Uint8Array\n mime_type: string\n}\n\nexport class QueryThumbnailsResponseItem {\n static _from_pb(pbf: any): QueryThumbnailsResponseItem {\n const o = QueryThumbnailsResponseItem._from_pb_init()\n pbf.readFields(QueryThumbnailsResponseItem._from_pb_fields, o)\n return new QueryThumbnailsResponseItem({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.blob_uid = pbf.readString()\n return\n }\n case 2: {\n o.resolved_blob_uid = pbf.readString()\n return\n }\n case 3: {\n o.data = pbf.readBytes()\n return\n }\n case 4: {\n o.mime_type = pbf.readString()\n return\n }\n }\n }\n\n blob_uid: BlobUID\n resolved_blob_uid: BlobUID\n data: Uint8Array\n mime_type: string\n\n constructor(args: {\n blob_uid: BlobUID\n resolved_blob_uid: BlobUID\n data: Uint8Array\n mime_type: string\n }) {\n this.blob_uid = args.blob_uid\n this.resolved_blob_uid = args.resolved_blob_uid\n this.data = args.data\n this.mime_type = args.mime_type || \"\"\n makeObservable(this, {\n blob_uid: observable,\n resolved_blob_uid: observable,\n data: observable,\n mime_type: observable,\n })\n this.verify()\n }\n\n public verify() {\n assert(this.blob_uid, \"`blob_uid` required\")\n assert(is_BlobUID(this.blob_uid), \"`blob_uid` is not of type BlobUID\")\n assert(this.resolved_blob_uid, \"`resolved_blob_uid` required\")\n assert(is_BlobUID(this.resolved_blob_uid), \"`resolved_blob_uid` is not of type BlobUID\")\n assert(this.data, \"`data` required\")\n assert(this.mime_type, \"`mime_type` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.blob_uid) pbf.writeStringField(1, this.blob_uid, pbf)\n if (this.resolved_blob_uid) pbf.writeStringField(2, this.resolved_blob_uid, pbf)\n if (this.data) pbf.writeBytesField(3, this.data, pbf)\n if (this.mime_type) pbf.writeStringField(4, this.mime_type, pbf)\n }\n}\n\nexport type QueryThumbnailsResponseStruct = {\n items: Array<QueryThumbnailsResponseItemStruct>\n}\n\nexport class QueryThumbnailsResponse {\n static _from_pb(pbf: any): QueryThumbnailsResponse {\n const o = QueryThumbnailsResponse._from_pb_init()\n pbf.readFields(QueryThumbnailsResponse._from_pb_fields, o)\n return new QueryThumbnailsResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {items: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.items.push(pbf_readMessage(QueryThumbnailsResponseItem, pbf))\n return\n }\n }\n }\n\n items: Array<QueryThumbnailsResponseItem>\n\n constructor(args: {items: Array<QueryThumbnailsResponseItem>}) {\n this.items = (args.items || []).slice()\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.items, \"`items` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.items)\n for (let i = 0; i < this.items.length; i++) {\n pbf_writeMessage(1, this.items[i], pbf)\n }\n }\n}\n\nexport type QueryURLInfosRequestStruct = {\n _deprecated_urls: Array<string>\n url_uids: Array<URLUID>\n return_partial_results: boolean\n}\n\nexport class QueryURLInfosRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): QueryURLInfosRequest {\n const o = QueryURLInfosRequest._from_pb_init()\n pbf.readFields(QueryURLInfosRequest._from_pb_fields, o)\n return new QueryURLInfosRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {_deprecated_urls: [], url_uids: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o._deprecated_urls.push(pbf.readString())\n return\n }\n case 6: {\n o.url_uids.push(pbf.readString())\n return\n }\n case 5: {\n o.return_partial_results = pbf.readBoolean()\n return\n }\n }\n }\n\n _deprecated_urls: Array<string>\n url_uids: Array<URLUID>\n return_partial_results: boolean\n\n constructor(args: {\n _deprecated_urls?: Array<string>\n url_uids: Array<URLUID>\n return_partial_results?: boolean\n }) {\n this._deprecated_urls = (args._deprecated_urls || []).slice()\n this.url_uids = (args.url_uids || []).slice()\n this.return_partial_results = args.return_partial_results || false\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.url_uids, \"`url_uids` required\")\n const i_url_uids = this.url_uids.findIndex((x) => !is_URLUID(x))\n assert(\n i_url_uids < 0,\n () =>\n \"`this.url_uids` contains invalid item: \" +\n JSON.stringify(this.url_uids[i_url_uids]),\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this._deprecated_urls)\n for (let i = 0; i < this._deprecated_urls.length; i++) {\n pbf.writeStringField(1, this._deprecated_urls[i])\n }\n if (this.url_uids)\n for (let i = 0; i < this.url_uids.length; i++) {\n pbf.writeStringField(6, this.url_uids[i])\n }\n if (this.return_partial_results) pbf.writeBooleanField(5, this.return_partial_results, pbf)\n }\n}\n\nexport type QueryURLInfosResponseStruct = {\n url_infos: Array<URLInfoStruct>\n}\n\nexport class QueryURLInfosResponse {\n static _from_pb(pbf: any): QueryURLInfosResponse {\n const o = QueryURLInfosResponse._from_pb_init()\n pbf.readFields(QueryURLInfosResponse._from_pb_fields, o)\n return new QueryURLInfosResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {url_infos: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.url_infos.push(pbf_readMessage(URLInfo, pbf))\n return\n }\n }\n }\n\n url_infos: Array<URLInfo>\n\n constructor(args: {url_infos: Array<URLInfo>}) {\n this.url_infos = (args.url_infos || []).slice()\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.url_infos, \"`url_infos` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.url_infos)\n for (let i = 0; i < this.url_infos.length; i++) {\n pbf_writeMessage(1, this.url_infos[i], pbf)\n }\n }\n}\n\nexport type _QueryURLInfosResponseBinaryStruct = {\n url_infos: Array<Uint8Array>\n}\n\nexport class _QueryURLInfosResponseBinary {\n static _from_pb(pbf: any): _QueryURLInfosResponseBinary {\n const o = _QueryURLInfosResponseBinary._from_pb_init()\n pbf.readFields(_QueryURLInfosResponseBinary._from_pb_fields, o)\n return new _QueryURLInfosResponseBinary({...(o as any)})\n }\n\n static _from_pb_init() {\n return {url_infos: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.url_infos.push(pbf.readBytes())\n return\n }\n }\n }\n\n url_infos: Array<Uint8Array>\n\n constructor(args: {url_infos?: Array<Uint8Array>}) {\n this.url_infos = (args.url_infos || []).slice()\n makeObservable(this, {url_infos: observable})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.url_infos)\n for (let i = 0; i < this.url_infos.length; i++) {\n pbf.writeBytesField(1, this.url_infos[i])\n }\n }\n}\n\nexport type QueryChargebeeHostedPageCheckoutStruct = {\n plan_id: string\n coupon: string\n seats: number\n}\n\nexport class QueryChargebeeHostedPageCheckout {\n static _from_pb(pbf: any): QueryChargebeeHostedPageCheckout {\n const o = QueryChargebeeHostedPageCheckout._from_pb_init()\n pbf.readFields(QueryChargebeeHostedPageCheckout._from_pb_fields, o)\n return new QueryChargebeeHostedPageCheckout({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.plan_id = pbf.readString()\n return\n }\n case 2: {\n o.coupon = pbf.readString()\n return\n }\n case 3: {\n o.seats = pbf.readVarint()\n return\n }\n }\n }\n\n plan_id: string\n coupon: string\n seats: number\n\n constructor(args: {plan_id: string; coupon?: string; seats?: number}) {\n this.plan_id = args.plan_id || \"\"\n this.coupon = args.coupon || \"\"\n this.seats = args.seats || 0\n makeObservable(this, {plan_id: observable, coupon: observable, seats: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.plan_id, \"`plan_id` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.plan_id) pbf.writeStringField(1, this.plan_id, pbf)\n if (this.coupon) pbf.writeStringField(2, this.coupon, pbf)\n if (this.seats) pbf.writeVarintField(3, this.seats, pbf)\n }\n}\n\nexport type QueryChargebeeHostedPageUpdatePaymentStruct = {}\n\nexport class QueryChargebeeHostedPageUpdatePayment {\n static _from_pb(pbf: any): QueryChargebeeHostedPageUpdatePayment {\n const o = QueryChargebeeHostedPageUpdatePayment._from_pb_init()\n pbf.readFields(QueryChargebeeHostedPageUpdatePayment._from_pb_fields, o)\n return new QueryChargebeeHostedPageUpdatePayment({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n }\n }\n\n constructor(args: {}) {\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {}\n}\n\nexport type QueryChargebeeHostedPageCollectNowStruct = {}\n\nexport class QueryChargebeeHostedPageCollectNow {\n static _from_pb(pbf: any): QueryChargebeeHostedPageCollectNow {\n const o = QueryChargebeeHostedPageCollectNow._from_pb_init()\n pbf.readFields(QueryChargebeeHostedPageCollectNow._from_pb_fields, o)\n return new QueryChargebeeHostedPageCollectNow({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n }\n }\n\n constructor(args: {}) {\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {}\n}\n\nexport type QueryChargebeeHostedPagePortalStruct = {}\n\nexport class QueryChargebeeHostedPagePortal {\n static _from_pb(pbf: any): QueryChargebeeHostedPagePortal {\n const o = QueryChargebeeHostedPagePortal._from_pb_init()\n pbf.readFields(QueryChargebeeHostedPagePortal._from_pb_fields, o)\n return new QueryChargebeeHostedPagePortal({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n }\n }\n\n constructor(args: {}) {\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {}\n}\n\nexport type QueryChargebeeHostedPageRequestStruct = {\n checkout: QueryChargebeeHostedPageCheckoutStruct | undefined\n portal: QueryChargebeeHostedPagePortalStruct | undefined\n update_payment: QueryChargebeeHostedPageUpdatePaymentStruct | undefined\n collect_now: QueryChargebeeHostedPageCollectNowStruct | undefined\n organization_uid: OrganizationUID | undefined\n}\n\nexport class QueryChargebeeHostedPageRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): QueryChargebeeHostedPageRequest {\n const o = QueryChargebeeHostedPageRequest._from_pb_init()\n pbf.readFields(QueryChargebeeHostedPageRequest._from_pb_fields, o)\n return new QueryChargebeeHostedPageRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.checkout = pbf_readMessage(QueryChargebeeHostedPageCheckout, pbf)\n return\n }\n case 2: {\n o.portal = pbf_readMessage(QueryChargebeeHostedPagePortal, pbf)\n return\n }\n case 3: {\n o.update_payment = pbf_readMessage(QueryChargebeeHostedPageUpdatePayment, pbf)\n return\n }\n case 4: {\n o.collect_now = pbf_readMessage(QueryChargebeeHostedPageCollectNow, pbf)\n return\n }\n case 5: {\n o.organization_uid = pbf.readString()\n return\n }\n }\n }\n\n checkout: QueryChargebeeHostedPageCheckout | undefined\n portal: QueryChargebeeHostedPagePortal | undefined\n update_payment: QueryChargebeeHostedPageUpdatePayment | undefined\n collect_now: QueryChargebeeHostedPageCollectNow | undefined\n organization_uid: OrganizationUID | undefined\n\n constructor(args: {\n checkout?: QueryChargebeeHostedPageCheckout\n portal?: QueryChargebeeHostedPagePortal\n update_payment?: QueryChargebeeHostedPageUpdatePayment\n collect_now?: QueryChargebeeHostedPageCollectNow\n organization_uid?: OrganizationUID\n }) {\n this.checkout = args.checkout\n this.portal = args.portal\n this.update_payment = args.update_payment\n this.collect_now = args.collect_now\n this.organization_uid = args.organization_uid\n makeObservable(this, {})\n this.verify()\n }\n\n public get kind():\n | QueryChargebeeHostedPageCheckout\n | QueryChargebeeHostedPagePortal\n | QueryChargebeeHostedPageUpdatePayment\n | QueryChargebeeHostedPageCollectNow {\n return not_null(this.checkout || this.portal || this.update_payment || this.collect_now)\n }\n\n public verify() {\n assert(\n this.organization_uid == null || is_OrganizationUID(this.organization_uid),\n \"`organization_uid` is not of type OrganizationUID\",\n )\n assert(\n [this.checkout, this.portal, this.update_payment, this.collect_now].filter((x) => !!x)\n .length === 1,\n \"Exactly one of [`checkout`, `portal`, `update_payment`, `collect_now`] required\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.checkout) pbf_writeMessage(1, this.checkout, pbf)\n if (this.portal) pbf_writeMessage(2, this.portal, pbf)\n if (this.update_payment) pbf_writeMessage(3, this.update_payment, pbf)\n if (this.collect_now) pbf_writeMessage(4, this.collect_now, pbf)\n if (this.organization_uid) pbf.writeStringField(5, this.organization_uid, pbf)\n }\n}\n\nexport type QueryChargebeeHostedPageResponseStruct = {\n hosted_page_json: string\n}\n\nexport class QueryChargebeeHostedPageResponse {\n static _from_pb(pbf: any): QueryChargebeeHostedPageResponse {\n const o = QueryChargebeeHostedPageResponse._from_pb_init()\n pbf.readFields(QueryChargebeeHostedPageResponse._from_pb_fields, o)\n return new QueryChargebeeHostedPageResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.hosted_page_json = pbf.readString()\n return\n }\n }\n }\n\n hosted_page_json: string\n\n constructor(args: {hosted_page_json: string}) {\n this.hosted_page_json = args.hosted_page_json || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.hosted_page_json, \"`hosted_page_json` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.hosted_page_json) pbf.writeStringField(1, this.hosted_page_json, pbf)\n }\n}\n\nexport type QueryChargebeeRequestStruct = {\n include_scheduled_changes: boolean\n organization_uid: OrganizationUID | undefined\n}\n\nexport class QueryChargebeeRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): QueryChargebeeRequest {\n const o = QueryChargebeeRequest._from_pb_init()\n pbf.readFields(QueryChargebeeRequest._from_pb_fields, o)\n return new QueryChargebeeRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.include_scheduled_changes = pbf.readBoolean()\n return\n }\n case 2: {\n o.organization_uid = pbf.readString()\n return\n }\n }\n }\n\n include_scheduled_changes: boolean\n organization_uid: OrganizationUID | undefined\n\n constructor(args: {include_scheduled_changes?: boolean; organization_uid?: OrganizationUID}) {\n this.include_scheduled_changes = args.include_scheduled_changes || false\n this.organization_uid = args.organization_uid\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(\n this.organization_uid == null || is_OrganizationUID(this.organization_uid),\n \"`organization_uid` is not of type OrganizationUID\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.include_scheduled_changes)\n pbf.writeBooleanField(1, this.include_scheduled_changes, pbf)\n if (this.organization_uid) pbf.writeStringField(2, this.organization_uid, pbf)\n }\n}\n\nexport type BillingAddressStruct = {\n first_name: string\n last_name: string\n email: string\n company: string\n phone: string\n line1: string\n line2: string\n line3: string\n city: string\n state_code: string\n state: string\n country: string\n zip: string\n validation_status: string\n}\n\nexport class BillingAddress {\n static _from_pb(pbf: any): BillingAddress {\n const o = BillingAddress._from_pb_init()\n pbf.readFields(BillingAddress._from_pb_fields, o)\n return new BillingAddress({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.first_name = pbf.readString()\n return\n }\n case 2: {\n o.last_name = pbf.readString()\n return\n }\n case 3: {\n o.email = pbf.readString()\n return\n }\n case 4: {\n o.company = pbf.readString()\n return\n }\n case 5: {\n o.phone = pbf.readString()\n return\n }\n case 6: {\n o.line1 = pbf.readString()\n return\n }\n case 7: {\n o.line2 = pbf.readString()\n return\n }\n case 8: {\n o.line3 = pbf.readString()\n return\n }\n case 9: {\n o.city = pbf.readString()\n return\n }\n case 10: {\n o.state_code = pbf.readString()\n return\n }\n case 11: {\n o.state = pbf.readString()\n return\n }\n case 12: {\n o.country = pbf.readString()\n return\n }\n case 13: {\n o.zip = pbf.readString()\n return\n }\n case 14: {\n o.validation_status = pbf.readString()\n return\n }\n }\n }\n\n first_name: string\n last_name: string\n email: string\n company: string\n phone: string\n line1: string\n line2: string\n line3: string\n city: string\n state_code: string\n state: string\n country: string\n zip: string\n validation_status: string\n\n constructor(args: {\n first_name?: string\n last_name?: string\n email?: string\n company?: string\n phone?: string\n line1?: string\n line2?: string\n line3?: string\n city?: string\n state_code?: string\n state?: string\n country?: string\n zip?: string\n validation_status?: string\n }) {\n this.first_name = args.first_name || \"\"\n this.last_name = args.last_name || \"\"\n this.email = args.email || \"\"\n this.company = args.company || \"\"\n this.phone = args.phone || \"\"\n this.line1 = args.line1 || \"\"\n this.line2 = args.line2 || \"\"\n this.line3 = args.line3 || \"\"\n this.city = args.city || \"\"\n this.state_code = args.state_code || \"\"\n this.state = args.state || \"\"\n this.country = args.country || \"\"\n this.zip = args.zip || \"\"\n this.validation_status = args.validation_status || \"\"\n makeObservable(this, {\n first_name: observable,\n last_name: observable,\n email: observable,\n company: observable,\n phone: observable,\n line1: observable,\n line2: observable,\n line3: observable,\n city: observable,\n state_code: observable,\n state: observable,\n country: observable,\n zip: observable,\n validation_status: observable,\n })\n this.verify()\n }\n\n public verify() {\n limits.LIMIT_SMALL_TEXT.check(this.first_name ? this.first_name.length : 0)\n limits.LIMIT_SMALL_TEXT.check(this.last_name ? this.last_name.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.first_name) pbf.writeStringField(1, this.first_name, pbf)\n if (this.last_name) pbf.writeStringField(2, this.last_name, pbf)\n if (this.email) pbf.writeStringField(3, this.email, pbf)\n if (this.company) pbf.writeStringField(4, this.company, pbf)\n if (this.phone) pbf.writeStringField(5, this.phone, pbf)\n if (this.line1) pbf.writeStringField(6, this.line1, pbf)\n if (this.line2) pbf.writeStringField(7, this.line2, pbf)\n if (this.line3) pbf.writeStringField(8, this.line3, pbf)\n if (this.city) pbf.writeStringField(9, this.city, pbf)\n if (this.state_code) pbf.writeStringField(10, this.state_code, pbf)\n if (this.state) pbf.writeStringField(11, this.state, pbf)\n if (this.country) pbf.writeStringField(12, this.country, pbf)\n if (this.zip) pbf.writeStringField(13, this.zip, pbf)\n if (this.validation_status) pbf.writeStringField(14, this.validation_status, pbf)\n }\n}\n\nexport type QueryChargebeeResponseStruct = {\n due_invoices_count: number\n due_since: Date | undefined\n total_dues: number\n plan_id: ChargeBeePlanID\n coupon: string\n created_at: Date | undefined\n started_at: Date | undefined\n activated_at: Date | undefined\n trial_start: Date | undefined\n trial_end: Date | undefined\n next_billing_at: Date | undefined\n next_billing_amount: number\n currency_code: string\n billing_address: BillingAddressStruct | undefined\n vat_number: string\n payment_method: PaymentMethod\n payment_method_status: PaymentMethodStatus\n}\n\nexport class QueryChargebeeResponse {\n static _from_pb(pbf: any): QueryChargebeeResponse {\n const o = QueryChargebeeResponse._from_pb_init()\n pbf.readFields(QueryChargebeeResponse._from_pb_fields, o)\n return new QueryChargebeeResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.due_invoices_count = pbf.readVarint()\n return\n }\n case 2: {\n o.due_since = new Date(pbf.readVarint() / 1000)\n return\n }\n case 3: {\n o.total_dues = pbf.readVarint()\n return\n }\n case 4: {\n o.plan_id = pbf.readString()\n return\n }\n case 5: {\n o.coupon = pbf.readString()\n return\n }\n case 6: {\n o.created_at = new Date(pbf.readVarint() / 1000)\n return\n }\n case 7: {\n o.started_at = new Date(pbf.readVarint() / 1000)\n return\n }\n case 8: {\n o.activated_at = new Date(pbf.readVarint() / 1000)\n return\n }\n case 9: {\n o.trial_start = new Date(pbf.readVarint() / 1000)\n return\n }\n case 10: {\n o.trial_end = new Date(pbf.readVarint() / 1000)\n return\n }\n case 11: {\n o.next_billing_at = new Date(pbf.readVarint() / 1000)\n return\n }\n case 12: {\n o.next_billing_amount = pbf.readVarint()\n return\n }\n case 13: {\n o.currency_code = pbf.readString()\n return\n }\n case 14: {\n o.billing_address = pbf_readMessage(BillingAddress, pbf)\n return\n }\n case 15: {\n o.vat_number = pbf.readString()\n return\n }\n case 16: {\n o.payment_method = pbf.readVarint()\n return\n }\n case 17: {\n o.payment_method_status = pbf.readVarint()\n return\n }\n }\n }\n\n due_invoices_count: number\n due_since: Date | undefined\n total_dues: number\n plan_id: ChargeBeePlanID\n coupon: string\n created_at: Date | undefined\n started_at: Date | undefined\n activated_at: Date | undefined\n trial_start: Date | undefined\n trial_end: Date | undefined\n next_billing_at: Date | undefined\n next_billing_amount: number\n currency_code: string\n billing_address: BillingAddress | undefined\n vat_number: string\n payment_method: PaymentMethod\n payment_method_status: PaymentMethodStatus\n\n constructor(args: {\n due_invoices_count?: number\n due_since?: Date\n total_dues?: number\n plan_id: ChargeBeePlanID\n coupon?: string\n created_at?: Date\n started_at?: Date\n activated_at?: Date\n trial_start?: Date\n trial_end?: Date\n next_billing_at?: Date\n next_billing_amount?: number\n currency_code?: string\n billing_address?: BillingAddress\n vat_number?: string\n payment_method?: PaymentMethod\n payment_method_status?: PaymentMethodStatus\n }) {\n this.due_invoices_count = args.due_invoices_count || 0\n this.due_since = args.due_since\n this.total_dues = args.total_dues || 0\n this.plan_id = args.plan_id || \"\"\n this.coupon = args.coupon || \"\"\n this.created_at = args.created_at\n this.started_at = args.started_at\n this.activated_at = args.activated_at\n this.trial_start = args.trial_start\n this.trial_end = args.trial_end\n this.next_billing_at = args.next_billing_at\n this.next_billing_amount = args.next_billing_amount || 0\n this.currency_code = args.currency_code || \"\"\n this.billing_address = args.billing_address\n this.vat_number = args.vat_number || \"\"\n this.payment_method = args.payment_method || (0 as any)\n this.payment_method_status = args.payment_method_status || (0 as any)\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.plan_id, \"`plan_id` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.due_invoices_count) pbf.writeVarintField(1, this.due_invoices_count, pbf)\n if (this.due_since) pbf.writeVarintField(2, this.due_since.getTime() * 1000, pbf)\n if (this.total_dues) pbf.writeVarintField(3, this.total_dues, pbf)\n if (this.plan_id) pbf.writeStringField(4, this.plan_id, pbf)\n if (this.coupon) pbf.writeStringField(5, this.coupon, pbf)\n if (this.created_at) pbf.writeVarintField(6, this.created_at.getTime() * 1000, pbf)\n if (this.started_at) pbf.writeVarintField(7, this.started_at.getTime() * 1000, pbf)\n if (this.activated_at) pbf.writeVarintField(8, this.activated_at.getTime() * 1000, pbf)\n if (this.trial_start) pbf.writeVarintField(9, this.trial_start.getTime() * 1000, pbf)\n if (this.trial_end) pbf.writeVarintField(10, this.trial_end.getTime() * 1000, pbf)\n if (this.next_billing_at)\n pbf.writeVarintField(11, this.next_billing_at.getTime() * 1000, pbf)\n if (this.next_billing_amount) pbf.writeVarintField(12, this.next_billing_amount, pbf)\n if (this.currency_code) pbf.writeStringField(13, this.currency_code, pbf)\n if (this.billing_address) pbf_writeMessage(14, this.billing_address, pbf)\n if (this.vat_number) pbf.writeStringField(15, this.vat_number, pbf)\n if (this.payment_method) pbf.writeVarintField(16, this.payment_method, pbf)\n if (this.payment_method_status) pbf.writeVarintField(17, this.payment_method_status, pbf)\n }\n}\n\nexport type PatchChargebeeSeatsStruct = {\n organization_uid: OrganizationUID\n seats: number\n}\n\nexport class PatchChargebeeSeats {\n static _from_pb(pbf: any): PatchChargebeeSeats {\n const o = PatchChargebeeSeats._from_pb_init()\n pbf.readFields(PatchChargebeeSeats._from_pb_fields, o)\n return new PatchChargebeeSeats({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.organization_uid = pbf.readString()\n return\n }\n case 2: {\n o.seats = pbf.readVarint()\n return\n }\n }\n }\n\n organization_uid: OrganizationUID\n seats: number\n\n constructor(args: {organization_uid: OrganizationUID; seats: number}) {\n this.organization_uid = args.organization_uid\n this.seats = args.seats || 0\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.organization_uid, \"`organization_uid` required\")\n assert(\n is_OrganizationUID(this.organization_uid),\n \"`organization_uid` is not of type OrganizationUID\",\n )\n assert(this.seats != null, \"`seats` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.organization_uid) pbf.writeStringField(1, this.organization_uid, pbf)\n if (this.seats) pbf.writeVarintField(2, this.seats, pbf)\n }\n}\n\nexport type PatchChargebeeRequestStruct = {\n plan_id: ChargeBeePlanID | undefined\n cancel_scheduled_changes: boolean\n seats: PatchChargebeeSeatsStruct | undefined\n}\n\nexport class PatchChargebeeRequest {\n static HTTP_METHOD = <const>\"PUT\"\n\n static _from_pb(pbf: any): PatchChargebeeRequest {\n const o = PatchChargebeeRequest._from_pb_init()\n pbf.readFields(PatchChargebeeRequest._from_pb_fields, o)\n return new PatchChargebeeRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.plan_id = pbf.readString()\n return\n }\n case 2: {\n o.cancel_scheduled_changes = pbf.readBoolean()\n return\n }\n case 3: {\n o.seats = pbf_readMessage(PatchChargebeeSeats, pbf)\n return\n }\n }\n }\n\n plan_id: ChargeBeePlanID | undefined\n cancel_scheduled_changes: boolean\n seats: PatchChargebeeSeats | undefined\n\n constructor(args: {\n plan_id?: ChargeBeePlanID | undefined\n cancel_scheduled_changes?: boolean\n seats?: PatchChargebeeSeats\n }) {\n this.plan_id = args.plan_id || undefined\n this.cancel_scheduled_changes = args.cancel_scheduled_changes || false\n this.seats = args.seats\n makeObservable(this, {})\n this.verify()\n }\n\n public get action(): string | boolean | PatchChargebeeSeats {\n return not_null(this.plan_id || this.cancel_scheduled_changes || this.seats)\n }\n\n public verify() {\n assert(\n [this.plan_id, this.cancel_scheduled_changes, this.seats].filter((x) => !!x).length ===\n 1,\n \"Exactly one of [`plan_id`, `cancel_scheduled_changes`, `seats`] required\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.plan_id) pbf.writeStringField(1, this.plan_id, pbf)\n if (this.cancel_scheduled_changes)\n pbf.writeBooleanField(2, this.cancel_scheduled_changes, pbf)\n if (this.seats) pbf_writeMessage(3, this.seats, pbf)\n }\n}\n\nexport type PatchChargebeeResponseStruct = {}\n\nexport class PatchChargebeeResponse {\n static _from_pb(pbf: any): PatchChargebeeResponse {\n const o = PatchChargebeeResponse._from_pb_init()\n pbf.readFields(PatchChargebeeResponse._from_pb_fields, o)\n return new PatchChargebeeResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n }\n }\n\n constructor(args: {}) {\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {}\n}\n\nexport type SyncPaymentDataRequestStruct = {\n organization_uid: OrganizationUID | undefined\n account_uid: AccountUID | undefined\n}\n\nexport class SyncPaymentDataRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): SyncPaymentDataRequest {\n const o = SyncPaymentDataRequest._from_pb_init()\n pbf.readFields(SyncPaymentDataRequest._from_pb_fields, o)\n return new SyncPaymentDataRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.organization_uid = pbf.readString()\n return\n }\n case 2: {\n o.account_uid = pbf.readString()\n return\n }\n }\n }\n\n organization_uid: OrganizationUID | undefined\n account_uid: AccountUID | undefined\n\n constructor(args: {organization_uid?: OrganizationUID; account_uid?: AccountUID}) {\n this.organization_uid = args.organization_uid\n this.account_uid = args.account_uid\n makeObservable(this, {})\n this.verify()\n }\n\n public get kind(): OrganizationUID | AccountUID {\n return not_null(this.organization_uid || this.account_uid)\n }\n\n public verify() {\n assert(\n this.organization_uid == null || is_OrganizationUID(this.organization_uid),\n \"`organization_uid` is not of type OrganizationUID\",\n )\n assert(\n this.account_uid == null || is_AccountUID(this.account_uid),\n \"`account_uid` is not of type AccountUID\",\n )\n assert(\n [this.organization_uid, this.account_uid].filter((x) => !!x).length === 1,\n \"Exactly one of [`organization_uid`, `account_uid`] required\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.organization_uid) pbf.writeStringField(1, this.organization_uid, pbf)\n if (this.account_uid) pbf.writeStringField(2, this.account_uid, pbf)\n }\n}\n\nexport type SyncPaymentDataResponseStruct = {}\n\nexport class SyncPaymentDataResponse {\n static _from_pb(pbf: any): SyncPaymentDataResponse {\n const o = SyncPaymentDataResponse._from_pb_init()\n pbf.readFields(SyncPaymentDataResponse._from_pb_fields, o)\n return new SyncPaymentDataResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n }\n }\n\n constructor(args: {}) {\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {}\n}\n\nexport type ReportAbuseRequestStruct = {\n abuse_report: AbuseReportStruct\n}\n\nexport class ReportAbuseRequest {\n static HTTP_METHOD = <const>\"PUT\"\n\n static _from_pb(pbf: any): ReportAbuseRequest {\n const o = ReportAbuseRequest._from_pb_init()\n pbf.readFields(ReportAbuseRequest._from_pb_fields, o)\n return new ReportAbuseRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.abuse_report = pbf_readMessage(AbuseReport, pbf)\n return\n }\n }\n }\n\n abuse_report: AbuseReport\n\n constructor(args: {abuse_report: AbuseReport}) {\n this.abuse_report = args.abuse_report\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.abuse_report, \"`abuse_report` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.abuse_report) pbf_writeMessage(1, this.abuse_report, pbf)\n }\n}\n\nexport type ReportAbuseResponseStruct = {}\n\nexport class ReportAbuseResponse {\n static _from_pb(pbf: any): ReportAbuseResponse {\n const o = ReportAbuseResponse._from_pb_init()\n pbf.readFields(ReportAbuseResponse._from_pb_fields, o)\n return new ReportAbuseResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n }\n }\n\n constructor(args: {}) {\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {}\n}\n\nexport type GetUploadTempURLRequestStruct = {\n mime_type: string\n md5_base64: string\n size: number\n}\n\nexport class GetUploadTempURLRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): GetUploadTempURLRequest {\n const o = GetUploadTempURLRequest._from_pb_init()\n pbf.readFields(GetUploadTempURLRequest._from_pb_fields, o)\n return new GetUploadTempURLRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.mime_type = pbf.readString()\n return\n }\n case 2: {\n o.md5_base64 = pbf.readString()\n return\n }\n case 3: {\n o.size = pbf.readVarint()\n return\n }\n }\n }\n\n mime_type: string\n md5_base64: string\n size: number\n\n constructor(args: {mime_type: string; md5_base64: string; size: number}) {\n this.mime_type = args.mime_type || \"\"\n this.md5_base64 = args.md5_base64 || \"\"\n this.size = args.size || 0\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.mime_type, \"`mime_type` required\")\n assert(this.md5_base64, \"`md5_base64` required\")\n assert(this.size != null, \"`size` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.mime_type) pbf.writeStringField(1, this.mime_type, pbf)\n if (this.md5_base64) pbf.writeStringField(2, this.md5_base64, pbf)\n if (this.size) pbf.writeVarintField(3, this.size, pbf)\n }\n}\n\nexport type GetUploadTempURLResponseStruct = {\n upload_url: string\n upload_id: string\n}\n\nexport class GetUploadTempURLResponse {\n static _from_pb(pbf: any): GetUploadTempURLResponse {\n const o = GetUploadTempURLResponse._from_pb_init()\n pbf.readFields(GetUploadTempURLResponse._from_pb_fields, o)\n return new GetUploadTempURLResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.upload_url = pbf.readString()\n return\n }\n case 2: {\n o.upload_id = pbf.readString()\n return\n }\n }\n }\n\n upload_url: string\n upload_id: string\n\n constructor(args: {upload_url: string; upload_id: string}) {\n this.upload_url = args.upload_url || \"\"\n this.upload_id = args.upload_id || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.upload_url, \"`upload_url` required\")\n assert(this.upload_id, \"`upload_id` required\")\n limits.LIMIT_URL.check(this.upload_url ? this.upload_url.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.upload_url) pbf.writeStringField(1, this.upload_url, pbf)\n if (this.upload_id) pbf.writeStringField(2, this.upload_id, pbf)\n }\n}\n\nexport type GetUploadBlobURLRequestStruct = {\n mime_type: string\n md5_base64: string\n size: number\n}\n\nexport class GetUploadBlobURLRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): GetUploadBlobURLRequest {\n const o = GetUploadBlobURLRequest._from_pb_init()\n pbf.readFields(GetUploadBlobURLRequest._from_pb_fields, o)\n return new GetUploadBlobURLRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.mime_type = pbf.readString()\n return\n }\n case 2: {\n o.md5_base64 = pbf.readString()\n return\n }\n case 3: {\n o.size = pbf.readVarint()\n return\n }\n }\n }\n\n mime_type: string\n md5_base64: string\n size: number\n\n constructor(args: {mime_type: string; md5_base64: string; size: number}) {\n this.mime_type = args.mime_type || \"\"\n this.md5_base64 = args.md5_base64 || \"\"\n this.size = args.size || 0\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.mime_type, \"`mime_type` required\")\n assert(this.md5_base64, \"`md5_base64` required\")\n assert(this.size != null, \"`size` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.mime_type) pbf.writeStringField(1, this.mime_type, pbf)\n if (this.md5_base64) pbf.writeStringField(2, this.md5_base64, pbf)\n if (this.size) pbf.writeVarintField(3, this.size, pbf)\n }\n}\n\nexport type GetUploadBlobURLResponseStruct = {\n blob_uid: BlobUID\n upload_url: string\n}\n\nexport class GetUploadBlobURLResponse {\n static _from_pb(pbf: any): GetUploadBlobURLResponse {\n const o = GetUploadBlobURLResponse._from_pb_init()\n pbf.readFields(GetUploadBlobURLResponse._from_pb_fields, o)\n return new GetUploadBlobURLResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.blob_uid = pbf.readString()\n return\n }\n case 2: {\n o.upload_url = pbf.readString()\n return\n }\n }\n }\n\n blob_uid: BlobUID\n upload_url: string\n\n constructor(args: {blob_uid: BlobUID; upload_url: string}) {\n this.blob_uid = args.blob_uid\n this.upload_url = args.upload_url || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.blob_uid, \"`blob_uid` required\")\n assert(is_BlobUID(this.blob_uid), \"`blob_uid` is not of type BlobUID\")\n assert(this.upload_url, \"`upload_url` required\")\n limits.LIMIT_URL.check(this.upload_url ? this.upload_url.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.blob_uid) pbf.writeStringField(1, this.blob_uid, pbf)\n if (this.upload_url) pbf.writeStringField(2, this.upload_url, pbf)\n }\n}\n\nexport type GetDownloadBlobURLRequestStruct = {\n blob_uid: BlobUID\n redirect: boolean\n file_name: string\n attachment: boolean\n}\n\nexport class GetDownloadBlobURLRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): GetDownloadBlobURLRequest {\n const o = GetDownloadBlobURLRequest._from_pb_init()\n pbf.readFields(GetDownloadBlobURLRequest._from_pb_fields, o)\n return new GetDownloadBlobURLRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.blob_uid = pbf.readString()\n return\n }\n case 2: {\n o.redirect = pbf.readBoolean()\n return\n }\n case 3: {\n o.file_name = pbf.readString()\n return\n }\n case 4: {\n o.attachment = pbf.readBoolean()\n return\n }\n }\n }\n\n blob_uid: BlobUID\n redirect: boolean\n file_name: string\n attachment: boolean\n\n constructor(args: {\n blob_uid: BlobUID\n redirect?: boolean\n file_name?: string\n attachment?: boolean\n }) {\n this.blob_uid = args.blob_uid\n this.redirect = args.redirect || false\n this.file_name = args.file_name || \"\"\n this.attachment = args.attachment || false\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.blob_uid, \"`blob_uid` required\")\n assert(is_BlobUID(this.blob_uid), \"`blob_uid` is not of type BlobUID\")\n limits.LIMIT_SMALL_TEXT.check(this.file_name ? this.file_name.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.blob_uid) pbf.writeStringField(1, this.blob_uid, pbf)\n if (this.redirect) pbf.writeBooleanField(2, this.redirect, pbf)\n if (this.file_name) pbf.writeStringField(3, this.file_name, pbf)\n if (this.attachment) pbf.writeBooleanField(4, this.attachment, pbf)\n }\n}\n\nexport type GetDownloadBlobURLResponseStruct = {\n download_url: string\n}\n\nexport class GetDownloadBlobURLResponse {\n static _from_pb(pbf: any): GetDownloadBlobURLResponse {\n const o = GetDownloadBlobURLResponse._from_pb_init()\n pbf.readFields(GetDownloadBlobURLResponse._from_pb_fields, o)\n return new GetDownloadBlobURLResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.download_url = pbf.readString()\n return\n }\n }\n }\n\n download_url: string\n\n constructor(args: {download_url: string}) {\n this.download_url = args.download_url || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.download_url, \"`download_url` required\")\n limits.LIMIT_URL.check(this.download_url ? this.download_url.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.download_url) pbf.writeStringField(1, this.download_url, pbf)\n }\n}\n\nexport type CreateBlobFromURLRequestStruct = {\n url: string\n timeout: number\n content_type_prefix: string\n}\n\nexport class CreateBlobFromURLRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): CreateBlobFromURLRequest {\n const o = CreateBlobFromURLRequest._from_pb_init()\n pbf.readFields(CreateBlobFromURLRequest._from_pb_fields, o)\n return new CreateBlobFromURLRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.url = pbf.readString()\n return\n }\n case 2: {\n o.timeout = pbf.readVarint()\n return\n }\n case 3: {\n o.content_type_prefix = pbf.readString()\n return\n }\n }\n }\n\n url: string\n timeout: number\n content_type_prefix: string\n\n constructor(args: {url: string; timeout?: number; content_type_prefix?: string}) {\n this.url = args.url || \"\"\n this.timeout = args.timeout || 0\n this.content_type_prefix = args.content_type_prefix || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.url, \"`url` required\")\n limits.LIMIT_URL.check(this.url ? this.url.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.url) pbf.writeStringField(1, this.url, pbf)\n if (this.timeout) pbf.writeVarintField(2, this.timeout, pbf)\n if (this.content_type_prefix) pbf.writeStringField(3, this.content_type_prefix, pbf)\n }\n}\n\nexport type CreateBlobFromURLResponseStruct = {\n http_status: number\n timed_out: boolean\n blob: BlobStruct | undefined\n content_type: string\n}\n\nexport class CreateBlobFromURLResponse {\n static _from_pb(pbf: any): CreateBlobFromURLResponse {\n const o = CreateBlobFromURLResponse._from_pb_init()\n pbf.readFields(CreateBlobFromURLResponse._from_pb_fields, o)\n return new CreateBlobFromURLResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.http_status = pbf.readVarint()\n return\n }\n case 2: {\n o.timed_out = pbf.readBoolean()\n return\n }\n case 3: {\n o.blob = pbf_readMessage(Blob, pbf)\n return\n }\n case 4: {\n o.content_type = pbf.readString()\n return\n }\n }\n }\n\n http_status: number\n timed_out: boolean\n blob: Blob | undefined\n content_type: string\n\n constructor(args: {\n http_status?: number\n timed_out?: boolean\n blob?: Blob\n content_type?: string\n }) {\n this.http_status = args.http_status || 0\n this.timed_out = args.timed_out || false\n this.blob = args.blob\n this.content_type = args.content_type || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.http_status) pbf.writeVarintField(1, this.http_status, pbf)\n if (this.timed_out) pbf.writeBooleanField(2, this.timed_out, pbf)\n if (this.blob) pbf_writeMessage(3, this.blob, pbf)\n if (this.content_type) pbf.writeStringField(4, this.content_type, pbf)\n }\n}\n\nexport type QueryBlobMediaInfosRequestStruct = {\n blob_uids: Array<BlobUID>\n}\n\nexport class QueryBlobMediaInfosRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): QueryBlobMediaInfosRequest {\n const o = QueryBlobMediaInfosRequest._from_pb_init()\n pbf.readFields(QueryBlobMediaInfosRequest._from_pb_fields, o)\n return new QueryBlobMediaInfosRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {blob_uids: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.blob_uids.push(pbf.readString())\n return\n }\n }\n }\n\n blob_uids: Array<BlobUID>\n\n constructor(args: {blob_uids: Array<BlobUID>}) {\n this.blob_uids = (args.blob_uids || []).slice()\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.blob_uids, \"`blob_uids` required\")\n const i_blob_uids = this.blob_uids.findIndex((x) => !is_BlobUID(x))\n assert(\n i_blob_uids < 0,\n () =>\n \"`this.blob_uids` contains invalid item: \" +\n JSON.stringify(this.blob_uids[i_blob_uids]),\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.blob_uids)\n for (let i = 0; i < this.blob_uids.length; i++) {\n pbf.writeStringField(1, this.blob_uids[i])\n }\n }\n}\n\nexport type QueryBlobMediaInfosResponseStruct = {\n media_infos: Array<MediaInfoStruct>\n resolved_blob_uids: Array<BlobUID>\n}\n\nexport class QueryBlobMediaInfosResponse {\n static _from_pb(pbf: any): QueryBlobMediaInfosResponse {\n const o = QueryBlobMediaInfosResponse._from_pb_init()\n pbf.readFields(QueryBlobMediaInfosResponse._from_pb_fields, o)\n return new QueryBlobMediaInfosResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {media_infos: [], resolved_blob_uids: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.media_infos.push(pbf_readMessage(MediaInfo, pbf))\n return\n }\n case 2: {\n o.resolved_blob_uids.push(pbf.readString())\n return\n }\n }\n }\n\n media_infos: Array<MediaInfo>\n resolved_blob_uids: Array<BlobUID>\n\n constructor(args: {media_infos: Array<MediaInfo>; resolved_blob_uids: Array<BlobUID>}) {\n this.media_infos = (args.media_infos || []).slice()\n this.resolved_blob_uids = (args.resolved_blob_uids || []).slice()\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.media_infos, \"`media_infos` required\")\n assert(this.resolved_blob_uids, \"`resolved_blob_uids` required\")\n const i_resolved_blob_uids = this.resolved_blob_uids.findIndex((x) => !is_BlobUID(x))\n assert(\n i_resolved_blob_uids < 0,\n () =>\n \"`this.resolved_blob_uids` contains invalid item: \" +\n JSON.stringify(this.resolved_blob_uids[i_resolved_blob_uids]),\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.media_infos)\n for (let i = 0; i < this.media_infos.length; i++) {\n pbf_writeMessage(1, this.media_infos[i], pbf)\n }\n if (this.resolved_blob_uids)\n for (let i = 0; i < this.resolved_blob_uids.length; i++) {\n pbf.writeStringField(2, this.resolved_blob_uids[i])\n }\n }\n}\n\nexport type ScrapeRequestStruct = {\n url: string\n language: Language | undefined\n timeout: number\n return_title: boolean\n return_featured_image_url: boolean\n return_logo_url: boolean\n return_description: boolean\n return_screenshot: boolean\n}\n\nexport class ScrapeRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): ScrapeRequest {\n const o = ScrapeRequest._from_pb_init()\n pbf.readFields(ScrapeRequest._from_pb_fields, o)\n return new ScrapeRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.url = pbf.readString()\n return\n }\n case 2: {\n o.language = pbf.readString()\n return\n }\n case 3: {\n o.timeout = pbf.readVarint()\n return\n }\n case 4: {\n o.return_title = pbf.readBoolean()\n return\n }\n case 5: {\n o.return_featured_image_url = pbf.readBoolean()\n return\n }\n case 6: {\n o.return_logo_url = pbf.readBoolean()\n return\n }\n case 7: {\n o.return_description = pbf.readBoolean()\n return\n }\n case 8: {\n o.return_screenshot = pbf.readBoolean()\n return\n }\n }\n }\n\n url: string\n language: Language | undefined\n timeout: number\n return_title: boolean\n return_featured_image_url: boolean\n return_logo_url: boolean\n return_description: boolean\n return_screenshot: boolean\n\n constructor(args: {\n url: string\n language?: Language\n timeout?: number\n return_title?: boolean\n return_featured_image_url?: boolean\n return_logo_url?: boolean\n return_description?: boolean\n return_screenshot?: boolean\n }) {\n this.url = args.url || \"\"\n this.language = args.language\n this.timeout = args.timeout || 0\n this.return_title = args.return_title || false\n this.return_featured_image_url = args.return_featured_image_url || false\n this.return_logo_url = args.return_logo_url || false\n this.return_description = args.return_description || false\n this.return_screenshot = args.return_screenshot || false\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.url, \"`url` required\")\n assert(\n this.language == null || is_Language(this.language),\n \"`language` is not of type Language\",\n )\n limits.LIMIT_URL.check(this.url ? this.url.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.url) pbf.writeStringField(1, this.url, pbf)\n if (this.language) pbf.writeStringField(2, this.language, pbf)\n if (this.timeout) pbf.writeVarintField(3, this.timeout, pbf)\n if (this.return_title) pbf.writeBooleanField(4, this.return_title, pbf)\n if (this.return_featured_image_url)\n pbf.writeBooleanField(5, this.return_featured_image_url, pbf)\n if (this.return_logo_url) pbf.writeBooleanField(6, this.return_logo_url, pbf)\n if (this.return_description) pbf.writeBooleanField(7, this.return_description, pbf)\n if (this.return_screenshot) pbf.writeBooleanField(8, this.return_screenshot, pbf)\n }\n}\n\nexport type ScrapeInfoStruct = {\n http_status: number\n timed_out: boolean\n content_type: string\n title: string\n featured_image_url: string\n logo_url: string\n description: string\n}\n\nexport class ScrapeInfo {\n static _from_pb(pbf: any): ScrapeInfo {\n const o = ScrapeInfo._from_pb_init()\n pbf.readFields(ScrapeInfo._from_pb_fields, o)\n return new ScrapeInfo({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.http_status = pbf.readVarint()\n return\n }\n case 2: {\n o.timed_out = pbf.readBoolean()\n return\n }\n case 3: {\n o.content_type = pbf.readString()\n return\n }\n case 4: {\n o.title = pbf.readString()\n return\n }\n case 5: {\n o.featured_image_url = pbf.readString()\n return\n }\n case 6: {\n o.logo_url = pbf.readString()\n return\n }\n case 7: {\n o.description = pbf.readString()\n return\n }\n }\n }\n\n http_status: number\n timed_out: boolean\n content_type: string\n title: string\n featured_image_url: string\n logo_url: string\n description: string\n\n constructor(args: {\n http_status?: number\n timed_out?: boolean\n content_type?: string\n title?: string\n featured_image_url?: string\n logo_url?: string\n description?: string\n }) {\n this.http_status = args.http_status || 0\n this.timed_out = args.timed_out || false\n this.content_type = args.content_type || \"\"\n this.title = args.title || \"\"\n this.featured_image_url = args.featured_image_url || \"\"\n this.logo_url = args.logo_url || \"\"\n this.description = args.description || \"\"\n makeObservable(this, {\n http_status: observable,\n timed_out: observable,\n content_type: observable,\n title: observable,\n featured_image_url: observable,\n logo_url: observable,\n description: observable,\n })\n this.verify()\n }\n\n public verify() {\n limits.LIMIT_SMALL_TEXT.check(this.title ? this.title.length : 0)\n limits.LIMIT_URL.check(this.featured_image_url ? this.featured_image_url.length : 0)\n limits.LIMIT_URL.check(this.logo_url ? this.logo_url.length : 0)\n limits.LIMIT_MEDIUM_TEXT.check(this.description ? this.description.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.http_status) pbf.writeVarintField(1, this.http_status, pbf)\n if (this.timed_out) pbf.writeBooleanField(2, this.timed_out, pbf)\n if (this.content_type) pbf.writeStringField(3, this.content_type, pbf)\n if (this.title) pbf.writeStringField(4, this.title, pbf)\n if (this.featured_image_url) pbf.writeStringField(5, this.featured_image_url, pbf)\n if (this.logo_url) pbf.writeStringField(6, this.logo_url, pbf)\n if (this.description) pbf.writeStringField(7, this.description, pbf)\n }\n}\n\nexport type ScrapeResponseStruct = {\n scrape_info: ScrapeInfoStruct\n screenshot_temp_bucket_file: string\n}\n\nexport class ScrapeResponse {\n static _from_pb(pbf: any): ScrapeResponse {\n const o = ScrapeResponse._from_pb_init()\n pbf.readFields(ScrapeResponse._from_pb_fields, o)\n return new ScrapeResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.scrape_info = pbf_readMessage(ScrapeInfo, pbf)\n return\n }\n case 2: {\n o.screenshot_temp_bucket_file = pbf.readString()\n return\n }\n }\n }\n\n scrape_info: ScrapeInfo\n screenshot_temp_bucket_file: string\n\n constructor(args: {scrape_info: ScrapeInfo; screenshot_temp_bucket_file?: string}) {\n this.scrape_info = args.scrape_info\n this.screenshot_temp_bucket_file = args.screenshot_temp_bucket_file || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.scrape_info, \"`scrape_info` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.scrape_info) pbf_writeMessage(1, this.scrape_info, pbf)\n if (this.screenshot_temp_bucket_file)\n pbf.writeStringField(2, this.screenshot_temp_bucket_file, pbf)\n }\n}\n\nexport type AcceptInviteRequestStruct = {\n board_uid: BoardUID\n board_invite_uid: BoardInviteUID\n}\n\nexport class AcceptInviteRequest {\n static HTTP_METHOD = <const>\"PUT\"\n\n static _from_pb(pbf: any): AcceptInviteRequest {\n const o = AcceptInviteRequest._from_pb_init()\n pbf.readFields(AcceptInviteRequest._from_pb_fields, o)\n return new AcceptInviteRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_uid = pbf.readString()\n return\n }\n case 2: {\n o.board_invite_uid = pbf.readString()\n return\n }\n }\n }\n\n board_uid: BoardUID\n board_invite_uid: BoardInviteUID\n\n constructor(args: {board_uid: BoardUID; board_invite_uid: BoardInviteUID}) {\n this.board_uid = args.board_uid\n this.board_invite_uid = args.board_invite_uid\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.board_uid, \"`board_uid` required\")\n assert(is_BoardUID(this.board_uid), \"`board_uid` is not of type BoardUID\")\n assert(this.board_invite_uid, \"`board_invite_uid` required\")\n assert(\n is_BoardInviteUID(this.board_invite_uid),\n \"`board_invite_uid` is not of type BoardInviteUID\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_uid) pbf.writeStringField(1, this.board_uid, pbf)\n if (this.board_invite_uid) pbf.writeStringField(2, this.board_invite_uid, pbf)\n }\n}\n\nexport type AcceptInviteResponseStruct = {\n invite_invalid: boolean\n board_accessible: boolean\n}\n\nexport class AcceptInviteResponse {\n static _from_pb(pbf: any): AcceptInviteResponse {\n const o = AcceptInviteResponse._from_pb_init()\n pbf.readFields(AcceptInviteResponse._from_pb_fields, o)\n return new AcceptInviteResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.invite_invalid = pbf.readBoolean()\n return\n }\n case 2: {\n o.board_accessible = pbf.readBoolean()\n return\n }\n }\n }\n\n invite_invalid: boolean\n board_accessible: boolean\n\n constructor(args: {invite_invalid: boolean; board_accessible: boolean}) {\n this.invite_invalid = args.invite_invalid || false\n this.board_accessible = args.board_accessible || false\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.invite_invalid != null, \"`invite_invalid` required\")\n assert(this.board_accessible != null, \"`board_accessible` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.invite_invalid) pbf.writeBooleanField(1, this.invite_invalid, pbf)\n if (this.board_accessible) pbf.writeBooleanField(2, this.board_accessible, pbf)\n }\n}\n\nexport type ImportDataJobStruct = {\n job_id: string\n created_by: AccountUID\n request: ImportDataRequestStruct\n modified_at: Date\n status: JobStatus\n error: string\n cling_error_code: ClingErrorCode\n num_succeeded: number\n num_failed: number\n}\n\nexport class ImportDataJob {\n static _from_pb(pbf: any): ImportDataJob {\n const o = ImportDataJob._from_pb_init()\n pbf.readFields(ImportDataJob._from_pb_fields, o)\n return new ImportDataJob({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.job_id = pbf.readString()\n return\n }\n case 2: {\n o.created_by = pbf.readString()\n return\n }\n case 3: {\n o.request = pbf_readMessage(ImportDataRequest, pbf)\n return\n }\n case 4: {\n o.modified_at = new Date(pbf.readVarint() / 1000)\n return\n }\n case 5: {\n o.status = pbf.readVarint()\n return\n }\n case 6: {\n o.error = pbf.readString()\n return\n }\n case 7: {\n o.cling_error_code = pbf.readVarint()\n return\n }\n case 8: {\n o.num_succeeded = pbf.readVarint()\n return\n }\n case 9: {\n o.num_failed = pbf.readVarint()\n return\n }\n }\n }\n\n job_id: string\n created_by: AccountUID\n request: ImportDataRequest\n modified_at: Date\n status: JobStatus\n error: string\n cling_error_code: ClingErrorCode\n num_succeeded: number\n num_failed: number\n\n constructor(args: {\n job_id: string\n created_by: AccountUID\n request: ImportDataRequest\n modified_at: Date\n status: JobStatus\n error?: string\n cling_error_code?: ClingErrorCode\n num_succeeded?: number\n num_failed?: number\n }) {\n this.job_id = args.job_id || \"\"\n this.created_by = args.created_by\n this.request = args.request\n this.modified_at = args.modified_at\n this.status = args.status || (0 as any)\n this.error = args.error || \"\"\n this.cling_error_code = args.cling_error_code || (0 as any)\n this.num_succeeded = args.num_succeeded || 0\n this.num_failed = args.num_failed || 0\n makeObservable(this, {\n job_id: observable,\n created_by: observable,\n request: observable,\n modified_at: observable,\n status: observable,\n error: observable,\n cling_error_code: observable,\n num_succeeded: observable,\n num_failed: observable,\n })\n this.verify()\n }\n\n public verify() {\n assert(this.job_id, \"`job_id` required\")\n assert(this.created_by, \"`created_by` required\")\n assert(is_AccountUID(this.created_by), \"`created_by` is not of type AccountUID\")\n assert(this.request, \"`request` required\")\n assert(this.modified_at, \"`modified_at` required\")\n assert(this.status, \"`status` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.job_id) pbf.writeStringField(1, this.job_id, pbf)\n if (this.created_by) pbf.writeStringField(2, this.created_by, pbf)\n if (this.request) pbf_writeMessage(3, this.request, pbf)\n if (this.modified_at) pbf.writeVarintField(4, this.modified_at.getTime() * 1000, pbf)\n if (this.status) pbf.writeVarintField(5, this.status, pbf)\n if (this.error) pbf.writeStringField(6, this.error, pbf)\n if (this.cling_error_code) pbf.writeVarintField(7, this.cling_error_code, pbf)\n if (this.num_succeeded) pbf.writeVarintField(8, this.num_succeeded, pbf)\n if (this.num_failed) pbf.writeVarintField(9, this.num_failed, pbf)\n }\n}\n\nexport type ImportGoogleKeepTakeoutStruct = {\n target_board_uid: BoardUID\n title_archived_card: string\n title_trashed_card: string\n}\n\nexport class ImportGoogleKeepTakeout {\n static _from_pb(pbf: any): ImportGoogleKeepTakeout {\n const o = ImportGoogleKeepTakeout._from_pb_init()\n pbf.readFields(ImportGoogleKeepTakeout._from_pb_fields, o)\n return new ImportGoogleKeepTakeout({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.target_board_uid = pbf.readString()\n return\n }\n case 2: {\n o.title_archived_card = pbf.readString()\n return\n }\n case 3: {\n o.title_trashed_card = pbf.readString()\n return\n }\n }\n }\n\n target_board_uid: BoardUID\n title_archived_card: string\n title_trashed_card: string\n\n constructor(args: {\n target_board_uid: BoardUID\n title_archived_card: string\n title_trashed_card: string\n }) {\n this.target_board_uid = args.target_board_uid\n this.title_archived_card = args.title_archived_card || \"\"\n this.title_trashed_card = args.title_trashed_card || \"\"\n makeObservable(this, {\n target_board_uid: observable,\n title_archived_card: observable,\n title_trashed_card: observable,\n })\n this.verify()\n }\n\n public verify() {\n assert(this.target_board_uid, \"`target_board_uid` required\")\n assert(is_BoardUID(this.target_board_uid), \"`target_board_uid` is not of type BoardUID\")\n assert(this.title_archived_card, \"`title_archived_card` required\")\n assert(this.title_trashed_card, \"`title_trashed_card` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.target_board_uid) pbf.writeStringField(1, this.target_board_uid, pbf)\n if (this.title_archived_card) pbf.writeStringField(2, this.title_archived_card, pbf)\n if (this.title_trashed_card) pbf.writeStringField(3, this.title_trashed_card, pbf)\n }\n}\n\nexport type ImportAppleNotesTakeoutStruct = {\n target_board_uid: BoardUID\n}\n\nexport class ImportAppleNotesTakeout {\n static _from_pb(pbf: any): ImportAppleNotesTakeout {\n const o = ImportAppleNotesTakeout._from_pb_init()\n pbf.readFields(ImportAppleNotesTakeout._from_pb_fields, o)\n return new ImportAppleNotesTakeout({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.target_board_uid = pbf.readString()\n return\n }\n }\n }\n\n target_board_uid: BoardUID\n\n constructor(args: {target_board_uid: BoardUID}) {\n this.target_board_uid = args.target_board_uid\n makeObservable(this, {target_board_uid: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.target_board_uid, \"`target_board_uid` required\")\n assert(is_BoardUID(this.target_board_uid), \"`target_board_uid` is not of type BoardUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.target_board_uid) pbf.writeStringField(1, this.target_board_uid, pbf)\n }\n}\n\nexport type ImportDataRequestStruct = {\n temp_upload_id: string\n import_google_keep_takeout: ImportGoogleKeepTakeoutStruct | undefined\n import_apple_notes_takeout: ImportAppleNotesTakeoutStruct | undefined\n}\n\nexport class ImportDataRequest {\n static HTTP_METHOD = <const>\"PUT\"\n\n static _from_pb(pbf: any): ImportDataRequest {\n const o = ImportDataRequest._from_pb_init()\n pbf.readFields(ImportDataRequest._from_pb_fields, o)\n return new ImportDataRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.temp_upload_id = pbf.readString()\n return\n }\n case 2: {\n o.import_google_keep_takeout = pbf_readMessage(ImportGoogleKeepTakeout, pbf)\n return\n }\n case 3: {\n o.import_apple_notes_takeout = pbf_readMessage(ImportAppleNotesTakeout, pbf)\n return\n }\n }\n }\n\n temp_upload_id: string\n import_google_keep_takeout: ImportGoogleKeepTakeout | undefined\n import_apple_notes_takeout: ImportAppleNotesTakeout | undefined\n\n constructor(args: {\n temp_upload_id: string\n import_google_keep_takeout?: ImportGoogleKeepTakeout\n import_apple_notes_takeout?: ImportAppleNotesTakeout\n }) {\n this.temp_upload_id = args.temp_upload_id || \"\"\n this.import_google_keep_takeout = args.import_google_keep_takeout\n this.import_apple_notes_takeout = args.import_apple_notes_takeout\n makeObservable(this, {})\n this.verify()\n }\n\n public get kind(): ImportGoogleKeepTakeout | ImportAppleNotesTakeout {\n return not_null(this.import_google_keep_takeout || this.import_apple_notes_takeout)\n }\n\n public verify() {\n assert(this.temp_upload_id, \"`temp_upload_id` required\")\n assert(\n [this.import_google_keep_takeout, this.import_apple_notes_takeout].filter((x) => !!x)\n .length === 1,\n \"Exactly one of [`import_google_keep_takeout`, `import_apple_notes_takeout`] required\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.temp_upload_id) pbf.writeStringField(1, this.temp_upload_id, pbf)\n if (this.import_google_keep_takeout)\n pbf_writeMessage(2, this.import_google_keep_takeout, pbf)\n if (this.import_apple_notes_takeout)\n pbf_writeMessage(3, this.import_apple_notes_takeout, pbf)\n }\n}\n\nexport type ImportDataResponseStruct = {\n job_id: string\n}\n\nexport class ImportDataResponse {\n static _from_pb(pbf: any): ImportDataResponse {\n const o = ImportDataResponse._from_pb_init()\n pbf.readFields(ImportDataResponse._from_pb_fields, o)\n return new ImportDataResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.job_id = pbf.readString()\n return\n }\n }\n }\n\n job_id: string\n\n constructor(args: {job_id: string}) {\n this.job_id = args.job_id || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.job_id, \"`job_id` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.job_id) pbf.writeStringField(1, this.job_id, pbf)\n }\n}\n\nexport type PubSubImportDataStruct = {\n job_id: string\n}\n\nexport class PubSubImportData {\n static _from_pb(pbf: any): PubSubImportData {\n const o = PubSubImportData._from_pb_init()\n pbf.readFields(PubSubImportData._from_pb_fields, o)\n return new PubSubImportData({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.job_id = pbf.readString()\n return\n }\n }\n }\n\n job_id: string\n\n constructor(args: {job_id: string}) {\n this.job_id = args.job_id || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.job_id, \"`job_id` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.job_id) pbf.writeStringField(1, this.job_id, pbf)\n }\n}\n\nexport type QueryImportDataJobRequestStruct = {\n job_id: string\n}\n\nexport class QueryImportDataJobRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): QueryImportDataJobRequest {\n const o = QueryImportDataJobRequest._from_pb_init()\n pbf.readFields(QueryImportDataJobRequest._from_pb_fields, o)\n return new QueryImportDataJobRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.job_id = pbf.readString()\n return\n }\n }\n }\n\n job_id: string\n\n constructor(args: {job_id: string}) {\n this.job_id = args.job_id || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.job_id, \"`job_id` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.job_id) pbf.writeStringField(1, this.job_id, pbf)\n }\n}\n\nexport type QueryImportDataJobResponseStruct = {\n job: ImportDataJobStruct\n}\n\nexport class QueryImportDataJobResponse {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): QueryImportDataJobResponse {\n const o = QueryImportDataJobResponse._from_pb_init()\n pbf.readFields(QueryImportDataJobResponse._from_pb_fields, o)\n return new QueryImportDataJobResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.job = pbf_readMessage(ImportDataJob, pbf)\n return\n }\n }\n }\n\n job: ImportDataJob\n\n constructor(args: {job: ImportDataJob}) {\n this.job = args.job\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.job, \"`job` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.job) pbf_writeMessage(1, this.job, pbf)\n }\n}\n\nexport type QueryMeetRequestStruct = {\n board_uid: BoardUID\n with_jwt: boolean\n}\n\nexport class QueryMeetRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): QueryMeetRequest {\n const o = QueryMeetRequest._from_pb_init()\n pbf.readFields(QueryMeetRequest._from_pb_fields, o)\n return new QueryMeetRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_uid = pbf.readString()\n return\n }\n case 2: {\n o.with_jwt = pbf.readBoolean()\n return\n }\n }\n }\n\n board_uid: BoardUID\n with_jwt: boolean\n\n constructor(args: {board_uid: BoardUID; with_jwt?: boolean}) {\n this.board_uid = args.board_uid\n this.with_jwt = args.with_jwt || false\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.board_uid, \"`board_uid` required\")\n assert(is_BoardUID(this.board_uid), \"`board_uid` is not of type BoardUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_uid) pbf.writeStringField(1, this.board_uid, pbf)\n if (this.with_jwt) pbf.writeBooleanField(2, this.with_jwt, pbf)\n }\n}\n\nexport type QueryMeetActiveBoardStruct = {\n board_uid: BoardUID\n num_participants: number\n}\n\nexport class QueryMeetActiveBoard {\n static _from_pb(pbf: any): QueryMeetActiveBoard {\n const o = QueryMeetActiveBoard._from_pb_init()\n pbf.readFields(QueryMeetActiveBoard._from_pb_fields, o)\n return new QueryMeetActiveBoard({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_uid = pbf.readString()\n return\n }\n case 2: {\n o.num_participants = pbf.readVarint()\n return\n }\n }\n }\n\n board_uid: BoardUID\n num_participants: number\n\n constructor(args: {board_uid: BoardUID; num_participants?: number}) {\n this.board_uid = args.board_uid\n this.num_participants = args.num_participants || 0\n makeObservable(this, {board_uid: observable, num_participants: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.board_uid, \"`board_uid` required\")\n assert(is_BoardUID(this.board_uid), \"`board_uid` is not of type BoardUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_uid) pbf.writeStringField(1, this.board_uid, pbf)\n if (this.num_participants) pbf.writeVarintField(2, this.num_participants, pbf)\n }\n}\n\nexport type QueryMeetResponseStruct = {\n jwt: string\n room: string\n meet_status: MeetStatusStruct\n}\n\nexport class QueryMeetResponse {\n static _from_pb(pbf: any): QueryMeetResponse {\n const o = QueryMeetResponse._from_pb_init()\n pbf.readFields(QueryMeetResponse._from_pb_fields, o)\n return new QueryMeetResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.jwt = pbf.readString()\n return\n }\n case 2: {\n o.room = pbf.readString()\n return\n }\n case 3: {\n o.meet_status = pbf_readMessage(MeetStatus, pbf)\n return\n }\n }\n }\n\n jwt: string\n room: string\n meet_status: MeetStatus\n\n constructor(args: {jwt?: string; room?: string; meet_status: MeetStatus}) {\n this.jwt = args.jwt || \"\"\n this.room = args.room || \"\"\n this.meet_status = args.meet_status\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.meet_status, \"`meet_status` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.jwt) pbf.writeStringField(1, this.jwt, pbf)\n if (this.room) pbf.writeStringField(2, this.room, pbf)\n if (this.meet_status) pbf_writeMessage(3, this.meet_status, pbf)\n }\n}\n\nexport type ManageMeetRequestStruct = {\n board_uid: BoardUID\n action: ManageMeetAction\n}\n\nexport class ManageMeetRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): ManageMeetRequest {\n const o = ManageMeetRequest._from_pb_init()\n pbf.readFields(ManageMeetRequest._from_pb_fields, o)\n return new ManageMeetRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_uid = pbf.readString()\n return\n }\n case 2: {\n o.action = pbf.readVarint()\n return\n }\n }\n }\n\n board_uid: BoardUID\n action: ManageMeetAction\n\n constructor(args: {board_uid: BoardUID; action: ManageMeetAction}) {\n this.board_uid = args.board_uid\n this.action = args.action || (0 as any)\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.board_uid, \"`board_uid` required\")\n assert(is_BoardUID(this.board_uid), \"`board_uid` is not of type BoardUID\")\n assert(this.action, \"`action` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_uid) pbf.writeStringField(1, this.board_uid, pbf)\n if (this.action) pbf.writeVarintField(2, this.action, pbf)\n }\n}\n\nexport type ManageMeetResponseStruct = {}\n\nexport class ManageMeetResponse {\n static _from_pb(pbf: any): ManageMeetResponse {\n const o = ManageMeetResponse._from_pb_init()\n pbf.readFields(ManageMeetResponse._from_pb_fields, o)\n return new ManageMeetResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n }\n }\n\n constructor(args: {}) {\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {}\n}\n\nexport type PubSubSendEmailStruct = {\n account_uid: AccountUID | undefined\n email: string\n template_id: string\n dynamic_template_data_json: string\n discard_at: Date\n}\n\nexport class PubSubSendEmail {\n static _from_pb(pbf: any): PubSubSendEmail {\n const o = PubSubSendEmail._from_pb_init()\n pbf.readFields(PubSubSendEmail._from_pb_fields, o)\n return new PubSubSendEmail({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.account_uid = pbf.readString()\n return\n }\n case 2: {\n o.email = pbf.readString()\n return\n }\n case 3: {\n o.template_id = pbf.readString()\n return\n }\n case 4: {\n o.dynamic_template_data_json = pbf.readString()\n return\n }\n case 5: {\n o.discard_at = new Date(pbf.readVarint() / 1000)\n return\n }\n }\n }\n\n account_uid: AccountUID | undefined\n email: string\n template_id: string\n dynamic_template_data_json: string\n discard_at: Date\n\n constructor(args: {\n account_uid?: AccountUID\n email?: string\n template_id: string\n dynamic_template_data_json?: string\n discard_at: Date\n }) {\n this.account_uid = args.account_uid\n this.email = args.email || \"\"\n this.template_id = args.template_id || \"\"\n this.dynamic_template_data_json = args.dynamic_template_data_json || \"\"\n this.discard_at = args.discard_at\n makeObservable(this, {})\n this.verify()\n }\n\n public get recipient(): AccountUID | string {\n return not_null(this.account_uid || this.email)\n }\n\n public verify() {\n assert(\n this.account_uid == null || is_AccountUID(this.account_uid),\n \"`account_uid` is not of type AccountUID\",\n )\n assert(this.template_id, \"`template_id` required\")\n assert(this.discard_at, \"`discard_at` required\")\n assert(\n [this.account_uid, this.email].filter((x) => !!x).length === 1,\n \"Exactly one of [`account_uid`, `email`] required\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.account_uid) pbf.writeStringField(1, this.account_uid, pbf)\n if (this.email) pbf.writeStringField(2, this.email, pbf)\n if (this.template_id) pbf.writeStringField(3, this.template_id, pbf)\n if (this.dynamic_template_data_json)\n pbf.writeStringField(4, this.dynamic_template_data_json, pbf)\n if (this.discard_at) pbf.writeVarintField(5, this.discard_at.getTime() * 1000, pbf)\n }\n}\n\nexport type PubSubFullAccountPatchedStruct = {\n message_type: FullAccountPatchedMessageType\n account_uid: AccountUID\n version: number\n}\n\nexport class PubSubFullAccountPatched {\n static _from_pb(pbf: any): PubSubFullAccountPatched {\n const o = PubSubFullAccountPatched._from_pb_init()\n pbf.readFields(PubSubFullAccountPatched._from_pb_fields, o)\n return new PubSubFullAccountPatched({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.message_type = pbf.readVarint()\n return\n }\n case 2: {\n o.account_uid = pbf.readString()\n return\n }\n case 3: {\n o.version = pbf.readVarint()\n return\n }\n }\n }\n\n message_type: FullAccountPatchedMessageType\n account_uid: AccountUID\n version: number\n\n constructor(args: {\n message_type: FullAccountPatchedMessageType\n account_uid: AccountUID\n version: number\n }) {\n this.message_type = args.message_type || (0 as any)\n this.account_uid = args.account_uid\n this.version = args.version || 0\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.message_type, \"`message_type` required\")\n assert(this.account_uid, \"`account_uid` required\")\n assert(is_AccountUID(this.account_uid), \"`account_uid` is not of type AccountUID\")\n assert(this.version != null, \"`version` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.message_type) pbf.writeVarintField(1, this.message_type, pbf)\n if (this.account_uid) pbf.writeStringField(2, this.account_uid, pbf)\n if (this.version) pbf.writeVarintField(3, this.version, pbf)\n }\n}\n\nexport type PubSubTeamPatchedStruct = {\n team_uid: TeamUID\n version: number\n}\n\nexport class PubSubTeamPatched {\n static _from_pb(pbf: any): PubSubTeamPatched {\n const o = PubSubTeamPatched._from_pb_init()\n pbf.readFields(PubSubTeamPatched._from_pb_fields, o)\n return new PubSubTeamPatched({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.team_uid = pbf.readString()\n return\n }\n case 2: {\n o.version = pbf.readVarint()\n return\n }\n }\n }\n\n team_uid: TeamUID\n version: number\n\n constructor(args: {team_uid: TeamUID; version: number}) {\n this.team_uid = args.team_uid\n this.version = args.version || 0\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.team_uid, \"`team_uid` required\")\n assert(is_TeamUID(this.team_uid), \"`team_uid` is not of type TeamUID\")\n assert(this.version != null, \"`version` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.team_uid) pbf.writeStringField(1, this.team_uid, pbf)\n if (this.version) pbf.writeVarintField(2, this.version, pbf)\n }\n}\n\nexport type PubSubOrganizationPatchedStruct = {\n organization_uid: OrganizationUID\n version: number\n}\n\nexport class PubSubOrganizationPatched {\n static _from_pb(pbf: any): PubSubOrganizationPatched {\n const o = PubSubOrganizationPatched._from_pb_init()\n pbf.readFields(PubSubOrganizationPatched._from_pb_fields, o)\n return new PubSubOrganizationPatched({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.organization_uid = pbf.readString()\n return\n }\n case 2: {\n o.version = pbf.readVarint()\n return\n }\n }\n }\n\n organization_uid: OrganizationUID\n version: number\n\n constructor(args: {organization_uid: OrganizationUID; version: number}) {\n this.organization_uid = args.organization_uid\n this.version = args.version || 0\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.organization_uid, \"`organization_uid` required\")\n assert(\n is_OrganizationUID(this.organization_uid),\n \"`organization_uid` is not of type OrganizationUID\",\n )\n assert(this.version != null, \"`version` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.organization_uid) pbf.writeStringField(1, this.organization_uid, pbf)\n if (this.version) pbf.writeVarintField(2, this.version, pbf)\n }\n}\n\nexport type PubSubBoardPatchedStruct = {\n board_type: BoardType\n board_uid: BoardUID\n version: number\n}\n\nexport class PubSubBoardPatched {\n static _from_pb(pbf: any): PubSubBoardPatched {\n const o = PubSubBoardPatched._from_pb_init()\n pbf.readFields(PubSubBoardPatched._from_pb_fields, o)\n return new PubSubBoardPatched({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_type = pbf.readVarint()\n return\n }\n case 2: {\n o.board_uid = pbf.readString()\n return\n }\n case 3: {\n o.version = pbf.readVarint()\n return\n }\n }\n }\n\n board_type: BoardType\n board_uid: BoardUID\n version: number\n\n constructor(args: {board_type: BoardType; board_uid: BoardUID; version: number}) {\n this.board_type = args.board_type || (0 as any)\n this.board_uid = args.board_uid\n this.version = args.version || 0\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.board_type, \"`board_type` required\")\n assert(this.board_uid, \"`board_uid` required\")\n assert(is_BoardUID(this.board_uid), \"`board_uid` is not of type BoardUID\")\n assert(this.version != null, \"`version` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_type) pbf.writeVarintField(1, this.board_type, pbf)\n if (this.board_uid) pbf.writeStringField(2, this.board_uid, pbf)\n if (this.version) pbf.writeVarintField(3, this.version, pbf)\n }\n}\n\nexport type PubSubBoardPatchedDebouncedStruct = {\n board_type: BoardType\n board_uid: BoardUID\n from_version: number\n to_version: number\n}\n\nexport class PubSubBoardPatchedDebounced {\n static _from_pb(pbf: any): PubSubBoardPatchedDebounced {\n const o = PubSubBoardPatchedDebounced._from_pb_init()\n pbf.readFields(PubSubBoardPatchedDebounced._from_pb_fields, o)\n return new PubSubBoardPatchedDebounced({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_type = pbf.readVarint()\n return\n }\n case 2: {\n o.board_uid = pbf.readString()\n return\n }\n case 3: {\n o.from_version = pbf.readVarint()\n return\n }\n case 4: {\n o.to_version = pbf.readVarint()\n return\n }\n }\n }\n\n board_type: BoardType\n board_uid: BoardUID\n from_version: number\n to_version: number\n\n constructor(args: {\n board_type: BoardType\n board_uid: BoardUID\n from_version: number\n to_version: number\n }) {\n this.board_type = args.board_type || (0 as any)\n this.board_uid = args.board_uid\n this.from_version = args.from_version || 0\n this.to_version = args.to_version || 0\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.board_type, \"`board_type` required\")\n assert(this.board_uid, \"`board_uid` required\")\n assert(is_BoardUID(this.board_uid), \"`board_uid` is not of type BoardUID\")\n assert(this.from_version != null, \"`from_version` required\")\n assert(this.to_version != null, \"`to_version` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_type) pbf.writeVarintField(1, this.board_type, pbf)\n if (this.board_uid) pbf.writeStringField(2, this.board_uid, pbf)\n if (this.from_version) pbf.writeVarintField(3, this.from_version, pbf)\n if (this.to_version) pbf.writeVarintField(4, this.to_version, pbf)\n }\n}\n\nexport type URLInfoStruct = {\n url: string\n scraped_at: Date | undefined\n scrape_failed: boolean\n scrape_info: ScrapeInfoStruct | undefined\n featured_image_blob: BlobStruct | undefined\n logo_image_blob: BlobStruct | undefined\n screenshot_image_blob: BlobStruct | undefined\n version: number\n}\n\nexport class URLInfo {\n static _from_pb(pbf: any): URLInfo {\n const o = URLInfo._from_pb_init()\n pbf.readFields(URLInfo._from_pb_fields, o)\n return new URLInfo({...(o as any)})\n }\n\n static _from_pb_init() {\n return {version: 1} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.url = pbf.readString()\n return\n }\n case 3: {\n o.scraped_at = new Date(pbf.readVarint() / 1000)\n return\n }\n case 4: {\n o.scrape_failed = pbf.readBoolean()\n return\n }\n case 5: {\n o.scrape_info = pbf_readMessage(ScrapeInfo, pbf)\n return\n }\n case 6: {\n o.featured_image_blob = pbf_readMessage(Blob, pbf)\n return\n }\n case 7: {\n o.logo_image_blob = pbf_readMessage(Blob, pbf)\n return\n }\n case 9: {\n o.screenshot_image_blob = pbf_readMessage(Blob, pbf)\n return\n }\n case 8: {\n o.version = pbf.readVarint()\n return\n }\n }\n }\n\n url: string\n scraped_at: Date | undefined\n scrape_failed: boolean\n scrape_info: ScrapeInfo | undefined\n featured_image_blob: Blob | undefined\n logo_image_blob: Blob | undefined\n screenshot_image_blob: Blob | undefined\n version: number\n\n constructor(args: {\n url: string\n scraped_at?: Date\n scrape_failed?: boolean\n scrape_info?: ScrapeInfo\n featured_image_blob?: Blob\n logo_image_blob?: Blob\n screenshot_image_blob?: Blob\n version: number\n }) {\n this.url = args.url || \"\"\n this.scraped_at = args.scraped_at\n this.scrape_failed = args.scrape_failed || false\n this.scrape_info = args.scrape_info\n this.featured_image_blob = args.featured_image_blob\n this.logo_image_blob = args.logo_image_blob\n this.screenshot_image_blob = args.screenshot_image_blob\n this.version = args.version || 0\n makeObservable(this, {\n url: observable,\n scraped_at: observable,\n scrape_failed: observable,\n scrape_info: observable,\n featured_image_blob: observable,\n logo_image_blob: observable,\n screenshot_image_blob: observable,\n version: observable,\n })\n this.verify()\n }\n\n public verify() {\n assert(this.url, \"`url` required\")\n assert(this.version != null, \"`version` required\")\n limits.LIMIT_URL.check(this.url ? this.url.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.url) pbf.writeStringField(1, this.url, pbf)\n if (this.scraped_at) pbf.writeVarintField(3, this.scraped_at.getTime() * 1000, pbf)\n if (this.scrape_failed) pbf.writeBooleanField(4, this.scrape_failed, pbf)\n if (this.scrape_info) pbf_writeMessage(5, this.scrape_info, pbf)\n if (this.featured_image_blob) pbf_writeMessage(6, this.featured_image_blob, pbf)\n if (this.logo_image_blob) pbf_writeMessage(7, this.logo_image_blob, pbf)\n if (this.screenshot_image_blob) pbf_writeMessage(9, this.screenshot_image_blob, pbf)\n if (this.version) pbf.writeVarintField(8, this.version, pbf)\n }\n}\n\nexport type MediaInfoStruct = {\n blob_uid: BlobUID\n invalid: boolean\n width: number\n height: number\n version: number\n transcode_status: MediaTranscodeStatus\n created_at: Date\n modified_at: Date\n mime_type: string\n size: number\n}\n\nexport class MediaInfo {\n static _from_pb(pbf: any): MediaInfo {\n const o = MediaInfo._from_pb_init()\n pbf.readFields(MediaInfo._from_pb_fields, o)\n return new MediaInfo({...(o as any)})\n }\n\n static _from_pb_init() {\n return {version: 1} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.blob_uid = pbf.readString()\n return\n }\n case 2: {\n o.invalid = pbf.readBoolean()\n return\n }\n case 3: {\n o.width = pbf.readVarint()\n return\n }\n case 4: {\n o.height = pbf.readVarint()\n return\n }\n case 5: {\n o.version = pbf.readVarint()\n return\n }\n case 6: {\n o.transcode_status = pbf.readVarint()\n return\n }\n case 7: {\n o.created_at = new Date(pbf.readVarint() / 1000)\n return\n }\n case 8: {\n o.modified_at = new Date(pbf.readVarint() / 1000)\n return\n }\n case 9: {\n o.mime_type = pbf.readString()\n return\n }\n case 10: {\n o.size = pbf.readVarint()\n return\n }\n }\n }\n\n blob_uid: BlobUID\n invalid: boolean\n width: number\n height: number\n version: number\n transcode_status: MediaTranscodeStatus\n created_at: Date\n modified_at: Date\n mime_type: string\n size: number\n\n constructor(args: {\n blob_uid: BlobUID\n invalid?: boolean\n width?: number\n height?: number\n version: number\n transcode_status?: MediaTranscodeStatus\n created_at?: Date\n modified_at?: Date\n mime_type: string\n size: number\n }) {\n this.blob_uid = args.blob_uid\n this.invalid = args.invalid || false\n this.width = args.width || 0\n this.height = args.height || 0\n this.version = args.version || 0\n this.transcode_status = args.transcode_status || (0 as any)\n this.created_at = args.created_at || now()\n this.modified_at = args.modified_at || now()\n this.mime_type = args.mime_type || \"\"\n this.size = args.size || 0\n makeObservable(this, {\n blob_uid: observable,\n invalid: observable,\n width: observable,\n height: observable,\n version: observable,\n transcode_status: observable,\n created_at: observable,\n modified_at: observable,\n mime_type: observable,\n size: observable,\n })\n this.verify()\n }\n\n public verify() {\n assert(this.blob_uid, \"`blob_uid` required\")\n assert(is_BlobUID(this.blob_uid), \"`blob_uid` is not of type BlobUID\")\n assert(this.version != null, \"`version` required\")\n assert(this.created_at, \"`created_at` required\")\n assert(this.modified_at, \"`modified_at` required\")\n assert(this.mime_type, \"`mime_type` required\")\n assert(this.size != null, \"`size` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.blob_uid) pbf.writeStringField(1, this.blob_uid, pbf)\n if (this.invalid) pbf.writeBooleanField(2, this.invalid, pbf)\n if (this.width) pbf.writeVarintField(3, this.width, pbf)\n if (this.height) pbf.writeVarintField(4, this.height, pbf)\n if (this.version) pbf.writeVarintField(5, this.version, pbf)\n if (this.transcode_status) pbf.writeVarintField(6, this.transcode_status, pbf)\n if (this.created_at) pbf.writeVarintField(7, this.created_at.getTime() * 1000, pbf)\n if (this.modified_at) pbf.writeVarintField(8, this.modified_at.getTime() * 1000, pbf)\n if (this.mime_type) pbf.writeStringField(9, this.mime_type, pbf)\n if (this.size) pbf.writeVarintField(10, this.size, pbf)\n }\n}\n\nexport type PubSubCreateURLInfoStruct = {\n url: string\n}\n\nexport class PubSubCreateURLInfo {\n static _from_pb(pbf: any): PubSubCreateURLInfo {\n const o = PubSubCreateURLInfo._from_pb_init()\n pbf.readFields(PubSubCreateURLInfo._from_pb_fields, o)\n return new PubSubCreateURLInfo({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.url = pbf.readString()\n return\n }\n }\n }\n\n url: string\n\n constructor(args: {url: string}) {\n this.url = args.url || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.url, \"`url` required\")\n limits.LIMIT_URL.check(this.url ? this.url.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.url) pbf.writeStringField(1, this.url, pbf)\n }\n}\n\nexport type PubSubRemoveAccountStruct = {\n account_uid: AccountUID\n triggered_by: string\n}\n\nexport class PubSubRemoveAccount {\n static _from_pb(pbf: any): PubSubRemoveAccount {\n const o = PubSubRemoveAccount._from_pb_init()\n pbf.readFields(PubSubRemoveAccount._from_pb_fields, o)\n return new PubSubRemoveAccount({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.account_uid = pbf.readString()\n return\n }\n case 2: {\n o.triggered_by = pbf.readString()\n return\n }\n }\n }\n\n account_uid: AccountUID\n triggered_by: string\n\n constructor(args: {account_uid: AccountUID; triggered_by: string}) {\n this.account_uid = args.account_uid\n this.triggered_by = args.triggered_by || \"\"\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.account_uid, \"`account_uid` required\")\n assert(is_AccountUID(this.account_uid), \"`account_uid` is not of type AccountUID\")\n assert(this.triggered_by, \"`triggered_by` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.account_uid) pbf.writeStringField(1, this.account_uid, pbf)\n if (this.triggered_by) pbf.writeStringField(2, this.triggered_by, pbf)\n }\n}\n\nexport type PubSubFixDataInconsistenciesStruct = {\n account_uid: AccountUID\n}\n\nexport class PubSubFixDataInconsistencies {\n static _from_pb(pbf: any): PubSubFixDataInconsistencies {\n const o = PubSubFixDataInconsistencies._from_pb_init()\n pbf.readFields(PubSubFixDataInconsistencies._from_pb_fields, o)\n return new PubSubFixDataInconsistencies({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.account_uid = pbf.readString()\n return\n }\n }\n }\n\n account_uid: AccountUID\n\n constructor(args: {account_uid: AccountUID}) {\n this.account_uid = args.account_uid\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.account_uid, \"`account_uid` required\")\n assert(is_AccountUID(this.account_uid), \"`account_uid` is not of type AccountUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.account_uid) pbf.writeStringField(1, this.account_uid, pbf)\n }\n}\n\nexport type PubSubAdminFanOutStruct = {\n account_uid: AccountUID\n work: PubSubAdminFanOutWork\n dry_run: boolean\n uids: Array<UID>\n}\n\nexport class PubSubAdminFanOut {\n static _from_pb(pbf: any): PubSubAdminFanOut {\n const o = PubSubAdminFanOut._from_pb_init()\n pbf.readFields(PubSubAdminFanOut._from_pb_fields, o)\n return new PubSubAdminFanOut({...(o as any)})\n }\n\n static _from_pb_init() {\n return {uids: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.account_uid = pbf.readString()\n return\n }\n case 2: {\n o.work = pbf.readVarint()\n return\n }\n case 3: {\n o.dry_run = pbf.readBoolean()\n return\n }\n case 4: {\n o.uids.push(pbf.readString())\n return\n }\n }\n }\n\n account_uid: AccountUID\n work: PubSubAdminFanOutWork\n dry_run: boolean\n uids: Array<UID>\n\n constructor(args: {\n account_uid: AccountUID\n work: PubSubAdminFanOutWork\n dry_run?: boolean\n uids?: Array<UID>\n }) {\n this.account_uid = args.account_uid\n this.work = args.work || (0 as any)\n this.dry_run = args.dry_run || false\n this.uids = (args.uids || []).slice()\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.account_uid, \"`account_uid` required\")\n assert(is_AccountUID(this.account_uid), \"`account_uid` is not of type AccountUID\")\n assert(this.work, \"`work` required\")\n const i_uids = this.uids.findIndex((x) => !is_UID(x))\n assert(\n i_uids < 0,\n () => \"`this.uids` contains invalid item: \" + JSON.stringify(this.uids[i_uids]),\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.account_uid) pbf.writeStringField(1, this.account_uid, pbf)\n if (this.work) pbf.writeVarintField(2, this.work, pbf)\n if (this.dry_run) pbf.writeBooleanField(3, this.dry_run, pbf)\n if (this.uids)\n for (let i = 0; i < this.uids.length; i++) {\n pbf.writeStringField(4, this.uids[i])\n }\n }\n}\n\nexport type PubSubTranscodeMediaStruct = {\n blob_uid: BlobUID\n}\n\nexport class PubSubTranscodeMedia {\n static _from_pb(pbf: any): PubSubTranscodeMedia {\n const o = PubSubTranscodeMedia._from_pb_init()\n pbf.readFields(PubSubTranscodeMedia._from_pb_fields, o)\n return new PubSubTranscodeMedia({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.blob_uid = pbf.readString()\n return\n }\n }\n }\n\n blob_uid: BlobUID\n\n constructor(args: {blob_uid: BlobUID}) {\n this.blob_uid = args.blob_uid\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.blob_uid, \"`blob_uid` required\")\n assert(is_BlobUID(this.blob_uid), \"`blob_uid` is not of type BlobUID\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.blob_uid) pbf.writeStringField(1, this.blob_uid, pbf)\n }\n}\n\nexport type WebSocketErrorStruct = {\n cling_error_code: ClingErrorCode\n message: string\n uids: Array<UID>\n}\n\nexport class WebSocketError {\n static _from_pb(pbf: any): WebSocketError {\n const o = WebSocketError._from_pb_init()\n pbf.readFields(WebSocketError._from_pb_fields, o)\n return new WebSocketError({...(o as any)})\n }\n\n static _from_pb_init() {\n return {uids: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.cling_error_code = pbf.readVarint()\n return\n }\n case 2: {\n o.message = pbf.readString()\n return\n }\n case 3: {\n o.uids.push(pbf.readString())\n return\n }\n }\n }\n\n cling_error_code: ClingErrorCode\n message: string\n uids: Array<UID>\n\n constructor(args: {cling_error_code: ClingErrorCode; message?: string; uids?: Array<UID>}) {\n this.cling_error_code = args.cling_error_code || (0 as any)\n this.message = args.message || \"\"\n this.uids = (args.uids || []).slice()\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.cling_error_code, \"`cling_error_code` required\")\n const i_uids = this.uids.findIndex((x) => !is_UID(x))\n assert(\n i_uids < 0,\n () => \"`this.uids` contains invalid item: \" + JSON.stringify(this.uids[i_uids]),\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.cling_error_code) pbf.writeVarintField(1, this.cling_error_code, pbf)\n if (this.message) pbf.writeStringField(2, this.message, pbf)\n if (this.uids)\n for (let i = 0; i < this.uids.length; i++) {\n pbf.writeStringField(3, this.uids[i])\n }\n }\n}\n\nexport type WebSocketMessageStruct = {\n WebSocketError: WebSocketErrorStruct | undefined\n WebSocketServerVersions: WebSocketServerVersionsStruct | undefined\n WebSocketRequestSync: WebSocketRequestSyncStruct | undefined\n WebSocketRequestServerVersions: WebSocketRequestServerVersionsStruct | undefined\n WebSocketPut: WebSocketPutStruct | undefined\n WebSocketRemove: WebSocketRemoveStruct | undefined\n WebSocketSyncError: WebSocketSyncErrorStruct | undefined\n WebSocketUpToDate: WebSocketUpToDateStruct | undefined\n}\n\nexport class WebSocketMessage {\n static _from_pb(pbf: any): WebSocketMessage {\n const o = WebSocketMessage._from_pb_init()\n pbf.readFields(WebSocketMessage._from_pb_fields, o)\n return new WebSocketMessage({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.WebSocketError = pbf_readMessage(WebSocketError, pbf)\n return\n }\n case 14: {\n o.WebSocketServerVersions = pbf_readMessage(WebSocketServerVersions, pbf)\n return\n }\n case 11: {\n o.WebSocketRequestSync = pbf_readMessage(WebSocketRequestSync, pbf)\n return\n }\n case 10: {\n o.WebSocketRequestServerVersions = pbf_readMessage(\n WebSocketRequestServerVersions,\n pbf,\n )\n return\n }\n case 12: {\n o.WebSocketPut = pbf_readMessage(WebSocketPut, pbf)\n return\n }\n case 13: {\n o.WebSocketRemove = pbf_readMessage(WebSocketRemove, pbf)\n return\n }\n case 15: {\n o.WebSocketSyncError = pbf_readMessage(WebSocketSyncError, pbf)\n return\n }\n case 16: {\n o.WebSocketUpToDate = pbf_readMessage(WebSocketUpToDate, pbf)\n return\n }\n }\n }\n\n WebSocketError: WebSocketError | undefined\n WebSocketServerVersions: WebSocketServerVersions | undefined\n WebSocketRequestSync: WebSocketRequestSync | undefined\n WebSocketRequestServerVersions: WebSocketRequestServerVersions | undefined\n WebSocketPut: WebSocketPut | undefined\n WebSocketRemove: WebSocketRemove | undefined\n WebSocketSyncError: WebSocketSyncError | undefined\n WebSocketUpToDate: WebSocketUpToDate | undefined\n\n constructor(args: {\n WebSocketError?: WebSocketError\n WebSocketServerVersions?: WebSocketServerVersions\n WebSocketRequestSync?: WebSocketRequestSync\n WebSocketRequestServerVersions?: WebSocketRequestServerVersions\n WebSocketPut?: WebSocketPut\n WebSocketRemove?: WebSocketRemove\n WebSocketSyncError?: WebSocketSyncError\n WebSocketUpToDate?: WebSocketUpToDate\n }) {\n this.WebSocketError = args.WebSocketError\n this.WebSocketServerVersions = args.WebSocketServerVersions\n this.WebSocketRequestSync = args.WebSocketRequestSync\n this.WebSocketRequestServerVersions = args.WebSocketRequestServerVersions\n this.WebSocketPut = args.WebSocketPut\n this.WebSocketRemove = args.WebSocketRemove\n this.WebSocketSyncError = args.WebSocketSyncError\n this.WebSocketUpToDate = args.WebSocketUpToDate\n makeObservable(this, {})\n this.verify()\n }\n\n public get kind():\n | WebSocketError\n | WebSocketServerVersions\n | WebSocketRequestSync\n | WebSocketRequestServerVersions\n | WebSocketPut\n | WebSocketRemove\n | WebSocketSyncError\n | WebSocketUpToDate {\n return not_null(\n this.WebSocketError ||\n this.WebSocketServerVersions ||\n this.WebSocketRequestSync ||\n this.WebSocketRequestServerVersions ||\n this.WebSocketPut ||\n this.WebSocketRemove ||\n this.WebSocketSyncError ||\n this.WebSocketUpToDate,\n )\n }\n\n public verify() {\n assert(\n [\n this.WebSocketError,\n this.WebSocketServerVersions,\n this.WebSocketRequestSync,\n this.WebSocketRequestServerVersions,\n this.WebSocketPut,\n this.WebSocketRemove,\n this.WebSocketSyncError,\n this.WebSocketUpToDate,\n ].filter((x) => !!x).length === 1,\n \"Exactly one of [`WebSocketError`, `WebSocketServerVersions`, `WebSocketRequestSync`, `WebSocketRequestServerVersions`, `WebSocketPut`, `WebSocketRemove`, `WebSocketSyncError`, `WebSocketUpToDate`] required\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.WebSocketError) pbf_writeMessage(1, this.WebSocketError, pbf)\n if (this.WebSocketServerVersions) pbf_writeMessage(14, this.WebSocketServerVersions, pbf)\n if (this.WebSocketRequestSync) pbf_writeMessage(11, this.WebSocketRequestSync, pbf)\n if (this.WebSocketRequestServerVersions)\n pbf_writeMessage(10, this.WebSocketRequestServerVersions, pbf)\n if (this.WebSocketPut) pbf_writeMessage(12, this.WebSocketPut, pbf)\n if (this.WebSocketRemove) pbf_writeMessage(13, this.WebSocketRemove, pbf)\n if (this.WebSocketSyncError) pbf_writeMessage(15, this.WebSocketSyncError, pbf)\n if (this.WebSocketUpToDate) pbf_writeMessage(16, this.WebSocketUpToDate, pbf)\n }\n}\n\nexport type SyncDataFallbackRequestStruct = {\n session_uid: SessionUID\n force_new_session: boolean\n return_immediately: boolean\n token: number\n messages: Array<WebSocketMessageStruct>\n}\n\nexport class SyncDataFallbackRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): SyncDataFallbackRequest {\n const o = SyncDataFallbackRequest._from_pb_init()\n pbf.readFields(SyncDataFallbackRequest._from_pb_fields, o)\n return new SyncDataFallbackRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {messages: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.session_uid = pbf.readString()\n return\n }\n case 2: {\n o.force_new_session = pbf.readBoolean()\n return\n }\n case 3: {\n o.return_immediately = pbf.readBoolean()\n return\n }\n case 4: {\n o.token = pbf.readVarint()\n return\n }\n case 5: {\n o.messages.push(pbf_readMessage(WebSocketMessage, pbf))\n return\n }\n }\n }\n\n session_uid: SessionUID\n force_new_session: boolean\n return_immediately: boolean\n token: number\n messages: Array<WebSocketMessage>\n\n constructor(args: {\n session_uid: SessionUID\n force_new_session?: boolean\n return_immediately?: boolean\n token?: number\n messages: Array<WebSocketMessage>\n }) {\n this.session_uid = args.session_uid\n this.force_new_session = args.force_new_session || false\n this.return_immediately = args.return_immediately || false\n this.token = args.token || 0\n this.messages = (args.messages || []).slice()\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.session_uid, \"`session_uid` required\")\n assert(is_SessionUID(this.session_uid), \"`session_uid` is not of type SessionUID\")\n assert(this.messages, \"`messages` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.session_uid) pbf.writeStringField(1, this.session_uid, pbf)\n if (this.force_new_session) pbf.writeBooleanField(2, this.force_new_session, pbf)\n if (this.return_immediately) pbf.writeBooleanField(3, this.return_immediately, pbf)\n if (this.token) pbf.writeVarintField(4, this.token, pbf)\n if (this.messages)\n for (let i = 0; i < this.messages.length; i++) {\n pbf_writeMessage(5, this.messages[i], pbf)\n }\n }\n}\n\nexport type SyncAllDataFallbackRequestStruct = {\n session_uid: SessionUID\n force_new_session: boolean\n return_immediately: boolean\n token: number\n messages: Array<WebSocketMessageStruct>\n}\n\nexport class SyncAllDataFallbackRequest {\n static HTTP_METHOD = <const>\"GET\"\n\n static _from_pb(pbf: any): SyncAllDataFallbackRequest {\n const o = SyncAllDataFallbackRequest._from_pb_init()\n pbf.readFields(SyncAllDataFallbackRequest._from_pb_fields, o)\n return new SyncAllDataFallbackRequest({...(o as any)})\n }\n\n static _from_pb_init() {\n return {messages: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.session_uid = pbf.readString()\n return\n }\n case 2: {\n o.force_new_session = pbf.readBoolean()\n return\n }\n case 3: {\n o.return_immediately = pbf.readBoolean()\n return\n }\n case 4: {\n o.token = pbf.readVarint()\n return\n }\n case 5: {\n o.messages.push(pbf_readMessage(WebSocketMessage, pbf))\n return\n }\n }\n }\n\n session_uid: SessionUID\n force_new_session: boolean\n return_immediately: boolean\n token: number\n messages: Array<WebSocketMessage>\n\n constructor(args: {\n session_uid: SessionUID\n force_new_session?: boolean\n return_immediately?: boolean\n token?: number\n messages: Array<WebSocketMessage>\n }) {\n this.session_uid = args.session_uid\n this.force_new_session = args.force_new_session || false\n this.return_immediately = args.return_immediately || false\n this.token = args.token || 0\n this.messages = (args.messages || []).slice()\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.session_uid, \"`session_uid` required\")\n assert(is_SessionUID(this.session_uid), \"`session_uid` is not of type SessionUID\")\n assert(this.messages, \"`messages` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.session_uid) pbf.writeStringField(1, this.session_uid, pbf)\n if (this.force_new_session) pbf.writeBooleanField(2, this.force_new_session, pbf)\n if (this.return_immediately) pbf.writeBooleanField(3, this.return_immediately, pbf)\n if (this.token) pbf.writeVarintField(4, this.token, pbf)\n if (this.messages)\n for (let i = 0; i < this.messages.length; i++) {\n pbf_writeMessage(5, this.messages[i], pbf)\n }\n }\n}\n\nexport type SyncDataFallbackResponseStruct = {\n is_new_session: boolean\n token: number\n messages: Array<WebSocketMessageStruct>\n}\n\nexport class SyncDataFallbackResponse {\n static _from_pb(pbf: any): SyncDataFallbackResponse {\n const o = SyncDataFallbackResponse._from_pb_init()\n pbf.readFields(SyncDataFallbackResponse._from_pb_fields, o)\n return new SyncDataFallbackResponse({...(o as any)})\n }\n\n static _from_pb_init() {\n return {messages: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.is_new_session = pbf.readBoolean()\n return\n }\n case 2: {\n o.token = pbf.readVarint()\n return\n }\n case 3: {\n o.messages.push(pbf_readMessage(WebSocketMessage, pbf))\n return\n }\n }\n }\n\n is_new_session: boolean\n token: number\n messages: Array<WebSocketMessage>\n\n constructor(args: {\n is_new_session?: boolean\n token?: number\n messages: Array<WebSocketMessage>\n }) {\n this.is_new_session = args.is_new_session || false\n this.token = args.token || 0\n this.messages = (args.messages || []).slice()\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.messages, \"`messages` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.is_new_session) pbf.writeBooleanField(1, this.is_new_session, pbf)\n if (this.token) pbf.writeVarintField(2, this.token, pbf)\n if (this.messages)\n for (let i = 0; i < this.messages.length; i++) {\n pbf_writeMessage(3, this.messages[i], pbf)\n }\n }\n}\n\nexport type SyncEntityIDStruct = {\n uid: UID\n type: SyncEntityType\n version: number\n}\n\nexport class SyncEntityID {\n static _from_pb(pbf: any): SyncEntityID {\n const o = SyncEntityID._from_pb_init()\n pbf.readFields(SyncEntityID._from_pb_fields, o)\n return new SyncEntityID({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.uid = pbf.readString()\n return\n }\n case 2: {\n o.type = pbf.readVarint()\n return\n }\n case 3: {\n o.version = pbf.readVarint()\n return\n }\n }\n }\n\n uid: UID\n type: SyncEntityType\n version: number\n\n constructor(args: {uid: UID; type: SyncEntityType; version?: number}) {\n this.uid = args.uid\n this.type = args.type || (0 as any)\n this.version = args.version || 0\n makeObservable(this, {type: observable, version: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.uid, \"`uid` required\")\n assert(is_UID(this.uid), \"`uid` is not of type UID\")\n assert(this.type, \"`type` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.uid) pbf.writeStringField(1, this.uid, pbf)\n if (this.type) pbf.writeVarintField(2, this.type, pbf)\n if (this.version) pbf.writeVarintField(3, this.version, pbf)\n }\n}\n\nexport type WebSocketRequestServerVersionsStruct = {}\n\nexport class WebSocketRequestServerVersions {\n static _from_pb(pbf: any): WebSocketRequestServerVersions {\n const o = WebSocketRequestServerVersions._from_pb_init()\n pbf.readFields(WebSocketRequestServerVersions._from_pb_fields, o)\n return new WebSocketRequestServerVersions({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n }\n }\n\n constructor(args: {}) {\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {}\n}\n\nexport type WebSocketServerVersionsStruct = {\n remove_obsolete: Array<SyncEntityType>\n sync_entity_ids: Array<SyncEntityIDStruct>\n sync_put: Array<WebSocketPutStruct>\n}\n\nexport class WebSocketServerVersions {\n static _from_pb(pbf: any): WebSocketServerVersions {\n const o = WebSocketServerVersions._from_pb_init()\n pbf.readFields(WebSocketServerVersions._from_pb_fields, o)\n return new WebSocketServerVersions({...(o as any)})\n }\n\n static _from_pb_init() {\n return {remove_obsolete: [], sync_entity_ids: [], sync_put: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.remove_obsolete = pbf.readPackedVarint()\n return\n }\n case 2: {\n o.sync_entity_ids.push(pbf_readMessage(SyncEntityID, pbf))\n return\n }\n case 3: {\n o.sync_put.push(pbf_readMessage(WebSocketPut, pbf))\n return\n }\n }\n }\n\n remove_obsolete: Array<SyncEntityType>\n sync_entity_ids: Array<SyncEntityID>\n sync_put: Array<WebSocketPut>\n\n constructor(args: {\n remove_obsolete: Array<SyncEntityType>\n sync_entity_ids: Array<SyncEntityID>\n sync_put?: Array<WebSocketPut>\n }) {\n this.remove_obsolete = (args.remove_obsolete || []).slice()\n this.sync_entity_ids = (args.sync_entity_ids || []).slice()\n this.sync_put = (args.sync_put || []).slice()\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.remove_obsolete, \"`remove_obsolete` required\")\n assert(this.sync_entity_ids, \"`sync_entity_ids` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n pbf.writePackedVarint(1, this.remove_obsolete)\n if (this.sync_entity_ids)\n for (let i = 0; i < this.sync_entity_ids.length; i++) {\n pbf_writeMessage(2, this.sync_entity_ids[i], pbf)\n }\n if (this.sync_put)\n for (let i = 0; i < this.sync_put.length; i++) {\n pbf_writeMessage(3, this.sync_put[i], pbf)\n }\n }\n}\n\nexport type WebSocketRequestSyncStruct = {\n sync_entity_id: SyncEntityIDStruct\n low_priority: boolean\n}\n\nexport class WebSocketRequestSync {\n static _from_pb(pbf: any): WebSocketRequestSync {\n const o = WebSocketRequestSync._from_pb_init()\n pbf.readFields(WebSocketRequestSync._from_pb_fields, o)\n return new WebSocketRequestSync({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.sync_entity_id = pbf_readMessage(SyncEntityID, pbf)\n return\n }\n case 2: {\n o.low_priority = pbf.readBoolean()\n return\n }\n }\n }\n\n sync_entity_id: SyncEntityID\n low_priority: boolean\n\n constructor(args: {sync_entity_id: SyncEntityID; low_priority?: boolean}) {\n this.sync_entity_id = args.sync_entity_id\n this.low_priority = args.low_priority || false\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.sync_entity_id, \"`sync_entity_id` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.sync_entity_id) pbf_writeMessage(1, this.sync_entity_id, pbf)\n if (this.low_priority) pbf.writeBooleanField(2, this.low_priority, pbf)\n }\n}\n\nexport type WebSocketRemoveStruct = {\n sync_entity_id: SyncEntityIDStruct\n}\n\nexport class WebSocketRemove {\n static _from_pb(pbf: any): WebSocketRemove {\n const o = WebSocketRemove._from_pb_init()\n pbf.readFields(WebSocketRemove._from_pb_fields, o)\n return new WebSocketRemove({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.sync_entity_id = pbf_readMessage(SyncEntityID, pbf)\n return\n }\n }\n }\n\n sync_entity_id: SyncEntityID\n\n constructor(args: {sync_entity_id: SyncEntityID}) {\n this.sync_entity_id = args.sync_entity_id\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.sync_entity_id, \"`sync_entity_id` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.sync_entity_id) pbf_writeMessage(1, this.sync_entity_id, pbf)\n }\n}\n\nexport type WebSocketPutStruct = {\n sync_entity: SyncEntityStruct\n}\n\nexport class WebSocketPut {\n static _from_pb(pbf: any): WebSocketPut {\n const o = WebSocketPut._from_pb_init()\n pbf.readFields(WebSocketPut._from_pb_fields, o)\n return new WebSocketPut({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.sync_entity = pbf_readMessage(SyncEntity, pbf)\n return\n }\n }\n }\n\n sync_entity: SyncEntity\n\n constructor(args: {sync_entity: SyncEntity}) {\n this.sync_entity = args.sync_entity\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.sync_entity, \"`sync_entity` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.sync_entity) pbf_writeMessage(1, this.sync_entity, pbf)\n }\n}\n\nexport type WebSocketUpToDateStruct = {\n sync_entity_id: SyncEntityIDStruct\n}\n\nexport class WebSocketUpToDate {\n static _from_pb(pbf: any): WebSocketUpToDate {\n const o = WebSocketUpToDate._from_pb_init()\n pbf.readFields(WebSocketUpToDate._from_pb_fields, o)\n return new WebSocketUpToDate({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.sync_entity_id = pbf_readMessage(SyncEntityID, pbf)\n return\n }\n }\n }\n\n sync_entity_id: SyncEntityID\n\n constructor(args: {sync_entity_id: SyncEntityID}) {\n this.sync_entity_id = args.sync_entity_id\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.sync_entity_id, \"`sync_entity_id` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.sync_entity_id) pbf_writeMessage(1, this.sync_entity_id, pbf)\n }\n}\n\nexport type WebSocketSyncErrorStruct = {\n cling_error_code: ClingErrorCode\n sync_entity_id: SyncEntityIDStruct\n}\n\nexport class WebSocketSyncError {\n static _from_pb(pbf: any): WebSocketSyncError {\n const o = WebSocketSyncError._from_pb_init()\n pbf.readFields(WebSocketSyncError._from_pb_fields, o)\n return new WebSocketSyncError({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.cling_error_code = pbf.readVarint()\n return\n }\n case 2: {\n o.sync_entity_id = pbf_readMessage(SyncEntityID, pbf)\n return\n }\n }\n }\n\n cling_error_code: ClingErrorCode\n sync_entity_id: SyncEntityID\n\n constructor(args: {cling_error_code: ClingErrorCode; sync_entity_id: SyncEntityID}) {\n this.cling_error_code = args.cling_error_code || (0 as any)\n this.sync_entity_id = args.sync_entity_id\n makeObservable(this, {})\n this.verify()\n }\n\n public verify() {\n assert(this.cling_error_code, \"`cling_error_code` required\")\n assert(this.sync_entity_id, \"`sync_entity_id` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.cling_error_code) pbf.writeVarintField(1, this.cling_error_code, pbf)\n if (this.sync_entity_id) pbf_writeMessage(2, this.sync_entity_id, pbf)\n }\n}\n\nexport type ServerCacheMetadataStruct = {\n version: number\n bin_diff_to_server_version: Uint8Array | undefined\n}\n\nexport class ServerCacheMetadata {\n static _from_pb(pbf: any): ServerCacheMetadata {\n const o = ServerCacheMetadata._from_pb_init()\n pbf.readFields(ServerCacheMetadata._from_pb_fields, o)\n return new ServerCacheMetadata({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.version = pbf.readVarint()\n return\n }\n case 2: {\n o.bin_diff_to_server_version = pbf.readBytes()\n return\n }\n }\n }\n\n version: number\n bin_diff_to_server_version: Uint8Array | undefined\n\n constructor(args: {version: number; bin_diff_to_server_version?: Uint8Array}) {\n this.version = args.version || 0\n this.bin_diff_to_server_version = args.bin_diff_to_server_version\n makeObservable(this, {version: observable, bin_diff_to_server_version: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.version != null, \"`version` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.version) pbf.writeVarintField(1, this.version, pbf)\n if (this.bin_diff_to_server_version)\n pbf.writeBytesField(2, this.bin_diff_to_server_version, pbf)\n }\n}\n\nexport type SyncLocalCacheStruct = {\n id: SyncEntityIDStruct\n full_pb: Uint8Array | undefined\n remove: boolean\n up_to_date: boolean\n}\n\nexport class SyncLocalCache {\n static _from_pb(pbf: any): SyncLocalCache {\n const o = SyncLocalCache._from_pb_init()\n pbf.readFields(SyncLocalCache._from_pb_fields, o)\n return new SyncLocalCache({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.id = pbf_readMessage(SyncEntityID, pbf)\n return\n }\n case 2: {\n o.full_pb = pbf.readBytes()\n return\n }\n case 3: {\n o.remove = pbf.readBoolean()\n return\n }\n case 4: {\n o.up_to_date = pbf.readBoolean()\n return\n }\n }\n }\n\n id: SyncEntityID\n full_pb: Uint8Array | undefined\n remove: boolean\n up_to_date: boolean\n\n constructor(args: {\n id: SyncEntityID\n full_pb?: Uint8Array\n remove?: boolean\n up_to_date?: boolean\n }) {\n this.id = args.id\n this.full_pb = args.full_pb\n this.remove = args.remove || false\n this.up_to_date = args.up_to_date || false\n makeObservable(this, {\n id: observable,\n full_pb: observable,\n remove: observable,\n up_to_date: observable,\n })\n this.verify()\n }\n\n public get action(): Uint8Array | boolean | boolean {\n return not_null(this.full_pb || this.remove || this.up_to_date)\n }\n\n public verify() {\n assert(this.id, \"`id` required\")\n assert(\n [this.full_pb, this.remove, this.up_to_date].filter((x) => !!x).length === 1,\n \"Exactly one of [`full_pb`, `remove`, `up_to_date`] required\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.id) pbf_writeMessage(1, this.id, pbf)\n if (this.full_pb) pbf.writeBytesField(2, this.full_pb, pbf)\n if (this.remove) pbf.writeBooleanField(3, this.remove, pbf)\n if (this.up_to_date) pbf.writeBooleanField(4, this.up_to_date, pbf)\n }\n}\n\nexport type PendingPatchMetadataStruct = {\n board_uids: Array<BoardUID>\n}\n\nexport class PendingPatchMetadata {\n static _from_pb(pbf: any): PendingPatchMetadata {\n const o = PendingPatchMetadata._from_pb_init()\n pbf.readFields(PendingPatchMetadata._from_pb_fields, o)\n return new PendingPatchMetadata({...(o as any)})\n }\n\n static _from_pb_init() {\n return {board_uids: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_uids.push(pbf.readString())\n return\n }\n }\n }\n\n board_uids: Array<BoardUID>\n\n constructor(args: {board_uids: Array<BoardUID>}) {\n this.board_uids = (args.board_uids || []).slice()\n makeObservable(this, {board_uids: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.board_uids, \"`board_uids` required\")\n const i_board_uids = this.board_uids.findIndex((x) => !is_BoardUID(x))\n assert(\n i_board_uids < 0,\n () =>\n \"`this.board_uids` contains invalid item: \" +\n JSON.stringify(this.board_uids[i_board_uids]),\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_uids)\n for (let i = 0; i < this.board_uids.length; i++) {\n pbf.writeStringField(1, this.board_uids[i])\n }\n }\n}\n\nexport type PushSubscriptionStruct = {\n endpoint: string\n p256dh: string\n auth: string\n}\n\nexport class PushSubscription {\n static _from_pb(pbf: any): PushSubscription {\n const o = PushSubscription._from_pb_init()\n pbf.readFields(PushSubscription._from_pb_fields, o)\n return new PushSubscription({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.endpoint = pbf.readString()\n return\n }\n case 2: {\n o.p256dh = pbf.readString()\n return\n }\n case 3: {\n o.auth = pbf.readString()\n return\n }\n }\n }\n\n endpoint: string\n p256dh: string\n auth: string\n\n constructor(args: {endpoint: string; p256dh: string; auth: string}) {\n this.endpoint = args.endpoint || \"\"\n this.p256dh = args.p256dh || \"\"\n this.auth = args.auth || \"\"\n makeObservable(this, {endpoint: observable, p256dh: observable, auth: observable})\n this.verify()\n }\n\n public verify() {\n assert(this.endpoint, \"`endpoint` required\")\n assert(this.p256dh, \"`p256dh` required\")\n assert(this.auth, \"`auth` required\")\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.endpoint) pbf.writeStringField(1, this.endpoint, pbf)\n if (this.p256dh) pbf.writeStringField(2, this.p256dh, pbf)\n if (this.auth) pbf.writeStringField(3, this.auth, pbf)\n }\n}\n\nexport type PushNotificationBoardChangedStruct = {\n board_uid: BoardUID\n card_uid: CardUID | undefined\n version: number\n language: Language\n title: string\n body: string\n image_url: string\n is_comment: boolean\n changed_by_account_uids: Array<AccountUID>\n}\n\nexport class PushNotificationBoardChanged {\n static _from_pb(pbf: any): PushNotificationBoardChanged {\n const o = PushNotificationBoardChanged._from_pb_init()\n pbf.readFields(PushNotificationBoardChanged._from_pb_fields, o)\n return new PushNotificationBoardChanged({...(o as any)})\n }\n\n static _from_pb_init() {\n return {changed_by_account_uids: []} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_uid = pbf.readString()\n return\n }\n case 2: {\n o.card_uid = pbf.readString()\n return\n }\n case 3: {\n o.version = pbf.readVarint()\n return\n }\n case 4: {\n o.language = pbf.readString()\n return\n }\n case 5: {\n o.title = pbf.readString()\n return\n }\n case 6: {\n o.body = pbf.readString()\n return\n }\n case 7: {\n o.image_url = pbf.readString()\n return\n }\n case 8: {\n o.is_comment = pbf.readBoolean()\n return\n }\n case 9: {\n o.changed_by_account_uids.push(pbf.readString())\n return\n }\n }\n }\n\n board_uid: BoardUID\n card_uid: CardUID | undefined\n version: number\n language: Language\n title: string\n body: string\n image_url: string\n is_comment: boolean\n changed_by_account_uids: Array<AccountUID>\n\n constructor(args: {\n board_uid: BoardUID\n card_uid?: CardUID\n version: number\n language: Language\n title: string\n body?: string\n image_url?: string\n is_comment?: boolean\n changed_by_account_uids: Array<AccountUID>\n }) {\n this.board_uid = args.board_uid\n this.card_uid = args.card_uid\n this.version = args.version || 0\n this.language = args.language\n this.title = args.title || \"\"\n this.body = args.body || \"\"\n this.image_url = args.image_url || \"\"\n this.is_comment = args.is_comment || false\n this.changed_by_account_uids = (args.changed_by_account_uids || []).slice()\n makeObservable(this, {\n board_uid: observable,\n card_uid: observable,\n version: observable,\n language: observable,\n title: observable,\n body: observable,\n image_url: observable,\n is_comment: observable,\n changed_by_account_uids: observable,\n })\n this.verify()\n }\n\n public verify() {\n assert(this.board_uid, \"`board_uid` required\")\n assert(is_BoardUID(this.board_uid), \"`board_uid` is not of type BoardUID\")\n assert(\n this.card_uid == null || is_CardUID(this.card_uid),\n \"`card_uid` is not of type CardUID\",\n )\n assert(this.version != null, \"`version` required\")\n assert(this.language, \"`language` required\")\n assert(is_Language(this.language), \"`language` is not of type Language\")\n assert(this.title, \"`title` required\")\n assert(this.changed_by_account_uids, \"`changed_by_account_uids` required\")\n const i_changed_by_account_uids = this.changed_by_account_uids.findIndex(\n (x) => !is_AccountUID(x),\n )\n assert(\n i_changed_by_account_uids < 0,\n () =>\n \"`this.changed_by_account_uids` contains invalid item: \" +\n JSON.stringify(this.changed_by_account_uids[i_changed_by_account_uids]),\n )\n limits.LIMIT_SMALL_TEXT.check(this.title ? this.title.length : 0)\n limits.LIMIT_URL.check(this.image_url ? this.image_url.length : 0)\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_uid) pbf.writeStringField(1, this.board_uid, pbf)\n if (this.card_uid) pbf.writeStringField(2, this.card_uid, pbf)\n if (this.version) pbf.writeVarintField(3, this.version, pbf)\n if (this.language) pbf.writeStringField(4, this.language, pbf)\n if (this.title) pbf.writeStringField(5, this.title, pbf)\n if (this.body) pbf.writeStringField(6, this.body, pbf)\n if (this.image_url) pbf.writeStringField(7, this.image_url, pbf)\n if (this.is_comment) pbf.writeBooleanField(8, this.is_comment, pbf)\n if (this.changed_by_account_uids)\n for (let i = 0; i < this.changed_by_account_uids.length; i++) {\n pbf.writeStringField(9, this.changed_by_account_uids[i])\n }\n }\n}\n\nexport type PushNotificationStruct = {\n board_changed: PushNotificationBoardChangedStruct | undefined\n}\n\nexport class PushNotification {\n static _from_pb(pbf: any): PushNotification {\n const o = PushNotification._from_pb_init()\n pbf.readFields(PushNotification._from_pb_fields, o)\n return new PushNotification({...(o as any)})\n }\n\n static _from_pb_init() {\n return {} as any\n }\n static _from_pb_fields(tag: number, o: any, pbf: any) {\n switch (tag) {\n case 1: {\n o.board_changed = pbf_readMessage(PushNotificationBoardChanged, pbf)\n return\n }\n }\n }\n\n board_changed: PushNotificationBoardChanged | undefined\n\n constructor(args: {board_changed?: PushNotificationBoardChanged}) {\n this.board_changed = args.board_changed\n makeObservable(this, {board_changed: observable})\n this.verify()\n }\n\n public get kind(): PushNotificationBoardChanged {\n return not_null(this.board_changed)\n }\n\n public verify() {\n assert(\n [this.board_changed].filter((x) => !!x).length === 1,\n \"Exactly one of [`board_changed`] required\",\n )\n if ((this as any)._verify) (this as any)._verify()\n }\n\n _to_pb(pbf: any): any {\n if (this.board_changed) pbf_writeMessage(1, this.board_changed, pbf)\n }\n}\n", "import {encode_b64url, decode_b64url} from \"@cling/lib.shared.utils\"\nimport type {UID} from \"@cling/lib.shared.types/common\"\nimport Pbf from \"pbf\"\nimport {Buffer} from \"buffer\"\nimport {\n BoardUID,\n is_BoardUID,\n board_uid_type,\n BoardType,\n FullAccount,\n Account,\n CLING_ANONYMOUS,\n ChangeMetadata,\n CLING_BOT,\n Locale,\n AccountAuth,\n AccountState,\n AccountAttributes,\n SourceCampaign,\n Plan,\n AccountSettings,\n SourceCampaignType,\n Team,\n CLING_PUBLIC,\n CLING_ORG,\n Organization,\n CardUID,\n is_CardUID,\n OrganizationPlan,\n} from \"./model\"\n\nexport function to_uint8array(item: {_to_pb: (args: any) => any}): Uint8Array {\n const pbf = new Pbf(Buffer.alloc(16))\n item._to_pb(pbf)\n return pbf.finish()\n}\n\nexport function to_array_buffer(item: {_to_pb: (args: any) => any}): ArrayBuffer {\n const buf = to_uint8array(item)\n return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength)\n}\n\nexport function to_buffer(item: {_to_pb: (args: any) => any}): Buffer {\n return Buffer.from(to_uint8array(item))\n}\n\nexport function from_buffer<T>(\n clazz: {_from_pb: (args: any) => T},\n buf: Buffer | Uint8Array | ArrayBuffer,\n): T {\n return clazz._from_pb(new Pbf(buf))\n}\n\nexport function to_b64url(item: {_to_pb: (args: any) => any}): string {\n return encode_b64url(to_buffer(item))\n}\n\nexport function from_b64url<T>(clazz: {_from_pb: (args: any) => T}, b64_url: string): T {\n return from_buffer(clazz, decode_b64url(b64_url))\n}\n\nexport function deep_copy<T extends {_to_pb: (args: any) => any}>(item: T): T {\n const pbf = new Pbf()\n item._to_pb(pbf)\n pbf.pos = 0 // ... so we don't have to create a new buffer\n return (item.constructor as any)._from_pb(pbf)\n}\n\n/**\n * No particular order is guaranteed. It is only guaranteed that this sort function works\n * in a deterministic way.\n */\nexport function sort_by_uid(a: {uid: UID}, b: {uid: UID}) {\n return a.uid.localeCompare(b.uid)\n}\n\nexport const sort_by_string_prop = (prop: string) => (a: any, b: any) =>\n (a[prop] || \"\").localeCompare(b[prop] || \"\")\n\n// Keep in sync with index.html.template ...\nconst link_to_board_pathname_regexp = /^\\/c\\/(.*-)?(b[a-zA-Z0-9_]{17,})([/?].*)?$/\n\ndeclare class URL {\n constructor(url: string)\n readonly href: string\n readonly hostname: string\n readonly pathname: string\n}\n\n/**\n * Returns the extracted `BoardUID` (and `CardUID`) if the given URL is a link to a Cling board.\n */\nexport function extract_linked_board_and_card_uid(\n url: string,\n): {board_uid: BoardUID; card_uid?: CardUID} | undefined {\n try {\n const url_ = new URL(url)\n if (url_.hostname.endsWith(\"cling.com\") || url_.hostname === \"localhost\") {\n const {pathname} = url_\n const match = link_to_board_pathname_regexp.exec(pathname)\n if (match && is_BoardUID(match[2])) {\n const card_uid = pathname.split(\"/\").pop()\n return {\n board_uid: match[2],\n card_uid: is_CardUID(card_uid) ? card_uid : undefined,\n }\n }\n return undefined\n }\n } catch {\n return undefined\n }\n}\n\n/**\n * Build a \"vanity\" board URI by adding the board's name.\n */\nexport function board_vanity_uri(board_uid: BoardUID, name?: string): string {\n const board_type = board_uid_type(board_uid)\n if (board_type === BoardType.dashboard) {\n return \"/c\"\n } else if (board_type !== BoardType.regular && board_type !== BoardType.people) {\n return `/c/${board_uid}`\n }\n name = (name || \"\")\n .replace(/[^a-zA-Z0-9]/g, \"_\")\n .replace(/[_]+/g, \"_\")\n .substr(0, 30)\n if (name.endsWith(\"_\")) {\n name = name.substr(0, name.length - 1)\n }\n return `/c/${name}${name ? \"-\" : \"\"}${board_uid}`\n}\n\nexport const CLING_ANONYMOUS_FULL_ACCOUNT = (() => {\n const date = new Date(Date.UTC(2016, 8, 1, 12, 0))\n const first_change = new ChangeMetadata({account_uid: CLING_ANONYMOUS, date})\n const last_change = first_change\n const {organic_web_app} = SourceCampaignType\n return new FullAccount({\n account: new Account({\n uid: CLING_ANONYMOUS,\n version: 1,\n first_change,\n last_change,\n given_name: \"Cling\",\n family_name: \"Anonymous\",\n profile_image_url: \"https://cling.com/c/static/icon_256.png\",\n locale: \"en\" as Locale,\n }),\n account_auth: new AccountAuth({\n uid: CLING_ANONYMOUS,\n version: 1,\n first_change,\n last_change,\n account_state: AccountState.active,\n }),\n account_attributes: new AccountAttributes({\n uid: CLING_ANONYMOUS,\n version: 1,\n first_change,\n last_change,\n email: \"anonymous@cling.com\",\n source_campaign: new SourceCampaign({\n type: organic_web_app,\n }),\n plan: Plan.free,\n }),\n account_settings: new AccountSettings({\n uid: CLING_ANONYMOUS,\n version: 1,\n first_change,\n last_change,\n default_disable_board_changed_emails: true,\n }),\n })\n})() as Defined<FullAccount, \"account\" | \"account_auth\" | \"account_attributes\" | \"account_settings\">\n\nexport const CLING_BOT_FULL_ACCOUNT = (() => {\n const date = new Date(Date.UTC(2016, 8, 1, 12, 0))\n const first_change = new ChangeMetadata({account_uid: CLING_BOT, date})\n const last_change = first_change\n const {organic_web_app} = SourceCampaignType\n return new FullAccount({\n account: new Account({\n uid: CLING_BOT,\n version: 1,\n first_change,\n last_change,\n given_name: \"Cling\",\n family_name: \"Bot\",\n profile_image_url: \"https://cling.com/c/static/icon_256.png\",\n locale: \"en\" as Locale,\n }),\n account_auth: new AccountAuth({\n uid: CLING_BOT,\n version: 1,\n first_change,\n last_change,\n account_state: AccountState.active,\n }),\n account_attributes: new AccountAttributes({\n uid: CLING_BOT,\n version: 1,\n first_change,\n last_change,\n email: \"bot@cling.com\",\n source_campaign: new SourceCampaign({\n type: organic_web_app,\n }),\n plan: Plan.free,\n }),\n account_settings: new AccountSettings({\n uid: CLING_BOT,\n version: 1,\n first_change,\n last_change,\n default_disable_board_changed_emails: true,\n }),\n })\n})() as Defined<FullAccount, \"account\" | \"account_auth\" | \"account_attributes\" | \"account_settings\">\n\nexport const CLING_PUBLIC_TEAM = (() => {\n const date = new Date(Date.UTC(2020, 2, 19, 14, 0))\n const first_change = new ChangeMetadata({account_uid: CLING_BOT, date})\n const last_change = first_change\n return new Team({\n uid: CLING_PUBLIC,\n name: \"Public (everyone)\",\n accessible_teams: [],\n organization_uid: CLING_ORG,\n first_change,\n last_change,\n version: 2,\n })\n})()\n\nexport const CLING_ORG_ORG = (() => {\n const date = new Date(Date.UTC(2016, 8, 1, 12, 0))\n const first_change = new ChangeMetadata({account_uid: CLING_BOT, date})\n const last_change = first_change\n return new Organization({\n uid: CLING_ORG,\n name: \"Cling Org\",\n chargebee_id: \"_cling_org_does_not_use_this\",\n plan: OrganizationPlan.fixed,\n first_change,\n last_change,\n version: 2,\n })\n})()\n", "/**\n * Check and fix the consistency of a board.\n */\nimport {\n Blob,\n Board,\n board_uid_type,\n BoardNotConsistent,\n BoardType,\n Card,\n ClingErrorCode,\n is_AccountUID,\n traverse_cards,\n CLING_BOT,\n CLING_ANONYMOUS,\n} from \"./model\"\nimport type {UID} from \"@cling/lib.shared.types/common\"\n\n/**\n * @throws BoardNotConsistent if the board cannot be fixed\n */\nexport function check_board_consistency(board: Board) {\n board.sanitize()\n check_misc(board)\n check_board_changelog(board)\n check_board_acl(board)\n check_system_cards(board)\n const uids = new Set<UID>()\n uids.add(board.root.uid)\n traverse_cards(board.root, (card) => {\n check_card_types(board, card)\n check_archived(board, card)\n check_no_duplicate_content(board, card, uids)\n check_changelog(board, card)\n })\n try {\n board.verify()\n } catch (error) {\n throw new BoardNotConsistent({\n message: `Board.verify() failed: ${error.message}`,\n board_uid: board.uid,\n uids: [board.uid],\n cling_error_code: ClingErrorCode.validate_error,\n })\n }\n}\n\nfunction check_misc(board: Board) {\n if (board_uid_type(board.uid) !== board.board_type) {\n throw new BoardNotConsistent({\n message: \"`uid` does not match `board_type`\",\n board_uid: board.uid,\n cling_error_code: ClingErrorCode.validate_error,\n })\n }\n if (board.root.children.filter((x) => x.inbox).length !== 1) {\n throw new BoardNotConsistent({\n message: \"A board must have a exactly one inbox\",\n board_uid: board.uid,\n cling_error_code: ClingErrorCode.validate_error,\n })\n }\n}\n\nfunction check_board_acl(board: Board) {\n // Make sure there are no duplicate uids ...\n const all_principal_uids = board.acl.all\n const all_unique_principal_uids = new Set(all_principal_uids)\n if (all_principal_uids.length !== all_unique_principal_uids.size) {\n throw new BoardNotConsistent({\n message: \"Duplicate principals on ACL\",\n board_uid: board.uid,\n cling_error_code: ClingErrorCode.validate_error,\n })\n }\n if (\n !board.acl.has_full_access({\n account_uid: board.owner,\n team_uids: [],\n admin_organization_uids: [],\n })\n ) {\n throw new BoardNotConsistent({\n message: \"Owner must have full access\",\n board_uid: board.uid,\n cling_error_code: ClingErrorCode.validate_error,\n })\n }\n if (board.board_type === BoardType.people) {\n if (\n board.acl.all.length !== 2 ||\n board.acl._full_access.length !== 2 ||\n board.acl.all.some((x) => !is_AccountUID(x))\n ) {\n throw new BoardNotConsistent({\n message:\n \"A people-board must have exactly two ACL entries, both of type \" +\n \"`account` and with full access\",\n board_uid: board.uid,\n cling_error_code: ClingErrorCode.validate_error,\n })\n }\n }\n if (board.acl.all.includes(CLING_BOT)) {\n throw new BoardNotConsistent({\n message: \"CLING_BOT must not be on the ACL\",\n board_uid: board.uid,\n cling_error_code: ClingErrorCode.validate_error,\n })\n }\n if (board.acl.all.includes(CLING_ANONYMOUS)) {\n throw new BoardNotConsistent({\n message: \"CLING_ANONYMOUS must not be on the ACL\",\n board_uid: board.uid,\n cling_error_code: ClingErrorCode.validate_error,\n })\n }\n}\n\nfunction check_board_changelog(board: Board) {\n if (board.changelog.length === 0) {\n throw new BoardNotConsistent({\n message: \"Changelog of board cannot be empty\",\n board_uid: board.uid,\n cling_error_code: ClingErrorCode.validate_error,\n })\n }\n const first_changelog = board.changelog[0]\n if (\n first_changelog.account_uid !== board.first_change.account_uid ||\n first_changelog.date.getTime() !== board.first_change.date.getTime()\n ) {\n throw new BoardNotConsistent({\n message: \"Changelog does not match `first_change`\",\n board_uid: board.uid,\n cling_error_code: ClingErrorCode.validate_error,\n })\n }\n}\n\nfunction check_changelog(board: Board, card: Card) {\n if (card.changelog.length === 0) {\n throw new BoardNotConsistent({\n message: \"Changelog of card cannot be empty\",\n board_uid: board.uid,\n cling_error_code: ClingErrorCode.validate_error,\n uids: [card.uid],\n })\n }\n if (card.changelog.some((x) => x.board_uid === board.uid)) {\n throw new BoardNotConsistent({\n message: \"Changelog of card must not reference the current board_uid\",\n board_uid: board.uid,\n cling_error_code: ClingErrorCode.validate_error,\n uids: [card.uid],\n })\n }\n for (const comment of card.comments) {\n if (comment.changelog.length === 0) {\n throw new BoardNotConsistent({\n message: \"Changelog of comment cannot be empty\",\n board_uid: board.uid,\n cling_error_code: ClingErrorCode.validate_error,\n uids: [comment.uid],\n })\n }\n if (comment.changelog.some((x) => x.board_uid === board.uid)) {\n throw new BoardNotConsistent({\n message: \"Changelog of comment must not reference the current board_uid\",\n board_uid: board.uid,\n cling_error_code: ClingErrorCode.validate_error,\n uids: [comment.uid],\n })\n }\n }\n}\n\nfunction check_system_cards(board: Board) {\n if (!board.root.root) {\n throw new BoardNotConsistent({\n message: \"Root card of board must have type `root`\",\n board_uid: board.uid,\n cling_error_code: ClingErrorCode.validate_invalid_card_type,\n })\n }\n if (board.root.children.filter((x) => x.inbox).length !== 1) {\n throw new BoardNotConsistent({\n message: \"Exactly one card of type `inbox` expected\",\n board_uid: board.uid,\n cling_error_code: ClingErrorCode.validate_invalid_card_type,\n })\n }\n if (!board.root.children.every((x) => x.inbox || x.column)) {\n throw new BoardNotConsistent({\n message: \"Top level cards must be of type `inbox` or `column`\",\n board_uid: board.uid,\n cling_error_code: ClingErrorCode.validate_invalid_card_type,\n })\n }\n}\n\nfunction check_card_types(board: Board, card: Card) {\n if (card.root || ((card.inbox || card.column) && card.parent !== board.root)) {\n throw new BoardNotConsistent({\n message: \"Only system cards may by of type `inbox`, `column`, or `root`\",\n board_uid: board.uid,\n cling_error_code: ClingErrorCode.validate_invalid_card_type,\n })\n }\n}\n\nfunction check_no_duplicate_content(board: Board, content: Card | Blob, uids: Set<UID>) {\n if (uids.has(content.uid)) {\n throw new BoardNotConsistent({\n message: \"Duplicate content\",\n board_uid: board.uid,\n uids: [content.uid],\n cling_error_code: ClingErrorCode.validate_duplicate_content,\n })\n }\n uids.add(content.uid)\n if (!(content instanceof Card)) {\n return\n }\n const card = content as Card\n for (const blob of card.blobs) {\n check_no_duplicate_content(board, blob, uids)\n }\n for (const comment of card.comments) {\n if (uids.has(comment.uid)) {\n throw new BoardNotConsistent({\n message: \"Duplicate content\",\n board_uid: board.uid,\n uids: [comment.uid],\n cling_error_code: ClingErrorCode.validate_duplicate_content,\n })\n }\n for (const blob of comment.blobs) {\n check_no_duplicate_content(board, blob, uids)\n }\n uids.add(comment.uid)\n }\n}\n\nfunction check_archived(board: Board, card: Card) {\n if (card.archived) {\n if (card.children.some((x) => !x.archived)) {\n throw new BoardNotConsistent({\n message: `Card is archived but not all of its children`,\n board_uid: board.uid,\n uids: [card.uid],\n cling_error_code: ClingErrorCode.validate_card_archived_but_not_all_children,\n })\n }\n }\n}\n", "import {not_null} from \"@cling/lib.shared.utils\"\nimport {\n AccountUID,\n BoardType,\n BoardUID,\n derive_system_board_uid,\n board_uid_type,\n Locale,\n as_language,\n as_BoardUID,\n SyncDataFallbackRequest,\n SyncDataFallbackResponse,\n Language,\n} from \"./model\"\n\nexport * from \"./model\"\nexport * from \"./model_utils\"\nexport * from \"./api_scope_names\"\nexport * from \"./board_diff\"\nexport * from \"./board_consistency\"\n\nexport const SYSTEM_BOARD_TYPES = [BoardType.clipboard, BoardType.trashcan, BoardType.dashboard]\nexport const USER_BOARD_TYPES = [BoardType.regular, BoardType.people]\nexport function system_board_uids(account_uid: AccountUID): Array<BoardUID> {\n return SYSTEM_BOARD_TYPES.map((board_type) => derive_system_board_uid(account_uid, board_type))\n}\n\nexport function is_system_board_uid(board_uid: BoardUID) {\n return is_system_board_type(board_uid_type(board_uid))\n}\n\nexport function is_user_board_uid(board_uid: BoardUID) {\n return is_user_board_type(board_uid_type(board_uid))\n}\n\nexport function is_dashboard_or_user_board_uid(board_uid: BoardUID) {\n return is_dashboard_or_user_board_type(board_uid_type(board_uid))\n}\n\nexport function is_system_board_type(board_type: BoardType) {\n return SYSTEM_BOARD_TYPES.includes(board_type)\n}\n\nexport function is_user_board_type(board_type: BoardType) {\n return USER_BOARD_TYPES.includes(board_type)\n}\n\nexport function is_dashboard_or_user_board_type(board_type: BoardType) {\n return USER_BOARD_TYPES.includes(board_type) || board_type === BoardType.dashboard\n}\n\nexport function whats_new_board_uid(locale: Locale): BoardUID {\n return (\n whats_new_board_uids.get(as_language(locale)) ||\n not_null(whats_new_board_uids.get(\"en\" as Language))\n )\n}\n\nexport const whats_new_board_uids = new Map<Language, BoardUID>([\n [\"de\" as Language, as_BoardUID(\"bKym2NLoFOONokVsNxVPaK\")],\n [\"en\" as Language, as_BoardUID(\"bryMCmmx7uneL57YSniBGk\")],\n]) as ReadonlyMap<Language, BoardUID>\n\nexport const title_images_board_uid = as_BoardUID(\"b10JgJ430H3SwqvB2acSMa8\")\nexport const background_images_board_uid = as_BoardUID(\"bQnDyUH6PW1xHkEf2AieMx\")\n\nexport const board_templates_board_uid = as_BoardUID(\"b7iJqJvka1PeVW3E8iALw3P\")\n\nexport const default_dashboard_template_board_uids = new Map<Language, BoardUID>([\n [\"de\" as Language, as_BoardUID(\"b7y39JvbxJoFpZxAXQ4vyhc\")],\n [\"en\" as Language, as_BoardUID(\"b5yk31S3aA9sRUyTMxkoQby\")],\n])\n\nexport function default_dashboard_template_board_uid(locale: Locale): BoardUID {\n return (\n default_dashboard_template_board_uids.get(as_language(locale)) ||\n not_null(default_dashboard_template_board_uids.get(\"en\" as Language))\n )\n}\n\nexport const trashcan_template_board_uid = as_BoardUID(\"b7kViFfaHe93Ovqxc62VkNI\")\nexport const clipboard_template_board_uid = as_BoardUID(\"b6t5w5usztFPeqrg1xLNpTc\")\n\n// Aliases ...\nexport class SyncBoardDataFallbackRequest extends SyncDataFallbackRequest {}\nexport class SyncBoardDataFallbackResponse extends SyncDataFallbackResponse {}\nexport class SyncAllDataFallbackResponse extends SyncDataFallbackResponse {}\n"], "mappings": "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", "names": ["require_sha256", "__commonJSMin", "exports", "module", "root", "factory", "sha256", "k", "K", "hashBlocks", "w", "v", "p", "pos", "len", "a", "b", "c", "d", "e", "f", "g", "h", "u", "i", "j", "t1", "t2", "__name", "Hash", "data", "dataLength", "dataPos", "out", "bytesHashed", "left", "bitLenHi", "bitLenLo", "padLength", "from", "HMAC", "key", "pad", "hash", "digest", "hmac", "fillBuffer", "buffer", "info", "counter", "num", "hkdfSalt", "hkdf", "salt", "length", "okm", "hmac_", "bufpos", "pbkdf2", "password", "iterations", "dkLen", "prf", "ctr", "t", "dk", "require_pbf", "__commonJSMin", "exports", "module", "Pbf", "ieee754", "buf", "__name", "SHIFT_LEFT_32", "SHIFT_RIGHT_32", "TEXT_DECODER_MIN_LENGTH", "utf8TextDecoder", "readField", "result", "end", "val", "tag", "startPos", "readUInt32", "readInt32", "isSigned", "b", "readVarintRemainder", "num", "pos", "readUtf8TextDecoder", "readUtf8", "buffer", "arr", "readPackedEnd", "type", "min", "length", "writeInt32", "writeBigVarint", "str", "writeUtf8", "len", "makeRoomForExtraLength", "fn", "obj", "writePackedVarint", "writePackedSVarint", "writePackedBoolean", "writePackedFloat", "writePackedDouble", "writePackedFixed32", "writePackedSFixed32", "writePackedFixed64", "writePackedSFixed64", "l", "s", "p", "h", "toNum", "pbf", "low", "high", "writeBigVarintLow", "writeBigVarintHigh", "lsb", "extraLen", "i", "b0", "c", "bytesPerSequence", "b1", "b2", "b3", "lead", "the_now", "__name", "_ClingError", "message", "http_status_code", "opts", "__publicField", "__name", "ClingError", "_NotFound", "ClingError", "message", "uids", "opts", "__name", "NotFound", "_Gone", "Gone", "_Forbidden", "ClingError", "message", "opts", "__publicField", "__name", "Forbidden", "_CallFunctionFailed", "ClingError", "cling_error_code", "faas_name", "http_status_code", "message", "uids", "error", "__publicField", "__name", "CallFunctionFailed", "_LimitExceeded", "ClingError", "limit", "value", "extra_msg", "__name", "LimitExceeded", "_Limit", "upper_bound", "info", "msg", "Limit", "LIMIT_SPANNER_COLUMN_SIZE", "LIMIT_BOARD_SIZE", "LIMIT_PATCH_OPS", "LIMIT_SOFT_BOARD_SIZE", "LIMIT_SMALL_TEXT", "LIMIT_MEDIUM_TEXT", "LIMIT_URL", "LIMIT_EMAIL", "LIMIT_PASSWORD", "LIMIT_HTML", "LIMIT_BLOB_SIZE", "LIMIT_BOARD_PACKAGE_SIZE", "LIMIT_IMPORT_DATA_SIZE", "LIMIT_IMPORT_DATA_ITEM_SIZE", "LIMIT_USER_UPLOAD_SIZE", "LIMIT_SEARCH_ALL_BOARDS_RESULT", "LIMIT_GET_ITEMS_10", "LIMIT_GET_ITEMS_100", "LIMIT_SEND_ITEMS_100", "LIMIT_ACL_ENTRIES_AND_INVITES_PER_BOARD", "LIMIT_ACL_ENTRIES_AND_INVITES_PER_BOARD_EXTENDED", "LIMIT_PUBLISH_EVENT_BATCH", "LIMIT_ORGANIZATION_ADMINS_PER_USER", "LIMIT_ADMINS_PER_ORGANIZATION", "LIMIT_TEAMS_PER_ORGANIZATION", "LIMIT_TEAM_CODES_PER_ORGANIZATION", "LIMIT_INVITE_VALID_DAYS", "LIMIT_MEMBERS_PER_TEAM", "LIMIT_MEDIA_TRANSCODER_MAX_FILE_SIZE", "LIMIT_MEDIA_TRANSCODER_MAX_DURATION", "LIMIT_THUMBNAIL_TTL_SECONDS", "import_fast_sha256", "import_buffer", "_sha256", "_random_bytes", "crypto_impl", "__name", "buf", "fast_sha256", "size", "bytes", "error", "error_to_string", "random_bytes", "sha256", "random_uid", "prefix", "assert", "encode_b62", "import_pbf", "import_buffer", "makeObservable", "computed", "observable", "pbf_writeMessage", "tag", "obj", "pbf", "Pbf", "__name", "pbf_readMessage", "constructor", "o", "now", "the_now", "locale_regex", "language_regex", "is_Locale", "s", "is_Language", "as_locale", "assert", "as_language", "locale", "AccountUID_prefix", "is_AccountUID", "x", "is_UID", "as_AccountUID", "safe_to_string", "account_uid_from_gip_uid", "__name", "x", "as_AccountUID", "AccountUID_prefix", "CLING_BOT", "CLING_ANONYMOUS", "CLING_ORG", "CLING_PUBLIC", "BoardUID_prefix", "is_BoardUID", "__name", "uid", "is_UID", "as_BoardUID", "x", "safe_to_string", "AbuseReportUID_prefix", "is_AbuseReportUID", "__name", "uid", "is_UID", "create_AbuseReportUID", "__name", "random_uid", "AbuseReportUID_prefix", "CardUID_prefix", "is_CardUID", "uid", "is_UID", "as_CardUID", "x", "safe_to_string", "create_CardUID", "CommentUID_prefix", "is_CommentUID", "create_CommentUID", "BoardInviteUID_prefix", "is_BoardInviteUID", "create_BoardInviteUID", "OrganizationInviteUID_prefix", "is_OrganizationInviteUID", "PatchUID_prefix", "is_PatchUID", "__name", "uid", "is_UID", "create_PatchUID", "random_uid", "BlobUID_prefix", "is_BlobUID", "as_BlobUID", "x", "safe_to_string", "create_BlobUID", "SessionUID_prefix", "create_SessionUID", "__name", "random_uid", "SessionUID_prefix", "URLUID_prefix", "derive_URLUID", "__name", "url", "derive_uid", "URLUID_prefix", "OrganizationUID_prefix", "is_OrganizationUID", "__name", "x", "is_UID", "create_OrganizationUID", "__name", "random_uid", "OrganizationUID_prefix", "TeamUID_prefix", "is_TeamUID", "x", "is_UID", "as_TeamUID", "safe_to_string", "TeamCodeUID_prefix", "is_TeamCodeUID", "__name", "x", "is_UID", "as_TeamCodeUID", "safe_to_string", "is_PrincipalUID", "__name", "x", "is_AccountUID", "is_TeamUID", "is_InviteUID", "__name", "x", "is_OrganizationInviteUID", "is_BoardInviteUID", "derive_BlobUID", "uid", "salt", "derive_uid", "BlobUID_prefix", "__name", "derive_CardUID", "CardUID_prefix", "derive_PatchUID", "PatchUID_prefix", "AuthActionCodeUID_prefix", "is_AuthActionCodeUID", "__name", "uid", "is_UID", "as_AuthActionCodeUID", "__name", "x", "is_AuthActionCodeUID", "safe_to_string", "board_uid_type", "uid", "__name", "derive_system_board_uid", "account_uid", "board_type", "prefix", "BoardUID_prefix", "assert_never", "derive_people_board_uid", "account_uid1", "account_uid2", "account_uids", "derive_uid", "derive_dashboard_uid", "derive_clipboard_uid", "derive_trashcan_uid", "salt", "buf", "hash", "sha256", "result", "encode_b62", "traverse_cards", "start_card", "f", "x", "__name", "is_ContentItemUID", "__name", "v", "is_CardUID", "is_CommentUID", "_PatchOp", "any_this", "vals", "uid", "class_name", "PatchOp", "_AddOp", "AddOp", "_RemoveOp", "RemoveOp", "_MoveCopyOp", "MoveCopyOp", "_SetOp", "SetOp", "_CustomOp", "CustomOp", "_PasteOp", "PasteOp", "__Patch", "ops", "p", "assert", "_Patch", "__PatchOpContainer", "op", "PatchOpContainer", "_PatchOpContainer", "_ItemNotFound", "ClingError", "board_uid", "error", "ItemNotFound", "_BoardNotConsistent", "message", "uids", "cling_error_code", "BoardNotConsistent", "TOMBSTONE", "__BoardInfo", "current_user", "assert", "as_AccountUID", "x", "__name", "_BoardInfo", "__Invite", "args", "__publicField", "LIMIT_INVITE_VALID_DAYS", "the_now", "__name", "_Invite", "__ACL", "makeObservable", "observable", "computed", "uid", "auth_info", "result", "account_uid", "access_level", "x", "entry", "CLING_PUBLIC", "assert", "a", "_ACL", "__AccountAttributes", "self", "as_TeamUID", "_AccountAttributes", "__AccountSettings", "board_uid", "_AccountSettings", "__Organization", "_Organization", "__Board", "board_invites", "root", "board_type", "version", "first_change", "last_change", "changelog", "BoardChangelogEntry", "t", "card", "b", "Card", "derive_CardUID", "Column", "CardChangelogEntry", "board", "board_stats", "stats", "BoardStats", "ContentItemStats", "regular_cards", "Note", "Link", "blob_size", "File", "blob", "assert_never", "comment", "Removed", "last_important_change", "BoardInfo", "ChangeMetadata", "current_user", "as_AccountUID", "last_important_changes", "dont_throw", "ItemNotFound", "Comment", "content_items", "traverse", "child", "items", "content", "image_background_blob", "item", "is_CardUID", "is_CommentUID", "is_BoardInviteUID", "is_BlobUID", "content_item", "e", "blobs", "is_AccountUID", "_Board", "is_NoteCard", "is_LinkCard", "is_FileCard", "new_LinkStyle", "LinkStyle", "__Card", "children", "deprecated_first_change", "deprecated_last_change", "link", "file", "deprecated_board_ref", "is_image", "fix", "parent", "i", "patch_op_type", "not_null", "p", "level", "o", "c", "res", "contents", "n", "urls", "files", "comments", "predicate", "since_board_version", "since_date", "include_comments", "limit", "important_op_types", "since_time", "since_board_version_int", "handle", "CLING_BOT", "changes", "_Card", "is_NoteComment", "is_RemovedComment", "comment", "__name", "__Comment", "changelog", "deprecated_first_change", "deprecated_last_change", "__publicField", "CommentChangelogEntry", "makeObservable", "observable", "not_null", "c", "res", "_Comment", "__LinkStyle", "display", "deprecated_display_kind", "ImageCardDisplay", "_LinkStyle", "__File", "_File", "is_image", "blob", "is_video", "mime_type", "is_audio", "may_have_thumbnail", "SourceCampaignType", "AuthProvider", "BoardType", "CardColor", "ClingErrorCode", "SyncEntityType", "_ChangeMetadata", "args", "__publicField", "makeObservable", "observable", "pbf", "o", "tag", "assert", "is_AccountUID", "__name", "ChangeMetadata", "_BoardChangeMetadata", "BoardChangeMetadata", "_Account", "pbf_readMessage", "is_Locale", "LIMIT_SMALL_TEXT", "LIMIT_URL", "pbf_writeMessage", "Account", "_OrganizationInvite", "_Invite", "is_OrganizationInviteUID", "i_team_uids", "x", "is_TeamUID", "i", "OrganizationInvite", "_Organization", "is_OrganizationUID", "Organization", "_OrganizationMembers", "i_admin_account_uids", "OrganizationMembers", "_Team", "args", "__publicField", "makeObservable", "observable", "pbf", "o", "tag", "pbf_readMessage", "ChangeMetadata", "assert", "is_TeamUID", "is_OrganizationUID", "i_accessible_teams", "x", "LIMIT_SMALL_TEXT", "pbf_writeMessage", "__name", "Team", "_TeamMembers", "args", "__publicField", "makeObservable", "observable", "pbf", "o", "tag", "assert", "is_TeamUID", "i_account_uids", "x", "is_AccountUID", "__name", "TeamMembers", "_AccountAuth", "args", "__publicField", "makeObservable", "observable", "pbf", "o", "tag", "pbf_readMessage", "ChangeMetadata", "assert", "is_AccountUID", "pbf_writeMessage", "__name", "AccountAuth", "_SourceCampaign", "is_InviteUID", "is_TeamCodeUID", "LIMIT_SMALL_TEXT", "SourceCampaign", "_AccountAttributes", "i_team_uids", "x", "is_TeamUID", "i_admin_organization_uids", "is_OrganizationUID", "i", "AccountAttributes", "_AccountBoardSettings", "is_BoardUID", "AccountBoardSettings", "_AccountSettings", "PushSubscription", "AccountSettings", "_BoardQuota", "BoardQuota", "_Seen", "Seen", "_BoardLastSeen", "BoardLastSeen", "_SignUp", "SignUp", "_Login", "Login", "_PageView", "PageView", "_Engagement", "Engagement", "_Checkout", "Checkout", "_Portal", "Portal", "_UserEvent", "now", "not_null", "UserEvent", "_FullAccount", "Account", "FullAccount", "_AccountAnalytics", "AccountAnalytics", "_ACL", "ACL", "_BoardStyle", "Blob", "LIMIT_URL", "BoardStyle", "_BoardInvite", "_Invite", "is_BoardInviteUID", "is_PrincipalUID", "BoardInvite", "_BoardChangelogEntry", "BoardChangelogEntry", "_Board", "Card", "Board", "_ContentItemStats", "ContentItemStats", "_BoardStats", "BoardStats", "_BoardInfo", "BoardInfo", "_Task", "Task", "_CardChangelogEntry", "CardChangelogEntry", "_Card", "Note", "Link", "File", "DeprecatedBoardRef", "Inbox", "Root", "Column", "Comment", "is_CardUID", "_CommentChangelogEntry", "CommentChangelogEntry", "_Comment", "Removed", "is_CommentUID", "_Removed", "BoardChangeMetadata", "_Note", "LIMIT_HTML", "_ImageCardDisplay", "ImageCardDisplay", "_LinkStyle", "LinkStyle", "_Link", "new_LinkStyle", "_File", "_Blob", "is_BlobUID", "_DeprecatedBoardRef", "_Inbox", "_Column", "_Root", "_AbuseReport", "is_AbuseReportUID", "LIMIT_MEDIUM_TEXT", "AbuseReport", "_MeetStatus", "args", "__publicField", "makeObservable", "observable", "pbf", "o", "tag", "pbf_readMessage", "ChangeMetadata", "assert", "is_BoardUID", "i_participants", "x", "is_AccountUID", "pbf_writeMessage", "__name", "MeetStatus", "_AddBoardValue", "args", "__publicField", "makeObservable", "pbf", "o", "tag", "pbf_readMessage", "BoardStyle", "assert", "LIMIT_SMALL_TEXT", "pbf_writeMessage", "__name", "AddBoardValue", "_AddBoard", "AddOp", "AddBoard", "_CopyBoard", "MoveCopyOp", "is_BoardUID", "CopyBoard", "_AddPeopleBoardValue", "is_AccountUID", "AddPeopleBoardValue", "_AddPeopleBoard", "AddPeopleBoard", "_AddSystemBoardValue", "AddSystemBoardValue", "_AddSystemBoard", "AddSystemBoard", "_RemoveBoard", "RemoveOp", "RemoveBoard", "_SetBoardName", "SetOp", "SetBoardName", "_SetBoardIndexedBySearchEngines", "SetBoardIndexedBySearchEngines", "_CustomAddBoardACL", "CustomOp", "is_PrincipalUID", "CustomAddBoardACL", "_CustomSetBoardACLAccessLevel", "CustomSetBoardACLAccessLevel", "_CustomSetBoardOwner", "CustomSetBoardOwner", "_CustomRemoveBoardACL", "CustomRemoveBoardACL", "_AddBoardInviteValue", "not_null", "is_BoardInviteUID", "x", "AddBoardInviteValue", "_CustomAddBoardInvite", "CustomAddBoardInvite", "_RemoveBoardInvite", "RemoveBoardInvite", "_SetBoardBoardStyleBackgroundColor", "SetBoardBoardStyleBackgroundColor", "_SetBoardBoardStyleBackgroundImageURL", "SetBoardBoardStyleBackgroundImageURL", "_SetBoardBoardStyle", "SetBoardBoardStyle", "_RemoveCard", "is_CardUID", "RemoveCard", "_SetCardArchived", "SetCardArchived", "_SetCardColor", "SetCardColor", "_CustomAddTask", "CustomAddTask", "_CustomRemoveTask", "CustomRemoveTask", "_SetTaskStatus", "SetTaskStatus", "_SetTaskAssignee", "SetTaskAssignee", "_SetTaskDate", "SetTaskDate", "_MoveCard", "MoveCard", "_AddCardValue", "Note", "Link", "File", "Column", "AddCardValue", "_AddCard", "AddCard", "_SetCardNoteSafeHtml", "LIMIT_HTML", "SetCardNoteSafeHtml", "_SetCardNoteTitle", "SetCardNoteTitle", "_SetCardLinkTitle", "SetCardLinkTitle", "_SetCardLinkURL", "LIMIT_URL", "SetCardLinkURL", "_SetCardLinkStyle", "LinkStyle", "SetCardLinkStyle", "_SetCardFileFileName", "SetCardFileFileName", "_SetCardFileTitle", "SetCardFileTitle", "_SetCardFileDisplay", "ImageCardDisplay", "SetCardFileDisplay", "_SetCardFileBlob", "Blob", "SetCardFileBlob", "_SetCardFilePreviewImageBlob", "SetCardFilePreviewImageBlob", "_PasteCard", "PasteOp", "Card", "PasteCard", "_CopyCard", "CopyCard", "_AddCommentValue", "is_CommentUID", "AddCommentValue", "_AddComment", "AddComment", "_CustomRemoveComment", "CustomRemoveComment", "_PatchOpContainer", "PatchOpContainer", "_BlobUIDMapping", "observable", "is_BlobUID", "BlobUIDMapping", "_Patch", "is_PatchUID", "i", "Patch", "_CallFunctionErrorResponse", "i_uids", "is_UID", "CallFunctionErrorResponse", "_QueryUserMetaRequest", "QueryUserMetaRequest", "_QueryUserMetaResponse", "QueryUserMetaResponse", "_QueryTeamCodesRequest", "args", "__publicField", "makeObservable", "pbf", "o", "tag", "not_null", "assert", "is_TeamCodeUID", "is_OrganizationUID", "x", "__name", "QueryTeamCodesRequest", "_QueryBoardVersionRequest", "args", "__publicField", "makeObservable", "pbf", "o", "tag", "assert", "is_BoardUID", "__name", "QueryBoardVersionRequest", "_QueryBoardVersionResponse", "pbf_readMessage", "Board", "pbf_writeMessage", "QueryBoardVersionResponse", "_UpdateBoardRequest", "UpdateBoardRequest", "_ExportBoardRequest", "args", "__publicField", "makeObservable", "pbf", "o", "tag", "assert", "is_BoardUID", "__name", "ExportBoardRequest", "_ExportBoardResponse", "ExportBoardResponse", "_ExportBoardJob", "observable", "is_AccountUID", "LIMIT_URL", "ExportBoardJob", "_QueryExportBoardJobRequest", "args", "__publicField", "makeObservable", "pbf", "o", "tag", "assert", "__name", "QueryExportBoardJobRequest", "_QueryExportBoardJobResponse", "pbf_readMessage", "ExportBoardJob", "pbf_writeMessage", "QueryExportBoardJobResponse", "_ImportBoardRequest", "not_null", "is_BoardUID", "LIMIT_URL", "x", "ImportBoardRequest", "_ImportBoardResponse", "ImportBoardResponse", "_ImportBoardJob", "observable", "is_AccountUID", "ImportBoardJob", "_QueryImportBoardJobRequest", "args", "__publicField", "makeObservable", "pbf", "o", "tag", "assert", "__name", "QueryImportBoardJobRequest", "_QueryImportBoardJobResponse", "pbf_readMessage", "ImportBoardJob", "pbf_writeMessage", "QueryImportBoardJobResponse", "_PatchAccount", "args", "__publicField", "makeObservable", "pbf", "o", "tag", "assert", "is_Locale", "LIMIT_SMALL_TEXT", "LIMIT_URL", "__name", "PatchAccount", "_PatchAccountAuth", "PatchAccountAuth", "_PatchAccountAttributes", "pbf_readMessage", "SourceCampaign", "i_team_uids", "x", "is_TeamUID", "i_admin_organization_uids", "is_OrganizationUID", "pbf_writeMessage", "PatchAccountAttributes", "_PatchAccountBoardSettings", "is_BoardUID", "PatchAccountBoardSettings", "_PatchAccountSettings", "PushSubscription", "PatchAccountSettings", "_PatchFullAccountRequest", "is_PatchUID", "PatchFullAccountRequest", "_SignUpRequest", "args", "__publicField", "makeObservable", "pbf", "o", "tag", "pbf_readMessage", "SourceCampaign", "assert", "is_Locale", "is_TeamCodeUID", "is_OrganizationUID", "LIMIT_SMALL_TEXT", "LIMIT_URL", "pbf_writeMessage", "__name", "SignUpRequest", "_SignUpResponse", "FullAccount", "not_null", "is_BoardUID", "x", "SignUpResponse", "_ManageAuthSendVerifyEmailMessage", "is_Language", "ManageAuthSendVerifyEmailMessage", "_ManageAuthSendResetPasswordMessage", "ManageAuthSendResetPasswordMessage", "_ManageAuthSendChangeEmailMessage", "ManageAuthSendChangeEmailMessage", "_ManageAuthApplyAuthActionCode", "observable", "is_AuthActionCodeUID", "ManageAuthApplyAuthActionCode", "_ManageAuthSyncEmailFromGIP", "ManageAuthSyncEmailFromGIP", "_ManageAuthRequest", "ManageAuthRequest", "_ManageAuthResponse", "ManageAuthResponse", "_ManageSessionRequest", "ManageSessionRequest", "_ReportLogEventRequest", "args", "__publicField", "makeObservable", "pbf", "o", "tag", "assert", "LIMIT_SEND_ITEMS_100", "__name", "ReportLogEventRequest", "_ReportLogEventResponse", "ReportLogEventResponse", "_BrowserEnv", "observable", "LIMIT_SMALL_TEXT", "BrowserEnv", "_ReportUserEventRequest", "pbf_readMessage", "UserEvent", "pbf_writeMessage", "ReportUserEventRequest", "_QueryTranscodedMediaURLRequest", "args", "__publicField", "makeObservable", "pbf", "o", "tag", "assert", "is_BlobUID", "__name", "QueryTranscodedMediaURLRequest", "_QueryTranscodedMediaURLResponse", "LIMIT_URL", "QueryTranscodedMediaURLResponse", "_QueryThumbnailRequest", "args", "__publicField", "makeObservable", "pbf", "o", "tag", "assert", "is_BlobUID", "__name", "QueryThumbnailRequest", "_QueryChargebeeHostedPageCheckout", "args", "__publicField", "makeObservable", "observable", "pbf", "o", "tag", "assert", "__name", "QueryChargebeeHostedPageCheckout", "_QueryChargebeeHostedPageUpdatePayment", "QueryChargebeeHostedPageUpdatePayment", "_QueryChargebeeHostedPageCollectNow", "QueryChargebeeHostedPageCollectNow", "_QueryChargebeeHostedPagePortal", "QueryChargebeeHostedPagePortal", "_QueryChargebeeHostedPageRequest", "pbf_readMessage", "not_null", "is_OrganizationUID", "x", "pbf_writeMessage", "QueryChargebeeHostedPageRequest", "_QueryChargebeeHostedPageResponse", "QueryChargebeeHostedPageResponse", "_SyncPaymentDataRequest", "args", "__publicField", "makeObservable", "pbf", "o", "tag", "not_null", "assert", "is_OrganizationUID", "is_AccountUID", "x", "__name", "SyncPaymentDataRequest", "_SyncPaymentDataResponse", "SyncPaymentDataResponse", "_ReportAbuseRequest", "pbf_readMessage", "AbuseReport", "pbf_writeMessage", "ReportAbuseRequest", "_GetDownloadBlobURLRequest", "args", "__publicField", "makeObservable", "pbf", "o", "tag", "assert", "is_BlobUID", "LIMIT_SMALL_TEXT", "__name", "GetDownloadBlobURLRequest", "_GetDownloadBlobURLResponse", "LIMIT_URL", "GetDownloadBlobURLResponse", "_ScrapeInfo", "args", "__publicField", "makeObservable", "observable", "pbf", "o", "tag", "LIMIT_SMALL_TEXT", "LIMIT_URL", "LIMIT_MEDIUM_TEXT", "__name", "ScrapeInfo", "_URLInfo", "args", "__publicField", "makeObservable", "observable", "pbf", "o", "tag", "pbf_readMessage", "ScrapeInfo", "Blob", "assert", "LIMIT_URL", "pbf_writeMessage", "__name", "URLInfo", "_MediaInfo", "now", "is_BlobUID", "MediaInfo", "_PushSubscription", "args", "__publicField", "makeObservable", "observable", "pbf", "o", "tag", "assert", "__name", "PushSubscription", "import_pbf", "import_buffer", "to_uint8array", "item", "pbf", "Pbf", "__name", "to_buffer", "item", "to_uint8array", "__name", "from_buffer", "clazz", "buf", "Pbf", "to_b64url", "encode_b64url", "from_b64url", "b64_url", "decode_b64url", "deep_copy", "pbf", "link_to_board_pathname_regexp", "extract_linked_board_and_card_uid", "url", "url_", "pathname", "match", "is_BoardUID", "card_uid", "is_CardUID", "__name", "board_vanity_uri", "board_uid", "name", "board_type", "board_uid_type", "CLING_ANONYMOUS_FULL_ACCOUNT", "date", "first_change", "ChangeMetadata", "CLING_ANONYMOUS", "last_change", "organic_web_app", "SourceCampaignType", "FullAccount", "Account", "AccountAuth", "AccountAttributes", "SourceCampaign", "AccountSettings", "CLING_BOT_FULL_ACCOUNT", "CLING_BOT", "CLING_PUBLIC_TEAM", "Team", "CLING_PUBLIC", "CLING_ORG", "CLING_ORG_ORG", "Organization", "check_board_consistency", "board", "check_misc", "check_board_changelog", "check_board_acl", "check_system_cards", "uids", "traverse_cards", "card", "check_card_types", "check_archived", "check_no_duplicate_content", "check_changelog", "error", "BoardNotConsistent", "__name", "board_uid_type", "x", "all_principal_uids", "all_unique_principal_uids", "is_AccountUID", "CLING_BOT", "CLING_ANONYMOUS", "first_changelog", "comment", "content", "Card", "blob", "SYSTEM_BOARD_TYPES", "USER_BOARD_TYPES", "is_system_board_uid", "board_uid", "is_system_board_type", "board_uid_type", "__name", "is_system_board_type", "board_type", "SYSTEM_BOARD_TYPES", "__name", "whats_new_board_uid", "locale", "whats_new_board_uids", "as_language", "not_null", "__name", "as_BoardUID", "title_images_board_uid", "background_images_board_uid", "board_templates_board_uid", "default_dashboard_template_board_uids", "trashcan_template_board_uid", "as_BoardUID", "clipboard_template_board_uid"] }