@milaboratories/pl-client 2.11.7 → 2.11.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/auth.cjs +24 -0
- package/dist/core/auth.cjs.map +1 -0
- package/dist/core/auth.d.ts +0 -1
- package/dist/core/auth.js +21 -0
- package/dist/core/auth.js.map +1 -0
- package/dist/core/cache.d.ts +0 -1
- package/dist/core/client.cjs +288 -0
- package/dist/core/client.cjs.map +1 -0
- package/dist/core/client.d.ts +0 -1
- package/dist/core/client.js +267 -0
- package/dist/core/client.js.map +1 -0
- package/dist/core/config.cjs +111 -0
- package/dist/core/config.cjs.map +1 -0
- package/dist/core/config.d.ts +2 -1
- package/dist/core/config.js +95 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/default_client.cjs +143 -0
- package/dist/core/default_client.cjs.map +1 -0
- package/dist/core/default_client.d.ts +0 -1
- package/dist/core/default_client.js +120 -0
- package/dist/core/default_client.js.map +1 -0
- package/dist/core/driver.cjs +14 -0
- package/dist/core/driver.cjs.map +1 -0
- package/dist/core/driver.d.ts +0 -1
- package/dist/core/driver.js +12 -0
- package/dist/core/driver.js.map +1 -0
- package/dist/core/error_resource.cjs +9 -0
- package/dist/core/error_resource.cjs.map +1 -0
- package/dist/core/error_resource.d.ts +0 -1
- package/dist/core/error_resource.js +7 -0
- package/dist/core/error_resource.js.map +1 -0
- package/dist/core/errors.cjs +106 -0
- package/dist/core/errors.cjs.map +1 -0
- package/dist/core/errors.d.ts +0 -1
- package/dist/core/errors.js +93 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/final.cjs +98 -0
- package/dist/core/final.cjs.map +1 -0
- package/dist/core/final.d.ts +0 -1
- package/dist/core/final.js +96 -0
- package/dist/core/final.js.map +1 -0
- package/dist/core/grpc.d.ts +0 -1
- package/dist/core/http.d.ts +1 -1
- package/dist/core/ll_client.cjs +266 -0
- package/dist/core/ll_client.cjs.map +1 -0
- package/dist/core/ll_client.d.ts +0 -1
- package/dist/core/ll_client.js +264 -0
- package/dist/core/ll_client.js.map +1 -0
- package/dist/core/ll_transaction.cjs +236 -0
- package/dist/core/ll_transaction.cjs.map +1 -0
- package/dist/core/ll_transaction.d.ts +0 -1
- package/dist/core/ll_transaction.js +233 -0
- package/dist/core/ll_transaction.js.map +1 -0
- package/dist/core/stat.cjs +74 -0
- package/dist/core/stat.cjs.map +1 -0
- package/dist/core/stat.d.ts +0 -1
- package/dist/core/stat.js +70 -0
- package/dist/core/stat.js.map +1 -0
- package/dist/core/transaction.cjs +626 -0
- package/dist/core/transaction.cjs.map +1 -0
- package/dist/core/transaction.d.ts +0 -1
- package/dist/core/transaction.js +613 -0
- package/dist/core/transaction.js.map +1 -0
- package/dist/core/type_conversion.cjs +106 -0
- package/dist/core/type_conversion.cjs.map +1 -0
- package/dist/core/type_conversion.d.ts +0 -1
- package/dist/core/type_conversion.js +102 -0
- package/dist/core/type_conversion.js.map +1 -0
- package/dist/core/types.cjs +159 -0
- package/dist/core/types.cjs.map +1 -0
- package/dist/core/types.d.ts +0 -1
- package/dist/core/types.js +134 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/unauth_client.cjs +43 -0
- package/dist/core/unauth_client.cjs.map +1 -0
- package/dist/core/unauth_client.d.ts +0 -1
- package/dist/core/unauth_client.js +41 -0
- package/dist/core/unauth_client.js.map +1 -0
- package/dist/helpers/pl.cjs +124 -0
- package/dist/helpers/pl.cjs.map +1 -0
- package/dist/helpers/pl.d.ts +0 -1
- package/dist/helpers/pl.js +94 -0
- package/dist/helpers/pl.js.map +1 -0
- package/dist/helpers/poll.cjs +148 -0
- package/dist/helpers/poll.cjs.map +1 -0
- package/dist/helpers/poll.d.ts +0 -1
- package/dist/helpers/poll.js +123 -0
- package/dist/helpers/poll.js.map +1 -0
- package/dist/helpers/rich_resource_types.d.ts +1 -1
- package/dist/helpers/smart_accessors.d.ts +1 -1
- package/dist/helpers/state_helpers.d.ts +0 -1
- package/dist/helpers/tx_helpers.cjs +25 -0
- package/dist/helpers/tx_helpers.cjs.map +1 -0
- package/dist/helpers/tx_helpers.d.ts +0 -1
- package/dist/helpers/tx_helpers.js +23 -0
- package/dist/helpers/tx_helpers.js.map +1 -0
- package/dist/index.cjs +99 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.js +16 -1
- package/dist/index.js.map +1 -1
- package/dist/proto/github.com/googleapis/googleapis/google/rpc/status.cjs +71 -0
- package/dist/proto/github.com/googleapis/googleapis/google/rpc/status.cjs.map +1 -0
- package/dist/proto/github.com/googleapis/googleapis/google/rpc/status.d.ts +0 -1
- package/dist/proto/github.com/googleapis/googleapis/google/rpc/status.js +69 -0
- package/dist/proto/github.com/googleapis/googleapis/google/rpc/status.js.map +1 -0
- package/dist/proto/github.com/milaboratory/pl/controllers/shared/grpc/downloadapi/protocol.client.d.ts +3 -5
- package/dist/proto/github.com/milaboratory/pl/controllers/shared/grpc/downloadapi/protocol.d.ts +0 -1
- package/dist/proto/github.com/milaboratory/pl/controllers/shared/grpc/lsapi/protocol.client.d.ts +3 -5
- package/dist/proto/github.com/milaboratory/pl/controllers/shared/grpc/lsapi/protocol.d.ts +0 -1
- package/dist/proto/github.com/milaboratory/pl/controllers/shared/grpc/progressapi/protocol.client.d.ts +3 -5
- package/dist/proto/github.com/milaboratory/pl/controllers/shared/grpc/progressapi/protocol.d.ts +0 -1
- package/dist/proto/github.com/milaboratory/pl/controllers/shared/grpc/streamingapi/protocol.client.d.ts +3 -5
- package/dist/proto/github.com/milaboratory/pl/controllers/shared/grpc/streamingapi/protocol.d.ts +0 -1
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/api.cjs +12238 -0
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/api.cjs.map +1 -0
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/api.client.cjs +223 -0
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/api.client.cjs.map +1 -0
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/api.client.d.ts +3 -5
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/api.client.js +221 -0
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/api.client.js.map +1 -0
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/api.d.ts +0 -1
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/api.js +12086 -0
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/api.js.map +1 -0
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/api_types.cjs +1127 -0
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/api_types.cjs.map +1 -0
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/api_types.d.ts +0 -1
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/api_types.js +1113 -0
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/api_types.js.map +1 -0
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/base_types.cjs +152 -0
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/base_types.cjs.map +1 -0
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/base_types.d.ts +0 -1
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/base_types.js +149 -0
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/base_types.js.map +1 -0
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/import.d.ts +0 -1
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/resource_types.cjs +500 -0
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/resource_types.cjs.map +1 -0
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/resource_types.d.ts +0 -1
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/resource_types.js +496 -0
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/resource_types.js.map +1 -0
- package/dist/proto/google/api/http.d.ts +0 -1
- package/dist/proto/google/protobuf/any.cjs +151 -0
- package/dist/proto/google/protobuf/any.cjs.map +1 -0
- package/dist/proto/google/protobuf/any.d.ts +0 -1
- package/dist/proto/google/protobuf/any.js +149 -0
- package/dist/proto/google/protobuf/any.js.map +1 -0
- package/dist/proto/google/protobuf/descriptor.d.ts +0 -1
- package/dist/proto/google/protobuf/duration.cjs +105 -0
- package/dist/proto/google/protobuf/duration.cjs.map +1 -0
- package/dist/proto/google/protobuf/duration.d.ts +0 -1
- package/dist/proto/google/protobuf/duration.js +103 -0
- package/dist/proto/google/protobuf/duration.js.map +1 -0
- package/dist/proto/google/protobuf/empty.d.ts +0 -1
- package/dist/proto/google/protobuf/struct.d.ts +0 -1
- package/dist/proto/google/protobuf/timestamp.cjs +133 -0
- package/dist/proto/google/protobuf/timestamp.cjs.map +1 -0
- package/dist/proto/google/protobuf/timestamp.d.ts +0 -1
- package/dist/proto/google/protobuf/timestamp.js +131 -0
- package/dist/proto/google/protobuf/timestamp.js.map +1 -0
- package/dist/proto/google/protobuf/wrappers.d.ts +0 -1
- package/dist/test/test_config.cjs +149 -0
- package/dist/test/test_config.cjs.map +1 -0
- package/dist/test/test_config.d.ts +0 -1
- package/dist/test/test_config.js +123 -0
- package/dist/test/test_config.js.map +1 -0
- package/dist/util/branding.d.ts +0 -1
- package/dist/util/pl.cjs +8 -0
- package/dist/util/pl.cjs.map +1 -0
- package/dist/util/pl.d.ts +0 -1
- package/dist/util/pl.js +6 -0
- package/dist/util/pl.js.map +1 -0
- package/dist/util/util.cjs +17 -0
- package/dist/util/util.cjs.map +1 -0
- package/dist/util/util.d.ts +0 -1
- package/dist/util/util.js +15 -0
- package/dist/util/util.js.map +1 -0
- package/package.json +14 -11
- package/src/core/client.test.ts +1 -0
- package/src/core/config.test.ts +1 -0
- package/src/core/config.ts +10 -0
- package/src/core/error.test.ts +1 -0
- package/src/core/ll_client.test.ts +1 -0
- package/src/core/ll_transaction.test.ts +1 -0
- package/src/core/transaction.test.ts +1 -0
- package/src/core/types.test.ts +1 -0
- package/src/core/unauth_client.test.ts +1 -0
- package/src/helpers/rich_resource_types.test.ts +2 -0
- package/src/test/test_config.test.ts +1 -0
- package/src/util/util.test.ts +1 -0
- package/dist/core/auth.d.ts.map +0 -1
- package/dist/core/cache.d.ts.map +0 -1
- package/dist/core/client.d.ts.map +0 -1
- package/dist/core/config.d.ts.map +0 -1
- package/dist/core/default_client.d.ts.map +0 -1
- package/dist/core/driver.d.ts.map +0 -1
- package/dist/core/error_resource.d.ts.map +0 -1
- package/dist/core/errors.d.ts.map +0 -1
- package/dist/core/final.d.ts.map +0 -1
- package/dist/core/grpc.d.ts.map +0 -1
- package/dist/core/http.d.ts.map +0 -1
- package/dist/core/ll_client.d.ts.map +0 -1
- package/dist/core/ll_transaction.d.ts.map +0 -1
- package/dist/core/stat.d.ts.map +0 -1
- package/dist/core/transaction.d.ts.map +0 -1
- package/dist/core/type_conversion.d.ts.map +0 -1
- package/dist/core/types.d.ts.map +0 -1
- package/dist/core/unauth_client.d.ts.map +0 -1
- package/dist/helpers/pl.d.ts.map +0 -1
- package/dist/helpers/poll.d.ts.map +0 -1
- package/dist/helpers/rich_resource_types.d.ts.map +0 -1
- package/dist/helpers/smart_accessors.d.ts.map +0 -1
- package/dist/helpers/state_helpers.d.ts.map +0 -1
- package/dist/helpers/tx_helpers.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.mjs +0 -14530
- package/dist/index.mjs.map +0 -1
- package/dist/proto/github.com/googleapis/googleapis/google/rpc/status.d.ts.map +0 -1
- package/dist/proto/github.com/milaboratory/pl/controllers/shared/grpc/downloadapi/protocol.client.d.ts.map +0 -1
- package/dist/proto/github.com/milaboratory/pl/controllers/shared/grpc/downloadapi/protocol.d.ts.map +0 -1
- package/dist/proto/github.com/milaboratory/pl/controllers/shared/grpc/lsapi/protocol.client.d.ts.map +0 -1
- package/dist/proto/github.com/milaboratory/pl/controllers/shared/grpc/lsapi/protocol.d.ts.map +0 -1
- package/dist/proto/github.com/milaboratory/pl/controllers/shared/grpc/progressapi/protocol.client.d.ts.map +0 -1
- package/dist/proto/github.com/milaboratory/pl/controllers/shared/grpc/progressapi/protocol.d.ts.map +0 -1
- package/dist/proto/github.com/milaboratory/pl/controllers/shared/grpc/streamingapi/protocol.client.d.ts.map +0 -1
- package/dist/proto/github.com/milaboratory/pl/controllers/shared/grpc/streamingapi/protocol.d.ts.map +0 -1
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/api.client.d.ts.map +0 -1
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/api.d.ts.map +0 -1
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/api_types.d.ts.map +0 -1
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/base_types.d.ts.map +0 -1
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/import.d.ts.map +0 -1
- package/dist/proto/github.com/milaboratory/pl/plapi/plapiproto/resource_types.d.ts.map +0 -1
- package/dist/proto/google/api/http.d.ts.map +0 -1
- package/dist/proto/google/protobuf/any.d.ts.map +0 -1
- package/dist/proto/google/protobuf/descriptor.d.ts.map +0 -1
- package/dist/proto/google/protobuf/duration.d.ts.map +0 -1
- package/dist/proto/google/protobuf/empty.d.ts.map +0 -1
- package/dist/proto/google/protobuf/struct.d.ts.map +0 -1
- package/dist/proto/google/protobuf/timestamp.d.ts.map +0 -1
- package/dist/proto/google/protobuf/wrappers.d.ts.map +0 -1
- package/dist/test/test_config.d.ts.map +0 -1
- package/dist/util/branding.d.ts.map +0 -1
- package/dist/util/pl.d.ts.map +0 -1
- package/dist/util/util.d.ts.map +0 -1
package/dist/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/core/types.ts","../src/proto/google/protobuf/duration.ts","../src/proto/github.com/milaboratory/pl/plapi/plapiproto/base_types.ts","../src/proto/github.com/milaboratory/pl/plapi/plapiproto/resource_types.ts","../src/proto/google/protobuf/timestamp.ts","../src/proto/github.com/milaboratory/pl/plapi/plapiproto/api_types.ts","../src/proto/google/protobuf/any.ts","../src/proto/github.com/googleapis/googleapis/google/rpc/status.ts","../src/proto/github.com/milaboratory/pl/plapi/plapiproto/api.ts","../src/util/util.ts","../src/core/errors.ts","../src/core/type_conversion.ts","../src/core/stat.ts","../src/core/error_resource.ts","../src/core/transaction.ts","../src/helpers/pl.ts","../src/core/config.ts","../src/proto/github.com/milaboratory/pl/plapi/plapiproto/api.client.ts","../src/core/ll_transaction.ts","../src/util/pl.ts","../src/core/auth.ts","../src/core/ll_client.ts","../src/core/final.ts","../src/core/client.ts","../src/core/driver.ts","../src/core/unauth_client.ts","../src/core/default_client.ts","../src/helpers/tx_helpers.ts","../src/helpers/poll.ts","../src/test/test_config.ts"],"sourcesContent":["import { cachedDeserialize, notEmpty } from '@milaboratories/ts-helpers';\n\n// more details here: https://egghead.io/blog/using-branded-types-in-typescript\ndeclare const __resource_id_type__: unique symbol;\ntype BrandResourceId<B> = bigint & { [__resource_id_type__]: B };\n\n/** Global resource id */\nexport type ResourceId = BrandResourceId<'global'>;\n\n/** Null resource id */\nexport type NullResourceId = BrandResourceId<'null'>;\n\n/** Local resource id */\nexport type LocalResourceId = BrandResourceId<'local'>;\n\n/** Any non-null resource id */\nexport type AnyResourceId = ResourceId | LocalResourceId;\n\n/** Any resource id */\nexport type OptionalResourceId = NullResourceId | ResourceId;\n\n/** All possible resource flavours */\nexport type OptionalAnyResourceId = NullResourceId | ResourceId | LocalResourceId;\n\nexport const NullResourceId = 0n as NullResourceId;\n\nexport function isNullResourceId(resourceId: bigint): resourceId is NullResourceId {\n return resourceId === NullResourceId;\n}\n\nexport function isNotNullResourceId(resourceId: OptionalResourceId): resourceId is ResourceId {\n return resourceId !== NullResourceId;\n}\n\nexport function ensureResourceIdNotNull(resourceId: OptionalResourceId): ResourceId {\n if (!isNotNullResourceId(resourceId)) throw new Error('null resource id');\n return resourceId;\n}\n\nexport function isAnyResourceId(resourceId: bigint): resourceId is AnyResourceId {\n return resourceId !== 0n;\n}\n\n// see local / global resource logic below...\n\nexport type ResourceKind = 'Structural' | 'Value';\n\nexport type FieldType = 'Input' | 'Output' | 'Service' | 'OTW' | 'Dynamic' | 'MTW';\n\nexport type FutureFieldType = 'Output' | 'Input' | 'Service';\n\nexport type FieldStatus = 'Empty' | 'Assigned' | 'Resolved';\n\nexport interface ResourceType {\n readonly name: string;\n readonly version: string;\n}\n\nexport function resourceType(name: string, version: string): ResourceType {\n return { name, version };\n}\n\nexport function resourceTypeToString(rt: ResourceType): string {\n return `${rt.name}:${rt.version}`;\n}\n\nexport function resourceTypesEqual(type1: ResourceType, type2: ResourceType): boolean {\n return type1.name === type2.name && type1.version === type2.version;\n}\n\n/** Readonly fields here marks properties of resource that can't change according to pl's state machine. */\nexport type BasicResourceData = {\n readonly id: ResourceId;\n readonly originalResourceId: OptionalResourceId;\n\n readonly kind: ResourceKind;\n readonly type: ResourceType;\n\n readonly data?: Uint8Array;\n\n readonly error: OptionalResourceId;\n\n readonly inputsLocked: boolean;\n readonly outputsLocked: boolean;\n readonly resourceReady: boolean;\n\n /** This value is derived from resource state by the server and can be used as\n * a robust criteria to determine resource is in final state. */\n readonly final: boolean;\n};\n\nexport function extractBasicResourceData(rd: ResourceData): BasicResourceData {\n const {\n id,\n originalResourceId,\n kind,\n type,\n data,\n error,\n inputsLocked,\n outputsLocked,\n resourceReady,\n final,\n } = rd;\n return {\n id,\n originalResourceId,\n kind,\n type,\n data,\n error,\n inputsLocked,\n outputsLocked,\n resourceReady,\n final,\n };\n}\n\nexport const jsonToData = (data: unknown) => Buffer.from(JSON.stringify(data));\n\nexport const resDataToJson = (res: ResourceData) => cachedDeserialize(notEmpty(res.data));\n\nexport type ResourceData = BasicResourceData & {\n readonly fields: FieldData[];\n};\n\nexport function getField(r: ResourceData, name: string): FieldData {\n return notEmpty(r.fields.find((f) => f.name === name));\n}\n\nexport type FieldData = {\n readonly name: string;\n readonly type: FieldType;\n readonly status: FieldStatus;\n readonly value: OptionalResourceId;\n readonly error: OptionalResourceId;\n\n /** True if value the fields points to is in final state. */\n readonly valueIsFinal: boolean;\n};\n\n//\n// Local / Global ResourceId arithmetics\n//\n\n// Note: txId and other numerical values are made numbers but not bigint intentionally,\n// after implementing security model based on signed resource ids this will make\n// much more sense\n\nconst ResourceIdRootMask = 1n << 63n;\nconst ResourceIdLocalMask = 1n << 62n;\nconst NoFlagsIdMask = 0x3fffffffffffffffn;\nconst LocalResourceIdTxIdOffset = 24n;\nexport const MaxLocalId = 0xffffff;\nexport const MaxTxId = 0xffffffff;\n/** Mask valid after applying shift */\nconst TxIdMask = BigInt(MaxTxId);\nconst LocalIdMask = BigInt(MaxLocalId);\n\n// /** Basically removes embedded tx id */\n// const LocalIdCleanMask = 0xFF00000000FFFFFFn;\n\nexport function isRootResourceId(id: bigint) {\n return (id & ResourceIdRootMask) !== 0n;\n}\n\nexport function isLocalResourceId(id: bigint): id is LocalResourceId {\n return (id & ResourceIdLocalMask) !== 0n;\n}\n\nexport function createLocalResourceId(\n isRoot: boolean,\n localCounterValue: number,\n localTxId: number,\n): LocalResourceId {\n if (\n localCounterValue > MaxLocalId\n || localTxId > MaxTxId\n || localCounterValue < 0\n || localTxId <= 0\n )\n throw Error('wrong local id or tx id');\n return ((isRoot ? ResourceIdRootMask : 0n)\n | ResourceIdLocalMask\n | BigInt(localCounterValue)\n | (BigInt(localTxId) << LocalResourceIdTxIdOffset)) as LocalResourceId;\n}\n\nexport function createGlobalResourceId(isRoot: boolean, unmaskedId: bigint): ResourceId {\n return ((isRoot ? ResourceIdRootMask : 0n) | unmaskedId) as ResourceId;\n}\n\nexport function extractTxId(localResourceId: LocalResourceId): number {\n return Number((localResourceId >> LocalResourceIdTxIdOffset) & TxIdMask);\n}\n\nexport function checkLocalityOfResourceId(resourceId: AnyResourceId, expectedTxId: number): void {\n if (!isLocalResourceId(resourceId)) return;\n if (extractTxId(resourceId) !== expectedTxId)\n throw Error(\n 'local id from another transaction, globalize id before leaking it from the transaction',\n );\n}\n\nexport function resourceIdToString(resourceId: OptionalAnyResourceId): string {\n if (isNullResourceId(resourceId)) return 'XX:0x0';\n if (isLocalResourceId(resourceId))\n return (\n (isRootResourceId(resourceId) ? 'R' : 'N')\n + 'L:0x'\n + (LocalIdMask & resourceId).toString(16)\n + '[0x'\n + extractTxId(resourceId).toString(16)\n + ']'\n );\n else\n return (\n (isRootResourceId(resourceId) ? 'R' : 'N')\n + 'G:0x'\n + (NoFlagsIdMask & resourceId).toString(16)\n );\n}\n\nconst resourceIdRegexp\n = /^(?:(?<xx>XX)|(?<rn>[XRN])(?<lg>[XLG])):0x(?<rid>[0-9a-fA-F]+)(?:\\[0x(?<txid>[0-9a-fA-F]+)])?$/;\n\nexport function resourceIdFromString(str: string): OptionalAnyResourceId | undefined {\n const match = str.match(resourceIdRegexp);\n if (match === null) return undefined;\n const { xx, rn, lg, rid, txid } = match.groups!;\n if (xx) return NullResourceId;\n if (lg === 'L')\n return createLocalResourceId(rn === 'R', Number.parseInt(rid, 16), Number.parseInt(txid, 16));\n else return createGlobalResourceId(rn === 'R', BigInt('0x' + rid));\n}\n\n/** Converts bigint to global resource id */\nexport function bigintToResourceId(resourceId: bigint): ResourceId {\n if (isLocalResourceId(resourceId))\n throw new Error(`Local resource id: ${resourceIdToString(resourceId)}`);\n if (isNullResourceId(resourceId)) throw new Error(`Null resource id.`);\n return resourceId as ResourceId;\n}\n\nexport function stringifyWithResourceId(object: unknown): string {\n return JSON.stringify(object, (key, value) =>\n typeof value === 'bigint' ? resourceIdToString(value as OptionalAnyResourceId) : value,\n );\n}\n","// @generated by protobuf-ts 2.11.0 with parameter client_generic,optimize_speed,generate_dependencies,force_server_none\n// @generated from protobuf file \"google/protobuf/duration.proto\" (package \"google.protobuf\", syntax proto3)\n// tslint:disable\n//\n// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc. All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\nimport type { BinaryWriteOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryWriter } from \"@protobuf-ts/runtime\";\nimport { WireType } from \"@protobuf-ts/runtime\";\nimport type { BinaryReadOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryReader } from \"@protobuf-ts/runtime\";\nimport { UnknownFieldHandler } from \"@protobuf-ts/runtime\";\nimport type { PartialMessage } from \"@protobuf-ts/runtime\";\nimport { reflectionMergePartial } from \"@protobuf-ts/runtime\";\nimport { typeofJsonValue } from \"@protobuf-ts/runtime\";\nimport type { JsonValue } from \"@protobuf-ts/runtime\";\nimport type { JsonReadOptions } from \"@protobuf-ts/runtime\";\nimport type { JsonWriteOptions } from \"@protobuf-ts/runtime\";\nimport { PbLong } from \"@protobuf-ts/runtime\";\nimport { MessageType } from \"@protobuf-ts/runtime\";\n/**\n * A Duration represents a signed, fixed-length span of time represented\n * as a count of seconds and fractions of seconds at nanosecond\n * resolution. It is independent of any calendar and concepts like \"day\"\n * or \"month\". It is related to Timestamp in that the difference between\n * two Timestamp values is a Duration and it can be added or subtracted\n * from a Timestamp. Range is approximately +-10,000 years.\n *\n * # Examples\n *\n * Example 1: Compute Duration from two Timestamps in pseudo code.\n *\n * Timestamp start = ...;\n * Timestamp end = ...;\n * Duration duration = ...;\n *\n * duration.seconds = end.seconds - start.seconds;\n * duration.nanos = end.nanos - start.nanos;\n *\n * if (duration.seconds < 0 && duration.nanos > 0) {\n * duration.seconds += 1;\n * duration.nanos -= 1000000000;\n * } else if (duration.seconds > 0 && duration.nanos < 0) {\n * duration.seconds -= 1;\n * duration.nanos += 1000000000;\n * }\n *\n * Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.\n *\n * Timestamp start = ...;\n * Duration duration = ...;\n * Timestamp end = ...;\n *\n * end.seconds = start.seconds + duration.seconds;\n * end.nanos = start.nanos + duration.nanos;\n *\n * if (end.nanos < 0) {\n * end.seconds -= 1;\n * end.nanos += 1000000000;\n * } else if (end.nanos >= 1000000000) {\n * end.seconds += 1;\n * end.nanos -= 1000000000;\n * }\n *\n * Example 3: Compute Duration from datetime.timedelta in Python.\n *\n * td = datetime.timedelta(days=3, minutes=10)\n * duration = Duration()\n * duration.FromTimedelta(td)\n *\n * # JSON Mapping\n *\n * In JSON format, the Duration type is encoded as a string rather than an\n * object, where the string ends in the suffix \"s\" (indicating seconds) and\n * is preceded by the number of seconds, with nanoseconds expressed as\n * fractional seconds. For example, 3 seconds with 0 nanoseconds should be\n * encoded in JSON format as \"3s\", while 3 seconds and 1 nanosecond should\n * be expressed in JSON format as \"3.000000001s\", and 3 seconds and 1\n * microsecond should be expressed in JSON format as \"3.000001s\".\n *\n *\n * @generated from protobuf message google.protobuf.Duration\n */\nexport interface Duration {\n /**\n * Signed seconds of the span of time. Must be from -315,576,000,000\n * to +315,576,000,000 inclusive. Note: these bounds are computed from:\n * 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n *\n * @generated from protobuf field: int64 seconds = 1\n */\n seconds: bigint;\n /**\n * Signed fractions of a second at nanosecond resolution of the span\n * of time. Durations less than one second are represented with a 0\n * `seconds` field and a positive or negative `nanos` field. For durations\n * of one second or more, a non-zero value for the `nanos` field must be\n * of the same sign as the `seconds` field. Must be from -999,999,999\n * to +999,999,999 inclusive.\n *\n * @generated from protobuf field: int32 nanos = 2\n */\n nanos: number;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Duration$Type extends MessageType<Duration> {\n constructor() {\n super(\"google.protobuf.Duration\", [\n { no: 1, name: \"seconds\", kind: \"scalar\", T: 3 /*ScalarType.INT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"nanos\", kind: \"scalar\", T: 5 /*ScalarType.INT32*/ }\n ]);\n }\n /**\n * Encode `Duration` to JSON string like \"3.000001s\".\n */\n internalJsonWrite(message: Duration, options: JsonWriteOptions): JsonValue {\n let s = PbLong.from(message.seconds).toNumber();\n if (s > 315576000000 || s < -315576000000)\n throw new Error(\"Duration value out of range.\");\n let text = message.seconds.toString();\n if (s === 0 && message.nanos < 0)\n text = \"-\" + text;\n if (message.nanos !== 0) {\n let nanosStr = Math.abs(message.nanos).toString();\n nanosStr = \"0\".repeat(9 - nanosStr.length) + nanosStr;\n if (nanosStr.substring(3) === \"000000\")\n nanosStr = nanosStr.substring(0, 3);\n else if (nanosStr.substring(6) === \"000\")\n nanosStr = nanosStr.substring(0, 6);\n text += \".\" + nanosStr;\n }\n return text + \"s\";\n }\n /**\n * Decode `Duration` from JSON string like \"3.000001s\"\n */\n internalJsonRead(json: JsonValue, options: JsonReadOptions, target?: Duration): Duration {\n if (typeof json !== \"string\")\n throw new Error(\"Unable to parse Duration from JSON \" + typeofJsonValue(json) + \". Expected string.\");\n let match = json.match(/^(-?)([0-9]+)(?:\\.([0-9]+))?s/);\n if (match === null)\n throw new Error(\"Unable to parse Duration from JSON string. Invalid format.\");\n if (!target)\n target = this.create();\n let [, sign, secs, nanos] = match;\n let longSeconds = PbLong.from(sign + secs);\n if (longSeconds.toNumber() > 315576000000 || longSeconds.toNumber() < -315576000000)\n throw new Error(\"Unable to parse Duration from JSON string. Value out of range.\");\n target.seconds = longSeconds.toBigInt();\n if (typeof nanos == \"string\") {\n let nanosStr = sign + nanos + \"0\".repeat(9 - nanos.length);\n target.nanos = parseInt(nanosStr);\n }\n return target;\n }\n create(value?: PartialMessage<Duration>): Duration {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.seconds = 0n;\n message.nanos = 0;\n if (value !== undefined)\n reflectionMergePartial<Duration>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Duration): Duration {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* int64 seconds */ 1:\n message.seconds = reader.int64().toBigInt();\n break;\n case /* int32 nanos */ 2:\n message.nanos = reader.int32();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: Duration, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* int64 seconds = 1; */\n if (message.seconds !== 0n)\n writer.tag(1, WireType.Varint).int64(message.seconds);\n /* int32 nanos = 2; */\n if (message.nanos !== 0)\n writer.tag(2, WireType.Varint).int32(message.nanos);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message google.protobuf.Duration\n */\nexport const Duration = new Duration$Type();\n","// @generated by protobuf-ts 2.11.0 with parameter client_generic,optimize_speed,generate_dependencies,force_server_none\n// @generated from protobuf file \"github.com/milaboratory/pl/plapi/plapiproto/base_types.proto\" (package \"MiLaboratories.PL.Base\", syntax proto3)\n// tslint:disable\nimport type { BinaryWriteOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryWriter } from \"@protobuf-ts/runtime\";\nimport { WireType } from \"@protobuf-ts/runtime\";\nimport type { BinaryReadOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryReader } from \"@protobuf-ts/runtime\";\nimport { UnknownFieldHandler } from \"@protobuf-ts/runtime\";\nimport type { PartialMessage } from \"@protobuf-ts/runtime\";\nimport { reflectionMergePartial } from \"@protobuf-ts/runtime\";\nimport { MessageType } from \"@protobuf-ts/runtime\";\n/**\n * @generated from protobuf message MiLaboratories.PL.Base.ResourceType\n */\nexport interface ResourceType {\n /**\n * @generated from protobuf field: string name = 1\n */\n name: string;\n /**\n * @generated from protobuf field: string version = 2\n */\n version: string;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.Base.FieldRef\n */\nexport interface FieldRef {\n /**\n * @generated from protobuf field: uint64 resource_id = 2\n */\n resourceId: bigint;\n /**\n * @generated from protobuf field: string field_name = 3\n */\n fieldName: string;\n}\n/**\n * @generated from protobuf enum MiLaboratories.PL.Base.FieldType\n */\nexport enum FieldType {\n /**\n * @generated from protobuf enum value: INVALID = 0;\n */\n INVALID = 0,\n /**\n * @generated from protobuf enum value: INPUT = 1;\n */\n INPUT = 1,\n /**\n * @generated from protobuf enum value: OUTPUT = 2;\n */\n OUTPUT = 2,\n /**\n * @generated from protobuf enum value: SERVICE = 6;\n */\n SERVICE = 6,\n /**\n * @generated from protobuf enum value: ONE_TIME_WRITABLE = 4;\n */\n ONE_TIME_WRITABLE = 4,\n /**\n * @generated from protobuf enum value: DYNAMIC = 3;\n */\n DYNAMIC = 3,\n /**\n * @generated from protobuf enum value: MULTIPLE_TIMES_WRITABLE = 5;\n */\n MULTIPLE_TIMES_WRITABLE = 5\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceType$Type extends MessageType<ResourceType> {\n constructor() {\n super(\"MiLaboratories.PL.Base.ResourceType\", [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"version\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceType>): ResourceType {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.name = \"\";\n message.version = \"\";\n if (value !== undefined)\n reflectionMergePartial<ResourceType>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceType): ResourceType {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string name */ 1:\n message.name = reader.string();\n break;\n case /* string version */ 2:\n message.version = reader.string();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceType, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string name = 1; */\n if (message.name !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.name);\n /* string version = 2; */\n if (message.version !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.version);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.Base.ResourceType\n */\nexport const ResourceType = new ResourceType$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldRef$Type extends MessageType<FieldRef> {\n constructor() {\n super(\"MiLaboratories.PL.Base.FieldRef\", [\n { no: 2, name: \"resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 3, name: \"field_name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<FieldRef>): FieldRef {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.resourceId = 0n;\n message.fieldName = \"\";\n if (value !== undefined)\n reflectionMergePartial<FieldRef>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FieldRef): FieldRef {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 resource_id */ 2:\n message.resourceId = reader.uint64().toBigInt();\n break;\n case /* string field_name */ 3:\n message.fieldName = reader.string();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: FieldRef, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 resource_id = 2; */\n if (message.resourceId !== 0n)\n writer.tag(2, WireType.Varint).uint64(message.resourceId);\n /* string field_name = 3; */\n if (message.fieldName !== \"\")\n writer.tag(3, WireType.LengthDelimited).string(message.fieldName);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.Base.FieldRef\n */\nexport const FieldRef = new FieldRef$Type();\n","// @generated by protobuf-ts 2.11.0 with parameter client_generic,optimize_speed,generate_dependencies,force_server_none\n// @generated from protobuf file \"github.com/milaboratory/pl/plapi/plapiproto/resource_types.proto\" (package \"MiLaboratories.PL.RTypes\", syntax proto3)\n// tslint:disable\nimport type { BinaryWriteOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryWriter } from \"@protobuf-ts/runtime\";\nimport { WireType } from \"@protobuf-ts/runtime\";\nimport type { BinaryReadOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryReader } from \"@protobuf-ts/runtime\";\nimport { UnknownFieldHandler } from \"@protobuf-ts/runtime\";\nimport type { PartialMessage } from \"@protobuf-ts/runtime\";\nimport { reflectionMergePartial } from \"@protobuf-ts/runtime\";\nimport { MessageType } from \"@protobuf-ts/runtime\";\nimport { ResourceType } from \"./base_types\";\n/**\n * @generated from protobuf message MiLaboratories.PL.RTypes.Number\n */\nexport interface Number$ {\n /**\n * @generated from protobuf oneof: value\n */\n value: {\n oneofKind: \"int32\";\n /**\n * @generated from protobuf field: int32 int32 = 1\n */\n int32: number;\n } | {\n oneofKind: \"uint32\";\n /**\n * @generated from protobuf field: uint32 uint32 = 2\n */\n uint32: number;\n } | {\n oneofKind: \"int64\";\n /**\n * @generated from protobuf field: int64 int64 = 3\n */\n int64: bigint;\n } | {\n oneofKind: \"uint64\";\n /**\n * @generated from protobuf field: uint64 uint64 = 4\n */\n uint64: bigint;\n } | {\n oneofKind: \"float\";\n /**\n * @generated from protobuf field: float float = 5\n */\n float: number;\n } | {\n oneofKind: \"double\";\n /**\n * @generated from protobuf field: double double = 6\n */\n double: number;\n } | {\n oneofKind: undefined;\n };\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.RTypes.ControllerSettings\n */\nexport interface ControllerSettings {\n /**\n * @generated from protobuf field: string type = 1\n */\n type: string;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.RTypes.SubscriptionSettings\n */\nexport interface SubscriptionSettings {\n /**\n * @generated from protobuf field: bool blocking = 1\n */\n blocking: boolean;\n /**\n * FIXME: drop this hack once we allow Data in Structural resources\n *\n * @generated from protobuf field: uint64 randomizer = 2\n */\n randomizer: bigint; // dirty hack that makes subscription settings resources unique\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.RTypes.NotificationFilter\n */\nexport interface NotificationFilter {\n /**\n * @generated from protobuf oneof: resource_filter\n */\n resourceFilter: {\n oneofKind: \"resourceType\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.Base.ResourceType resource_type = 1\n */\n resourceType: ResourceType;\n } | {\n oneofKind: \"resourceId\";\n /**\n * @generated from protobuf field: uint64 resource_id = 7\n */\n resourceId: bigint;\n } | {\n oneofKind: undefined;\n };\n /**\n * @generated from protobuf field: MiLaboratories.PL.RTypes.NotificationFilter.EventFilter event_filter = 8\n */\n eventFilter?: NotificationFilter_EventFilter;\n /**\n * @generated from protobuf field: MiLaboratories.PL.RTypes.NotificationFilter.Payload payload = 9\n */\n payload?: NotificationFilter_Payload;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.RTypes.NotificationFilter.EventFilter\n */\nexport interface NotificationFilter_EventFilter {\n /**\n * @generated from protobuf field: optional bool all = 1\n */\n all?: boolean;\n // \n // Resource events\n // \n\n /**\n * @generated from protobuf field: optional bool resource_created = 2\n */\n resourceCreated?: boolean;\n /**\n * @generated from protobuf field: optional bool resource_deleted = 3\n */\n resourceDeleted?: boolean;\n /**\n * @generated from protobuf field: optional bool resource_ready = 5\n */\n resourceReady?: boolean;\n /**\n * @generated from protobuf field: optional bool resource_duplicate = 6\n */\n resourceDuplicate?: boolean;\n /**\n * @generated from protobuf field: optional bool resource_error = 16\n */\n resourceError?: boolean;\n /**\n *\n * Field events\n *\n *\n * @generated from protobuf field: optional bool inputs_locked = 13\n */\n inputsLocked?: boolean;\n /**\n * @generated from protobuf field: optional bool outputs_locked = 14\n */\n outputsLocked?: boolean;\n /**\n * @generated from protobuf field: optional bool field_created = 12\n */\n fieldCreated?: boolean;\n /**\n * @generated from protobuf field: optional bool field_got_error = 17\n */\n fieldGotError?: boolean;\n /**\n * @generated from protobuf field: optional bool input_set = 7\n */\n inputSet?: boolean;\n /**\n * @generated from protobuf field: optional bool all_inputs_set = 8\n */\n allInputsSet?: boolean;\n /**\n * @generated from protobuf field: optional bool output_set = 9\n */\n outputSet?: boolean;\n /**\n * @generated from protobuf field: optional bool all_outputs_set = 10\n */\n allOutputsSet?: boolean;\n /**\n * @generated from protobuf field: optional bool generic_otw_set = 15\n */\n genericOtwSet?: boolean;\n /**\n * @generated from protobuf field: optional bool dynamic_changed = 11\n */\n dynamicChanged?: boolean;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.RTypes.NotificationFilter.Payload\n */\nexport interface NotificationFilter_Payload {\n /**\n * @generated from protobuf field: map<string, bytes> values = 1\n */\n values: {\n [key: string]: Uint8Array;\n };\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Number$$Type extends MessageType<Number$> {\n constructor() {\n super(\"MiLaboratories.PL.RTypes.Number\", [\n { no: 1, name: \"int32\", kind: \"scalar\", oneof: \"value\", T: 5 /*ScalarType.INT32*/ },\n { no: 2, name: \"uint32\", kind: \"scalar\", oneof: \"value\", T: 13 /*ScalarType.UINT32*/ },\n { no: 3, name: \"int64\", kind: \"scalar\", oneof: \"value\", T: 3 /*ScalarType.INT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 4, name: \"uint64\", kind: \"scalar\", oneof: \"value\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 5, name: \"float\", kind: \"scalar\", oneof: \"value\", T: 2 /*ScalarType.FLOAT*/ },\n { no: 6, name: \"double\", kind: \"scalar\", oneof: \"value\", T: 1 /*ScalarType.DOUBLE*/ }\n ]);\n }\n create(value?: PartialMessage<Number$>): Number$ {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.value = { oneofKind: undefined };\n if (value !== undefined)\n reflectionMergePartial<Number$>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Number$): Number$ {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* int32 int32 */ 1:\n message.value = {\n oneofKind: \"int32\",\n int32: reader.int32()\n };\n break;\n case /* uint32 uint32 */ 2:\n message.value = {\n oneofKind: \"uint32\",\n uint32: reader.uint32()\n };\n break;\n case /* int64 int64 */ 3:\n message.value = {\n oneofKind: \"int64\",\n int64: reader.int64().toBigInt()\n };\n break;\n case /* uint64 uint64 */ 4:\n message.value = {\n oneofKind: \"uint64\",\n uint64: reader.uint64().toBigInt()\n };\n break;\n case /* float float */ 5:\n message.value = {\n oneofKind: \"float\",\n float: reader.float()\n };\n break;\n case /* double double */ 6:\n message.value = {\n oneofKind: \"double\",\n double: reader.double()\n };\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: Number$, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* int32 int32 = 1; */\n if (message.value.oneofKind === \"int32\")\n writer.tag(1, WireType.Varint).int32(message.value.int32);\n /* uint32 uint32 = 2; */\n if (message.value.oneofKind === \"uint32\")\n writer.tag(2, WireType.Varint).uint32(message.value.uint32);\n /* int64 int64 = 3; */\n if (message.value.oneofKind === \"int64\")\n writer.tag(3, WireType.Varint).int64(message.value.int64);\n /* uint64 uint64 = 4; */\n if (message.value.oneofKind === \"uint64\")\n writer.tag(4, WireType.Varint).uint64(message.value.uint64);\n /* float float = 5; */\n if (message.value.oneofKind === \"float\")\n writer.tag(5, WireType.Bit32).float(message.value.float);\n /* double double = 6; */\n if (message.value.oneofKind === \"double\")\n writer.tag(6, WireType.Bit64).double(message.value.double);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.RTypes.Number\n */\nexport const Number$ = new Number$$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerSettings$Type extends MessageType<ControllerSettings> {\n constructor() {\n super(\"MiLaboratories.PL.RTypes.ControllerSettings\", [\n { no: 1, name: \"type\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<ControllerSettings>): ControllerSettings {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.type = \"\";\n if (value !== undefined)\n reflectionMergePartial<ControllerSettings>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerSettings): ControllerSettings {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string type */ 1:\n message.type = reader.string();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerSettings, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string type = 1; */\n if (message.type !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.type);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.RTypes.ControllerSettings\n */\nexport const ControllerSettings = new ControllerSettings$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SubscriptionSettings$Type extends MessageType<SubscriptionSettings> {\n constructor() {\n super(\"MiLaboratories.PL.RTypes.SubscriptionSettings\", [\n { no: 1, name: \"blocking\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n { no: 2, name: \"randomizer\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<SubscriptionSettings>): SubscriptionSettings {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.blocking = false;\n message.randomizer = 0n;\n if (value !== undefined)\n reflectionMergePartial<SubscriptionSettings>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SubscriptionSettings): SubscriptionSettings {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* bool blocking */ 1:\n message.blocking = reader.bool();\n break;\n case /* uint64 randomizer */ 2:\n message.randomizer = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: SubscriptionSettings, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* bool blocking = 1; */\n if (message.blocking !== false)\n writer.tag(1, WireType.Varint).bool(message.blocking);\n /* uint64 randomizer = 2; */\n if (message.randomizer !== 0n)\n writer.tag(2, WireType.Varint).uint64(message.randomizer);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.RTypes.SubscriptionSettings\n */\nexport const SubscriptionSettings = new SubscriptionSettings$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass NotificationFilter$Type extends MessageType<NotificationFilter> {\n constructor() {\n super(\"MiLaboratories.PL.RTypes.NotificationFilter\", [\n { no: 1, name: \"resource_type\", kind: \"message\", oneof: \"resourceFilter\", T: () => ResourceType },\n { no: 7, name: \"resource_id\", kind: \"scalar\", oneof: \"resourceFilter\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 8, name: \"event_filter\", kind: \"message\", T: () => NotificationFilter_EventFilter },\n { no: 9, name: \"payload\", kind: \"message\", T: () => NotificationFilter_Payload }\n ]);\n }\n create(value?: PartialMessage<NotificationFilter>): NotificationFilter {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.resourceFilter = { oneofKind: undefined };\n if (value !== undefined)\n reflectionMergePartial<NotificationFilter>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NotificationFilter): NotificationFilter {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* MiLaboratories.PL.Base.ResourceType resource_type */ 1:\n message.resourceFilter = {\n oneofKind: \"resourceType\",\n resourceType: ResourceType.internalBinaryRead(reader, reader.uint32(), options, (message.resourceFilter as any).resourceType)\n };\n break;\n case /* uint64 resource_id */ 7:\n message.resourceFilter = {\n oneofKind: \"resourceId\",\n resourceId: reader.uint64().toBigInt()\n };\n break;\n case /* MiLaboratories.PL.RTypes.NotificationFilter.EventFilter event_filter */ 8:\n message.eventFilter = NotificationFilter_EventFilter.internalBinaryRead(reader, reader.uint32(), options, message.eventFilter);\n break;\n case /* MiLaboratories.PL.RTypes.NotificationFilter.Payload payload */ 9:\n message.payload = NotificationFilter_Payload.internalBinaryRead(reader, reader.uint32(), options, message.payload);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: NotificationFilter, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* MiLaboratories.PL.Base.ResourceType resource_type = 1; */\n if (message.resourceFilter.oneofKind === \"resourceType\")\n ResourceType.internalBinaryWrite(message.resourceFilter.resourceType, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* uint64 resource_id = 7; */\n if (message.resourceFilter.oneofKind === \"resourceId\")\n writer.tag(7, WireType.Varint).uint64(message.resourceFilter.resourceId);\n /* MiLaboratories.PL.RTypes.NotificationFilter.EventFilter event_filter = 8; */\n if (message.eventFilter)\n NotificationFilter_EventFilter.internalBinaryWrite(message.eventFilter, writer.tag(8, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.RTypes.NotificationFilter.Payload payload = 9; */\n if (message.payload)\n NotificationFilter_Payload.internalBinaryWrite(message.payload, writer.tag(9, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.RTypes.NotificationFilter\n */\nexport const NotificationFilter = new NotificationFilter$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass NotificationFilter_EventFilter$Type extends MessageType<NotificationFilter_EventFilter> {\n constructor() {\n super(\"MiLaboratories.PL.RTypes.NotificationFilter.EventFilter\", [\n { no: 1, name: \"all\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ },\n { no: 2, name: \"resource_created\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ },\n { no: 3, name: \"resource_deleted\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ },\n { no: 5, name: \"resource_ready\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ },\n { no: 6, name: \"resource_duplicate\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ },\n { no: 16, name: \"resource_error\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ },\n { no: 13, name: \"inputs_locked\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ },\n { no: 14, name: \"outputs_locked\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ },\n { no: 12, name: \"field_created\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ },\n { no: 17, name: \"field_got_error\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ },\n { no: 7, name: \"input_set\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ },\n { no: 8, name: \"all_inputs_set\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ },\n { no: 9, name: \"output_set\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ },\n { no: 10, name: \"all_outputs_set\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ },\n { no: 15, name: \"generic_otw_set\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ },\n { no: 11, name: \"dynamic_changed\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ }\n ]);\n }\n create(value?: PartialMessage<NotificationFilter_EventFilter>): NotificationFilter_EventFilter {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<NotificationFilter_EventFilter>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NotificationFilter_EventFilter): NotificationFilter_EventFilter {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* optional bool all */ 1:\n message.all = reader.bool();\n break;\n case /* optional bool resource_created */ 2:\n message.resourceCreated = reader.bool();\n break;\n case /* optional bool resource_deleted */ 3:\n message.resourceDeleted = reader.bool();\n break;\n case /* optional bool resource_ready */ 5:\n message.resourceReady = reader.bool();\n break;\n case /* optional bool resource_duplicate */ 6:\n message.resourceDuplicate = reader.bool();\n break;\n case /* optional bool resource_error */ 16:\n message.resourceError = reader.bool();\n break;\n case /* optional bool inputs_locked */ 13:\n message.inputsLocked = reader.bool();\n break;\n case /* optional bool outputs_locked */ 14:\n message.outputsLocked = reader.bool();\n break;\n case /* optional bool field_created */ 12:\n message.fieldCreated = reader.bool();\n break;\n case /* optional bool field_got_error */ 17:\n message.fieldGotError = reader.bool();\n break;\n case /* optional bool input_set */ 7:\n message.inputSet = reader.bool();\n break;\n case /* optional bool all_inputs_set */ 8:\n message.allInputsSet = reader.bool();\n break;\n case /* optional bool output_set */ 9:\n message.outputSet = reader.bool();\n break;\n case /* optional bool all_outputs_set */ 10:\n message.allOutputsSet = reader.bool();\n break;\n case /* optional bool generic_otw_set */ 15:\n message.genericOtwSet = reader.bool();\n break;\n case /* optional bool dynamic_changed */ 11:\n message.dynamicChanged = reader.bool();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: NotificationFilter_EventFilter, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* optional bool all = 1; */\n if (message.all !== undefined)\n writer.tag(1, WireType.Varint).bool(message.all);\n /* optional bool resource_created = 2; */\n if (message.resourceCreated !== undefined)\n writer.tag(2, WireType.Varint).bool(message.resourceCreated);\n /* optional bool resource_deleted = 3; */\n if (message.resourceDeleted !== undefined)\n writer.tag(3, WireType.Varint).bool(message.resourceDeleted);\n /* optional bool resource_ready = 5; */\n if (message.resourceReady !== undefined)\n writer.tag(5, WireType.Varint).bool(message.resourceReady);\n /* optional bool resource_duplicate = 6; */\n if (message.resourceDuplicate !== undefined)\n writer.tag(6, WireType.Varint).bool(message.resourceDuplicate);\n /* optional bool input_set = 7; */\n if (message.inputSet !== undefined)\n writer.tag(7, WireType.Varint).bool(message.inputSet);\n /* optional bool all_inputs_set = 8; */\n if (message.allInputsSet !== undefined)\n writer.tag(8, WireType.Varint).bool(message.allInputsSet);\n /* optional bool output_set = 9; */\n if (message.outputSet !== undefined)\n writer.tag(9, WireType.Varint).bool(message.outputSet);\n /* optional bool all_outputs_set = 10; */\n if (message.allOutputsSet !== undefined)\n writer.tag(10, WireType.Varint).bool(message.allOutputsSet);\n /* optional bool dynamic_changed = 11; */\n if (message.dynamicChanged !== undefined)\n writer.tag(11, WireType.Varint).bool(message.dynamicChanged);\n /* optional bool field_created = 12; */\n if (message.fieldCreated !== undefined)\n writer.tag(12, WireType.Varint).bool(message.fieldCreated);\n /* optional bool inputs_locked = 13; */\n if (message.inputsLocked !== undefined)\n writer.tag(13, WireType.Varint).bool(message.inputsLocked);\n /* optional bool outputs_locked = 14; */\n if (message.outputsLocked !== undefined)\n writer.tag(14, WireType.Varint).bool(message.outputsLocked);\n /* optional bool generic_otw_set = 15; */\n if (message.genericOtwSet !== undefined)\n writer.tag(15, WireType.Varint).bool(message.genericOtwSet);\n /* optional bool resource_error = 16; */\n if (message.resourceError !== undefined)\n writer.tag(16, WireType.Varint).bool(message.resourceError);\n /* optional bool field_got_error = 17; */\n if (message.fieldGotError !== undefined)\n writer.tag(17, WireType.Varint).bool(message.fieldGotError);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.RTypes.NotificationFilter.EventFilter\n */\nexport const NotificationFilter_EventFilter = new NotificationFilter_EventFilter$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass NotificationFilter_Payload$Type extends MessageType<NotificationFilter_Payload> {\n constructor() {\n super(\"MiLaboratories.PL.RTypes.NotificationFilter.Payload\", [\n { no: 1, name: \"values\", kind: \"map\", K: 9 /*ScalarType.STRING*/, V: { kind: \"scalar\", T: 12 /*ScalarType.BYTES*/ } }\n ]);\n }\n create(value?: PartialMessage<NotificationFilter_Payload>): NotificationFilter_Payload {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.values = {};\n if (value !== undefined)\n reflectionMergePartial<NotificationFilter_Payload>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NotificationFilter_Payload): NotificationFilter_Payload {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* map<string, bytes> values */ 1:\n this.binaryReadMap1(message.values, reader, options);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n private binaryReadMap1(map: NotificationFilter_Payload[\"values\"], reader: IBinaryReader, options: BinaryReadOptions): void {\n let len = reader.uint32(), end = reader.pos + len, key: keyof NotificationFilter_Payload[\"values\"] | undefined, val: NotificationFilter_Payload[\"values\"][any] | undefined;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case 1:\n key = reader.string();\n break;\n case 2:\n val = reader.bytes();\n break;\n default: throw new globalThis.Error(\"unknown map entry field for MiLaboratories.PL.RTypes.NotificationFilter.Payload.values\");\n }\n }\n map[key ?? \"\"] = val ?? new Uint8Array(0);\n }\n internalBinaryWrite(message: NotificationFilter_Payload, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* map<string, bytes> values = 1; */\n for (let k of globalThis.Object.keys(message.values))\n writer.tag(1, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k).tag(2, WireType.LengthDelimited).bytes(message.values[k]).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.RTypes.NotificationFilter.Payload\n */\nexport const NotificationFilter_Payload = new NotificationFilter_Payload$Type();\n","// @generated by protobuf-ts 2.11.0 with parameter client_generic,optimize_speed,generate_dependencies,force_server_none\n// @generated from protobuf file \"google/protobuf/timestamp.proto\" (package \"google.protobuf\", syntax proto3)\n// tslint:disable\n//\n// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc. All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\nimport type { BinaryWriteOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryWriter } from \"@protobuf-ts/runtime\";\nimport { WireType } from \"@protobuf-ts/runtime\";\nimport type { BinaryReadOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryReader } from \"@protobuf-ts/runtime\";\nimport { UnknownFieldHandler } from \"@protobuf-ts/runtime\";\nimport type { PartialMessage } from \"@protobuf-ts/runtime\";\nimport { reflectionMergePartial } from \"@protobuf-ts/runtime\";\nimport { typeofJsonValue } from \"@protobuf-ts/runtime\";\nimport type { JsonValue } from \"@protobuf-ts/runtime\";\nimport type { JsonReadOptions } from \"@protobuf-ts/runtime\";\nimport type { JsonWriteOptions } from \"@protobuf-ts/runtime\";\nimport { PbLong } from \"@protobuf-ts/runtime\";\nimport { MessageType } from \"@protobuf-ts/runtime\";\n/**\n * A Timestamp represents a point in time independent of any time zone or local\n * calendar, encoded as a count of seconds and fractions of seconds at\n * nanosecond resolution. The count is relative to an epoch at UTC midnight on\n * January 1, 1970, in the proleptic Gregorian calendar which extends the\n * Gregorian calendar backwards to year one.\n *\n * All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n * second table is needed for interpretation, using a [24-hour linear\n * smear](https://developers.google.com/time/smear).\n *\n * The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n * restricting to that range, we ensure that we can convert to and from [RFC\n * 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n *\n * # Examples\n *\n * Example 1: Compute Timestamp from POSIX `time()`.\n *\n * Timestamp timestamp;\n * timestamp.set_seconds(time(NULL));\n * timestamp.set_nanos(0);\n *\n * Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n *\n * struct timeval tv;\n * gettimeofday(&tv, NULL);\n *\n * Timestamp timestamp;\n * timestamp.set_seconds(tv.tv_sec);\n * timestamp.set_nanos(tv.tv_usec * 1000);\n *\n * Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n *\n * FILETIME ft;\n * GetSystemTimeAsFileTime(&ft);\n * UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;\n *\n * // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n * // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n * Timestamp timestamp;\n * timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n * timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n *\n * Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n *\n * long millis = System.currentTimeMillis();\n *\n * Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n * .setNanos((int) ((millis % 1000) * 1000000)).build();\n *\n * Example 5: Compute Timestamp from Java `Instant.now()`.\n *\n * Instant now = Instant.now();\n *\n * Timestamp timestamp =\n * Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n * .setNanos(now.getNano()).build();\n *\n * Example 6: Compute Timestamp from current time in Python.\n *\n * timestamp = Timestamp()\n * timestamp.GetCurrentTime()\n *\n * # JSON Mapping\n *\n * In JSON format, the Timestamp type is encoded as a string in the\n * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n * format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n * where {year} is always expressed using four digits while {month}, {day},\n * {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n * seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n * are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n * is required. A proto3 JSON serializer should always use UTC (as indicated by\n * \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n * able to accept both UTC and other timezones (as indicated by an offset).\n *\n * For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n * 01:30 UTC on January 15, 2017.\n *\n * In JavaScript, one can convert a Date object to this format using the\n * standard\n * [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n * method. In Python, a standard `datetime.datetime` object can be converted\n * to this format using\n * [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n * the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n * the Joda Time's [`ISODateTimeFormat.dateTime()`](\n * http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n * ) to obtain a formatter capable of generating timestamps in this format.\n *\n *\n * @generated from protobuf message google.protobuf.Timestamp\n */\nexport interface Timestamp {\n /**\n * Represents seconds of UTC time since Unix epoch\n * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n * 9999-12-31T23:59:59Z inclusive.\n *\n * @generated from protobuf field: int64 seconds = 1\n */\n seconds: bigint;\n /**\n * Non-negative fractions of a second at nanosecond resolution. Negative\n * second values with fractions must still have non-negative nanos values\n * that count forward in time. Must be from 0 to 999,999,999\n * inclusive.\n *\n * @generated from protobuf field: int32 nanos = 2\n */\n nanos: number;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Timestamp$Type extends MessageType<Timestamp> {\n constructor() {\n super(\"google.protobuf.Timestamp\", [\n { no: 1, name: \"seconds\", kind: \"scalar\", T: 3 /*ScalarType.INT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"nanos\", kind: \"scalar\", T: 5 /*ScalarType.INT32*/ }\n ]);\n }\n /**\n * Creates a new `Timestamp` for the current time.\n */\n now(): Timestamp {\n const msg = this.create();\n const ms = Date.now();\n msg.seconds = PbLong.from(Math.floor(ms / 1000)).toBigInt();\n msg.nanos = (ms % 1000) * 1000000;\n return msg;\n }\n /**\n * Converts a `Timestamp` to a JavaScript Date.\n */\n toDate(message: Timestamp): Date {\n return new Date(PbLong.from(message.seconds).toNumber() * 1000 + Math.ceil(message.nanos / 1000000));\n }\n /**\n * Converts a JavaScript Date to a `Timestamp`.\n */\n fromDate(date: Date): Timestamp {\n const msg = this.create();\n const ms = date.getTime();\n msg.seconds = PbLong.from(Math.floor(ms / 1000)).toBigInt();\n msg.nanos = ((ms % 1000) + (ms < 0 && ms % 1000 !== 0 ? 1000 : 0)) * 1000000;\n return msg;\n }\n /**\n * In JSON format, the `Timestamp` type is encoded as a string\n * in the RFC 3339 format.\n */\n internalJsonWrite(message: Timestamp, options: JsonWriteOptions): JsonValue {\n let ms = PbLong.from(message.seconds).toNumber() * 1000;\n if (ms < Date.parse(\"0001-01-01T00:00:00Z\") || ms > Date.parse(\"9999-12-31T23:59:59Z\"))\n throw new Error(\"Unable to encode Timestamp to JSON. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.\");\n if (message.nanos < 0)\n throw new Error(\"Unable to encode invalid Timestamp to JSON. Nanos must not be negative.\");\n let z = \"Z\";\n if (message.nanos > 0) {\n let nanosStr = (message.nanos + 1000000000).toString().substring(1);\n if (nanosStr.substring(3) === \"000000\")\n z = \".\" + nanosStr.substring(0, 3) + \"Z\";\n else if (nanosStr.substring(6) === \"000\")\n z = \".\" + nanosStr.substring(0, 6) + \"Z\";\n else\n z = \".\" + nanosStr + \"Z\";\n }\n return new Date(ms).toISOString().replace(\".000Z\", z);\n }\n /**\n * In JSON format, the `Timestamp` type is encoded as a string\n * in the RFC 3339 format.\n */\n internalJsonRead(json: JsonValue, options: JsonReadOptions, target?: Timestamp): Timestamp {\n if (typeof json !== \"string\")\n throw new Error(\"Unable to parse Timestamp from JSON \" + typeofJsonValue(json) + \".\");\n let matches = json.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:Z|\\.([0-9]{3,9})Z|([+-][0-9][0-9]:[0-9][0-9]))$/);\n if (!matches)\n throw new Error(\"Unable to parse Timestamp from JSON. Invalid format.\");\n let ms = Date.parse(matches[1] + \"-\" + matches[2] + \"-\" + matches[3] + \"T\" + matches[4] + \":\" + matches[5] + \":\" + matches[6] + (matches[8] ? matches[8] : \"Z\"));\n if (Number.isNaN(ms))\n throw new Error(\"Unable to parse Timestamp from JSON. Invalid value.\");\n if (ms < Date.parse(\"0001-01-01T00:00:00Z\") || ms > Date.parse(\"9999-12-31T23:59:59Z\"))\n throw new globalThis.Error(\"Unable to parse Timestamp from JSON. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.\");\n if (!target)\n target = this.create();\n target.seconds = PbLong.from(ms / 1000).toBigInt();\n target.nanos = 0;\n if (matches[7])\n target.nanos = (parseInt(\"1\" + matches[7] + \"0\".repeat(9 - matches[7].length)) - 1000000000);\n return target;\n }\n create(value?: PartialMessage<Timestamp>): Timestamp {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.seconds = 0n;\n message.nanos = 0;\n if (value !== undefined)\n reflectionMergePartial<Timestamp>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Timestamp): Timestamp {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* int64 seconds */ 1:\n message.seconds = reader.int64().toBigInt();\n break;\n case /* int32 nanos */ 2:\n message.nanos = reader.int32();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: Timestamp, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* int64 seconds = 1; */\n if (message.seconds !== 0n)\n writer.tag(1, WireType.Varint).int64(message.seconds);\n /* int32 nanos = 2; */\n if (message.nanos !== 0)\n writer.tag(2, WireType.Varint).int32(message.nanos);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message google.protobuf.Timestamp\n */\nexport const Timestamp = new Timestamp$Type();\n","// @generated by protobuf-ts 2.11.0 with parameter client_generic,optimize_speed,generate_dependencies,force_server_none\n// @generated from protobuf file \"github.com/milaboratory/pl/plapi/plapiproto/api_types.proto\" (package \"MiLaboratories.PL.API\", syntax proto3)\n// tslint:disable\nimport type { BinaryWriteOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryWriter } from \"@protobuf-ts/runtime\";\nimport { WireType } from \"@protobuf-ts/runtime\";\nimport type { BinaryReadOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryReader } from \"@protobuf-ts/runtime\";\nimport { UnknownFieldHandler } from \"@protobuf-ts/runtime\";\nimport type { PartialMessage } from \"@protobuf-ts/runtime\";\nimport { reflectionMergePartial } from \"@protobuf-ts/runtime\";\nimport { MessageType } from \"@protobuf-ts/runtime\";\nimport { NotificationFilter_Payload } from \"./resource_types\";\nimport { FieldType } from \"./base_types\";\nimport { FieldRef } from \"./base_types\";\nimport { Timestamp } from \"../../../../../google/protobuf/timestamp\";\nimport { ResourceType } from \"./base_types\";\n/**\n * @generated from protobuf message MiLaboratories.PL.API.Tx\n */\nexport interface Tx {\n /**\n * @generated from protobuf field: bool is_valid = 1\n */\n isValid: boolean;\n /**\n * @generated from protobuf field: uint64 id = 2\n */\n id: bigint;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.Resource\n */\nexport interface Resource {\n /**\n * @generated from protobuf field: uint64 id = 2\n */\n id: bigint;\n /**\n * @generated from protobuf field: bytes canonical_id = 17\n */\n canonicalId: Uint8Array; // could be empty, it depends on resource lifecycle state\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.Resource.Kind kind = 3\n */\n kind: Resource_Kind;\n /**\n * @generated from protobuf field: MiLaboratories.PL.Base.ResourceType type = 4\n */\n type?: ResourceType;\n /**\n * @generated from protobuf field: bytes data = 5\n */\n data: Uint8Array;\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.Resource.Features features = 16\n */\n features?: Resource_Features;\n /**\n * @generated from protobuf field: repeated MiLaboratories.PL.API.Field fields = 6\n */\n fields: Field[];\n /**\n * Resource has at least one field with error\n *\n * @generated from protobuf field: bool has_errors = 7\n */\n hasErrors: boolean;\n /**\n * @generated from protobuf field: bool inputs_locked = 8\n */\n inputsLocked: boolean;\n /**\n * @generated from protobuf field: bool outputs_locked = 9\n */\n outputsLocked: boolean;\n /**\n * @generated from protobuf field: bool resource_ready = 14\n */\n resourceReady: boolean;\n /**\n * @generated from protobuf field: bool is_final = 15\n */\n isFinal: boolean;\n /**\n * @generated from protobuf field: uint64 original_resource_id = 10\n */\n originalResourceId: bigint;\n /**\n * @generated from protobuf field: uint64 parent_resource_id = 11\n */\n parentResourceId: bigint;\n /**\n * @generated from protobuf field: google.protobuf.Timestamp created_time = 12\n */\n createdTime?: Timestamp;\n /**\n * @generated from protobuf field: google.protobuf.Timestamp deleted_time = 13\n */\n deletedTime?: Timestamp;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.Resource.Features\n */\nexport interface Resource_Features {\n /**\n * @generated from protobuf field: bool ephemeral = 1\n */\n ephemeral: boolean; // false = 'supports deduplication'\n}\n/**\n * @generated from protobuf enum MiLaboratories.PL.API.Resource.Kind\n */\nexport enum Resource_Kind {\n /**\n * @generated from protobuf enum value: KIND_INVALID = 0;\n */\n INVALID = 0,\n /**\n * @generated from protobuf enum value: KIND_STRUCTURAL = 1;\n */\n STRUCTURAL = 1,\n /**\n * @generated from protobuf enum value: KIND_VALUE = 2;\n */\n VALUE = 2\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.Field\n */\nexport interface Field {\n /**\n * field ID is always combination of parent resource ID and field name\n *\n * @generated from protobuf field: MiLaboratories.PL.Base.FieldRef id = 1\n */\n id?: FieldRef;\n /**\n * @generated from protobuf field: MiLaboratories.PL.Base.FieldType type = 2\n */\n type: FieldType;\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.Resource.Features features = 3\n */\n features?: Resource_Features;\n /**\n * _resolved_ value of field or _assigned_ if the field was assigned to a resource.\n * If field refers to another field, it will get\n * value only when this chain of references ends up with direct resource\n * reference. At that moment all fields in the chain will get their values\n * resolved and will start to refer to the same resource directly.\n *\n * @generated from protobuf field: uint64 value = 5\n */\n value: bigint;\n /**\n * If the value was empty, assigned or finally resolved.\n *\n * @generated from protobuf field: MiLaboratories.PL.API.Field.ValueStatus value_status = 7\n */\n valueStatus: Field_ValueStatus;\n /**\n * If the value is in its final state (ready, duplicate or error)\n *\n * @generated from protobuf field: bool value_is_final = 8\n */\n valueIsFinal: boolean;\n /**\n * Resource error resource id if any.\n * Is intended to report problems _from_ platform to client.\n *\n * @generated from protobuf field: uint64 error = 6\n */\n error: bigint;\n}\n/**\n * @generated from protobuf enum MiLaboratories.PL.API.Field.ValueStatus\n */\nexport enum Field_ValueStatus {\n /**\n * @generated from protobuf enum value: INVALID = 0;\n */\n INVALID = 0,\n /**\n * @generated from protobuf enum value: EMPTY = 1;\n */\n EMPTY = 1,\n /**\n * @generated from protobuf enum value: ASSIGNED = 2;\n */\n ASSIGNED = 2,\n /**\n * @generated from protobuf enum value: RESOLVED = 3;\n */\n RESOLVED = 3\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.Notification\n */\nexport interface Notification {\n /**\n * @generated from protobuf field: uint64 subscription_id = 1\n */\n subscriptionId: bigint;\n /**\n * @generated from protobuf field: uint64 event_id = 2\n */\n eventId: bigint;\n /**\n * @generated from protobuf field: uint64 resource_id = 3\n */\n resourceId: bigint;\n /**\n * @generated from protobuf field: MiLaboratories.PL.Base.ResourceType resource_type = 4\n */\n resourceType?: ResourceType;\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.Notification.Events events = 5\n */\n events?: Notification_Events;\n /**\n * @generated from protobuf field: map<string, MiLaboratories.PL.API.Notification.FieldChange> field_changes = 6\n */\n fieldChanges: {\n [key: string]: Notification_FieldChange;\n };\n /**\n * @generated from protobuf field: MiLaboratories.PL.RTypes.NotificationFilter.Payload payload = 7\n */\n payload?: NotificationFilter_Payload;\n /**\n * @generated from protobuf field: string filter_name = 8\n */\n filterName: string;\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.SpanInfo tx_span = 9\n */\n txSpan?: SpanInfo;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.Notification.Events\n */\nexport interface Notification_Events {\n /**\n * @generated from protobuf field: bool resource_created = 1\n */\n resourceCreated: boolean;\n /**\n * @generated from protobuf field: bool resource_deleted = 2\n */\n resourceDeleted: boolean;\n /**\n * @generated from protobuf field: bool resource_ready = 4\n */\n resourceReady: boolean;\n /**\n * @generated from protobuf field: bool resource_duplicate = 5\n */\n resourceDuplicate: boolean;\n /**\n * @generated from protobuf field: bool resource_error = 15\n */\n resourceError: boolean;\n /**\n * @generated from protobuf field: bool inputs_locked = 12\n */\n inputsLocked: boolean;\n /**\n * @generated from protobuf field: bool outputs_locked = 13\n */\n outputsLocked: boolean;\n /**\n * @generated from protobuf field: bool field_created = 11\n */\n fieldCreated: boolean;\n /**\n * @generated from protobuf field: bool field_got_error = 16\n */\n fieldGotError: boolean;\n /**\n * @generated from protobuf field: bool input_set = 6\n */\n inputSet: boolean;\n /**\n * @generated from protobuf field: bool all_inputs_set = 7\n */\n allInputsSet: boolean;\n /**\n * @generated from protobuf field: bool output_set = 8\n */\n outputSet: boolean;\n /**\n * @generated from protobuf field: bool all_outputs_set = 9\n */\n allOutputsSet: boolean;\n /**\n * @generated from protobuf field: bool generic_otw_set = 14\n */\n genericOtwSet: boolean;\n /**\n * @generated from protobuf field: bool dynamic_changed = 10\n */\n dynamicChanged: boolean;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.Notification.FieldChange\n */\nexport interface Notification_FieldChange {\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.Field old = 1\n */\n old?: Field;\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.Field new = 2\n */\n new?: Field;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.SpanInfo\n */\nexport interface SpanInfo {\n /**\n * @generated from protobuf field: string path = 1\n */\n path: string;\n /**\n * @generated from protobuf field: map<string, string> carrier = 2\n */\n carrier: {\n [key: string]: string;\n };\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.Subscription\n */\nexport interface Subscription {\n /**\n * @generated from protobuf field: uint64 id = 1\n */\n id: bigint;\n /**\n * @generated from protobuf field: bool blocking = 3\n */\n blocking: boolean;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.Controller\n */\nexport interface Controller {\n /**\n * @generated from protobuf field: string type = 1\n */\n type: string;\n /**\n * @generated from protobuf field: uint64 id = 2\n */\n id: bigint;\n /**\n * @generated from protobuf field: uint64 subscriptionID = 3\n */\n subscriptionID: bigint;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceSchema\n */\nexport interface ResourceSchema {\n /**\n * @generated from protobuf field: MiLaboratories.PL.Base.ResourceType type = 1\n */\n type?: ResourceType;\n /**\n * @generated from protobuf field: repeated MiLaboratories.PL.API.FieldSchema fields = 2\n */\n fields: FieldSchema[];\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.FieldSchema\n */\nexport interface FieldSchema {\n /**\n * @generated from protobuf field: MiLaboratories.PL.Base.FieldType type = 1\n */\n type: FieldType;\n /**\n * @generated from protobuf field: string name = 2\n */\n name: string;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPIFeature\n */\nexport interface ResourceAPIFeature {\n /**\n * @generated from protobuf field: string controller_type = 1\n */\n controllerType: string;\n /**\n * @generated from protobuf field: string feature_name = 2\n */\n featureName: string;\n /**\n * @generated from protobuf field: MiLaboratories.PL.Base.ResourceType resource_type = 3\n */\n resourceType?: ResourceType;\n /**\n * @generated from protobuf field: string endpoint = 4\n */\n endpoint: string;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Tx$Type extends MessageType<Tx> {\n constructor() {\n super(\"MiLaboratories.PL.API.Tx\", [\n { no: 1, name: \"is_valid\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n { no: 2, name: \"id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<Tx>): Tx {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.isValid = false;\n message.id = 0n;\n if (value !== undefined)\n reflectionMergePartial<Tx>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Tx): Tx {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* bool is_valid */ 1:\n message.isValid = reader.bool();\n break;\n case /* uint64 id */ 2:\n message.id = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: Tx, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* bool is_valid = 1; */\n if (message.isValid !== false)\n writer.tag(1, WireType.Varint).bool(message.isValid);\n /* uint64 id = 2; */\n if (message.id !== 0n)\n writer.tag(2, WireType.Varint).uint64(message.id);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.Tx\n */\nexport const Tx = new Tx$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Resource$Type extends MessageType<Resource> {\n constructor() {\n super(\"MiLaboratories.PL.API.Resource\", [\n { no: 2, name: \"id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 17, name: \"canonical_id\", kind: \"scalar\", T: 12 /*ScalarType.BYTES*/ },\n { no: 3, name: \"kind\", kind: \"enum\", T: () => [\"MiLaboratories.PL.API.Resource.Kind\", Resource_Kind, \"KIND_\"] },\n { no: 4, name: \"type\", kind: \"message\", T: () => ResourceType },\n { no: 5, name: \"data\", kind: \"scalar\", T: 12 /*ScalarType.BYTES*/ },\n { no: 16, name: \"features\", kind: \"message\", T: () => Resource_Features },\n { no: 6, name: \"fields\", kind: \"message\", repeat: 2 /*RepeatType.UNPACKED*/, T: () => Field },\n { no: 7, name: \"has_errors\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n { no: 8, name: \"inputs_locked\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n { no: 9, name: \"outputs_locked\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n { no: 14, name: \"resource_ready\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n { no: 15, name: \"is_final\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n { no: 10, name: \"original_resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 11, name: \"parent_resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 12, name: \"created_time\", kind: \"message\", T: () => Timestamp },\n { no: 13, name: \"deleted_time\", kind: \"message\", T: () => Timestamp }\n ]);\n }\n create(value?: PartialMessage<Resource>): Resource {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.id = 0n;\n message.canonicalId = new Uint8Array(0);\n message.kind = 0;\n message.data = new Uint8Array(0);\n message.fields = [];\n message.hasErrors = false;\n message.inputsLocked = false;\n message.outputsLocked = false;\n message.resourceReady = false;\n message.isFinal = false;\n message.originalResourceId = 0n;\n message.parentResourceId = 0n;\n if (value !== undefined)\n reflectionMergePartial<Resource>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Resource): Resource {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 id */ 2:\n message.id = reader.uint64().toBigInt();\n break;\n case /* bytes canonical_id */ 17:\n message.canonicalId = reader.bytes();\n break;\n case /* MiLaboratories.PL.API.Resource.Kind kind */ 3:\n message.kind = reader.int32();\n break;\n case /* MiLaboratories.PL.Base.ResourceType type */ 4:\n message.type = ResourceType.internalBinaryRead(reader, reader.uint32(), options, message.type);\n break;\n case /* bytes data */ 5:\n message.data = reader.bytes();\n break;\n case /* MiLaboratories.PL.API.Resource.Features features */ 16:\n message.features = Resource_Features.internalBinaryRead(reader, reader.uint32(), options, message.features);\n break;\n case /* repeated MiLaboratories.PL.API.Field fields */ 6:\n message.fields.push(Field.internalBinaryRead(reader, reader.uint32(), options));\n break;\n case /* bool has_errors */ 7:\n message.hasErrors = reader.bool();\n break;\n case /* bool inputs_locked */ 8:\n message.inputsLocked = reader.bool();\n break;\n case /* bool outputs_locked */ 9:\n message.outputsLocked = reader.bool();\n break;\n case /* bool resource_ready */ 14:\n message.resourceReady = reader.bool();\n break;\n case /* bool is_final */ 15:\n message.isFinal = reader.bool();\n break;\n case /* uint64 original_resource_id */ 10:\n message.originalResourceId = reader.uint64().toBigInt();\n break;\n case /* uint64 parent_resource_id */ 11:\n message.parentResourceId = reader.uint64().toBigInt();\n break;\n case /* google.protobuf.Timestamp created_time */ 12:\n message.createdTime = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.createdTime);\n break;\n case /* google.protobuf.Timestamp deleted_time */ 13:\n message.deletedTime = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.deletedTime);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: Resource, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 id = 2; */\n if (message.id !== 0n)\n writer.tag(2, WireType.Varint).uint64(message.id);\n /* MiLaboratories.PL.API.Resource.Kind kind = 3; */\n if (message.kind !== 0)\n writer.tag(3, WireType.Varint).int32(message.kind);\n /* MiLaboratories.PL.Base.ResourceType type = 4; */\n if (message.type)\n ResourceType.internalBinaryWrite(message.type, writer.tag(4, WireType.LengthDelimited).fork(), options).join();\n /* bytes data = 5; */\n if (message.data.length)\n writer.tag(5, WireType.LengthDelimited).bytes(message.data);\n /* repeated MiLaboratories.PL.API.Field fields = 6; */\n for (let i = 0; i < message.fields.length; i++)\n Field.internalBinaryWrite(message.fields[i], writer.tag(6, WireType.LengthDelimited).fork(), options).join();\n /* bool has_errors = 7; */\n if (message.hasErrors !== false)\n writer.tag(7, WireType.Varint).bool(message.hasErrors);\n /* bool inputs_locked = 8; */\n if (message.inputsLocked !== false)\n writer.tag(8, WireType.Varint).bool(message.inputsLocked);\n /* bool outputs_locked = 9; */\n if (message.outputsLocked !== false)\n writer.tag(9, WireType.Varint).bool(message.outputsLocked);\n /* uint64 original_resource_id = 10; */\n if (message.originalResourceId !== 0n)\n writer.tag(10, WireType.Varint).uint64(message.originalResourceId);\n /* uint64 parent_resource_id = 11; */\n if (message.parentResourceId !== 0n)\n writer.tag(11, WireType.Varint).uint64(message.parentResourceId);\n /* google.protobuf.Timestamp created_time = 12; */\n if (message.createdTime)\n Timestamp.internalBinaryWrite(message.createdTime, writer.tag(12, WireType.LengthDelimited).fork(), options).join();\n /* google.protobuf.Timestamp deleted_time = 13; */\n if (message.deletedTime)\n Timestamp.internalBinaryWrite(message.deletedTime, writer.tag(13, WireType.LengthDelimited).fork(), options).join();\n /* bool resource_ready = 14; */\n if (message.resourceReady !== false)\n writer.tag(14, WireType.Varint).bool(message.resourceReady);\n /* bool is_final = 15; */\n if (message.isFinal !== false)\n writer.tag(15, WireType.Varint).bool(message.isFinal);\n /* MiLaboratories.PL.API.Resource.Features features = 16; */\n if (message.features)\n Resource_Features.internalBinaryWrite(message.features, writer.tag(16, WireType.LengthDelimited).fork(), options).join();\n /* bytes canonical_id = 17; */\n if (message.canonicalId.length)\n writer.tag(17, WireType.LengthDelimited).bytes(message.canonicalId);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.Resource\n */\nexport const Resource = new Resource$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Resource_Features$Type extends MessageType<Resource_Features> {\n constructor() {\n super(\"MiLaboratories.PL.API.Resource.Features\", [\n { no: 1, name: \"ephemeral\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ }\n ]);\n }\n create(value?: PartialMessage<Resource_Features>): Resource_Features {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.ephemeral = false;\n if (value !== undefined)\n reflectionMergePartial<Resource_Features>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Resource_Features): Resource_Features {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* bool ephemeral */ 1:\n message.ephemeral = reader.bool();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: Resource_Features, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* bool ephemeral = 1; */\n if (message.ephemeral !== false)\n writer.tag(1, WireType.Varint).bool(message.ephemeral);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.Resource.Features\n */\nexport const Resource_Features = new Resource_Features$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Field$Type extends MessageType<Field> {\n constructor() {\n super(\"MiLaboratories.PL.API.Field\", [\n { no: 1, name: \"id\", kind: \"message\", T: () => FieldRef },\n { no: 2, name: \"type\", kind: \"enum\", T: () => [\"MiLaboratories.PL.Base.FieldType\", FieldType] },\n { no: 3, name: \"features\", kind: \"message\", T: () => Resource_Features },\n { no: 5, name: \"value\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 7, name: \"value_status\", kind: \"enum\", T: () => [\"MiLaboratories.PL.API.Field.ValueStatus\", Field_ValueStatus] },\n { no: 8, name: \"value_is_final\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n { no: 6, name: \"error\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<Field>): Field {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.type = 0;\n message.value = 0n;\n message.valueStatus = 0;\n message.valueIsFinal = false;\n message.error = 0n;\n if (value !== undefined)\n reflectionMergePartial<Field>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Field): Field {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* MiLaboratories.PL.Base.FieldRef id */ 1:\n message.id = FieldRef.internalBinaryRead(reader, reader.uint32(), options, message.id);\n break;\n case /* MiLaboratories.PL.Base.FieldType type */ 2:\n message.type = reader.int32();\n break;\n case /* MiLaboratories.PL.API.Resource.Features features */ 3:\n message.features = Resource_Features.internalBinaryRead(reader, reader.uint32(), options, message.features);\n break;\n case /* uint64 value */ 5:\n message.value = reader.uint64().toBigInt();\n break;\n case /* MiLaboratories.PL.API.Field.ValueStatus value_status */ 7:\n message.valueStatus = reader.int32();\n break;\n case /* bool value_is_final */ 8:\n message.valueIsFinal = reader.bool();\n break;\n case /* uint64 error */ 6:\n message.error = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: Field, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* MiLaboratories.PL.Base.FieldRef id = 1; */\n if (message.id)\n FieldRef.internalBinaryWrite(message.id, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.Base.FieldType type = 2; */\n if (message.type !== 0)\n writer.tag(2, WireType.Varint).int32(message.type);\n /* MiLaboratories.PL.API.Resource.Features features = 3; */\n if (message.features)\n Resource_Features.internalBinaryWrite(message.features, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n /* uint64 value = 5; */\n if (message.value !== 0n)\n writer.tag(5, WireType.Varint).uint64(message.value);\n /* uint64 error = 6; */\n if (message.error !== 0n)\n writer.tag(6, WireType.Varint).uint64(message.error);\n /* MiLaboratories.PL.API.Field.ValueStatus value_status = 7; */\n if (message.valueStatus !== 0)\n writer.tag(7, WireType.Varint).int32(message.valueStatus);\n /* bool value_is_final = 8; */\n if (message.valueIsFinal !== false)\n writer.tag(8, WireType.Varint).bool(message.valueIsFinal);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.Field\n */\nexport const Field = new Field$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Notification$Type extends MessageType<Notification> {\n constructor() {\n super(\"MiLaboratories.PL.API.Notification\", [\n { no: 1, name: \"subscription_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"event_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 3, name: \"resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 4, name: \"resource_type\", kind: \"message\", T: () => ResourceType },\n { no: 5, name: \"events\", kind: \"message\", T: () => Notification_Events },\n { no: 6, name: \"field_changes\", kind: \"map\", K: 9 /*ScalarType.STRING*/, V: { kind: \"message\", T: () => Notification_FieldChange } },\n { no: 7, name: \"payload\", kind: \"message\", T: () => NotificationFilter_Payload },\n { no: 8, name: \"filter_name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 9, name: \"tx_span\", kind: \"message\", T: () => SpanInfo }\n ]);\n }\n create(value?: PartialMessage<Notification>): Notification {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.subscriptionId = 0n;\n message.eventId = 0n;\n message.resourceId = 0n;\n message.fieldChanges = {};\n message.filterName = \"\";\n if (value !== undefined)\n reflectionMergePartial<Notification>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Notification): Notification {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 subscription_id */ 1:\n message.subscriptionId = reader.uint64().toBigInt();\n break;\n case /* uint64 event_id */ 2:\n message.eventId = reader.uint64().toBigInt();\n break;\n case /* uint64 resource_id */ 3:\n message.resourceId = reader.uint64().toBigInt();\n break;\n case /* MiLaboratories.PL.Base.ResourceType resource_type */ 4:\n message.resourceType = ResourceType.internalBinaryRead(reader, reader.uint32(), options, message.resourceType);\n break;\n case /* MiLaboratories.PL.API.Notification.Events events */ 5:\n message.events = Notification_Events.internalBinaryRead(reader, reader.uint32(), options, message.events);\n break;\n case /* map<string, MiLaboratories.PL.API.Notification.FieldChange> field_changes */ 6:\n this.binaryReadMap6(message.fieldChanges, reader, options);\n break;\n case /* MiLaboratories.PL.RTypes.NotificationFilter.Payload payload */ 7:\n message.payload = NotificationFilter_Payload.internalBinaryRead(reader, reader.uint32(), options, message.payload);\n break;\n case /* string filter_name */ 8:\n message.filterName = reader.string();\n break;\n case /* MiLaboratories.PL.API.SpanInfo tx_span */ 9:\n message.txSpan = SpanInfo.internalBinaryRead(reader, reader.uint32(), options, message.txSpan);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n private binaryReadMap6(map: Notification[\"fieldChanges\"], reader: IBinaryReader, options: BinaryReadOptions): void {\n let len = reader.uint32(), end = reader.pos + len, key: keyof Notification[\"fieldChanges\"] | undefined, val: Notification[\"fieldChanges\"][any] | undefined;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case 1:\n key = reader.string();\n break;\n case 2:\n val = Notification_FieldChange.internalBinaryRead(reader, reader.uint32(), options);\n break;\n default: throw new globalThis.Error(\"unknown map entry field for MiLaboratories.PL.API.Notification.field_changes\");\n }\n }\n map[key ?? \"\"] = val ?? Notification_FieldChange.create();\n }\n internalBinaryWrite(message: Notification, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 subscription_id = 1; */\n if (message.subscriptionId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.subscriptionId);\n /* uint64 event_id = 2; */\n if (message.eventId !== 0n)\n writer.tag(2, WireType.Varint).uint64(message.eventId);\n /* uint64 resource_id = 3; */\n if (message.resourceId !== 0n)\n writer.tag(3, WireType.Varint).uint64(message.resourceId);\n /* MiLaboratories.PL.Base.ResourceType resource_type = 4; */\n if (message.resourceType)\n ResourceType.internalBinaryWrite(message.resourceType, writer.tag(4, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.Notification.Events events = 5; */\n if (message.events)\n Notification_Events.internalBinaryWrite(message.events, writer.tag(5, WireType.LengthDelimited).fork(), options).join();\n /* map<string, MiLaboratories.PL.API.Notification.FieldChange> field_changes = 6; */\n for (let k of globalThis.Object.keys(message.fieldChanges)) {\n writer.tag(6, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k);\n writer.tag(2, WireType.LengthDelimited).fork();\n Notification_FieldChange.internalBinaryWrite(message.fieldChanges[k], writer, options);\n writer.join().join();\n }\n /* MiLaboratories.PL.RTypes.NotificationFilter.Payload payload = 7; */\n if (message.payload)\n NotificationFilter_Payload.internalBinaryWrite(message.payload, writer.tag(7, WireType.LengthDelimited).fork(), options).join();\n /* string filter_name = 8; */\n if (message.filterName !== \"\")\n writer.tag(8, WireType.LengthDelimited).string(message.filterName);\n /* MiLaboratories.PL.API.SpanInfo tx_span = 9; */\n if (message.txSpan)\n SpanInfo.internalBinaryWrite(message.txSpan, writer.tag(9, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.Notification\n */\nexport const Notification = new Notification$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Notification_Events$Type extends MessageType<Notification_Events> {\n constructor() {\n super(\"MiLaboratories.PL.API.Notification.Events\", [\n { no: 1, name: \"resource_created\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n { no: 2, name: \"resource_deleted\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n { no: 4, name: \"resource_ready\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n { no: 5, name: \"resource_duplicate\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n { no: 15, name: \"resource_error\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n { no: 12, name: \"inputs_locked\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n { no: 13, name: \"outputs_locked\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n { no: 11, name: \"field_created\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n { no: 16, name: \"field_got_error\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n { no: 6, name: \"input_set\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n { no: 7, name: \"all_inputs_set\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n { no: 8, name: \"output_set\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n { no: 9, name: \"all_outputs_set\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n { no: 14, name: \"generic_otw_set\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n { no: 10, name: \"dynamic_changed\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ }\n ]);\n }\n create(value?: PartialMessage<Notification_Events>): Notification_Events {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.resourceCreated = false;\n message.resourceDeleted = false;\n message.resourceReady = false;\n message.resourceDuplicate = false;\n message.resourceError = false;\n message.inputsLocked = false;\n message.outputsLocked = false;\n message.fieldCreated = false;\n message.fieldGotError = false;\n message.inputSet = false;\n message.allInputsSet = false;\n message.outputSet = false;\n message.allOutputsSet = false;\n message.genericOtwSet = false;\n message.dynamicChanged = false;\n if (value !== undefined)\n reflectionMergePartial<Notification_Events>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Notification_Events): Notification_Events {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* bool resource_created */ 1:\n message.resourceCreated = reader.bool();\n break;\n case /* bool resource_deleted */ 2:\n message.resourceDeleted = reader.bool();\n break;\n case /* bool resource_ready */ 4:\n message.resourceReady = reader.bool();\n break;\n case /* bool resource_duplicate */ 5:\n message.resourceDuplicate = reader.bool();\n break;\n case /* bool resource_error */ 15:\n message.resourceError = reader.bool();\n break;\n case /* bool inputs_locked */ 12:\n message.inputsLocked = reader.bool();\n break;\n case /* bool outputs_locked */ 13:\n message.outputsLocked = reader.bool();\n break;\n case /* bool field_created */ 11:\n message.fieldCreated = reader.bool();\n break;\n case /* bool field_got_error */ 16:\n message.fieldGotError = reader.bool();\n break;\n case /* bool input_set */ 6:\n message.inputSet = reader.bool();\n break;\n case /* bool all_inputs_set */ 7:\n message.allInputsSet = reader.bool();\n break;\n case /* bool output_set */ 8:\n message.outputSet = reader.bool();\n break;\n case /* bool all_outputs_set */ 9:\n message.allOutputsSet = reader.bool();\n break;\n case /* bool generic_otw_set */ 14:\n message.genericOtwSet = reader.bool();\n break;\n case /* bool dynamic_changed */ 10:\n message.dynamicChanged = reader.bool();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: Notification_Events, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* bool resource_created = 1; */\n if (message.resourceCreated !== false)\n writer.tag(1, WireType.Varint).bool(message.resourceCreated);\n /* bool resource_deleted = 2; */\n if (message.resourceDeleted !== false)\n writer.tag(2, WireType.Varint).bool(message.resourceDeleted);\n /* bool resource_ready = 4; */\n if (message.resourceReady !== false)\n writer.tag(4, WireType.Varint).bool(message.resourceReady);\n /* bool resource_duplicate = 5; */\n if (message.resourceDuplicate !== false)\n writer.tag(5, WireType.Varint).bool(message.resourceDuplicate);\n /* bool input_set = 6; */\n if (message.inputSet !== false)\n writer.tag(6, WireType.Varint).bool(message.inputSet);\n /* bool all_inputs_set = 7; */\n if (message.allInputsSet !== false)\n writer.tag(7, WireType.Varint).bool(message.allInputsSet);\n /* bool output_set = 8; */\n if (message.outputSet !== false)\n writer.tag(8, WireType.Varint).bool(message.outputSet);\n /* bool all_outputs_set = 9; */\n if (message.allOutputsSet !== false)\n writer.tag(9, WireType.Varint).bool(message.allOutputsSet);\n /* bool dynamic_changed = 10; */\n if (message.dynamicChanged !== false)\n writer.tag(10, WireType.Varint).bool(message.dynamicChanged);\n /* bool field_created = 11; */\n if (message.fieldCreated !== false)\n writer.tag(11, WireType.Varint).bool(message.fieldCreated);\n /* bool inputs_locked = 12; */\n if (message.inputsLocked !== false)\n writer.tag(12, WireType.Varint).bool(message.inputsLocked);\n /* bool outputs_locked = 13; */\n if (message.outputsLocked !== false)\n writer.tag(13, WireType.Varint).bool(message.outputsLocked);\n /* bool generic_otw_set = 14; */\n if (message.genericOtwSet !== false)\n writer.tag(14, WireType.Varint).bool(message.genericOtwSet);\n /* bool resource_error = 15; */\n if (message.resourceError !== false)\n writer.tag(15, WireType.Varint).bool(message.resourceError);\n /* bool field_got_error = 16; */\n if (message.fieldGotError !== false)\n writer.tag(16, WireType.Varint).bool(message.fieldGotError);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.Notification.Events\n */\nexport const Notification_Events = new Notification_Events$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Notification_FieldChange$Type extends MessageType<Notification_FieldChange> {\n constructor() {\n super(\"MiLaboratories.PL.API.Notification.FieldChange\", [\n { no: 1, name: \"old\", kind: \"message\", T: () => Field },\n { no: 2, name: \"new\", kind: \"message\", T: () => Field }\n ]);\n }\n create(value?: PartialMessage<Notification_FieldChange>): Notification_FieldChange {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<Notification_FieldChange>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Notification_FieldChange): Notification_FieldChange {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* MiLaboratories.PL.API.Field old */ 1:\n message.old = Field.internalBinaryRead(reader, reader.uint32(), options, message.old);\n break;\n case /* MiLaboratories.PL.API.Field new */ 2:\n message.new = Field.internalBinaryRead(reader, reader.uint32(), options, message.new);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: Notification_FieldChange, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* MiLaboratories.PL.API.Field old = 1; */\n if (message.old)\n Field.internalBinaryWrite(message.old, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.Field new = 2; */\n if (message.new)\n Field.internalBinaryWrite(message.new, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.Notification.FieldChange\n */\nexport const Notification_FieldChange = new Notification_FieldChange$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SpanInfo$Type extends MessageType<SpanInfo> {\n constructor() {\n super(\"MiLaboratories.PL.API.SpanInfo\", [\n { no: 1, name: \"path\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"carrier\", kind: \"map\", K: 9 /*ScalarType.STRING*/, V: { kind: \"scalar\", T: 9 /*ScalarType.STRING*/ } }\n ]);\n }\n create(value?: PartialMessage<SpanInfo>): SpanInfo {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.path = \"\";\n message.carrier = {};\n if (value !== undefined)\n reflectionMergePartial<SpanInfo>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SpanInfo): SpanInfo {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string path */ 1:\n message.path = reader.string();\n break;\n case /* map<string, string> carrier */ 2:\n this.binaryReadMap2(message.carrier, reader, options);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n private binaryReadMap2(map: SpanInfo[\"carrier\"], reader: IBinaryReader, options: BinaryReadOptions): void {\n let len = reader.uint32(), end = reader.pos + len, key: keyof SpanInfo[\"carrier\"] | undefined, val: SpanInfo[\"carrier\"][any] | undefined;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case 1:\n key = reader.string();\n break;\n case 2:\n val = reader.string();\n break;\n default: throw new globalThis.Error(\"unknown map entry field for MiLaboratories.PL.API.SpanInfo.carrier\");\n }\n }\n map[key ?? \"\"] = val ?? \"\";\n }\n internalBinaryWrite(message: SpanInfo, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string path = 1; */\n if (message.path !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.path);\n /* map<string, string> carrier = 2; */\n for (let k of globalThis.Object.keys(message.carrier))\n writer.tag(2, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k).tag(2, WireType.LengthDelimited).string(message.carrier[k]).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.SpanInfo\n */\nexport const SpanInfo = new SpanInfo$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Subscription$Type extends MessageType<Subscription> {\n constructor() {\n super(\"MiLaboratories.PL.API.Subscription\", [\n { no: 1, name: \"id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 3, name: \"blocking\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ }\n ]);\n }\n create(value?: PartialMessage<Subscription>): Subscription {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.id = 0n;\n message.blocking = false;\n if (value !== undefined)\n reflectionMergePartial<Subscription>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Subscription): Subscription {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 id */ 1:\n message.id = reader.uint64().toBigInt();\n break;\n case /* bool blocking */ 3:\n message.blocking = reader.bool();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: Subscription, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 id = 1; */\n if (message.id !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.id);\n /* bool blocking = 3; */\n if (message.blocking !== false)\n writer.tag(3, WireType.Varint).bool(message.blocking);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.Subscription\n */\nexport const Subscription = new Subscription$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Controller$Type extends MessageType<Controller> {\n constructor() {\n super(\"MiLaboratories.PL.API.Controller\", [\n { no: 1, name: \"type\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 3, name: \"subscriptionID\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<Controller>): Controller {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.type = \"\";\n message.id = 0n;\n message.subscriptionID = 0n;\n if (value !== undefined)\n reflectionMergePartial<Controller>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Controller): Controller {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string type */ 1:\n message.type = reader.string();\n break;\n case /* uint64 id */ 2:\n message.id = reader.uint64().toBigInt();\n break;\n case /* uint64 subscriptionID */ 3:\n message.subscriptionID = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: Controller, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string type = 1; */\n if (message.type !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.type);\n /* uint64 id = 2; */\n if (message.id !== 0n)\n writer.tag(2, WireType.Varint).uint64(message.id);\n /* uint64 subscriptionID = 3; */\n if (message.subscriptionID !== 0n)\n writer.tag(3, WireType.Varint).uint64(message.subscriptionID);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.Controller\n */\nexport const Controller = new Controller$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceSchema$Type extends MessageType<ResourceSchema> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceSchema\", [\n { no: 1, name: \"type\", kind: \"message\", T: () => ResourceType },\n { no: 2, name: \"fields\", kind: \"message\", repeat: 2 /*RepeatType.UNPACKED*/, T: () => FieldSchema }\n ]);\n }\n create(value?: PartialMessage<ResourceSchema>): ResourceSchema {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.fields = [];\n if (value !== undefined)\n reflectionMergePartial<ResourceSchema>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceSchema): ResourceSchema {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* MiLaboratories.PL.Base.ResourceType type */ 1:\n message.type = ResourceType.internalBinaryRead(reader, reader.uint32(), options, message.type);\n break;\n case /* repeated MiLaboratories.PL.API.FieldSchema fields */ 2:\n message.fields.push(FieldSchema.internalBinaryRead(reader, reader.uint32(), options));\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceSchema, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* MiLaboratories.PL.Base.ResourceType type = 1; */\n if (message.type)\n ResourceType.internalBinaryWrite(message.type, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* repeated MiLaboratories.PL.API.FieldSchema fields = 2; */\n for (let i = 0; i < message.fields.length; i++)\n FieldSchema.internalBinaryWrite(message.fields[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceSchema\n */\nexport const ResourceSchema = new ResourceSchema$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldSchema$Type extends MessageType<FieldSchema> {\n constructor() {\n super(\"MiLaboratories.PL.API.FieldSchema\", [\n { no: 1, name: \"type\", kind: \"enum\", T: () => [\"MiLaboratories.PL.Base.FieldType\", FieldType] },\n { no: 2, name: \"name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<FieldSchema>): FieldSchema {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.type = 0;\n message.name = \"\";\n if (value !== undefined)\n reflectionMergePartial<FieldSchema>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FieldSchema): FieldSchema {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* MiLaboratories.PL.Base.FieldType type */ 1:\n message.type = reader.int32();\n break;\n case /* string name */ 2:\n message.name = reader.string();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: FieldSchema, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* MiLaboratories.PL.Base.FieldType type = 1; */\n if (message.type !== 0)\n writer.tag(1, WireType.Varint).int32(message.type);\n /* string name = 2; */\n if (message.name !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.name);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.FieldSchema\n */\nexport const FieldSchema = new FieldSchema$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPIFeature$Type extends MessageType<ResourceAPIFeature> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPIFeature\", [\n { no: 1, name: \"controller_type\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"feature_name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 3, name: \"resource_type\", kind: \"message\", T: () => ResourceType },\n { no: 4, name: \"endpoint\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceAPIFeature>): ResourceAPIFeature {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.controllerType = \"\";\n message.featureName = \"\";\n message.endpoint = \"\";\n if (value !== undefined)\n reflectionMergePartial<ResourceAPIFeature>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPIFeature): ResourceAPIFeature {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string controller_type */ 1:\n message.controllerType = reader.string();\n break;\n case /* string feature_name */ 2:\n message.featureName = reader.string();\n break;\n case /* MiLaboratories.PL.Base.ResourceType resource_type */ 3:\n message.resourceType = ResourceType.internalBinaryRead(reader, reader.uint32(), options, message.resourceType);\n break;\n case /* string endpoint */ 4:\n message.endpoint = reader.string();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPIFeature, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string controller_type = 1; */\n if (message.controllerType !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.controllerType);\n /* string feature_name = 2; */\n if (message.featureName !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.featureName);\n /* MiLaboratories.PL.Base.ResourceType resource_type = 3; */\n if (message.resourceType)\n ResourceType.internalBinaryWrite(message.resourceType, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n /* string endpoint = 4; */\n if (message.endpoint !== \"\")\n writer.tag(4, WireType.LengthDelimited).string(message.endpoint);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPIFeature\n */\nexport const ResourceAPIFeature = new ResourceAPIFeature$Type();\n","// @generated by protobuf-ts 2.11.0 with parameter client_generic,optimize_speed,generate_dependencies,force_server_none\n// @generated from protobuf file \"google/protobuf/any.proto\" (package \"google.protobuf\", syntax proto3)\n// tslint:disable\n//\n// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc. All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\nimport type { BinaryWriteOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryWriter } from \"@protobuf-ts/runtime\";\nimport { WireType } from \"@protobuf-ts/runtime\";\nimport type { IBinaryReader } from \"@protobuf-ts/runtime\";\nimport { UnknownFieldHandler } from \"@protobuf-ts/runtime\";\nimport type { PartialMessage } from \"@protobuf-ts/runtime\";\nimport { reflectionMergePartial } from \"@protobuf-ts/runtime\";\nimport { isJsonObject } from \"@protobuf-ts/runtime\";\nimport { typeofJsonValue } from \"@protobuf-ts/runtime\";\nimport type { JsonValue } from \"@protobuf-ts/runtime\";\nimport { jsonWriteOptions } from \"@protobuf-ts/runtime\";\nimport type { JsonReadOptions } from \"@protobuf-ts/runtime\";\nimport type { JsonWriteOptions } from \"@protobuf-ts/runtime\";\nimport type { BinaryReadOptions } from \"@protobuf-ts/runtime\";\nimport type { IMessageType } from \"@protobuf-ts/runtime\";\nimport { MessageType } from \"@protobuf-ts/runtime\";\n/**\n * `Any` contains an arbitrary serialized protocol buffer message along with a\n * URL that describes the type of the serialized message.\n *\n * Protobuf library provides support to pack/unpack Any values in the form\n * of utility functions or additional generated methods of the Any type.\n *\n * Example 1: Pack and unpack a message in C++.\n *\n * Foo foo = ...;\n * Any any;\n * any.PackFrom(foo);\n * ...\n * if (any.UnpackTo(&foo)) {\n * ...\n * }\n *\n * Example 2: Pack and unpack a message in Java.\n *\n * Foo foo = ...;\n * Any any = Any.pack(foo);\n * ...\n * if (any.is(Foo.class)) {\n * foo = any.unpack(Foo.class);\n * }\n * // or ...\n * if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n * foo = any.unpack(Foo.getDefaultInstance());\n * }\n *\n * Example 3: Pack and unpack a message in Python.\n *\n * foo = Foo(...)\n * any = Any()\n * any.Pack(foo)\n * ...\n * if any.Is(Foo.DESCRIPTOR):\n * any.Unpack(foo)\n * ...\n *\n * Example 4: Pack and unpack a message in Go\n *\n * foo := &pb.Foo{...}\n * any, err := anypb.New(foo)\n * if err != nil {\n * ...\n * }\n * ...\n * foo := &pb.Foo{}\n * if err := any.UnmarshalTo(foo); err != nil {\n * ...\n * }\n *\n * The pack methods provided by protobuf library will by default use\n * 'type.googleapis.com/full.type.name' as the type URL and the unpack\n * methods only use the fully qualified type name after the last '/'\n * in the type URL, for example \"foo.bar.com/x/y.z\" will yield type\n * name \"y.z\".\n *\n * JSON\n * ====\n * The JSON representation of an `Any` value uses the regular\n * representation of the deserialized, embedded message, with an\n * additional field `@type` which contains the type URL. Example:\n *\n * package google.profile;\n * message Person {\n * string first_name = 1;\n * string last_name = 2;\n * }\n *\n * {\n * \"@type\": \"type.googleapis.com/google.profile.Person\",\n * \"firstName\": <string>,\n * \"lastName\": <string>\n * }\n *\n * If the embedded message type is well-known and has a custom JSON\n * representation, that representation will be embedded adding a field\n * `value` which holds the custom JSON in addition to the `@type`\n * field. Example (for message [google.protobuf.Duration][]):\n *\n * {\n * \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n * \"value\": \"1.212s\"\n * }\n *\n *\n * @generated from protobuf message google.protobuf.Any\n */\nexport interface Any {\n /**\n * A URL/resource name that uniquely identifies the type of the serialized\n * protocol buffer message. This string must contain at least\n * one \"/\" character. The last segment of the URL's path must represent\n * the fully qualified name of the type (as in\n * `path/google.protobuf.Duration`). The name should be in a canonical form\n * (e.g., leading \".\" is not accepted).\n *\n * In practice, teams usually precompile into the binary all types that they\n * expect it to use in the context of Any. However, for URLs which use the\n * scheme `http`, `https`, or no scheme, one can optionally set up a type\n * server that maps type URLs to message definitions as follows:\n *\n * * If no scheme is provided, `https` is assumed.\n * * An HTTP GET on the URL must yield a [google.protobuf.Type][]\n * value in binary format, or produce an error.\n * * Applications are allowed to cache lookup results based on the\n * URL, or have them precompiled into a binary to avoid any\n * lookup. Therefore, binary compatibility needs to be preserved\n * on changes to types. (Use versioned type names to manage\n * breaking changes.)\n *\n * Note: this functionality is not currently available in the official\n * protobuf release, and it is not used for type URLs beginning with\n * type.googleapis.com. As of May 2023, there are no widely used type server\n * implementations and no plans to implement one.\n *\n * Schemes other than `http`, `https` (or the empty scheme) might be\n * used with implementation specific semantics.\n *\n *\n * @generated from protobuf field: string type_url = 1\n */\n typeUrl: string;\n /**\n * Must be a valid serialized protocol buffer of the above specified type.\n *\n * @generated from protobuf field: bytes value = 2\n */\n value: Uint8Array;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Any$Type extends MessageType<Any> {\n constructor() {\n super(\"google.protobuf.Any\", [\n { no: 1, name: \"type_url\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"value\", kind: \"scalar\", T: 12 /*ScalarType.BYTES*/ }\n ]);\n }\n /**\n * Pack the message into a new `Any`.\n *\n * Uses 'type.googleapis.com/full.type.name' as the type URL.\n */\n pack<T extends object>(message: T, type: IMessageType<T>): Any {\n return {\n typeUrl: this.typeNameToUrl(type.typeName), value: type.toBinary(message),\n };\n }\n /**\n * Unpack the message from the `Any`.\n */\n unpack<T extends object>(any: Any, type: IMessageType<T>, options?: Partial<BinaryReadOptions>): T {\n if (!this.contains(any, type))\n throw new Error(\"Cannot unpack google.protobuf.Any with typeUrl '\" + any.typeUrl + \"' as \" + type.typeName + \".\");\n return type.fromBinary(any.value, options);\n }\n /**\n * Does the given `Any` contain a packed message of the given type?\n */\n contains(any: Any, type: IMessageType<any> | string): boolean {\n if (!any.typeUrl.length)\n return false;\n let wants = typeof type == \"string\" ? type : type.typeName;\n let has = this.typeUrlToName(any.typeUrl);\n return wants === has;\n }\n /**\n * Convert the message to canonical JSON value.\n *\n * You have to provide the `typeRegistry` option so that the\n * packed message can be converted to JSON.\n *\n * The `typeRegistry` option is also required to read\n * `google.protobuf.Any` from JSON format.\n */\n internalJsonWrite(any: Any, options: JsonWriteOptions): JsonValue {\n if (any.typeUrl === \"\")\n return {};\n let typeName = this.typeUrlToName(any.typeUrl);\n let opt = jsonWriteOptions(options);\n let type = opt.typeRegistry?.find(t => t.typeName === typeName);\n if (!type)\n throw new globalThis.Error(\"Unable to convert google.protobuf.Any with typeUrl '\" + any.typeUrl + \"' to JSON. The specified type \" + typeName + \" is not available in the type registry.\");\n let value = type.fromBinary(any.value, { readUnknownField: false });\n let json = type.internalJsonWrite(value, opt);\n if (typeName.startsWith(\"google.protobuf.\") || !isJsonObject(json))\n json = { value: json };\n json[\"@type\"] = any.typeUrl;\n return json;\n }\n internalJsonRead(json: JsonValue, options: JsonReadOptions, target?: Any): Any {\n if (!isJsonObject(json))\n throw new globalThis.Error(\"Unable to parse google.protobuf.Any from JSON \" + typeofJsonValue(json) + \".\");\n if (typeof json[\"@type\"] != \"string\" || json[\"@type\"] == \"\")\n return this.create();\n let typeName = this.typeUrlToName(json[\"@type\"]);\n let type = options?.typeRegistry?.find(t => t.typeName == typeName);\n if (!type)\n throw new globalThis.Error(\"Unable to parse google.protobuf.Any from JSON. The specified type \" + typeName + \" is not available in the type registry.\");\n let value;\n if (typeName.startsWith(\"google.protobuf.\") && json.hasOwnProperty(\"value\"))\n value = type.fromJson(json[\"value\"], options);\n else {\n let copy = Object.assign({}, json);\n delete copy[\"@type\"];\n value = type.fromJson(copy, options);\n }\n if (target === undefined)\n target = this.create();\n target.typeUrl = json[\"@type\"];\n target.value = type.toBinary(value);\n return target;\n }\n typeNameToUrl(name: string): string {\n if (!name.length)\n throw new Error(\"invalid type name: \" + name);\n return \"type.googleapis.com/\" + name;\n }\n typeUrlToName(url: string): string {\n if (!url.length)\n throw new Error(\"invalid type url: \" + url);\n let slash = url.lastIndexOf(\"/\");\n let name = slash > 0 ? url.substring(slash + 1) : url;\n if (!name.length)\n throw new Error(\"invalid type url: \" + url);\n return name;\n }\n create(value?: PartialMessage<Any>): Any {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.typeUrl = \"\";\n message.value = new Uint8Array(0);\n if (value !== undefined)\n reflectionMergePartial<Any>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Any): Any {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string type_url */ 1:\n message.typeUrl = reader.string();\n break;\n case /* bytes value */ 2:\n message.value = reader.bytes();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: Any, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string type_url = 1; */\n if (message.typeUrl !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.typeUrl);\n /* bytes value = 2; */\n if (message.value.length)\n writer.tag(2, WireType.LengthDelimited).bytes(message.value);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message google.protobuf.Any\n */\nexport const Any = new Any$Type();\n","// @generated by protobuf-ts 2.11.0 with parameter client_generic,optimize_speed,generate_dependencies,force_server_none\n// @generated from protobuf file \"github.com/googleapis/googleapis/google/rpc/status.proto\" (package \"google.rpc\", syntax proto3)\n// tslint:disable\n//\n// Copyright 2020 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n//\nimport type { BinaryWriteOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryWriter } from \"@protobuf-ts/runtime\";\nimport { WireType } from \"@protobuf-ts/runtime\";\nimport type { BinaryReadOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryReader } from \"@protobuf-ts/runtime\";\nimport { UnknownFieldHandler } from \"@protobuf-ts/runtime\";\nimport type { PartialMessage } from \"@protobuf-ts/runtime\";\nimport { reflectionMergePartial } from \"@protobuf-ts/runtime\";\nimport { MessageType } from \"@protobuf-ts/runtime\";\nimport { Any } from \"../../../../../google/protobuf/any\";\n/**\n * The `Status` type defines a logical error model that is suitable for\n * different programming environments, including REST APIs and RPC APIs. It is\n * used by [gRPC](https://github.com/grpc). Each `Status` message contains\n * three pieces of data: error code, error message, and error details.\n *\n * You can find out more about this error model and how to work with it in the\n * [API Design Guide](https://cloud.google.com/apis/design/errors).\n *\n * @generated from protobuf message google.rpc.Status\n */\nexport interface Status {\n /**\n * The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].\n *\n * @generated from protobuf field: int32 code = 1\n */\n code: number;\n /**\n * A developer-facing error message, which should be in English. Any\n * user-facing error message should be localized and sent in the\n * [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.\n *\n * @generated from protobuf field: string message = 2\n */\n message: string;\n /**\n * A list of messages that carry the error details. There is a common set of\n * message types for APIs to use.\n *\n * @generated from protobuf field: repeated google.protobuf.Any details = 3\n */\n details: Any[];\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Status$Type extends MessageType<Status> {\n constructor() {\n super(\"google.rpc.Status\", [\n { no: 1, name: \"code\", kind: \"scalar\", T: 5 /*ScalarType.INT32*/ },\n { no: 2, name: \"message\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 3, name: \"details\", kind: \"message\", repeat: 2 /*RepeatType.UNPACKED*/, T: () => Any }\n ]);\n }\n create(value?: PartialMessage<Status>): Status {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.code = 0;\n message.message = \"\";\n message.details = [];\n if (value !== undefined)\n reflectionMergePartial<Status>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Status): Status {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* int32 code */ 1:\n message.code = reader.int32();\n break;\n case /* string message */ 2:\n message.message = reader.string();\n break;\n case /* repeated google.protobuf.Any details */ 3:\n message.details.push(Any.internalBinaryRead(reader, reader.uint32(), options));\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: Status, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* int32 code = 1; */\n if (message.code !== 0)\n writer.tag(1, WireType.Varint).int32(message.code);\n /* string message = 2; */\n if (message.message !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.message);\n /* repeated google.protobuf.Any details = 3; */\n for (let i = 0; i < message.details.length; i++)\n Any.internalBinaryWrite(message.details[i], writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message google.rpc.Status\n */\nexport const Status = new Status$Type();\n","// @generated by protobuf-ts 2.11.0 with parameter client_generic,optimize_speed,generate_dependencies,force_server_none\n// @generated from protobuf file \"github.com/milaboratory/pl/plapi/plapiproto/api.proto\" (package \"MiLaboratories.PL.API\", syntax proto3)\n// tslint:disable\nimport { ServiceType } from \"@protobuf-ts/runtime-rpc\";\nimport { WireType } from \"@protobuf-ts/runtime\";\nimport type { BinaryWriteOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryWriter } from \"@protobuf-ts/runtime\";\nimport type { BinaryReadOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryReader } from \"@protobuf-ts/runtime\";\nimport { UnknownFieldHandler } from \"@protobuf-ts/runtime\";\nimport type { PartialMessage } from \"@protobuf-ts/runtime\";\nimport { reflectionMergePartial } from \"@protobuf-ts/runtime\";\nimport { MessageType } from \"@protobuf-ts/runtime\";\nimport { Duration } from \"../../../../../google/protobuf/duration\";\nimport { ResourceAPIFeature } from \"./api_types\";\nimport { Controller } from \"./api_types\";\nimport { ResourceSchema } from \"./api_types\";\nimport { Subscription } from \"./api_types\";\nimport { NotificationFilter } from \"./resource_types\";\nimport { Notification } from \"./api_types\";\nimport { Field } from \"./api_types\";\nimport { FieldType } from \"./base_types\";\nimport { Resource } from \"./api_types\";\nimport { FieldRef } from \"./base_types\";\nimport { ResourceType } from \"./base_types\";\nimport { Tx } from \"./api_types\";\nimport { Status } from \"../../../../googleapis/googleapis/google/rpc/status\";\n/**\n * Platform transactions on API level are implemented as bidirectional\n * streams that exist in parallel with transactions.\n * One stream = one transaction at all times.\n *\n * Long story short from client side:\n * - client initializes stream and immediately gets transaction info\n * message from server;\n * - client calls server methods by sending messages to the server,\n * each message has its own request ID starting from 1, request ID number\n * grows as new messages are sent to the server;\n * - client reads server responses for each messages sent. Client can batch\n * writes and reads: e.g. send 3 messages, read 2 responses, send one\n * more, read 2;\n * - to finish communication client sends 'commit' message and reads last\n * response;\n *\n * Detailed description of the process.\n *\n * The Platform transaction over gRPC has 3 stages:\n *\n * 1. Initialization:\n *\n * - client opens new bidirectional stream by calling 'Tx' gRPC method;\n * - client sends 'tx_open' message with request_id = 0 to open RO or RW\n * transaction.\n * Any message from client other than 'tx_open' during initialization is\n * treated as communication error and causes server to close the stream;\n * - server opens new transaction and sends transaction info to the client\n * 'tx_open' server message;\n *\n * 2. Communication:\n *\n * Once the transaction gets initialized, all the communication between\n * client and server should be considered as request-response sequence.\n * The only difference to simple gRPC call is that sending a request does not\n * block client until the response arrives from server.\n *\n * Client can send as many requests to the server as it wants before\n * reading responses. This allows client to batch method calls, when it is not\n * interested in result of each action, but needs only overall summary of\n * transaction commit.\n * For example, the following sequence is totally valid from client side:\n * 1. send reqA.\n * 2. send reqB.\n * 3. get respA.\n * 4. send reqC.\n * 5. get respB.\n * 6. get respC.\n *\n * Here are detailed rules of client-server communication inside transaction\n * stream:\n * - if stream is closed by client or interrupted by any unrecoverable\n * communication error, the accompanied transaction is discarded;\n * - each message in client stream (from client to server) is considered as\n * method call.\n * E.g. 'resource_remove' makes server to actually remove resource inside\n * transaction, bound to current stream;\n * - each message in client stream MUST have its own ID (request_id),\n * generated by client, UNIQUE for transaction. Numeration starts from\n * 1 for each at this step. request_id == 0 is treated as unrecoverable\n * communication error by server and cancels transaction;\n * - server expects 'request_id' from client to grow constantly by one as\n * messages come. If message M2 arrives next to M1 and\n * M2.request_id != (M1.request_id + 1)\n * server treats it as unrecoverable communication error and cancels\n * transaction;\n * - all messages in server stream (from server to client) in communication\n * stage have the same 'request_id' as the client messages, that triggered\n * the operation. This allows client to match server responses to the\n * requests it sent earlier;\n * - messages order in server stream matches order in client stream: if\n * client sent sequence [ReqA, ReqB], the server will always response\n * [RespA, RespB];\n * - server can send several responses to single client request (multi-message\n * response). In that case, all such responses will have the same 'request_id'\n * (the one from client request), but different message IDs. See\n * 'Multi-message responses' section below for more info.\n * - client is allowed (but not obligated) to generate local IDs for new\n * instances and use them in links and other references. These local IDs\n * are valid only within current transaction;\n * - any instance in server stream always has _real_ global ID that is valid\n * at any times in any other request outside current transaction;\n *\n * 3. Finalization:\n *\n * - client finalizes transaction by sending 'tx_commit' or 'tx_discard'\n * message to the server. After that client can close client stream as any\n * message sent to the server after commit/discard will be ignored anyway;\n * - server stops reading client stream and does the commit/discard action.\n * - once transaction is closed, server sends the result to client and\n * closes server stream.\n *\n * At this point the transaction over gRPC is considered as finalized, all\n * local IDs generated within the transaction are no longer valid.\n *\n * Multi-message responses\n *\n * Some transaction methods produce several messages by design, causing\n * single call to result in multiple responses. Listings are the clear\n * example of that.\n * All responses from server have special field (multi_message) with all meta\n * info on multi-message response:\n * - for single-message responses, multi_message is always empty;\n * - for multi-message responses, multi_message.id is always > 0;\n * - all messages in multi-message response have request_id equal to request_id from\n * original client's request message;\n * - last message in multi-message response always has multi_message.is_last = true;\n * - empty multi-message response always has:\n * multi_message.is_last = true;\n * multi_message.is_empty = true.\n *\n *\n * @generated from protobuf message MiLaboratories.PL.API.TxAPI\n */\nexport interface TxAPI {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.TxAPI.ClientMessage\n */\nexport interface TxAPI_ClientMessage {\n /**\n * @generated from protobuf field: uint32 request_id = 1\n */\n requestId: number;\n /**\n * @generated from protobuf oneof: request\n */\n request: {\n oneofKind: \"txOpen\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.TxAPI.Open.Request tx_open = 11\n */\n txOpen: TxAPI_Open_Request; // open transaction\n } | {\n oneofKind: \"txCommit\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.TxAPI.Commit.Request tx_commit = 12\n */\n txCommit: TxAPI_Commit_Request; // commit the transaction and close the stream\n } | {\n oneofKind: \"txDiscard\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.TxAPI.Discard.Request tx_discard = 13\n */\n txDiscard: TxAPI_Discard_Request; // discard the transaction and close the stream\n } | {\n oneofKind: \"resourceCreateRoot\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.CreateRoot.Request resource_create_root = 58\n */\n resourceCreateRoot: ResourceAPI_CreateRoot_Request; // create new root resource\n } | {\n oneofKind: \"resourceRemove\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.Remove.Request resource_remove = 57\n */\n resourceRemove: ResourceAPI_Remove_Request; // remove root resource from platform\n } | {\n oneofKind: \"resourceCreateStruct\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.CreateStruct.Request resource_create_struct = 51\n */\n resourceCreateStruct: ResourceAPI_CreateStruct_Request; // create new structural resource\n } | {\n oneofKind: \"resourceCreateEphemeral\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.CreateEphemeral.Request resource_create_ephemeral = 62\n */\n resourceCreateEphemeral: ResourceAPI_CreateEphemeral_Request; // create new ephemeral resource\n } | {\n oneofKind: \"resourceCreateValue\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.CreateValue.Request resource_create_value = 52\n */\n resourceCreateValue: ResourceAPI_CreateValue_Request; // create value resource\n } | {\n oneofKind: \"resourceGetValueId\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.GetValueID.Request resource_get_value_id = 63\n */\n resourceGetValueId: ResourceAPI_GetValueID_Request; // get value resource by type and data\n } | {\n oneofKind: \"resourceCreateSingleton\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.CreateSingleton.Request resource_create_singleton = 64\n */\n resourceCreateSingleton: ResourceAPI_CreateSingleton_Request; // create singleton resource\n } | {\n oneofKind: \"resourceGetSingleton\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.GetSingleton.Request resource_get_singleton = 65\n */\n resourceGetSingleton: ResourceAPI_GetSingleton_Request; // get singleton resource by type and data\n } | {\n oneofKind: \"resourceCreateChild\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.CreateChild.Request resource_create_child = 59\n */\n resourceCreateChild: ResourceAPI_CreateChild_Request; // create new child resource\n } | {\n oneofKind: \"resourceLockInputs\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.LockInputs.Request resource_lock_inputs = 53\n */\n resourceLockInputs: ResourceAPI_LockInputs_Request; // lock inputs of resources without schema\n } | {\n oneofKind: \"resourceLockOutputs\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.LockOutputs.Request resource_lock_outputs = 56\n */\n resourceLockOutputs: ResourceAPI_LockOutputs_Request; // lock outputs of resources without schema\n } | {\n oneofKind: \"resourceExists\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.Exists.Request resource_exists = 54\n */\n resourceExists: ResourceAPI_Exists_Request; // check if resource exists\n } | {\n oneofKind: \"resourceGet\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.Get.Request resource_get = 55\n */\n resourceGet: ResourceAPI_Get_Request; // get actual resource info from server\n } | {\n oneofKind: \"resourceSetError\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.SetError.Request resource_set_error = 61\n */\n resourceSetError: ResourceAPI_SetError_Request; // create a special field and set error there.\n } | {\n oneofKind: \"resourceListByType\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.List.ByType.Request resource_list_by_type = 60\n */\n resourceListByType: ResourceAPI_List_ByType_Request; // list resources of specific type\n } | {\n oneofKind: \"resourceNameSet\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.Name.Set.Request resource_name_set = 66\n */\n resourceNameSet: ResourceAPI_Name_Set_Request; // assign name to resource\n } | {\n oneofKind: \"resourceNameGet\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.Name.Get.Request resource_name_get = 67\n */\n resourceNameGet: ResourceAPI_Name_Get_Request; // get resource ID by name\n } | {\n oneofKind: \"resourceNameExists\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.Name.Exists.Request resource_name_exists = 68\n */\n resourceNameExists: ResourceAPI_Name_Exists_Request; // check if resource name exists in platform\n } | {\n oneofKind: \"resourceNameDelete\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.Name.Delete.Request resource_name_delete = 69\n */\n resourceNameDelete: ResourceAPI_Name_Delete_Request; // detach name from resource\n } | {\n oneofKind: \"resourceTree\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.Tree.Request resource_tree = 70\n */\n resourceTree: ResourceAPI_Tree_Request; // load tree rooted at given resource\n } | {\n oneofKind: \"resourceTreeSize\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.TreeSize.Request resource_tree_size = 71\n */\n resourceTreeSize: ResourceAPI_TreeSize_Request; // calculate size for all resources in tree\n } | {\n oneofKind: \"fieldCreate\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.FieldAPI.Create.Request field_create = 101\n */\n fieldCreate: FieldAPI_Create_Request; // add field to resource\n } | {\n oneofKind: \"fieldExists\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.FieldAPI.Exists.Request field_exists = 107\n */\n fieldExists: FieldAPI_Exists_Request; // add field to resource\n } | {\n oneofKind: \"fieldSet\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.FieldAPI.Set.Request field_set = 102\n */\n fieldSet: FieldAPI_Set_Request; // link field to another resource or field\n } | {\n oneofKind: \"fieldSetError\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.FieldAPI.SetError.Request field_set_error = 105\n */\n fieldSetError: FieldAPI_SetError_Request; // link field to error resource\n } | {\n oneofKind: \"fieldGet\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.FieldAPI.Get.Request field_get = 103\n */\n fieldGet: FieldAPI_Get_Request; // get field info\n } | {\n oneofKind: \"fieldReset\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.FieldAPI.Reset.Request field_reset = 104\n */\n fieldReset: FieldAPI_Reset_Request; // clear field value (MTW fields only)\n } | {\n oneofKind: \"fieldRemove\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.FieldAPI.Remove.Request field_remove = 106\n */\n fieldRemove: FieldAPI_Remove_Request; // clear field value (MTW fields only)\n } | {\n oneofKind: \"fieldList\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.FieldAPI.List.Request field_list = 108\n */\n fieldList: FieldAPI_List_Request; // list fields of specific resource\n } | {\n oneofKind: \"subscriptionCreate\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.SubscriptionAPI.CreateSubscription.Request subscription_create = 111\n */\n subscriptionCreate: SubscriptionAPI_CreateSubscription_Request; // create subscription\n } | {\n oneofKind: \"subscriptionAttachFilter\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.SubscriptionAPI.AttachFilter.Request subscription_attach_filter = 112\n */\n subscriptionAttachFilter: SubscriptionAPI_AttachFilter_Request; // add filter to existing subscription\n } | {\n oneofKind: \"subscriptionDetachFilter\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.SubscriptionAPI.DetachFilter.Request subscription_detach_filter = 113\n */\n subscriptionDetachFilter: SubscriptionAPI_DetachFilter_Request; // add filter to existing subscription\n } | {\n oneofKind: \"subscriptionCreateFilter\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.SubscriptionAPI.CreateFilter.Request subscription_create_filter = 115\n */\n subscriptionCreateFilter: SubscriptionAPI_CreateFilter_Request; // create filter resource\n } | {\n oneofKind: \"notificationGet\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.NotificationAPI.Get.Request notification_get = 154\n */\n notificationGet: NotificationAPI_Get_Request; // get notification info from platform\n } | {\n oneofKind: \"notificationAck\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.NotificationAPI.Ack.Request notification_ack = 155\n */\n notificationAck: NotificationAPI_Ack_Request; // acknowledge notification handle by controller\n } | {\n oneofKind: \"notificationDiscard\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.NotificationAPI.Discard.Request notification_discard = 156\n */\n notificationDiscard: NotificationAPI_Discard_Request; // discard notification handle by controller\n } | {\n oneofKind: \"resourceKeyValueSet\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceKVAPI.Set.Request resource_key_value_set = 200\n */\n resourceKeyValueSet: ResourceKVAPI_Set_Request; // set a value to a resource's key-value store.\n } | {\n oneofKind: \"resourceKeyValueGet\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceKVAPI.Get.Request resource_key_value_get = 201\n */\n resourceKeyValueGet: ResourceKVAPI_Get_Request; // get a value from a resource's key-value store.\n } | {\n oneofKind: \"resourceKeyValueGetIfExists\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceKVAPI.GetIfExists.Request resource_key_value_get_if_exists = 202\n */\n resourceKeyValueGetIfExists: ResourceKVAPI_GetIfExists_Request; // get a value from a KV if the value exists.\n } | {\n oneofKind: \"resourceKeyValueSetFlag\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceKVAPI.SetFlag.Request resource_key_value_set_flag = 203\n */\n resourceKeyValueSetFlag: ResourceKVAPI_SetFlag_Request; // set a bool to a resource's key-value store.\n } | {\n oneofKind: \"resourceKeyValueGetFlag\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceKVAPI.GetFlag.Request resource_key_value_get_flag = 204\n */\n resourceKeyValueGetFlag: ResourceKVAPI_GetFlag_Request; // get a bool from a resource's key-value store.\n } | {\n oneofKind: \"resourceKeyValueGetFlagIfExists\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceKVAPI.GetFlag.Request resource_key_value_get_flag_if_exists = 205\n */\n resourceKeyValueGetFlagIfExists: ResourceKVAPI_GetFlag_Request; // get a bool from a resource's key-value store, return false if key is not found.\n } | {\n oneofKind: \"resourceKeyValueDelete\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceKVAPI.Delete.Request resource_key_value_delete = 206\n */\n resourceKeyValueDelete: ResourceKVAPI_Delete_Request; // delete value from resource KV storage\n } | {\n oneofKind: \"resourceKeyValueList\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceKVAPI.List.Request resource_key_value_list = 207\n */\n resourceKeyValueList: ResourceKVAPI_List_Request; // return all resource KV items\n } | {\n oneofKind: \"controllerKeyValueSet\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ControllerKVAPI.Set.Request controller_key_value_set = 250\n */\n controllerKeyValueSet: ControllerKVAPI_Set_Request; // set a value to a controller's key-value store.\n } | {\n oneofKind: \"controllerKeyValueGet\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ControllerKVAPI.Get.Request controller_key_value_get = 251\n */\n controllerKeyValueGet: ControllerKVAPI_Get_Request; // get a value from a controller's key-value store.\n } | {\n oneofKind: \"controllerKeyValueGetIfExists\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ControllerKVAPI.GetIfExists.Request controller_key_value_get_if_exists = 252\n */\n controllerKeyValueGetIfExists: ControllerKVAPI_GetIfExists_Request; // get a value from a KV if the value exists.\n } | {\n oneofKind: \"cacheSetToField\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.CacheAPI.SetToField.Request cache_set_to_field = 300\n */\n cacheSetToField: CacheAPI_SetToField_Request; // store the topology info and results of the field.\n } | {\n oneofKind: \"cacheDeleteExpiredRecords\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.CacheAPI.DeleteExpiredRecords.Request cache_delete_expired_records = 301\n */\n cacheDeleteExpiredRecords: CacheAPI_DeleteExpiredRecords_Request; // iterate through all records and delete expired.\n } | {\n oneofKind: \"controllerFeaturesSet\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ControllerAPI.SetFeatures.Request controller_features_set = 350\n */\n controllerFeaturesSet: ControllerAPI_SetFeatures_Request; // replace list of resource features, provided by controller.\n } | {\n oneofKind: \"controllerFeaturesClear\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ControllerAPI.ClearFeatures.Request controller_features_clear = 351\n */\n controllerFeaturesClear: ControllerAPI_ClearFeatures_Request; // clear list of resource features, provided by controller.\n } | {\n oneofKind: undefined;\n };\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.TxAPI.ServerMessage\n */\nexport interface TxAPI_ServerMessage {\n /**\n * @generated from protobuf field: uint32 request_id = 1\n */\n requestId: number;\n /**\n * Additional response message info for multi-message responses.\n * Is always empty in single-message responses.\n *\n * @generated from protobuf field: MiLaboratories.PL.API.TxAPI.ServerMessage.Multi multi_message = 2\n */\n multiMessage?: TxAPI_ServerMessage_Multi;\n /**\n * @generated from protobuf oneof: response\n */\n response: {\n oneofKind: \"txOpen\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.TxAPI.Open.Response tx_open = 11\n */\n txOpen: TxAPI_Open_Response;\n } | {\n oneofKind: \"txCommit\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.TxAPI.Commit.Response tx_commit = 12\n */\n txCommit: TxAPI_Commit_Response;\n } | {\n oneofKind: \"txDiscard\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.TxAPI.Discard.Response tx_discard = 13\n */\n txDiscard: TxAPI_Discard_Response;\n } | {\n oneofKind: \"resourceCreateRoot\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.CreateRoot.Response resource_create_root = 58\n */\n resourceCreateRoot: ResourceAPI_CreateRoot_Response;\n } | {\n oneofKind: \"resourceRemove\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.Remove.Response resource_remove = 57\n */\n resourceRemove: ResourceAPI_Remove_Response;\n } | {\n oneofKind: \"resourceCreateStruct\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.CreateStruct.Response resource_create_struct = 51\n */\n resourceCreateStruct: ResourceAPI_CreateStruct_Response;\n } | {\n oneofKind: \"resourceCreateEphemeral\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.CreateEphemeral.Response resource_create_ephemeral = 62\n */\n resourceCreateEphemeral: ResourceAPI_CreateEphemeral_Response;\n } | {\n oneofKind: \"resourceCreateValue\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.CreateValue.Response resource_create_value = 52\n */\n resourceCreateValue: ResourceAPI_CreateValue_Response;\n } | {\n oneofKind: \"resourceGetValueId\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.GetValueID.Response resource_get_value_id = 63\n */\n resourceGetValueId: ResourceAPI_GetValueID_Response;\n } | {\n oneofKind: \"resourceCreateSingleton\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.CreateSingleton.Response resource_create_singleton = 64\n */\n resourceCreateSingleton: ResourceAPI_CreateSingleton_Response;\n } | {\n oneofKind: \"resourceGetSingleton\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.GetSingleton.Response resource_get_singleton = 65\n */\n resourceGetSingleton: ResourceAPI_GetSingleton_Response;\n } | {\n oneofKind: \"resourceCreateChild\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.CreateChild.Response resource_create_child = 59\n */\n resourceCreateChild: ResourceAPI_CreateChild_Response;\n } | {\n oneofKind: \"resourceLockInputs\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.LockInputs.Response resource_lock_inputs = 53\n */\n resourceLockInputs: ResourceAPI_LockInputs_Response;\n } | {\n oneofKind: \"resourceLockOutputs\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.LockOutputs.Response resource_lock_outputs = 56\n */\n resourceLockOutputs: ResourceAPI_LockOutputs_Response;\n } | {\n oneofKind: \"resourceExists\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.Exists.Response resource_exists = 54\n */\n resourceExists: ResourceAPI_Exists_Response;\n } | {\n oneofKind: \"resourceGet\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.Get.Response resource_get = 55\n */\n resourceGet: ResourceAPI_Get_Response;\n } | {\n oneofKind: \"resourceSetError\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.SetError.Response resource_set_error = 61\n */\n resourceSetError: ResourceAPI_SetError_Response;\n } | {\n oneofKind: \"resourceListByType\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.List.ByType.Response resource_list_by_type = 60\n */\n resourceListByType: ResourceAPI_List_ByType_Response;\n } | {\n oneofKind: \"resourceNameSet\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.Name.Set.Response resource_name_set = 66\n */\n resourceNameSet: ResourceAPI_Name_Set_Response;\n } | {\n oneofKind: \"resourceNameGet\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.Name.Get.Response resource_name_get = 67\n */\n resourceNameGet: ResourceAPI_Name_Get_Response;\n } | {\n oneofKind: \"resourceNameExists\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.Name.Exists.Response resource_name_exists = 68\n */\n resourceNameExists: ResourceAPI_Name_Exists_Response;\n } | {\n oneofKind: \"resourceNameDelete\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.Name.Delete.Response resource_name_delete = 69\n */\n resourceNameDelete: ResourceAPI_Name_Delete_Response;\n } | {\n oneofKind: \"resourceTree\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.Tree.Response resource_tree = 70\n */\n resourceTree: ResourceAPI_Tree_Response;\n } | {\n oneofKind: \"resourceTreeSize\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceAPI.TreeSize.Response resource_tree_size = 71\n */\n resourceTreeSize: ResourceAPI_TreeSize_Response;\n } | {\n oneofKind: \"fieldCreate\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.FieldAPI.Create.Response field_create = 101\n */\n fieldCreate: FieldAPI_Create_Response;\n } | {\n oneofKind: \"fieldExists\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.FieldAPI.Exists.Response field_exists = 107\n */\n fieldExists: FieldAPI_Exists_Response;\n } | {\n oneofKind: \"fieldSet\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.FieldAPI.Set.Response field_set = 102\n */\n fieldSet: FieldAPI_Set_Response;\n } | {\n oneofKind: \"fieldSetError\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.FieldAPI.SetError.Response field_set_error = 105\n */\n fieldSetError: FieldAPI_SetError_Response;\n } | {\n oneofKind: \"fieldGet\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.FieldAPI.Get.Response field_get = 103\n */\n fieldGet: FieldAPI_Get_Response;\n } | {\n oneofKind: \"fieldReset\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.FieldAPI.Reset.Response field_reset = 104\n */\n fieldReset: FieldAPI_Reset_Response;\n } | {\n oneofKind: \"fieldRemove\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.FieldAPI.Remove.Response field_remove = 106\n */\n fieldRemove: FieldAPI_Remove_Response;\n } | {\n oneofKind: \"fieldList\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.FieldAPI.List.Response field_list = 108\n */\n fieldList: FieldAPI_List_Response;\n } | {\n oneofKind: \"subscriptionCreate\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.SubscriptionAPI.CreateSubscription.Response subscription_create = 111\n */\n subscriptionCreate: SubscriptionAPI_CreateSubscription_Response;\n } | {\n oneofKind: \"subscriptionCreateFilter\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.SubscriptionAPI.CreateFilter.Response subscription_create_filter = 115\n */\n subscriptionCreateFilter: SubscriptionAPI_CreateFilter_Response;\n } | {\n oneofKind: \"subscriptionAttachFilter\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.SubscriptionAPI.AttachFilter.Response subscription_attach_filter = 112\n */\n subscriptionAttachFilter: SubscriptionAPI_AttachFilter_Response;\n } | {\n oneofKind: \"subscriptionDetachFilter\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.SubscriptionAPI.DetachFilter.Response subscription_detach_filter = 113\n */\n subscriptionDetachFilter: SubscriptionAPI_DetachFilter_Response;\n } | {\n oneofKind: \"notificationGet\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.NotificationAPI.Get.Response notification_get = 154\n */\n notificationGet: NotificationAPI_Get_Response;\n } | {\n oneofKind: \"notificationAck\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.NotificationAPI.Ack.Response notification_ack = 155\n */\n notificationAck: NotificationAPI_Ack_Response;\n } | {\n oneofKind: \"notificationDiscard\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.NotificationAPI.Discard.Response notification_discard = 156\n */\n notificationDiscard: NotificationAPI_Discard_Response;\n } | {\n oneofKind: \"resourceKeyValueSet\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceKVAPI.Set.Response resource_key_value_set = 200\n */\n resourceKeyValueSet: ResourceKVAPI_Set_Response;\n } | {\n oneofKind: \"resourceKeyValueGet\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceKVAPI.Get.Response resource_key_value_get = 201\n */\n resourceKeyValueGet: ResourceKVAPI_Get_Response;\n } | {\n oneofKind: \"resourceKeyValueGetIfExists\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceKVAPI.GetIfExists.Response resource_key_value_get_if_exists = 202\n */\n resourceKeyValueGetIfExists: ResourceKVAPI_GetIfExists_Response;\n } | {\n oneofKind: \"resourceKeyValueSetFlag\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceKVAPI.SetFlag.Response resource_key_value_set_flag = 203\n */\n resourceKeyValueSetFlag: ResourceKVAPI_SetFlag_Response;\n } | {\n oneofKind: \"resourceKeyValueGetFlag\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceKVAPI.GetFlag.Response resource_key_value_get_flag = 204\n */\n resourceKeyValueGetFlag: ResourceKVAPI_GetFlag_Response;\n } | {\n oneofKind: \"resourceKeyValueGetFlagIfExists\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceKVAPI.GetFlag.Response resource_key_value_get_flag_if_exists = 205\n */\n resourceKeyValueGetFlagIfExists: ResourceKVAPI_GetFlag_Response;\n } | {\n oneofKind: \"resourceKeyValueDelete\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceKVAPI.Delete.Response resource_key_value_delete = 206\n */\n resourceKeyValueDelete: ResourceKVAPI_Delete_Response;\n } | {\n oneofKind: \"resourceKeyValueList\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceKVAPI.List.Response resource_key_value_list = 207\n */\n resourceKeyValueList: ResourceKVAPI_List_Response; // multi-message\n } | {\n oneofKind: \"controllerKeyValueSet\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ControllerKVAPI.Set.Response controller_key_value_set = 250\n */\n controllerKeyValueSet: ControllerKVAPI_Set_Response;\n } | {\n oneofKind: \"controllerKeyValueGet\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ControllerKVAPI.Get.Response controller_key_value_get = 251\n */\n controllerKeyValueGet: ControllerKVAPI_Get_Response;\n } | {\n oneofKind: \"controllerKeyValueGetIfExists\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ControllerKVAPI.GetIfExists.Response controller_key_value_get_if_exists = 252\n */\n controllerKeyValueGetIfExists: ControllerKVAPI_GetIfExists_Response;\n } | {\n oneofKind: \"cacheSetToField\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.CacheAPI.SetToField.Response cache_set_to_field = 300\n */\n cacheSetToField: CacheAPI_SetToField_Response;\n } | {\n oneofKind: \"cacheDeleteExpiredRecords\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.CacheAPI.DeleteExpiredRecords.Response cache_delete_expired_records = 301\n */\n cacheDeleteExpiredRecords: CacheAPI_DeleteExpiredRecords_Response;\n } | {\n oneofKind: \"controllerFeaturesSet\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ControllerAPI.SetFeatures.Response controller_features_set = 350\n */\n controllerFeaturesSet: ControllerAPI_SetFeatures_Response;\n } | {\n oneofKind: \"controllerFeaturesClear\";\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ControllerAPI.ClearFeatures.Response controller_features_clear = 351\n */\n controllerFeaturesClear: ControllerAPI_ClearFeatures_Response;\n } | {\n oneofKind: undefined;\n };\n /**\n * @generated from protobuf field: google.rpc.Status error = 3\n */\n error?: Status;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.TxAPI.ServerMessage.Multi\n */\nexport interface TxAPI_ServerMessage_Multi {\n /**\n * Sequential message ID for multi-message response, starting from 1.\n * Caller can use 'id > 0' check as a sign of multi-message response.\n * Some API requests produce several messages in response by design (say, listings)\n * In that case, the server responses to the client with many messages, each having\n * the same <request_id> value and different <message_id> values.\n *\n * @generated from protobuf field: uint32 id = 1\n */\n id: number;\n /**\n * Sign of the last message in multi-message response.\n * Helps to wrap multi-message responses into iterators on client side.\n *\n * @generated from protobuf field: bool is_last = 2\n */\n isLast: boolean;\n /**\n * Sign of empty multi-message response. Some multi-message responses can produce nothing\n * (like listing of empty directory). In that case client still has to know that the request was\n * handled and the empty result is OK.\n *\n * @generated from protobuf field: bool is_empty = 3\n */\n isEmpty: boolean;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.TxAPI.Open\n */\nexport interface TxAPI_Open {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.TxAPI.Open.Request\n */\nexport interface TxAPI_Open_Request {\n /**\n * @generated from protobuf field: string name = 1\n */\n name: string;\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.TxAPI.Open.Request.WritableTx writable = 2\n */\n writable: TxAPI_Open_Request_WritableTx;\n /**\n * @generated from protobuf field: bool enableFormattedErrors = 3\n */\n enableFormattedErrors: boolean;\n}\n/**\n * @generated from protobuf enum MiLaboratories.PL.API.TxAPI.Open.Request.WritableTx\n */\nexport enum TxAPI_Open_Request_WritableTx {\n /**\n * @generated from protobuf enum value: INVALID = 0;\n */\n INVALID = 0,\n /**\n * @generated from protobuf enum value: WRITABLE = 1;\n */\n WRITABLE = 1,\n /**\n * @generated from protobuf enum value: NOT_WRITABLE = 2;\n */\n NOT_WRITABLE = 2\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.TxAPI.Open.Response\n */\nexport interface TxAPI_Open_Response {\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.Tx tx = 1\n */\n tx?: Tx;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.TxAPI.Commit\n */\nexport interface TxAPI_Commit {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.TxAPI.Commit.Request\n */\nexport interface TxAPI_Commit_Request {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.TxAPI.Commit.Response\n */\nexport interface TxAPI_Commit_Response {\n /**\n * @generated from protobuf field: bool success = 1\n */\n success: boolean;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.TxAPI.Discard\n */\nexport interface TxAPI_Discard {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.TxAPI.Discard.Request\n */\nexport interface TxAPI_Discard_Request {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.TxAPI.Discard.Response\n */\nexport interface TxAPI_Discard_Response {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.TxAPI.Sync\n */\nexport interface TxAPI_Sync {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.TxAPI.Sync.Request\n */\nexport interface TxAPI_Sync_Request {\n /**\n * @generated from protobuf field: uint64 tx_id = 1\n */\n txId: bigint;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.TxAPI.Sync.Response\n */\nexport interface TxAPI_Sync_Response {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI\n */\nexport interface ResourceAPI {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.CreateStruct\n */\nexport interface ResourceAPI_CreateStruct {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.CreateStruct.Request\n */\nexport interface ResourceAPI_CreateStruct_Request {\n /**\n * @generated from protobuf field: uint64 id = 2\n */\n id: bigint;\n /**\n * @generated from protobuf field: MiLaboratories.PL.Base.ResourceType type = 3\n */\n type?: ResourceType;\n /**\n * @generated from protobuf field: optional bytes data = 4\n */\n data?: Uint8Array;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.CreateStruct.Response\n */\nexport interface ResourceAPI_CreateStruct_Response {\n /**\n * @generated from protobuf field: uint64 resource_id = 1\n */\n resourceId: bigint;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.CreateEphemeral\n */\nexport interface ResourceAPI_CreateEphemeral {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.CreateEphemeral.Request\n */\nexport interface ResourceAPI_CreateEphemeral_Request {\n /**\n * @generated from protobuf field: uint64 id = 2\n */\n id: bigint;\n /**\n * @generated from protobuf field: MiLaboratories.PL.Base.ResourceType type = 3\n */\n type?: ResourceType;\n /**\n * @generated from protobuf field: optional bytes data = 4\n */\n data?: Uint8Array;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.CreateEphemeral.Response\n */\nexport interface ResourceAPI_CreateEphemeral_Response {\n /**\n * @generated from protobuf field: uint64 resource_id = 1\n */\n resourceId: bigint;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.CreateChild\n */\nexport interface ResourceAPI_CreateChild {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.CreateChild.Request\n */\nexport interface ResourceAPI_CreateChild_Request {\n /**\n * @generated from protobuf field: uint64 id = 1\n */\n id: bigint;\n /**\n * @generated from protobuf field: MiLaboratories.PL.Base.ResourceType type = 2\n */\n type?: ResourceType;\n /**\n * @generated from protobuf field: MiLaboratories.PL.Base.FieldRef parent_field = 3\n */\n parentField?: FieldRef;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.CreateChild.Response\n */\nexport interface ResourceAPI_CreateChild_Response {\n /**\n * @generated from protobuf field: uint64 resource_id = 1\n */\n resourceId: bigint;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.CreateValue\n */\nexport interface ResourceAPI_CreateValue {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.CreateValue.Request\n */\nexport interface ResourceAPI_CreateValue_Request {\n /**\n * @generated from protobuf field: uint64 id = 2\n */\n id: bigint;\n /**\n * @generated from protobuf field: MiLaboratories.PL.Base.ResourceType type = 3\n */\n type?: ResourceType;\n /**\n * @generated from protobuf field: bytes data = 6\n */\n data: Uint8Array;\n /**\n * @generated from protobuf field: bool error_if_exists = 7\n */\n errorIfExists: boolean;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.CreateValue.Response\n */\nexport interface ResourceAPI_CreateValue_Response {\n /**\n * @generated from protobuf field: uint64 resource_id = 1\n */\n resourceId: bigint;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.GetValueID\n */\nexport interface ResourceAPI_GetValueID {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.GetValueID.Request\n */\nexport interface ResourceAPI_GetValueID_Request {\n /**\n * @generated from protobuf field: MiLaboratories.PL.Base.ResourceType type = 1\n */\n type?: ResourceType;\n /**\n * @generated from protobuf field: bytes data = 2\n */\n data: Uint8Array;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.GetValueID.Response\n */\nexport interface ResourceAPI_GetValueID_Response {\n /**\n * @generated from protobuf field: uint64 resource_id = 1\n */\n resourceId: bigint;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.CreateSingleton\n */\nexport interface ResourceAPI_CreateSingleton {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.CreateSingleton.Request\n */\nexport interface ResourceAPI_CreateSingleton_Request {\n /**\n * @generated from protobuf field: uint64 id = 2\n */\n id: bigint;\n /**\n * @generated from protobuf field: MiLaboratories.PL.Base.ResourceType type = 3\n */\n type?: ResourceType;\n /**\n * @generated from protobuf field: bytes data = 6\n */\n data: Uint8Array;\n /**\n * @generated from protobuf field: bool error_if_exists = 7\n */\n errorIfExists: boolean;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.CreateSingleton.Response\n */\nexport interface ResourceAPI_CreateSingleton_Response {\n /**\n * @generated from protobuf field: uint64 resource_id = 1\n */\n resourceId: bigint;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.GetSingleton\n */\nexport interface ResourceAPI_GetSingleton {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.GetSingleton.Request\n */\nexport interface ResourceAPI_GetSingleton_Request {\n /**\n * @generated from protobuf field: MiLaboratories.PL.Base.ResourceType type = 1\n */\n type?: ResourceType;\n /**\n * @generated from protobuf field: bytes data = 2\n */\n data: Uint8Array;\n /**\n * @generated from protobuf field: bool load_fields = 3\n */\n loadFields: boolean;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.GetSingleton.Response\n */\nexport interface ResourceAPI_GetSingleton_Response {\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.Resource resource = 1\n */\n resource?: Resource;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.LockInputs\n */\nexport interface ResourceAPI_LockInputs {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.LockInputs.Request\n */\nexport interface ResourceAPI_LockInputs_Request {\n /**\n * @generated from protobuf field: uint64 resource_id = 1\n */\n resourceId: bigint;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.LockInputs.Response\n */\nexport interface ResourceAPI_LockInputs_Response {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.LockOutputs\n */\nexport interface ResourceAPI_LockOutputs {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.LockOutputs.Request\n */\nexport interface ResourceAPI_LockOutputs_Request {\n /**\n * @generated from protobuf field: uint64 resource_id = 1\n */\n resourceId: bigint;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.LockOutputs.Response\n */\nexport interface ResourceAPI_LockOutputs_Response {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.Exists\n */\nexport interface ResourceAPI_Exists {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.Exists.Request\n */\nexport interface ResourceAPI_Exists_Request {\n /**\n * @generated from protobuf field: uint64 resource_id = 1\n */\n resourceId: bigint;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.Exists.Response\n */\nexport interface ResourceAPI_Exists_Response {\n /**\n * @generated from protobuf field: bool exists = 1\n */\n exists: boolean;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.SetError\n */\nexport interface ResourceAPI_SetError {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.SetError.Request\n */\nexport interface ResourceAPI_SetError_Request {\n /**\n * @generated from protobuf field: uint64 resource_id = 1\n */\n resourceId: bigint;\n /**\n * @generated from protobuf field: uint64 error_resource_id = 2\n */\n errorResourceId: bigint;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.SetError.Response\n */\nexport interface ResourceAPI_SetError_Response {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.Get\n */\nexport interface ResourceAPI_Get {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.Get.Request\n */\nexport interface ResourceAPI_Get_Request {\n /**\n * @generated from protobuf field: uint64 resource_id = 1\n */\n resourceId: bigint;\n /**\n * @generated from protobuf field: bool load_fields = 2\n */\n loadFields: boolean;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.Get.Response\n */\nexport interface ResourceAPI_Get_Response {\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.Resource resource = 1\n */\n resource?: Resource;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.List\n */\nexport interface ResourceAPI_List {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.List.ByType\n */\nexport interface ResourceAPI_List_ByType {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.List.ByType.Request\n */\nexport interface ResourceAPI_List_ByType_Request {\n /**\n * @generated from protobuf field: MiLaboratories.PL.Base.ResourceType resource_type = 1\n */\n resourceType?: ResourceType;\n /**\n * Non-zero value makes API to limit its responses count to at most\n * <limit> number of items.\n * Zero value makes API to return all available items.\n *\n * @generated from protobuf field: uint32 limit = 3\n */\n limit: number;\n /**\n * Start listing from given resource ID (not including this resource ID itself)\n * After == 100 means listing will NOT contain resources with ID = 100 and lower.\n *\n * @generated from protobuf field: uint64 after = 6\n */\n after: bigint;\n /**\n * True value makes API to return original resources instead of duplicates.\n *\n * @generated from protobuf field: bool resolve_duplicates = 4\n */\n resolveDuplicates: boolean;\n /**\n * Load fields for each resource in list.\n *\n * @generated from protobuf field: bool load_fields = 5\n */\n loadFields: boolean;\n}\n/**\n * Multi-message\n *\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.List.ByType.Response\n */\nexport interface ResourceAPI_List_ByType_Response {\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.Resource resource = 1\n */\n resource?: Resource;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.CreateRoot\n */\nexport interface ResourceAPI_CreateRoot {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.CreateRoot.Request\n */\nexport interface ResourceAPI_CreateRoot_Request {\n /**\n * @generated from protobuf field: uint64 id = 2\n */\n id: bigint;\n /**\n * @generated from protobuf field: MiLaboratories.PL.Base.ResourceType type = 3\n */\n type?: ResourceType;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.CreateRoot.Response\n */\nexport interface ResourceAPI_CreateRoot_Response {\n /**\n * @generated from protobuf field: uint64 resource_id = 1\n */\n resourceId: bigint;\n}\n// FIXME: add CreateResource method to API\n\n/**\n * Remove any resource, that has garbage collection disabled\n *\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.Remove\n */\nexport interface ResourceAPI_Remove {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.Remove.Request\n */\nexport interface ResourceAPI_Remove_Request {\n /**\n * @generated from protobuf field: uint64 id = 1\n */\n id: bigint;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.Remove.Response\n */\nexport interface ResourceAPI_Remove_Response {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.Name\n */\nexport interface ResourceAPI_Name {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.Name.Set\n */\nexport interface ResourceAPI_Name_Set {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.Name.Set.Request\n */\nexport interface ResourceAPI_Name_Set_Request {\n /**\n * @generated from protobuf field: uint64 resource_id = 1\n */\n resourceId: bigint;\n /**\n * @generated from protobuf field: string name = 2\n */\n name: string;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.Name.Set.Response\n */\nexport interface ResourceAPI_Name_Set_Response {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.Name.Get\n */\nexport interface ResourceAPI_Name_Get {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.Name.Get.Request\n */\nexport interface ResourceAPI_Name_Get_Request {\n /**\n * @generated from protobuf field: string name = 1\n */\n name: string;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.Name.Get.Response\n */\nexport interface ResourceAPI_Name_Get_Response {\n /**\n * @generated from protobuf field: uint64 resource_id = 1\n */\n resourceId: bigint;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.Name.Exists\n */\nexport interface ResourceAPI_Name_Exists {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.Name.Exists.Request\n */\nexport interface ResourceAPI_Name_Exists_Request {\n /**\n * @generated from protobuf field: string name = 1\n */\n name: string;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.Name.Exists.Response\n */\nexport interface ResourceAPI_Name_Exists_Response {\n /**\n * @generated from protobuf field: bool exists = 1\n */\n exists: boolean;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.Name.Delete\n */\nexport interface ResourceAPI_Name_Delete {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.Name.Delete.Request\n */\nexport interface ResourceAPI_Name_Delete_Request {\n /**\n * @generated from protobuf field: string name = 1\n */\n name: string;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.Name.Delete.Response\n */\nexport interface ResourceAPI_Name_Delete_Response {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.Tree\n */\nexport interface ResourceAPI_Tree {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.Tree.Request\n */\nexport interface ResourceAPI_Tree_Request {\n /**\n * @generated from protobuf field: uint64 resource_id = 1\n */\n resourceId: bigint;\n /**\n * Limit maximum depth the tree is traversed.\n * The resource <resource_id> is considered on depth = 0, the values of its fiels\n * are on depth = 1 and so on.\n * The maximum uint32 value disables the limit at all.\n * 0 value makes API to return only single resource <resource_id> and is actually\n * equal to Get.Request\n *\n * @generated from protobuf field: optional uint32 max_depth = 2\n */\n maxDepth?: number;\n}\n/**\n * Multi-message\n *\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.Tree.Response\n */\nexport interface ResourceAPI_Tree_Response {\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.Resource resource = 1\n */\n resource?: Resource;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.TreeSize\n */\nexport interface ResourceAPI_TreeSize {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.TreeSize.Request\n */\nexport interface ResourceAPI_TreeSize_Request {\n /**\n * @generated from protobuf field: uint64 resource_id = 1\n */\n resourceId: bigint;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceAPI.TreeSize.Response\n */\nexport interface ResourceAPI_TreeSize_Response {\n /**\n * size of all tree resources in bytes\n * could change between call regarding compression algorithm\n *\n * @generated from protobuf field: uint64 size = 1\n */\n size: bigint;\n /**\n * @generated from protobuf field: uint64 resource_count = 2\n */\n resourceCount: bigint;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.FieldAPI\n */\nexport interface FieldAPI {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.FieldAPI.Create\n */\nexport interface FieldAPI_Create {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.FieldAPI.Create.Request\n */\nexport interface FieldAPI_Create_Request {\n /**\n * @generated from protobuf field: MiLaboratories.PL.Base.FieldType type = 1\n */\n type: FieldType;\n /**\n * field ID is always combination of parent resource ID and field name\n *\n * @generated from protobuf field: MiLaboratories.PL.Base.FieldRef id = 2\n */\n id?: FieldRef;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.FieldAPI.Create.Response\n */\nexport interface FieldAPI_Create_Response {\n /**\n * @generated from protobuf field: MiLaboratories.PL.Base.FieldRef global_id = 1\n */\n globalId?: FieldRef;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.FieldAPI.Exists\n */\nexport interface FieldAPI_Exists {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.FieldAPI.Exists.Request\n */\nexport interface FieldAPI_Exists_Request {\n /**\n * @generated from protobuf field: MiLaboratories.PL.Base.FieldRef field = 1\n */\n field?: FieldRef;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.FieldAPI.Exists.Response\n */\nexport interface FieldAPI_Exists_Response {\n /**\n * @generated from protobuf field: bool exists = 1\n */\n exists: boolean;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.FieldAPI.Set\n */\nexport interface FieldAPI_Set {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.FieldAPI.Set.Request\n */\nexport interface FieldAPI_Set_Request {\n /**\n * @generated from protobuf field: MiLaboratories.PL.Base.FieldRef field = 1\n */\n field?: FieldRef;\n /**\n * @generated from protobuf field: MiLaboratories.PL.Base.FieldRef value = 2\n */\n value?: FieldRef;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.FieldAPI.Set.Response\n */\nexport interface FieldAPI_Set_Response {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.FieldAPI.SetError\n */\nexport interface FieldAPI_SetError {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.FieldAPI.SetError.Request\n */\nexport interface FieldAPI_SetError_Request {\n /**\n * @generated from protobuf field: MiLaboratories.PL.Base.FieldRef field = 1\n */\n field?: FieldRef;\n /**\n * @generated from protobuf field: uint64 err_resource_id = 2\n */\n errResourceId: bigint;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.FieldAPI.SetError.Response\n */\nexport interface FieldAPI_SetError_Response {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.FieldAPI.Get\n */\nexport interface FieldAPI_Get {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.FieldAPI.Get.Request\n */\nexport interface FieldAPI_Get_Request {\n /**\n * @generated from protobuf field: MiLaboratories.PL.Base.FieldRef field = 1\n */\n field?: FieldRef;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.FieldAPI.Get.Response\n */\nexport interface FieldAPI_Get_Response {\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.Field field = 1\n */\n field?: Field;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.FieldAPI.Reset\n */\nexport interface FieldAPI_Reset {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.FieldAPI.Reset.Request\n */\nexport interface FieldAPI_Reset_Request {\n /**\n * @generated from protobuf field: MiLaboratories.PL.Base.FieldRef field = 1\n */\n field?: FieldRef;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.FieldAPI.Reset.Response\n */\nexport interface FieldAPI_Reset_Response {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.FieldAPI.Remove\n */\nexport interface FieldAPI_Remove {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.FieldAPI.Remove.Request\n */\nexport interface FieldAPI_Remove_Request {\n /**\n * @generated from protobuf field: MiLaboratories.PL.Base.FieldRef field = 1\n */\n field?: FieldRef;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.FieldAPI.Remove.Response\n */\nexport interface FieldAPI_Remove_Response {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.FieldAPI.List\n */\nexport interface FieldAPI_List {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.FieldAPI.List.Request\n */\nexport interface FieldAPI_List_Request {\n /**\n * @generated from protobuf field: uint64 resource_id = 1\n */\n resourceId: bigint;\n /**\n * Start the listing from given position, returning first field with\n * name >= start_from.\n *\n * @generated from protobuf field: string start_from = 2\n */\n startFrom: string;\n /**\n * Non-zero value makes API to limit number of returned fields to at\n * most <limit>.\n * Zero value makes API to return all available fields of the resource.\n *\n * @generated from protobuf field: uint32 limit = 3\n */\n limit: number;\n}\n/**\n * Multi-message\n *\n * @generated from protobuf message MiLaboratories.PL.API.FieldAPI.List.Response\n */\nexport interface FieldAPI_List_Response {\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.Field field = 1\n */\n field?: Field;\n /**\n * The name of field next to the current one.\n *\n * Is not empty only for the last message in the current listing, when <limit> was > 0 in List.Request AND\n * there is more items to read (the listing was stopped because of that limit)\n *\n * Use <next> value as <start_from> in the List.Request to continue listing.\n *\n * @generated from protobuf field: string next = 4\n */\n next: string;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.NotificationAPI\n */\nexport interface NotificationAPI {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.NotificationAPI.Get\n */\nexport interface NotificationAPI_Get {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.NotificationAPI.Get.Request\n */\nexport interface NotificationAPI_Get_Request {\n /**\n * @generated from protobuf field: uint64 subscription = 1\n */\n subscription: bigint;\n /**\n * @generated from protobuf field: uint32 max_notifications = 2\n */\n maxNotifications: number;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.NotificationAPI.Get.Response\n */\nexport interface NotificationAPI_Get_Response {\n /**\n * @generated from protobuf field: repeated MiLaboratories.PL.API.Notification notifications = 1\n */\n notifications: Notification[];\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.NotificationAPI.Ack\n */\nexport interface NotificationAPI_Ack {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.NotificationAPI.Ack.Request\n */\nexport interface NotificationAPI_Ack_Request {\n /**\n * @generated from protobuf field: uint64 subscription_id = 1\n */\n subscriptionId: bigint;\n /**\n * @generated from protobuf field: uint64 event_id = 2\n */\n eventId: bigint;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.NotificationAPI.Ack.Response\n */\nexport interface NotificationAPI_Ack_Response {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.NotificationAPI.Discard\n */\nexport interface NotificationAPI_Discard {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.NotificationAPI.Discard.Request\n */\nexport interface NotificationAPI_Discard_Request {\n /**\n * @generated from protobuf field: uint64 subscription_id = 1\n */\n subscriptionId: bigint;\n /**\n * @generated from protobuf field: uint64 event_id = 2\n */\n eventId: bigint;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.NotificationAPI.Discard.Response\n */\nexport interface NotificationAPI_Discard_Response {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.SubscriptionAPI\n */\nexport interface SubscriptionAPI {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.SubscriptionAPI.CreateSubscription\n */\nexport interface SubscriptionAPI_CreateSubscription {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.SubscriptionAPI.CreateSubscription.Request\n */\nexport interface SubscriptionAPI_CreateSubscription_Request {\n /**\n * @generated from protobuf field: uint64 id = 1\n */\n id: bigint;\n /**\n * @generated from protobuf field: bool blocking = 2\n */\n blocking: boolean;\n /**\n * @generated from protobuf field: bool gc = 3\n */\n gc: boolean;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.SubscriptionAPI.CreateSubscription.Response\n */\nexport interface SubscriptionAPI_CreateSubscription_Response {\n /**\n * @generated from protobuf field: uint64 subscription_id = 1\n */\n subscriptionId: bigint;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.SubscriptionAPI.CreateFilter\n */\nexport interface SubscriptionAPI_CreateFilter {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.SubscriptionAPI.CreateFilter.Request\n */\nexport interface SubscriptionAPI_CreateFilter_Request {\n /**\n * @generated from protobuf field: uint64 id = 1\n */\n id: bigint;\n /**\n * @generated from protobuf field: MiLaboratories.PL.RTypes.NotificationFilter filter = 2\n */\n filter?: NotificationFilter;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.SubscriptionAPI.CreateFilter.Response\n */\nexport interface SubscriptionAPI_CreateFilter_Response {\n /**\n * @generated from protobuf field: uint64 filter_id = 1\n */\n filterId: bigint;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.SubscriptionAPI.ListSubscriptions\n */\nexport interface SubscriptionAPI_ListSubscriptions {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.SubscriptionAPI.ListSubscriptions.SubscriptionInfo\n */\nexport interface SubscriptionAPI_ListSubscriptions_SubscriptionInfo {\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.Subscription subscription = 1\n */\n subscription?: Subscription;\n /**\n * TS of the moment someone last read notifications from subscription.\n * old time = stale (lost) subscription\n *\n * @generated from protobuf field: uint64 last_read_time = 2\n */\n lastReadTime: bigint;\n /**\n * number of not-yet-read notifications in subscription queue\n * (notifications subscriber is expected to get on next reads)\n *\n * @generated from protobuf field: uint64 notification_queue_size = 3\n */\n notificationQueueSize: bigint;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.SubscriptionAPI.ListSubscriptions.Request\n */\nexport interface SubscriptionAPI_ListSubscriptions_Request {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.SubscriptionAPI.ListSubscriptions.Response\n */\nexport interface SubscriptionAPI_ListSubscriptions_Response {\n /**\n * @generated from protobuf field: repeated MiLaboratories.PL.API.SubscriptionAPI.ListSubscriptions.SubscriptionInfo subscriptions = 1\n */\n subscriptions: SubscriptionAPI_ListSubscriptions_SubscriptionInfo[];\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.SubscriptionAPI.AttachFilter\n */\nexport interface SubscriptionAPI_AttachFilter {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.SubscriptionAPI.AttachFilter.Request\n */\nexport interface SubscriptionAPI_AttachFilter_Request {\n /**\n * @generated from protobuf field: uint64 subscription_id = 1\n */\n subscriptionId: bigint;\n /**\n * @generated from protobuf field: string filter_name = 2\n */\n filterName: string;\n /**\n * @generated from protobuf field: uint64 filter_id = 3\n */\n filterId: bigint;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.SubscriptionAPI.AttachFilter.Response\n */\nexport interface SubscriptionAPI_AttachFilter_Response {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.SubscriptionAPI.DetachFilter\n */\nexport interface SubscriptionAPI_DetachFilter {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.SubscriptionAPI.DetachFilter.Request\n */\nexport interface SubscriptionAPI_DetachFilter_Request {\n /**\n * @generated from protobuf field: uint64 subscription_id = 1\n */\n subscriptionId: bigint;\n /**\n * @generated from protobuf field: string filter_name = 2\n */\n filterName: string;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.SubscriptionAPI.DetachFilter.Response\n */\nexport interface SubscriptionAPI_DetachFilter_Response {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI\n */\nexport interface ControllerAPI {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.Register\n */\nexport interface ControllerAPI_Register {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.Register.Request\n */\nexport interface ControllerAPI_Register_Request {\n /**\n * @generated from protobuf field: string controller_type = 1\n */\n controllerType: string;\n /**\n * @generated from protobuf field: map<string, MiLaboratories.PL.RTypes.NotificationFilter> filters = 2\n */\n filters: {\n [key: string]: NotificationFilter;\n };\n /**\n * @generated from protobuf field: repeated MiLaboratories.PL.API.ResourceSchema resource_schemas = 3\n */\n resourceSchemas: ResourceSchema[];\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.Register.Response\n */\nexport interface ControllerAPI_Register_Response {\n /**\n * @generated from protobuf field: uint64 controller_id = 1\n */\n controllerId: bigint;\n /**\n * @generated from protobuf field: uint64 subscription_id = 2\n */\n subscriptionId: bigint;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.Exists\n */\nexport interface ControllerAPI_Exists {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.Exists.Request\n */\nexport interface ControllerAPI_Exists_Request {\n /**\n * @generated from protobuf field: string controller_type = 1\n */\n controllerType: string;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.Exists.Response\n */\nexport interface ControllerAPI_Exists_Response {\n /**\n * @generated from protobuf field: bool exists = 1\n */\n exists: boolean;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.Update\n */\nexport interface ControllerAPI_Update {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.Update.Request\n */\nexport interface ControllerAPI_Update_Request {\n /**\n * @generated from protobuf field: string controller_type = 1\n */\n controllerType: string;\n /**\n * @generated from protobuf field: map<string, MiLaboratories.PL.RTypes.NotificationFilter> filters = 2\n */\n filters: {\n [key: string]: NotificationFilter;\n };\n /**\n * @generated from protobuf field: repeated MiLaboratories.PL.API.ResourceSchema resource_schemas = 3\n */\n resourceSchemas: ResourceSchema[];\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.Update.Response\n */\nexport interface ControllerAPI_Update_Response {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.Deregister\n */\nexport interface ControllerAPI_Deregister {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.Deregister.Request\n */\nexport interface ControllerAPI_Deregister_Request {\n /**\n * @generated from protobuf field: string controller_type = 1\n */\n controllerType: string;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.Deregister.Response\n */\nexport interface ControllerAPI_Deregister_Response {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.Create\n */\nexport interface ControllerAPI_Create {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.Create.Request\n */\nexport interface ControllerAPI_Create_Request {\n /**\n * @generated from protobuf field: uint64 id = 1\n */\n id: bigint;\n /**\n * @generated from protobuf field: string controller_type = 2\n */\n controllerType: string;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.Create.Response\n */\nexport interface ControllerAPI_Create_Response {\n /**\n * @generated from protobuf field: uint64 controller_id = 1\n */\n controllerId: bigint;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.Get\n */\nexport interface ControllerAPI_Get {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.Get.Request\n */\nexport interface ControllerAPI_Get_Request {\n /**\n * @generated from protobuf field: string controller_type = 1\n */\n controllerType: string;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.Get.Response\n */\nexport interface ControllerAPI_Get_Response {\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.Controller controller = 1\n */\n controller?: Controller;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.AttachSubscription\n */\nexport interface ControllerAPI_AttachSubscription {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.AttachSubscription.Request\n */\nexport interface ControllerAPI_AttachSubscription_Request {\n /**\n * @generated from protobuf field: uint64 controller_id = 1\n */\n controllerId: bigint;\n /**\n * @generated from protobuf field: uint64 subscription_id = 2\n */\n subscriptionId: bigint;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.AttachSubscription.Response\n */\nexport interface ControllerAPI_AttachSubscription_Response {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.GetNotifications\n */\nexport interface ControllerAPI_GetNotifications {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.GetNotifications.Request\n */\nexport interface ControllerAPI_GetNotifications_Request {\n /**\n * @generated from protobuf field: string controller_type = 1\n */\n controllerType: string;\n /**\n * @generated from protobuf field: uint32 max_notifications = 2\n */\n maxNotifications: number;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.GetNotifications.Response\n */\nexport interface ControllerAPI_GetNotifications_Response {\n /**\n * @generated from protobuf field: repeated MiLaboratories.PL.API.Notification notifications = 1\n */\n notifications: Notification[];\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.WriteAliasesAndUrls\n */\nexport interface ControllerAPI_WriteAliasesAndUrls {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.WriteAliasesAndUrls.Request\n */\nexport interface ControllerAPI_WriteAliasesAndUrls_Request {\n /**\n * @generated from protobuf field: string controller_type = 1\n */\n controllerType: string;\n /**\n * @generated from protobuf field: map<string, string> aliases_to_urls = 2\n */\n aliasesToUrls: {\n [key: string]: string;\n };\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.WriteAliasesAndUrls.Response\n */\nexport interface ControllerAPI_WriteAliasesAndUrls_Response {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.GetUrl\n */\nexport interface ControllerAPI_GetUrl {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.GetUrl.Request\n */\nexport interface ControllerAPI_GetUrl_Request {\n /**\n * @generated from protobuf field: string controller_alias = 1\n */\n controllerAlias: string;\n /**\n * @generated from protobuf field: uint64 resource_id = 2\n */\n resourceId: bigint;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.GetUrl.Response\n */\nexport interface ControllerAPI_GetUrl_Response {\n /**\n * @generated from protobuf field: string controller_url = 2\n */\n controllerUrl: string;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.RemoveAliasesAndUrls\n */\nexport interface ControllerAPI_RemoveAliasesAndUrls {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.RemoveAliasesAndUrls.Request\n */\nexport interface ControllerAPI_RemoveAliasesAndUrls_Request {\n /**\n * @generated from protobuf field: string controller_type = 1\n */\n controllerType: string;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.RemoveAliasesAndUrls.Response\n */\nexport interface ControllerAPI_RemoveAliasesAndUrls_Response {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.SetFeatures\n */\nexport interface ControllerAPI_SetFeatures {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.SetFeatures.Request\n */\nexport interface ControllerAPI_SetFeatures_Request {\n /**\n * @generated from protobuf field: repeated MiLaboratories.PL.API.ResourceAPIFeature features = 2\n */\n features: ResourceAPIFeature[];\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.SetFeatures.Response\n */\nexport interface ControllerAPI_SetFeatures_Response {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.ClearFeatures\n */\nexport interface ControllerAPI_ClearFeatures {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.ClearFeatures.Request\n */\nexport interface ControllerAPI_ClearFeatures_Request {\n /**\n * @generated from protobuf field: string controller_type = 1\n */\n controllerType: string;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerAPI.ClearFeatures.Response\n */\nexport interface ControllerAPI_ClearFeatures_Response {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceKVAPI\n */\nexport interface ResourceKVAPI {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceKVAPI.List\n */\nexport interface ResourceKVAPI_List {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceKVAPI.List.Request\n */\nexport interface ResourceKVAPI_List_Request {\n /**\n * @generated from protobuf field: uint64 resource_id = 1\n */\n resourceId: bigint;\n /**\n * Start the listing from given position, returning first item with\n * key >= start_from.\n *\n * @generated from protobuf field: string start_from = 2\n */\n startFrom: string;\n /**\n * Non-zero value makes API to limit its responses count to at most\n * <limit> number of items.\n * Zero value makes API to return all available items.\n *\n * @generated from protobuf field: uint32 limit = 3\n */\n limit: number;\n}\n/**\n * Multi-message\n *\n * @generated from protobuf message MiLaboratories.PL.API.ResourceKVAPI.List.Response\n */\nexport interface ResourceKVAPI_List_Response {\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.ResourceKVAPI.List.Response.KV record = 1\n */\n record?: ResourceKVAPI_List_Response_KV;\n /**\n * The key of the KV item next to the last returned item.\n *\n * Is not empty only for the last message in the current listing, when <limit> was > 0 in List.Request AND\n * there is more items to read (the listing was stopped because of that limit)\n *\n * Use <next> value as <start_from> of the List.Request to continue listing.\n *\n * @generated from protobuf field: string next = 4\n */\n next: string;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceKVAPI.List.Response.KV\n */\nexport interface ResourceKVAPI_List_Response_KV {\n /**\n * @generated from protobuf field: string key = 2\n */\n key: string;\n /**\n * @generated from protobuf field: bytes value = 3\n */\n value: Uint8Array;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceKVAPI.Set\n */\nexport interface ResourceKVAPI_Set {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceKVAPI.Set.Request\n */\nexport interface ResourceKVAPI_Set_Request {\n /**\n * @generated from protobuf field: uint64 resource_id = 1\n */\n resourceId: bigint;\n /**\n * @generated from protobuf field: string key = 2\n */\n key: string;\n /**\n * @generated from protobuf field: bytes value = 3\n */\n value: Uint8Array;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceKVAPI.Set.Response\n */\nexport interface ResourceKVAPI_Set_Response {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceKVAPI.Get\n */\nexport interface ResourceKVAPI_Get {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceKVAPI.Get.Request\n */\nexport interface ResourceKVAPI_Get_Request {\n /**\n * @generated from protobuf field: uint64 resource_id = 1\n */\n resourceId: bigint;\n /**\n * @generated from protobuf field: string key = 2\n */\n key: string;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceKVAPI.Get.Response\n */\nexport interface ResourceKVAPI_Get_Response {\n /**\n * @generated from protobuf field: bytes value = 1\n */\n value: Uint8Array;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceKVAPI.GetIfExists\n */\nexport interface ResourceKVAPI_GetIfExists {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceKVAPI.GetIfExists.Request\n */\nexport interface ResourceKVAPI_GetIfExists_Request {\n /**\n * @generated from protobuf field: uint64 resource_id = 1\n */\n resourceId: bigint;\n /**\n * @generated from protobuf field: string key = 2\n */\n key: string;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceKVAPI.GetIfExists.Response\n */\nexport interface ResourceKVAPI_GetIfExists_Response {\n /**\n * @generated from protobuf field: bytes value = 1\n */\n value: Uint8Array;\n /**\n * @generated from protobuf field: bool exists = 2\n */\n exists: boolean;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceKVAPI.Delete\n */\nexport interface ResourceKVAPI_Delete {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceKVAPI.Delete.Request\n */\nexport interface ResourceKVAPI_Delete_Request {\n /**\n * @generated from protobuf field: uint64 resource_id = 1\n */\n resourceId: bigint;\n /**\n * @generated from protobuf field: string key = 2\n */\n key: string;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceKVAPI.Delete.Response\n */\nexport interface ResourceKVAPI_Delete_Response {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceKVAPI.SetFlag\n */\nexport interface ResourceKVAPI_SetFlag {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceKVAPI.SetFlag.Request\n */\nexport interface ResourceKVAPI_SetFlag_Request {\n /**\n * @generated from protobuf field: uint64 resource_id = 1\n */\n resourceId: bigint;\n /**\n * @generated from protobuf field: string key = 2\n */\n key: string;\n /**\n * @generated from protobuf field: bool value = 3\n */\n value: boolean;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceKVAPI.SetFlag.Response\n */\nexport interface ResourceKVAPI_SetFlag_Response {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceKVAPI.GetFlag\n */\nexport interface ResourceKVAPI_GetFlag {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceKVAPI.GetFlag.Request\n */\nexport interface ResourceKVAPI_GetFlag_Request {\n /**\n * @generated from protobuf field: uint64 resource_id = 1\n */\n resourceId: bigint;\n /**\n * @generated from protobuf field: string key = 2\n */\n key: string;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ResourceKVAPI.GetFlag.Response\n */\nexport interface ResourceKVAPI_GetFlag_Response {\n /**\n * @generated from protobuf field: bool value = 1\n */\n value: boolean;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerKVAPI\n */\nexport interface ControllerKVAPI {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerKVAPI.Set\n */\nexport interface ControllerKVAPI_Set {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerKVAPI.Set.Request\n */\nexport interface ControllerKVAPI_Set_Request {\n /**\n * @generated from protobuf field: string controller_type = 1\n */\n controllerType: string;\n /**\n * @generated from protobuf field: string key = 2\n */\n key: string;\n /**\n * @generated from protobuf field: bytes value = 3\n */\n value: Uint8Array;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerKVAPI.Set.Response\n */\nexport interface ControllerKVAPI_Set_Response {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerKVAPI.Get\n */\nexport interface ControllerKVAPI_Get {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerKVAPI.Get.Request\n */\nexport interface ControllerKVAPI_Get_Request {\n /**\n * @generated from protobuf field: string controller_type = 1\n */\n controllerType: string;\n /**\n * @generated from protobuf field: string key = 2\n */\n key: string;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerKVAPI.Get.Response\n */\nexport interface ControllerKVAPI_Get_Response {\n /**\n * @generated from protobuf field: bytes value = 1\n */\n value: Uint8Array;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerKVAPI.GetIfExists\n */\nexport interface ControllerKVAPI_GetIfExists {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerKVAPI.GetIfExists.Request\n */\nexport interface ControllerKVAPI_GetIfExists_Request {\n /**\n * @generated from protobuf field: string controller_type = 1\n */\n controllerType: string;\n /**\n * @generated from protobuf field: string key = 2\n */\n key: string;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.ControllerKVAPI.GetIfExists.Response\n */\nexport interface ControllerKVAPI_GetIfExists_Response {\n /**\n * @generated from protobuf field: bytes value = 1\n */\n value: Uint8Array;\n /**\n * @generated from protobuf field: bool exists = 2\n */\n exists: boolean;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.CacheAPI\n */\nexport interface CacheAPI {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.CacheAPI.SetToField\n */\nexport interface CacheAPI_SetToField {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.CacheAPI.SetToField.Request\n */\nexport interface CacheAPI_SetToField_Request {\n /**\n * @generated from protobuf field: MiLaboratories.PL.Base.FieldRef id = 1\n */\n id?: FieldRef;\n /**\n * @generated from protobuf field: google.protobuf.Duration period = 2\n */\n period?: Duration;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.CacheAPI.SetToField.Response\n */\nexport interface CacheAPI_SetToField_Response {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.CacheAPI.DeleteExpiredRecords\n */\nexport interface CacheAPI_DeleteExpiredRecords {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.CacheAPI.DeleteExpiredRecords.Request\n */\nexport interface CacheAPI_DeleteExpiredRecords_Request {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.CacheAPI.DeleteExpiredRecords.Response\n */\nexport interface CacheAPI_DeleteExpiredRecords_Response {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.LocksAPI\n */\nexport interface LocksAPI {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.LocksAPI.Lease\n */\nexport interface LocksAPI_Lease {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.LocksAPI.Lease.Create\n */\nexport interface LocksAPI_Lease_Create {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.LocksAPI.Lease.Create.Request\n */\nexport interface LocksAPI_Lease_Create_Request {\n /**\n * @generated from protobuf field: uint64 resource_id = 1\n */\n resourceId: bigint;\n /**\n * @generated from protobuf field: google.protobuf.Duration timeout = 3\n */\n timeout?: Duration;\n /**\n * @generated from protobuf field: string name = 4\n */\n name: string;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.LocksAPI.Lease.Create.Response\n */\nexport interface LocksAPI_Lease_Create_Response {\n /**\n * @generated from protobuf field: bytes lease_id = 1\n */\n leaseId: Uint8Array;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.LocksAPI.Lease.Update\n */\nexport interface LocksAPI_Lease_Update {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.LocksAPI.Lease.Update.Request\n */\nexport interface LocksAPI_Lease_Update_Request {\n /**\n * @generated from protobuf field: uint64 resource_id = 1\n */\n resourceId: bigint;\n /**\n * @generated from protobuf field: bytes lease_id = 2\n */\n leaseId: Uint8Array;\n /**\n * @generated from protobuf field: google.protobuf.Duration timeout = 3\n */\n timeout?: Duration;\n /**\n * @generated from protobuf field: string name = 4\n */\n name: string;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.LocksAPI.Lease.Update.Response\n */\nexport interface LocksAPI_Lease_Update_Response {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.LocksAPI.Lease.Release\n */\nexport interface LocksAPI_Lease_Release {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.LocksAPI.Lease.Release.Request\n */\nexport interface LocksAPI_Lease_Release_Request {\n /**\n * @generated from protobuf field: uint64 resource_id = 1\n */\n resourceId: bigint;\n /**\n * @generated from protobuf field: bytes lease_id = 2\n */\n leaseId: Uint8Array;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.LocksAPI.Lease.Release.Response\n */\nexport interface LocksAPI_Lease_Release_Response {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.AuthAPI\n */\nexport interface AuthAPI {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.AuthAPI.ListMethods\n */\nexport interface AuthAPI_ListMethods {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.AuthAPI.ListMethods.Request\n */\nexport interface AuthAPI_ListMethods_Request {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.AuthAPI.ListMethods.Response\n */\nexport interface AuthAPI_ListMethods_Response {\n /**\n * @generated from protobuf field: repeated MiLaboratories.PL.API.AuthAPI.ListMethods.MethodInfo methods = 1\n */\n methods: AuthAPI_ListMethods_MethodInfo[];\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.AuthAPI.ListMethods.MethodInfo\n */\nexport interface AuthAPI_ListMethods_MethodInfo {\n /**\n * @generated from protobuf field: string type = 1\n */\n type: string;\n /**\n * @generated from protobuf field: string name = 2\n */\n name: string;\n /**\n * @generated from protobuf field: map<string, string> info = 3\n */\n info: {\n [key: string]: string;\n };\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.AuthAPI.GetJWTToken\n */\nexport interface AuthAPI_GetJWTToken {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.AuthAPI.GetJWTToken.Request\n */\nexport interface AuthAPI_GetJWTToken_Request {\n /**\n * @generated from protobuf field: google.protobuf.Duration expiration = 1\n */\n expiration?: Duration;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.AuthAPI.GetJWTToken.Response\n */\nexport interface AuthAPI_GetJWTToken_Response {\n /**\n * @generated from protobuf field: string token = 1\n */\n token: string;\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.MiscAPI\n */\nexport interface MiscAPI {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.MiscAPI.ListResourceTypes\n */\nexport interface MiscAPI_ListResourceTypes {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.MiscAPI.ListResourceTypes.Request\n */\nexport interface MiscAPI_ListResourceTypes_Request {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.MiscAPI.ListResourceTypes.Response\n */\nexport interface MiscAPI_ListResourceTypes_Response {\n /**\n * @generated from protobuf field: repeated MiLaboratories.PL.Base.ResourceType types = 1\n */\n types: ResourceType[];\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.MaintenanceAPI\n */\nexport interface MaintenanceAPI {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.MaintenanceAPI.Ping\n */\nexport interface MaintenanceAPI_Ping {\n}\n/**\n * Early connection check\n *\n * @generated from protobuf message MiLaboratories.PL.API.MaintenanceAPI.Ping.Request\n */\nexport interface MaintenanceAPI_Ping_Request {\n}\n/**\n * @generated from protobuf message MiLaboratories.PL.API.MaintenanceAPI.Ping.Response\n */\nexport interface MaintenanceAPI_Ping_Response {\n /**\n * @generated from protobuf field: string core_version = 1\n */\n coreVersion: string;\n /**\n * @generated from protobuf field: string core_full_version = 2\n */\n coreFullVersion: string;\n /**\n * @generated from protobuf field: string server_info = 3\n */\n serverInfo: string;\n /**\n * @generated from protobuf field: MiLaboratories.PL.API.MaintenanceAPI.Ping.Response.Compression compression = 4\n */\n compression: MaintenanceAPI_Ping_Response_Compression;\n /**\n * instanceID is a unique ID that changes when we reset DB state.\n * If we reset a state and a database, but the address of the backend is still the same,\n * without instanceID we are not sure if it's the same state or not,\n * and UI can't detect it and clear its state (e.g. caches of drivers).\n *\n * @generated from protobuf field: string instance_id = 5\n */\n instanceId: string;\n}\n/**\n * @generated from protobuf enum MiLaboratories.PL.API.MaintenanceAPI.Ping.Response.Compression\n */\nexport enum MaintenanceAPI_Ping_Response_Compression {\n /**\n * @generated from protobuf enum value: NONE = 0;\n */\n NONE = 0,\n /**\n * @generated from protobuf enum value: GZIP = 1;\n */\n GZIP = 1\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass TxAPI$Type extends MessageType<TxAPI> {\n constructor() {\n super(\"MiLaboratories.PL.API.TxAPI\", []);\n }\n create(value?: PartialMessage<TxAPI>): TxAPI {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<TxAPI>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TxAPI): TxAPI {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: TxAPI, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.TxAPI\n */\nexport const TxAPI = new TxAPI$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass TxAPI_ClientMessage$Type extends MessageType<TxAPI_ClientMessage> {\n constructor() {\n super(\"MiLaboratories.PL.API.TxAPI.ClientMessage\", [\n { no: 1, name: \"request_id\", kind: \"scalar\", T: 13 /*ScalarType.UINT32*/ },\n { no: 11, name: \"tx_open\", kind: \"message\", oneof: \"request\", T: () => TxAPI_Open_Request },\n { no: 12, name: \"tx_commit\", kind: \"message\", oneof: \"request\", T: () => TxAPI_Commit_Request },\n { no: 13, name: \"tx_discard\", kind: \"message\", oneof: \"request\", T: () => TxAPI_Discard_Request },\n { no: 58, name: \"resource_create_root\", kind: \"message\", oneof: \"request\", T: () => ResourceAPI_CreateRoot_Request },\n { no: 57, name: \"resource_remove\", kind: \"message\", oneof: \"request\", T: () => ResourceAPI_Remove_Request },\n { no: 51, name: \"resource_create_struct\", kind: \"message\", oneof: \"request\", T: () => ResourceAPI_CreateStruct_Request },\n { no: 62, name: \"resource_create_ephemeral\", kind: \"message\", oneof: \"request\", T: () => ResourceAPI_CreateEphemeral_Request },\n { no: 52, name: \"resource_create_value\", kind: \"message\", oneof: \"request\", T: () => ResourceAPI_CreateValue_Request },\n { no: 63, name: \"resource_get_value_id\", kind: \"message\", oneof: \"request\", T: () => ResourceAPI_GetValueID_Request },\n { no: 64, name: \"resource_create_singleton\", kind: \"message\", oneof: \"request\", T: () => ResourceAPI_CreateSingleton_Request },\n { no: 65, name: \"resource_get_singleton\", kind: \"message\", oneof: \"request\", T: () => ResourceAPI_GetSingleton_Request },\n { no: 59, name: \"resource_create_child\", kind: \"message\", oneof: \"request\", T: () => ResourceAPI_CreateChild_Request },\n { no: 53, name: \"resource_lock_inputs\", kind: \"message\", oneof: \"request\", T: () => ResourceAPI_LockInputs_Request },\n { no: 56, name: \"resource_lock_outputs\", kind: \"message\", oneof: \"request\", T: () => ResourceAPI_LockOutputs_Request },\n { no: 54, name: \"resource_exists\", kind: \"message\", oneof: \"request\", T: () => ResourceAPI_Exists_Request },\n { no: 55, name: \"resource_get\", kind: \"message\", oneof: \"request\", T: () => ResourceAPI_Get_Request },\n { no: 61, name: \"resource_set_error\", kind: \"message\", oneof: \"request\", T: () => ResourceAPI_SetError_Request },\n { no: 60, name: \"resource_list_by_type\", kind: \"message\", oneof: \"request\", T: () => ResourceAPI_List_ByType_Request },\n { no: 66, name: \"resource_name_set\", kind: \"message\", oneof: \"request\", T: () => ResourceAPI_Name_Set_Request },\n { no: 67, name: \"resource_name_get\", kind: \"message\", oneof: \"request\", T: () => ResourceAPI_Name_Get_Request },\n { no: 68, name: \"resource_name_exists\", kind: \"message\", oneof: \"request\", T: () => ResourceAPI_Name_Exists_Request },\n { no: 69, name: \"resource_name_delete\", kind: \"message\", oneof: \"request\", T: () => ResourceAPI_Name_Delete_Request },\n { no: 70, name: \"resource_tree\", kind: \"message\", oneof: \"request\", T: () => ResourceAPI_Tree_Request },\n { no: 71, name: \"resource_tree_size\", kind: \"message\", oneof: \"request\", T: () => ResourceAPI_TreeSize_Request },\n { no: 101, name: \"field_create\", kind: \"message\", oneof: \"request\", T: () => FieldAPI_Create_Request },\n { no: 107, name: \"field_exists\", kind: \"message\", oneof: \"request\", T: () => FieldAPI_Exists_Request },\n { no: 102, name: \"field_set\", kind: \"message\", oneof: \"request\", T: () => FieldAPI_Set_Request },\n { no: 105, name: \"field_set_error\", kind: \"message\", oneof: \"request\", T: () => FieldAPI_SetError_Request },\n { no: 103, name: \"field_get\", kind: \"message\", oneof: \"request\", T: () => FieldAPI_Get_Request },\n { no: 104, name: \"field_reset\", kind: \"message\", oneof: \"request\", T: () => FieldAPI_Reset_Request },\n { no: 106, name: \"field_remove\", kind: \"message\", oneof: \"request\", T: () => FieldAPI_Remove_Request },\n { no: 108, name: \"field_list\", kind: \"message\", oneof: \"request\", T: () => FieldAPI_List_Request },\n { no: 111, name: \"subscription_create\", kind: \"message\", oneof: \"request\", T: () => SubscriptionAPI_CreateSubscription_Request },\n { no: 112, name: \"subscription_attach_filter\", kind: \"message\", oneof: \"request\", T: () => SubscriptionAPI_AttachFilter_Request },\n { no: 113, name: \"subscription_detach_filter\", kind: \"message\", oneof: \"request\", T: () => SubscriptionAPI_DetachFilter_Request },\n { no: 115, name: \"subscription_create_filter\", kind: \"message\", oneof: \"request\", T: () => SubscriptionAPI_CreateFilter_Request },\n { no: 154, name: \"notification_get\", kind: \"message\", oneof: \"request\", T: () => NotificationAPI_Get_Request },\n { no: 155, name: \"notification_ack\", kind: \"message\", oneof: \"request\", T: () => NotificationAPI_Ack_Request },\n { no: 156, name: \"notification_discard\", kind: \"message\", oneof: \"request\", T: () => NotificationAPI_Discard_Request },\n { no: 200, name: \"resource_key_value_set\", kind: \"message\", oneof: \"request\", T: () => ResourceKVAPI_Set_Request },\n { no: 201, name: \"resource_key_value_get\", kind: \"message\", oneof: \"request\", T: () => ResourceKVAPI_Get_Request },\n { no: 202, name: \"resource_key_value_get_if_exists\", kind: \"message\", oneof: \"request\", T: () => ResourceKVAPI_GetIfExists_Request },\n { no: 203, name: \"resource_key_value_set_flag\", kind: \"message\", oneof: \"request\", T: () => ResourceKVAPI_SetFlag_Request },\n { no: 204, name: \"resource_key_value_get_flag\", kind: \"message\", oneof: \"request\", T: () => ResourceKVAPI_GetFlag_Request },\n { no: 205, name: \"resource_key_value_get_flag_if_exists\", kind: \"message\", oneof: \"request\", T: () => ResourceKVAPI_GetFlag_Request },\n { no: 206, name: \"resource_key_value_delete\", kind: \"message\", oneof: \"request\", T: () => ResourceKVAPI_Delete_Request },\n { no: 207, name: \"resource_key_value_list\", kind: \"message\", oneof: \"request\", T: () => ResourceKVAPI_List_Request },\n { no: 250, name: \"controller_key_value_set\", kind: \"message\", oneof: \"request\", T: () => ControllerKVAPI_Set_Request },\n { no: 251, name: \"controller_key_value_get\", kind: \"message\", oneof: \"request\", T: () => ControllerKVAPI_Get_Request },\n { no: 252, name: \"controller_key_value_get_if_exists\", kind: \"message\", oneof: \"request\", T: () => ControllerKVAPI_GetIfExists_Request },\n { no: 300, name: \"cache_set_to_field\", kind: \"message\", oneof: \"request\", T: () => CacheAPI_SetToField_Request },\n { no: 301, name: \"cache_delete_expired_records\", kind: \"message\", oneof: \"request\", T: () => CacheAPI_DeleteExpiredRecords_Request },\n { no: 350, name: \"controller_features_set\", kind: \"message\", oneof: \"request\", T: () => ControllerAPI_SetFeatures_Request },\n { no: 351, name: \"controller_features_clear\", kind: \"message\", oneof: \"request\", T: () => ControllerAPI_ClearFeatures_Request }\n ]);\n }\n create(value?: PartialMessage<TxAPI_ClientMessage>): TxAPI_ClientMessage {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.requestId = 0;\n message.request = { oneofKind: undefined };\n if (value !== undefined)\n reflectionMergePartial<TxAPI_ClientMessage>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TxAPI_ClientMessage): TxAPI_ClientMessage {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint32 request_id */ 1:\n message.requestId = reader.uint32();\n break;\n case /* MiLaboratories.PL.API.TxAPI.Open.Request tx_open */ 11:\n message.request = {\n oneofKind: \"txOpen\",\n txOpen: TxAPI_Open_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).txOpen)\n };\n break;\n case /* MiLaboratories.PL.API.TxAPI.Commit.Request tx_commit */ 12:\n message.request = {\n oneofKind: \"txCommit\",\n txCommit: TxAPI_Commit_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).txCommit)\n };\n break;\n case /* MiLaboratories.PL.API.TxAPI.Discard.Request tx_discard */ 13:\n message.request = {\n oneofKind: \"txDiscard\",\n txDiscard: TxAPI_Discard_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).txDiscard)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.CreateRoot.Request resource_create_root */ 58:\n message.request = {\n oneofKind: \"resourceCreateRoot\",\n resourceCreateRoot: ResourceAPI_CreateRoot_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).resourceCreateRoot)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.Remove.Request resource_remove */ 57:\n message.request = {\n oneofKind: \"resourceRemove\",\n resourceRemove: ResourceAPI_Remove_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).resourceRemove)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.CreateStruct.Request resource_create_struct */ 51:\n message.request = {\n oneofKind: \"resourceCreateStruct\",\n resourceCreateStruct: ResourceAPI_CreateStruct_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).resourceCreateStruct)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.CreateEphemeral.Request resource_create_ephemeral */ 62:\n message.request = {\n oneofKind: \"resourceCreateEphemeral\",\n resourceCreateEphemeral: ResourceAPI_CreateEphemeral_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).resourceCreateEphemeral)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.CreateValue.Request resource_create_value */ 52:\n message.request = {\n oneofKind: \"resourceCreateValue\",\n resourceCreateValue: ResourceAPI_CreateValue_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).resourceCreateValue)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.GetValueID.Request resource_get_value_id */ 63:\n message.request = {\n oneofKind: \"resourceGetValueId\",\n resourceGetValueId: ResourceAPI_GetValueID_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).resourceGetValueId)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.CreateSingleton.Request resource_create_singleton */ 64:\n message.request = {\n oneofKind: \"resourceCreateSingleton\",\n resourceCreateSingleton: ResourceAPI_CreateSingleton_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).resourceCreateSingleton)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.GetSingleton.Request resource_get_singleton */ 65:\n message.request = {\n oneofKind: \"resourceGetSingleton\",\n resourceGetSingleton: ResourceAPI_GetSingleton_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).resourceGetSingleton)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.CreateChild.Request resource_create_child */ 59:\n message.request = {\n oneofKind: \"resourceCreateChild\",\n resourceCreateChild: ResourceAPI_CreateChild_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).resourceCreateChild)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.LockInputs.Request resource_lock_inputs */ 53:\n message.request = {\n oneofKind: \"resourceLockInputs\",\n resourceLockInputs: ResourceAPI_LockInputs_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).resourceLockInputs)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.LockOutputs.Request resource_lock_outputs */ 56:\n message.request = {\n oneofKind: \"resourceLockOutputs\",\n resourceLockOutputs: ResourceAPI_LockOutputs_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).resourceLockOutputs)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.Exists.Request resource_exists */ 54:\n message.request = {\n oneofKind: \"resourceExists\",\n resourceExists: ResourceAPI_Exists_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).resourceExists)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.Get.Request resource_get */ 55:\n message.request = {\n oneofKind: \"resourceGet\",\n resourceGet: ResourceAPI_Get_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).resourceGet)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.SetError.Request resource_set_error */ 61:\n message.request = {\n oneofKind: \"resourceSetError\",\n resourceSetError: ResourceAPI_SetError_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).resourceSetError)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.List.ByType.Request resource_list_by_type */ 60:\n message.request = {\n oneofKind: \"resourceListByType\",\n resourceListByType: ResourceAPI_List_ByType_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).resourceListByType)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.Name.Set.Request resource_name_set */ 66:\n message.request = {\n oneofKind: \"resourceNameSet\",\n resourceNameSet: ResourceAPI_Name_Set_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).resourceNameSet)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.Name.Get.Request resource_name_get */ 67:\n message.request = {\n oneofKind: \"resourceNameGet\",\n resourceNameGet: ResourceAPI_Name_Get_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).resourceNameGet)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.Name.Exists.Request resource_name_exists */ 68:\n message.request = {\n oneofKind: \"resourceNameExists\",\n resourceNameExists: ResourceAPI_Name_Exists_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).resourceNameExists)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.Name.Delete.Request resource_name_delete */ 69:\n message.request = {\n oneofKind: \"resourceNameDelete\",\n resourceNameDelete: ResourceAPI_Name_Delete_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).resourceNameDelete)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.Tree.Request resource_tree */ 70:\n message.request = {\n oneofKind: \"resourceTree\",\n resourceTree: ResourceAPI_Tree_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).resourceTree)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.TreeSize.Request resource_tree_size */ 71:\n message.request = {\n oneofKind: \"resourceTreeSize\",\n resourceTreeSize: ResourceAPI_TreeSize_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).resourceTreeSize)\n };\n break;\n case /* MiLaboratories.PL.API.FieldAPI.Create.Request field_create */ 101:\n message.request = {\n oneofKind: \"fieldCreate\",\n fieldCreate: FieldAPI_Create_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).fieldCreate)\n };\n break;\n case /* MiLaboratories.PL.API.FieldAPI.Exists.Request field_exists */ 107:\n message.request = {\n oneofKind: \"fieldExists\",\n fieldExists: FieldAPI_Exists_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).fieldExists)\n };\n break;\n case /* MiLaboratories.PL.API.FieldAPI.Set.Request field_set */ 102:\n message.request = {\n oneofKind: \"fieldSet\",\n fieldSet: FieldAPI_Set_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).fieldSet)\n };\n break;\n case /* MiLaboratories.PL.API.FieldAPI.SetError.Request field_set_error */ 105:\n message.request = {\n oneofKind: \"fieldSetError\",\n fieldSetError: FieldAPI_SetError_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).fieldSetError)\n };\n break;\n case /* MiLaboratories.PL.API.FieldAPI.Get.Request field_get */ 103:\n message.request = {\n oneofKind: \"fieldGet\",\n fieldGet: FieldAPI_Get_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).fieldGet)\n };\n break;\n case /* MiLaboratories.PL.API.FieldAPI.Reset.Request field_reset */ 104:\n message.request = {\n oneofKind: \"fieldReset\",\n fieldReset: FieldAPI_Reset_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).fieldReset)\n };\n break;\n case /* MiLaboratories.PL.API.FieldAPI.Remove.Request field_remove */ 106:\n message.request = {\n oneofKind: \"fieldRemove\",\n fieldRemove: FieldAPI_Remove_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).fieldRemove)\n };\n break;\n case /* MiLaboratories.PL.API.FieldAPI.List.Request field_list */ 108:\n message.request = {\n oneofKind: \"fieldList\",\n fieldList: FieldAPI_List_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).fieldList)\n };\n break;\n case /* MiLaboratories.PL.API.SubscriptionAPI.CreateSubscription.Request subscription_create */ 111:\n message.request = {\n oneofKind: \"subscriptionCreate\",\n subscriptionCreate: SubscriptionAPI_CreateSubscription_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).subscriptionCreate)\n };\n break;\n case /* MiLaboratories.PL.API.SubscriptionAPI.AttachFilter.Request subscription_attach_filter */ 112:\n message.request = {\n oneofKind: \"subscriptionAttachFilter\",\n subscriptionAttachFilter: SubscriptionAPI_AttachFilter_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).subscriptionAttachFilter)\n };\n break;\n case /* MiLaboratories.PL.API.SubscriptionAPI.DetachFilter.Request subscription_detach_filter */ 113:\n message.request = {\n oneofKind: \"subscriptionDetachFilter\",\n subscriptionDetachFilter: SubscriptionAPI_DetachFilter_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).subscriptionDetachFilter)\n };\n break;\n case /* MiLaboratories.PL.API.SubscriptionAPI.CreateFilter.Request subscription_create_filter */ 115:\n message.request = {\n oneofKind: \"subscriptionCreateFilter\",\n subscriptionCreateFilter: SubscriptionAPI_CreateFilter_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).subscriptionCreateFilter)\n };\n break;\n case /* MiLaboratories.PL.API.NotificationAPI.Get.Request notification_get */ 154:\n message.request = {\n oneofKind: \"notificationGet\",\n notificationGet: NotificationAPI_Get_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).notificationGet)\n };\n break;\n case /* MiLaboratories.PL.API.NotificationAPI.Ack.Request notification_ack */ 155:\n message.request = {\n oneofKind: \"notificationAck\",\n notificationAck: NotificationAPI_Ack_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).notificationAck)\n };\n break;\n case /* MiLaboratories.PL.API.NotificationAPI.Discard.Request notification_discard */ 156:\n message.request = {\n oneofKind: \"notificationDiscard\",\n notificationDiscard: NotificationAPI_Discard_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).notificationDiscard)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceKVAPI.Set.Request resource_key_value_set */ 200:\n message.request = {\n oneofKind: \"resourceKeyValueSet\",\n resourceKeyValueSet: ResourceKVAPI_Set_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).resourceKeyValueSet)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceKVAPI.Get.Request resource_key_value_get */ 201:\n message.request = {\n oneofKind: \"resourceKeyValueGet\",\n resourceKeyValueGet: ResourceKVAPI_Get_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).resourceKeyValueGet)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceKVAPI.GetIfExists.Request resource_key_value_get_if_exists */ 202:\n message.request = {\n oneofKind: \"resourceKeyValueGetIfExists\",\n resourceKeyValueGetIfExists: ResourceKVAPI_GetIfExists_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).resourceKeyValueGetIfExists)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceKVAPI.SetFlag.Request resource_key_value_set_flag */ 203:\n message.request = {\n oneofKind: \"resourceKeyValueSetFlag\",\n resourceKeyValueSetFlag: ResourceKVAPI_SetFlag_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).resourceKeyValueSetFlag)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceKVAPI.GetFlag.Request resource_key_value_get_flag */ 204:\n message.request = {\n oneofKind: \"resourceKeyValueGetFlag\",\n resourceKeyValueGetFlag: ResourceKVAPI_GetFlag_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).resourceKeyValueGetFlag)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceKVAPI.GetFlag.Request resource_key_value_get_flag_if_exists */ 205:\n message.request = {\n oneofKind: \"resourceKeyValueGetFlagIfExists\",\n resourceKeyValueGetFlagIfExists: ResourceKVAPI_GetFlag_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).resourceKeyValueGetFlagIfExists)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceKVAPI.Delete.Request resource_key_value_delete */ 206:\n message.request = {\n oneofKind: \"resourceKeyValueDelete\",\n resourceKeyValueDelete: ResourceKVAPI_Delete_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).resourceKeyValueDelete)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceKVAPI.List.Request resource_key_value_list */ 207:\n message.request = {\n oneofKind: \"resourceKeyValueList\",\n resourceKeyValueList: ResourceKVAPI_List_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).resourceKeyValueList)\n };\n break;\n case /* MiLaboratories.PL.API.ControllerKVAPI.Set.Request controller_key_value_set */ 250:\n message.request = {\n oneofKind: \"controllerKeyValueSet\",\n controllerKeyValueSet: ControllerKVAPI_Set_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).controllerKeyValueSet)\n };\n break;\n case /* MiLaboratories.PL.API.ControllerKVAPI.Get.Request controller_key_value_get */ 251:\n message.request = {\n oneofKind: \"controllerKeyValueGet\",\n controllerKeyValueGet: ControllerKVAPI_Get_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).controllerKeyValueGet)\n };\n break;\n case /* MiLaboratories.PL.API.ControllerKVAPI.GetIfExists.Request controller_key_value_get_if_exists */ 252:\n message.request = {\n oneofKind: \"controllerKeyValueGetIfExists\",\n controllerKeyValueGetIfExists: ControllerKVAPI_GetIfExists_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).controllerKeyValueGetIfExists)\n };\n break;\n case /* MiLaboratories.PL.API.CacheAPI.SetToField.Request cache_set_to_field */ 300:\n message.request = {\n oneofKind: \"cacheSetToField\",\n cacheSetToField: CacheAPI_SetToField_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).cacheSetToField)\n };\n break;\n case /* MiLaboratories.PL.API.CacheAPI.DeleteExpiredRecords.Request cache_delete_expired_records */ 301:\n message.request = {\n oneofKind: \"cacheDeleteExpiredRecords\",\n cacheDeleteExpiredRecords: CacheAPI_DeleteExpiredRecords_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).cacheDeleteExpiredRecords)\n };\n break;\n case /* MiLaboratories.PL.API.ControllerAPI.SetFeatures.Request controller_features_set */ 350:\n message.request = {\n oneofKind: \"controllerFeaturesSet\",\n controllerFeaturesSet: ControllerAPI_SetFeatures_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).controllerFeaturesSet)\n };\n break;\n case /* MiLaboratories.PL.API.ControllerAPI.ClearFeatures.Request controller_features_clear */ 351:\n message.request = {\n oneofKind: \"controllerFeaturesClear\",\n controllerFeaturesClear: ControllerAPI_ClearFeatures_Request.internalBinaryRead(reader, reader.uint32(), options, (message.request as any).controllerFeaturesClear)\n };\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: TxAPI_ClientMessage, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint32 request_id = 1; */\n if (message.requestId !== 0)\n writer.tag(1, WireType.Varint).uint32(message.requestId);\n /* MiLaboratories.PL.API.TxAPI.Open.Request tx_open = 11; */\n if (message.request.oneofKind === \"txOpen\")\n TxAPI_Open_Request.internalBinaryWrite(message.request.txOpen, writer.tag(11, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.TxAPI.Commit.Request tx_commit = 12; */\n if (message.request.oneofKind === \"txCommit\")\n TxAPI_Commit_Request.internalBinaryWrite(message.request.txCommit, writer.tag(12, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.TxAPI.Discard.Request tx_discard = 13; */\n if (message.request.oneofKind === \"txDiscard\")\n TxAPI_Discard_Request.internalBinaryWrite(message.request.txDiscard, writer.tag(13, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.CreateStruct.Request resource_create_struct = 51; */\n if (message.request.oneofKind === \"resourceCreateStruct\")\n ResourceAPI_CreateStruct_Request.internalBinaryWrite(message.request.resourceCreateStruct, writer.tag(51, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.CreateValue.Request resource_create_value = 52; */\n if (message.request.oneofKind === \"resourceCreateValue\")\n ResourceAPI_CreateValue_Request.internalBinaryWrite(message.request.resourceCreateValue, writer.tag(52, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.LockInputs.Request resource_lock_inputs = 53; */\n if (message.request.oneofKind === \"resourceLockInputs\")\n ResourceAPI_LockInputs_Request.internalBinaryWrite(message.request.resourceLockInputs, writer.tag(53, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.Exists.Request resource_exists = 54; */\n if (message.request.oneofKind === \"resourceExists\")\n ResourceAPI_Exists_Request.internalBinaryWrite(message.request.resourceExists, writer.tag(54, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.Get.Request resource_get = 55; */\n if (message.request.oneofKind === \"resourceGet\")\n ResourceAPI_Get_Request.internalBinaryWrite(message.request.resourceGet, writer.tag(55, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.LockOutputs.Request resource_lock_outputs = 56; */\n if (message.request.oneofKind === \"resourceLockOutputs\")\n ResourceAPI_LockOutputs_Request.internalBinaryWrite(message.request.resourceLockOutputs, writer.tag(56, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.Remove.Request resource_remove = 57; */\n if (message.request.oneofKind === \"resourceRemove\")\n ResourceAPI_Remove_Request.internalBinaryWrite(message.request.resourceRemove, writer.tag(57, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.CreateRoot.Request resource_create_root = 58; */\n if (message.request.oneofKind === \"resourceCreateRoot\")\n ResourceAPI_CreateRoot_Request.internalBinaryWrite(message.request.resourceCreateRoot, writer.tag(58, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.CreateChild.Request resource_create_child = 59; */\n if (message.request.oneofKind === \"resourceCreateChild\")\n ResourceAPI_CreateChild_Request.internalBinaryWrite(message.request.resourceCreateChild, writer.tag(59, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.List.ByType.Request resource_list_by_type = 60; */\n if (message.request.oneofKind === \"resourceListByType\")\n ResourceAPI_List_ByType_Request.internalBinaryWrite(message.request.resourceListByType, writer.tag(60, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.SetError.Request resource_set_error = 61; */\n if (message.request.oneofKind === \"resourceSetError\")\n ResourceAPI_SetError_Request.internalBinaryWrite(message.request.resourceSetError, writer.tag(61, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.CreateEphemeral.Request resource_create_ephemeral = 62; */\n if (message.request.oneofKind === \"resourceCreateEphemeral\")\n ResourceAPI_CreateEphemeral_Request.internalBinaryWrite(message.request.resourceCreateEphemeral, writer.tag(62, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.GetValueID.Request resource_get_value_id = 63; */\n if (message.request.oneofKind === \"resourceGetValueId\")\n ResourceAPI_GetValueID_Request.internalBinaryWrite(message.request.resourceGetValueId, writer.tag(63, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.CreateSingleton.Request resource_create_singleton = 64; */\n if (message.request.oneofKind === \"resourceCreateSingleton\")\n ResourceAPI_CreateSingleton_Request.internalBinaryWrite(message.request.resourceCreateSingleton, writer.tag(64, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.GetSingleton.Request resource_get_singleton = 65; */\n if (message.request.oneofKind === \"resourceGetSingleton\")\n ResourceAPI_GetSingleton_Request.internalBinaryWrite(message.request.resourceGetSingleton, writer.tag(65, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.Name.Set.Request resource_name_set = 66; */\n if (message.request.oneofKind === \"resourceNameSet\")\n ResourceAPI_Name_Set_Request.internalBinaryWrite(message.request.resourceNameSet, writer.tag(66, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.Name.Get.Request resource_name_get = 67; */\n if (message.request.oneofKind === \"resourceNameGet\")\n ResourceAPI_Name_Get_Request.internalBinaryWrite(message.request.resourceNameGet, writer.tag(67, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.Name.Exists.Request resource_name_exists = 68; */\n if (message.request.oneofKind === \"resourceNameExists\")\n ResourceAPI_Name_Exists_Request.internalBinaryWrite(message.request.resourceNameExists, writer.tag(68, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.Name.Delete.Request resource_name_delete = 69; */\n if (message.request.oneofKind === \"resourceNameDelete\")\n ResourceAPI_Name_Delete_Request.internalBinaryWrite(message.request.resourceNameDelete, writer.tag(69, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.Tree.Request resource_tree = 70; */\n if (message.request.oneofKind === \"resourceTree\")\n ResourceAPI_Tree_Request.internalBinaryWrite(message.request.resourceTree, writer.tag(70, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.TreeSize.Request resource_tree_size = 71; */\n if (message.request.oneofKind === \"resourceTreeSize\")\n ResourceAPI_TreeSize_Request.internalBinaryWrite(message.request.resourceTreeSize, writer.tag(71, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.FieldAPI.Create.Request field_create = 101; */\n if (message.request.oneofKind === \"fieldCreate\")\n FieldAPI_Create_Request.internalBinaryWrite(message.request.fieldCreate, writer.tag(101, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.FieldAPI.Set.Request field_set = 102; */\n if (message.request.oneofKind === \"fieldSet\")\n FieldAPI_Set_Request.internalBinaryWrite(message.request.fieldSet, writer.tag(102, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.FieldAPI.Get.Request field_get = 103; */\n if (message.request.oneofKind === \"fieldGet\")\n FieldAPI_Get_Request.internalBinaryWrite(message.request.fieldGet, writer.tag(103, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.FieldAPI.Reset.Request field_reset = 104; */\n if (message.request.oneofKind === \"fieldReset\")\n FieldAPI_Reset_Request.internalBinaryWrite(message.request.fieldReset, writer.tag(104, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.FieldAPI.SetError.Request field_set_error = 105; */\n if (message.request.oneofKind === \"fieldSetError\")\n FieldAPI_SetError_Request.internalBinaryWrite(message.request.fieldSetError, writer.tag(105, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.FieldAPI.Remove.Request field_remove = 106; */\n if (message.request.oneofKind === \"fieldRemove\")\n FieldAPI_Remove_Request.internalBinaryWrite(message.request.fieldRemove, writer.tag(106, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.FieldAPI.Exists.Request field_exists = 107; */\n if (message.request.oneofKind === \"fieldExists\")\n FieldAPI_Exists_Request.internalBinaryWrite(message.request.fieldExists, writer.tag(107, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.FieldAPI.List.Request field_list = 108; */\n if (message.request.oneofKind === \"fieldList\")\n FieldAPI_List_Request.internalBinaryWrite(message.request.fieldList, writer.tag(108, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.SubscriptionAPI.CreateSubscription.Request subscription_create = 111; */\n if (message.request.oneofKind === \"subscriptionCreate\")\n SubscriptionAPI_CreateSubscription_Request.internalBinaryWrite(message.request.subscriptionCreate, writer.tag(111, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.SubscriptionAPI.AttachFilter.Request subscription_attach_filter = 112; */\n if (message.request.oneofKind === \"subscriptionAttachFilter\")\n SubscriptionAPI_AttachFilter_Request.internalBinaryWrite(message.request.subscriptionAttachFilter, writer.tag(112, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.SubscriptionAPI.DetachFilter.Request subscription_detach_filter = 113; */\n if (message.request.oneofKind === \"subscriptionDetachFilter\")\n SubscriptionAPI_DetachFilter_Request.internalBinaryWrite(message.request.subscriptionDetachFilter, writer.tag(113, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.SubscriptionAPI.CreateFilter.Request subscription_create_filter = 115; */\n if (message.request.oneofKind === \"subscriptionCreateFilter\")\n SubscriptionAPI_CreateFilter_Request.internalBinaryWrite(message.request.subscriptionCreateFilter, writer.tag(115, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.NotificationAPI.Get.Request notification_get = 154; */\n if (message.request.oneofKind === \"notificationGet\")\n NotificationAPI_Get_Request.internalBinaryWrite(message.request.notificationGet, writer.tag(154, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.NotificationAPI.Ack.Request notification_ack = 155; */\n if (message.request.oneofKind === \"notificationAck\")\n NotificationAPI_Ack_Request.internalBinaryWrite(message.request.notificationAck, writer.tag(155, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.NotificationAPI.Discard.Request notification_discard = 156; */\n if (message.request.oneofKind === \"notificationDiscard\")\n NotificationAPI_Discard_Request.internalBinaryWrite(message.request.notificationDiscard, writer.tag(156, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceKVAPI.Set.Request resource_key_value_set = 200; */\n if (message.request.oneofKind === \"resourceKeyValueSet\")\n ResourceKVAPI_Set_Request.internalBinaryWrite(message.request.resourceKeyValueSet, writer.tag(200, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceKVAPI.Get.Request resource_key_value_get = 201; */\n if (message.request.oneofKind === \"resourceKeyValueGet\")\n ResourceKVAPI_Get_Request.internalBinaryWrite(message.request.resourceKeyValueGet, writer.tag(201, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceKVAPI.GetIfExists.Request resource_key_value_get_if_exists = 202; */\n if (message.request.oneofKind === \"resourceKeyValueGetIfExists\")\n ResourceKVAPI_GetIfExists_Request.internalBinaryWrite(message.request.resourceKeyValueGetIfExists, writer.tag(202, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceKVAPI.SetFlag.Request resource_key_value_set_flag = 203; */\n if (message.request.oneofKind === \"resourceKeyValueSetFlag\")\n ResourceKVAPI_SetFlag_Request.internalBinaryWrite(message.request.resourceKeyValueSetFlag, writer.tag(203, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceKVAPI.GetFlag.Request resource_key_value_get_flag = 204; */\n if (message.request.oneofKind === \"resourceKeyValueGetFlag\")\n ResourceKVAPI_GetFlag_Request.internalBinaryWrite(message.request.resourceKeyValueGetFlag, writer.tag(204, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceKVAPI.GetFlag.Request resource_key_value_get_flag_if_exists = 205; */\n if (message.request.oneofKind === \"resourceKeyValueGetFlagIfExists\")\n ResourceKVAPI_GetFlag_Request.internalBinaryWrite(message.request.resourceKeyValueGetFlagIfExists, writer.tag(205, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceKVAPI.Delete.Request resource_key_value_delete = 206; */\n if (message.request.oneofKind === \"resourceKeyValueDelete\")\n ResourceKVAPI_Delete_Request.internalBinaryWrite(message.request.resourceKeyValueDelete, writer.tag(206, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceKVAPI.List.Request resource_key_value_list = 207; */\n if (message.request.oneofKind === \"resourceKeyValueList\")\n ResourceKVAPI_List_Request.internalBinaryWrite(message.request.resourceKeyValueList, writer.tag(207, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ControllerKVAPI.Set.Request controller_key_value_set = 250; */\n if (message.request.oneofKind === \"controllerKeyValueSet\")\n ControllerKVAPI_Set_Request.internalBinaryWrite(message.request.controllerKeyValueSet, writer.tag(250, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ControllerKVAPI.Get.Request controller_key_value_get = 251; */\n if (message.request.oneofKind === \"controllerKeyValueGet\")\n ControllerKVAPI_Get_Request.internalBinaryWrite(message.request.controllerKeyValueGet, writer.tag(251, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ControllerKVAPI.GetIfExists.Request controller_key_value_get_if_exists = 252; */\n if (message.request.oneofKind === \"controllerKeyValueGetIfExists\")\n ControllerKVAPI_GetIfExists_Request.internalBinaryWrite(message.request.controllerKeyValueGetIfExists, writer.tag(252, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.CacheAPI.SetToField.Request cache_set_to_field = 300; */\n if (message.request.oneofKind === \"cacheSetToField\")\n CacheAPI_SetToField_Request.internalBinaryWrite(message.request.cacheSetToField, writer.tag(300, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.CacheAPI.DeleteExpiredRecords.Request cache_delete_expired_records = 301; */\n if (message.request.oneofKind === \"cacheDeleteExpiredRecords\")\n CacheAPI_DeleteExpiredRecords_Request.internalBinaryWrite(message.request.cacheDeleteExpiredRecords, writer.tag(301, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ControllerAPI.SetFeatures.Request controller_features_set = 350; */\n if (message.request.oneofKind === \"controllerFeaturesSet\")\n ControllerAPI_SetFeatures_Request.internalBinaryWrite(message.request.controllerFeaturesSet, writer.tag(350, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ControllerAPI.ClearFeatures.Request controller_features_clear = 351; */\n if (message.request.oneofKind === \"controllerFeaturesClear\")\n ControllerAPI_ClearFeatures_Request.internalBinaryWrite(message.request.controllerFeaturesClear, writer.tag(351, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.TxAPI.ClientMessage\n */\nexport const TxAPI_ClientMessage = new TxAPI_ClientMessage$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass TxAPI_ServerMessage$Type extends MessageType<TxAPI_ServerMessage> {\n constructor() {\n super(\"MiLaboratories.PL.API.TxAPI.ServerMessage\", [\n { no: 1, name: \"request_id\", kind: \"scalar\", T: 13 /*ScalarType.UINT32*/ },\n { no: 2, name: \"multi_message\", kind: \"message\", T: () => TxAPI_ServerMessage_Multi },\n { no: 11, name: \"tx_open\", kind: \"message\", oneof: \"response\", T: () => TxAPI_Open_Response },\n { no: 12, name: \"tx_commit\", kind: \"message\", oneof: \"response\", T: () => TxAPI_Commit_Response },\n { no: 13, name: \"tx_discard\", kind: \"message\", oneof: \"response\", T: () => TxAPI_Discard_Response },\n { no: 58, name: \"resource_create_root\", kind: \"message\", oneof: \"response\", T: () => ResourceAPI_CreateRoot_Response },\n { no: 57, name: \"resource_remove\", kind: \"message\", oneof: \"response\", T: () => ResourceAPI_Remove_Response },\n { no: 51, name: \"resource_create_struct\", kind: \"message\", oneof: \"response\", T: () => ResourceAPI_CreateStruct_Response },\n { no: 62, name: \"resource_create_ephemeral\", kind: \"message\", oneof: \"response\", T: () => ResourceAPI_CreateEphemeral_Response },\n { no: 52, name: \"resource_create_value\", kind: \"message\", oneof: \"response\", T: () => ResourceAPI_CreateValue_Response },\n { no: 63, name: \"resource_get_value_id\", kind: \"message\", oneof: \"response\", T: () => ResourceAPI_GetValueID_Response },\n { no: 64, name: \"resource_create_singleton\", kind: \"message\", oneof: \"response\", T: () => ResourceAPI_CreateSingleton_Response },\n { no: 65, name: \"resource_get_singleton\", kind: \"message\", oneof: \"response\", T: () => ResourceAPI_GetSingleton_Response },\n { no: 59, name: \"resource_create_child\", kind: \"message\", oneof: \"response\", T: () => ResourceAPI_CreateChild_Response },\n { no: 53, name: \"resource_lock_inputs\", kind: \"message\", oneof: \"response\", T: () => ResourceAPI_LockInputs_Response },\n { no: 56, name: \"resource_lock_outputs\", kind: \"message\", oneof: \"response\", T: () => ResourceAPI_LockOutputs_Response },\n { no: 54, name: \"resource_exists\", kind: \"message\", oneof: \"response\", T: () => ResourceAPI_Exists_Response },\n { no: 55, name: \"resource_get\", kind: \"message\", oneof: \"response\", T: () => ResourceAPI_Get_Response },\n { no: 61, name: \"resource_set_error\", kind: \"message\", oneof: \"response\", T: () => ResourceAPI_SetError_Response },\n { no: 60, name: \"resource_list_by_type\", kind: \"message\", oneof: \"response\", T: () => ResourceAPI_List_ByType_Response },\n { no: 66, name: \"resource_name_set\", kind: \"message\", oneof: \"response\", T: () => ResourceAPI_Name_Set_Response },\n { no: 67, name: \"resource_name_get\", kind: \"message\", oneof: \"response\", T: () => ResourceAPI_Name_Get_Response },\n { no: 68, name: \"resource_name_exists\", kind: \"message\", oneof: \"response\", T: () => ResourceAPI_Name_Exists_Response },\n { no: 69, name: \"resource_name_delete\", kind: \"message\", oneof: \"response\", T: () => ResourceAPI_Name_Delete_Response },\n { no: 70, name: \"resource_tree\", kind: \"message\", oneof: \"response\", T: () => ResourceAPI_Tree_Response },\n { no: 71, name: \"resource_tree_size\", kind: \"message\", oneof: \"response\", T: () => ResourceAPI_TreeSize_Response },\n { no: 101, name: \"field_create\", kind: \"message\", oneof: \"response\", T: () => FieldAPI_Create_Response },\n { no: 107, name: \"field_exists\", kind: \"message\", oneof: \"response\", T: () => FieldAPI_Exists_Response },\n { no: 102, name: \"field_set\", kind: \"message\", oneof: \"response\", T: () => FieldAPI_Set_Response },\n { no: 105, name: \"field_set_error\", kind: \"message\", oneof: \"response\", T: () => FieldAPI_SetError_Response },\n { no: 103, name: \"field_get\", kind: \"message\", oneof: \"response\", T: () => FieldAPI_Get_Response },\n { no: 104, name: \"field_reset\", kind: \"message\", oneof: \"response\", T: () => FieldAPI_Reset_Response },\n { no: 106, name: \"field_remove\", kind: \"message\", oneof: \"response\", T: () => FieldAPI_Remove_Response },\n { no: 108, name: \"field_list\", kind: \"message\", oneof: \"response\", T: () => FieldAPI_List_Response },\n { no: 111, name: \"subscription_create\", kind: \"message\", oneof: \"response\", T: () => SubscriptionAPI_CreateSubscription_Response },\n { no: 115, name: \"subscription_create_filter\", kind: \"message\", oneof: \"response\", T: () => SubscriptionAPI_CreateFilter_Response },\n { no: 112, name: \"subscription_attach_filter\", kind: \"message\", oneof: \"response\", T: () => SubscriptionAPI_AttachFilter_Response },\n { no: 113, name: \"subscription_detach_filter\", kind: \"message\", oneof: \"response\", T: () => SubscriptionAPI_DetachFilter_Response },\n { no: 154, name: \"notification_get\", kind: \"message\", oneof: \"response\", T: () => NotificationAPI_Get_Response },\n { no: 155, name: \"notification_ack\", kind: \"message\", oneof: \"response\", T: () => NotificationAPI_Ack_Response },\n { no: 156, name: \"notification_discard\", kind: \"message\", oneof: \"response\", T: () => NotificationAPI_Discard_Response },\n { no: 200, name: \"resource_key_value_set\", kind: \"message\", oneof: \"response\", T: () => ResourceKVAPI_Set_Response },\n { no: 201, name: \"resource_key_value_get\", kind: \"message\", oneof: \"response\", T: () => ResourceKVAPI_Get_Response },\n { no: 202, name: \"resource_key_value_get_if_exists\", kind: \"message\", oneof: \"response\", T: () => ResourceKVAPI_GetIfExists_Response },\n { no: 203, name: \"resource_key_value_set_flag\", kind: \"message\", oneof: \"response\", T: () => ResourceKVAPI_SetFlag_Response },\n { no: 204, name: \"resource_key_value_get_flag\", kind: \"message\", oneof: \"response\", T: () => ResourceKVAPI_GetFlag_Response },\n { no: 205, name: \"resource_key_value_get_flag_if_exists\", kind: \"message\", oneof: \"response\", T: () => ResourceKVAPI_GetFlag_Response },\n { no: 206, name: \"resource_key_value_delete\", kind: \"message\", oneof: \"response\", T: () => ResourceKVAPI_Delete_Response },\n { no: 207, name: \"resource_key_value_list\", kind: \"message\", oneof: \"response\", T: () => ResourceKVAPI_List_Response },\n { no: 250, name: \"controller_key_value_set\", kind: \"message\", oneof: \"response\", T: () => ControllerKVAPI_Set_Response },\n { no: 251, name: \"controller_key_value_get\", kind: \"message\", oneof: \"response\", T: () => ControllerKVAPI_Get_Response },\n { no: 252, name: \"controller_key_value_get_if_exists\", kind: \"message\", oneof: \"response\", T: () => ControllerKVAPI_GetIfExists_Response },\n { no: 300, name: \"cache_set_to_field\", kind: \"message\", oneof: \"response\", T: () => CacheAPI_SetToField_Response },\n { no: 301, name: \"cache_delete_expired_records\", kind: \"message\", oneof: \"response\", T: () => CacheAPI_DeleteExpiredRecords_Response },\n { no: 350, name: \"controller_features_set\", kind: \"message\", oneof: \"response\", T: () => ControllerAPI_SetFeatures_Response },\n { no: 351, name: \"controller_features_clear\", kind: \"message\", oneof: \"response\", T: () => ControllerAPI_ClearFeatures_Response },\n { no: 3, name: \"error\", kind: \"message\", T: () => Status }\n ]);\n }\n create(value?: PartialMessage<TxAPI_ServerMessage>): TxAPI_ServerMessage {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.requestId = 0;\n message.response = { oneofKind: undefined };\n if (value !== undefined)\n reflectionMergePartial<TxAPI_ServerMessage>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TxAPI_ServerMessage): TxAPI_ServerMessage {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint32 request_id */ 1:\n message.requestId = reader.uint32();\n break;\n case /* MiLaboratories.PL.API.TxAPI.ServerMessage.Multi multi_message */ 2:\n message.multiMessage = TxAPI_ServerMessage_Multi.internalBinaryRead(reader, reader.uint32(), options, message.multiMessage);\n break;\n case /* MiLaboratories.PL.API.TxAPI.Open.Response tx_open */ 11:\n message.response = {\n oneofKind: \"txOpen\",\n txOpen: TxAPI_Open_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).txOpen)\n };\n break;\n case /* MiLaboratories.PL.API.TxAPI.Commit.Response tx_commit */ 12:\n message.response = {\n oneofKind: \"txCommit\",\n txCommit: TxAPI_Commit_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).txCommit)\n };\n break;\n case /* MiLaboratories.PL.API.TxAPI.Discard.Response tx_discard */ 13:\n message.response = {\n oneofKind: \"txDiscard\",\n txDiscard: TxAPI_Discard_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).txDiscard)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.CreateRoot.Response resource_create_root */ 58:\n message.response = {\n oneofKind: \"resourceCreateRoot\",\n resourceCreateRoot: ResourceAPI_CreateRoot_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).resourceCreateRoot)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.Remove.Response resource_remove */ 57:\n message.response = {\n oneofKind: \"resourceRemove\",\n resourceRemove: ResourceAPI_Remove_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).resourceRemove)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.CreateStruct.Response resource_create_struct */ 51:\n message.response = {\n oneofKind: \"resourceCreateStruct\",\n resourceCreateStruct: ResourceAPI_CreateStruct_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).resourceCreateStruct)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.CreateEphemeral.Response resource_create_ephemeral */ 62:\n message.response = {\n oneofKind: \"resourceCreateEphemeral\",\n resourceCreateEphemeral: ResourceAPI_CreateEphemeral_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).resourceCreateEphemeral)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.CreateValue.Response resource_create_value */ 52:\n message.response = {\n oneofKind: \"resourceCreateValue\",\n resourceCreateValue: ResourceAPI_CreateValue_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).resourceCreateValue)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.GetValueID.Response resource_get_value_id */ 63:\n message.response = {\n oneofKind: \"resourceGetValueId\",\n resourceGetValueId: ResourceAPI_GetValueID_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).resourceGetValueId)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.CreateSingleton.Response resource_create_singleton */ 64:\n message.response = {\n oneofKind: \"resourceCreateSingleton\",\n resourceCreateSingleton: ResourceAPI_CreateSingleton_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).resourceCreateSingleton)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.GetSingleton.Response resource_get_singleton */ 65:\n message.response = {\n oneofKind: \"resourceGetSingleton\",\n resourceGetSingleton: ResourceAPI_GetSingleton_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).resourceGetSingleton)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.CreateChild.Response resource_create_child */ 59:\n message.response = {\n oneofKind: \"resourceCreateChild\",\n resourceCreateChild: ResourceAPI_CreateChild_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).resourceCreateChild)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.LockInputs.Response resource_lock_inputs */ 53:\n message.response = {\n oneofKind: \"resourceLockInputs\",\n resourceLockInputs: ResourceAPI_LockInputs_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).resourceLockInputs)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.LockOutputs.Response resource_lock_outputs */ 56:\n message.response = {\n oneofKind: \"resourceLockOutputs\",\n resourceLockOutputs: ResourceAPI_LockOutputs_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).resourceLockOutputs)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.Exists.Response resource_exists */ 54:\n message.response = {\n oneofKind: \"resourceExists\",\n resourceExists: ResourceAPI_Exists_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).resourceExists)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.Get.Response resource_get */ 55:\n message.response = {\n oneofKind: \"resourceGet\",\n resourceGet: ResourceAPI_Get_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).resourceGet)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.SetError.Response resource_set_error */ 61:\n message.response = {\n oneofKind: \"resourceSetError\",\n resourceSetError: ResourceAPI_SetError_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).resourceSetError)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.List.ByType.Response resource_list_by_type */ 60:\n message.response = {\n oneofKind: \"resourceListByType\",\n resourceListByType: ResourceAPI_List_ByType_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).resourceListByType)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.Name.Set.Response resource_name_set */ 66:\n message.response = {\n oneofKind: \"resourceNameSet\",\n resourceNameSet: ResourceAPI_Name_Set_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).resourceNameSet)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.Name.Get.Response resource_name_get */ 67:\n message.response = {\n oneofKind: \"resourceNameGet\",\n resourceNameGet: ResourceAPI_Name_Get_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).resourceNameGet)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.Name.Exists.Response resource_name_exists */ 68:\n message.response = {\n oneofKind: \"resourceNameExists\",\n resourceNameExists: ResourceAPI_Name_Exists_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).resourceNameExists)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.Name.Delete.Response resource_name_delete */ 69:\n message.response = {\n oneofKind: \"resourceNameDelete\",\n resourceNameDelete: ResourceAPI_Name_Delete_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).resourceNameDelete)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.Tree.Response resource_tree */ 70:\n message.response = {\n oneofKind: \"resourceTree\",\n resourceTree: ResourceAPI_Tree_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).resourceTree)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceAPI.TreeSize.Response resource_tree_size */ 71:\n message.response = {\n oneofKind: \"resourceTreeSize\",\n resourceTreeSize: ResourceAPI_TreeSize_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).resourceTreeSize)\n };\n break;\n case /* MiLaboratories.PL.API.FieldAPI.Create.Response field_create */ 101:\n message.response = {\n oneofKind: \"fieldCreate\",\n fieldCreate: FieldAPI_Create_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).fieldCreate)\n };\n break;\n case /* MiLaboratories.PL.API.FieldAPI.Exists.Response field_exists */ 107:\n message.response = {\n oneofKind: \"fieldExists\",\n fieldExists: FieldAPI_Exists_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).fieldExists)\n };\n break;\n case /* MiLaboratories.PL.API.FieldAPI.Set.Response field_set */ 102:\n message.response = {\n oneofKind: \"fieldSet\",\n fieldSet: FieldAPI_Set_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).fieldSet)\n };\n break;\n case /* MiLaboratories.PL.API.FieldAPI.SetError.Response field_set_error */ 105:\n message.response = {\n oneofKind: \"fieldSetError\",\n fieldSetError: FieldAPI_SetError_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).fieldSetError)\n };\n break;\n case /* MiLaboratories.PL.API.FieldAPI.Get.Response field_get */ 103:\n message.response = {\n oneofKind: \"fieldGet\",\n fieldGet: FieldAPI_Get_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).fieldGet)\n };\n break;\n case /* MiLaboratories.PL.API.FieldAPI.Reset.Response field_reset */ 104:\n message.response = {\n oneofKind: \"fieldReset\",\n fieldReset: FieldAPI_Reset_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).fieldReset)\n };\n break;\n case /* MiLaboratories.PL.API.FieldAPI.Remove.Response field_remove */ 106:\n message.response = {\n oneofKind: \"fieldRemove\",\n fieldRemove: FieldAPI_Remove_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).fieldRemove)\n };\n break;\n case /* MiLaboratories.PL.API.FieldAPI.List.Response field_list */ 108:\n message.response = {\n oneofKind: \"fieldList\",\n fieldList: FieldAPI_List_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).fieldList)\n };\n break;\n case /* MiLaboratories.PL.API.SubscriptionAPI.CreateSubscription.Response subscription_create */ 111:\n message.response = {\n oneofKind: \"subscriptionCreate\",\n subscriptionCreate: SubscriptionAPI_CreateSubscription_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).subscriptionCreate)\n };\n break;\n case /* MiLaboratories.PL.API.SubscriptionAPI.CreateFilter.Response subscription_create_filter */ 115:\n message.response = {\n oneofKind: \"subscriptionCreateFilter\",\n subscriptionCreateFilter: SubscriptionAPI_CreateFilter_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).subscriptionCreateFilter)\n };\n break;\n case /* MiLaboratories.PL.API.SubscriptionAPI.AttachFilter.Response subscription_attach_filter */ 112:\n message.response = {\n oneofKind: \"subscriptionAttachFilter\",\n subscriptionAttachFilter: SubscriptionAPI_AttachFilter_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).subscriptionAttachFilter)\n };\n break;\n case /* MiLaboratories.PL.API.SubscriptionAPI.DetachFilter.Response subscription_detach_filter */ 113:\n message.response = {\n oneofKind: \"subscriptionDetachFilter\",\n subscriptionDetachFilter: SubscriptionAPI_DetachFilter_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).subscriptionDetachFilter)\n };\n break;\n case /* MiLaboratories.PL.API.NotificationAPI.Get.Response notification_get */ 154:\n message.response = {\n oneofKind: \"notificationGet\",\n notificationGet: NotificationAPI_Get_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).notificationGet)\n };\n break;\n case /* MiLaboratories.PL.API.NotificationAPI.Ack.Response notification_ack */ 155:\n message.response = {\n oneofKind: \"notificationAck\",\n notificationAck: NotificationAPI_Ack_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).notificationAck)\n };\n break;\n case /* MiLaboratories.PL.API.NotificationAPI.Discard.Response notification_discard */ 156:\n message.response = {\n oneofKind: \"notificationDiscard\",\n notificationDiscard: NotificationAPI_Discard_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).notificationDiscard)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceKVAPI.Set.Response resource_key_value_set */ 200:\n message.response = {\n oneofKind: \"resourceKeyValueSet\",\n resourceKeyValueSet: ResourceKVAPI_Set_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).resourceKeyValueSet)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceKVAPI.Get.Response resource_key_value_get */ 201:\n message.response = {\n oneofKind: \"resourceKeyValueGet\",\n resourceKeyValueGet: ResourceKVAPI_Get_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).resourceKeyValueGet)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceKVAPI.GetIfExists.Response resource_key_value_get_if_exists */ 202:\n message.response = {\n oneofKind: \"resourceKeyValueGetIfExists\",\n resourceKeyValueGetIfExists: ResourceKVAPI_GetIfExists_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).resourceKeyValueGetIfExists)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceKVAPI.SetFlag.Response resource_key_value_set_flag */ 203:\n message.response = {\n oneofKind: \"resourceKeyValueSetFlag\",\n resourceKeyValueSetFlag: ResourceKVAPI_SetFlag_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).resourceKeyValueSetFlag)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceKVAPI.GetFlag.Response resource_key_value_get_flag */ 204:\n message.response = {\n oneofKind: \"resourceKeyValueGetFlag\",\n resourceKeyValueGetFlag: ResourceKVAPI_GetFlag_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).resourceKeyValueGetFlag)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceKVAPI.GetFlag.Response resource_key_value_get_flag_if_exists */ 205:\n message.response = {\n oneofKind: \"resourceKeyValueGetFlagIfExists\",\n resourceKeyValueGetFlagIfExists: ResourceKVAPI_GetFlag_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).resourceKeyValueGetFlagIfExists)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceKVAPI.Delete.Response resource_key_value_delete */ 206:\n message.response = {\n oneofKind: \"resourceKeyValueDelete\",\n resourceKeyValueDelete: ResourceKVAPI_Delete_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).resourceKeyValueDelete)\n };\n break;\n case /* MiLaboratories.PL.API.ResourceKVAPI.List.Response resource_key_value_list */ 207:\n message.response = {\n oneofKind: \"resourceKeyValueList\",\n resourceKeyValueList: ResourceKVAPI_List_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).resourceKeyValueList)\n };\n break;\n case /* MiLaboratories.PL.API.ControllerKVAPI.Set.Response controller_key_value_set */ 250:\n message.response = {\n oneofKind: \"controllerKeyValueSet\",\n controllerKeyValueSet: ControllerKVAPI_Set_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).controllerKeyValueSet)\n };\n break;\n case /* MiLaboratories.PL.API.ControllerKVAPI.Get.Response controller_key_value_get */ 251:\n message.response = {\n oneofKind: \"controllerKeyValueGet\",\n controllerKeyValueGet: ControllerKVAPI_Get_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).controllerKeyValueGet)\n };\n break;\n case /* MiLaboratories.PL.API.ControllerKVAPI.GetIfExists.Response controller_key_value_get_if_exists */ 252:\n message.response = {\n oneofKind: \"controllerKeyValueGetIfExists\",\n controllerKeyValueGetIfExists: ControllerKVAPI_GetIfExists_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).controllerKeyValueGetIfExists)\n };\n break;\n case /* MiLaboratories.PL.API.CacheAPI.SetToField.Response cache_set_to_field */ 300:\n message.response = {\n oneofKind: \"cacheSetToField\",\n cacheSetToField: CacheAPI_SetToField_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).cacheSetToField)\n };\n break;\n case /* MiLaboratories.PL.API.CacheAPI.DeleteExpiredRecords.Response cache_delete_expired_records */ 301:\n message.response = {\n oneofKind: \"cacheDeleteExpiredRecords\",\n cacheDeleteExpiredRecords: CacheAPI_DeleteExpiredRecords_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).cacheDeleteExpiredRecords)\n };\n break;\n case /* MiLaboratories.PL.API.ControllerAPI.SetFeatures.Response controller_features_set */ 350:\n message.response = {\n oneofKind: \"controllerFeaturesSet\",\n controllerFeaturesSet: ControllerAPI_SetFeatures_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).controllerFeaturesSet)\n };\n break;\n case /* MiLaboratories.PL.API.ControllerAPI.ClearFeatures.Response controller_features_clear */ 351:\n message.response = {\n oneofKind: \"controllerFeaturesClear\",\n controllerFeaturesClear: ControllerAPI_ClearFeatures_Response.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).controllerFeaturesClear)\n };\n break;\n case /* google.rpc.Status error */ 3:\n message.error = Status.internalBinaryRead(reader, reader.uint32(), options, message.error);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: TxAPI_ServerMessage, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint32 request_id = 1; */\n if (message.requestId !== 0)\n writer.tag(1, WireType.Varint).uint32(message.requestId);\n /* MiLaboratories.PL.API.TxAPI.ServerMessage.Multi multi_message = 2; */\n if (message.multiMessage)\n TxAPI_ServerMessage_Multi.internalBinaryWrite(message.multiMessage, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n /* google.rpc.Status error = 3; */\n if (message.error)\n Status.internalBinaryWrite(message.error, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.TxAPI.Open.Response tx_open = 11; */\n if (message.response.oneofKind === \"txOpen\")\n TxAPI_Open_Response.internalBinaryWrite(message.response.txOpen, writer.tag(11, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.TxAPI.Commit.Response tx_commit = 12; */\n if (message.response.oneofKind === \"txCommit\")\n TxAPI_Commit_Response.internalBinaryWrite(message.response.txCommit, writer.tag(12, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.TxAPI.Discard.Response tx_discard = 13; */\n if (message.response.oneofKind === \"txDiscard\")\n TxAPI_Discard_Response.internalBinaryWrite(message.response.txDiscard, writer.tag(13, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.CreateStruct.Response resource_create_struct = 51; */\n if (message.response.oneofKind === \"resourceCreateStruct\")\n ResourceAPI_CreateStruct_Response.internalBinaryWrite(message.response.resourceCreateStruct, writer.tag(51, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.CreateValue.Response resource_create_value = 52; */\n if (message.response.oneofKind === \"resourceCreateValue\")\n ResourceAPI_CreateValue_Response.internalBinaryWrite(message.response.resourceCreateValue, writer.tag(52, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.LockInputs.Response resource_lock_inputs = 53; */\n if (message.response.oneofKind === \"resourceLockInputs\")\n ResourceAPI_LockInputs_Response.internalBinaryWrite(message.response.resourceLockInputs, writer.tag(53, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.Exists.Response resource_exists = 54; */\n if (message.response.oneofKind === \"resourceExists\")\n ResourceAPI_Exists_Response.internalBinaryWrite(message.response.resourceExists, writer.tag(54, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.Get.Response resource_get = 55; */\n if (message.response.oneofKind === \"resourceGet\")\n ResourceAPI_Get_Response.internalBinaryWrite(message.response.resourceGet, writer.tag(55, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.LockOutputs.Response resource_lock_outputs = 56; */\n if (message.response.oneofKind === \"resourceLockOutputs\")\n ResourceAPI_LockOutputs_Response.internalBinaryWrite(message.response.resourceLockOutputs, writer.tag(56, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.Remove.Response resource_remove = 57; */\n if (message.response.oneofKind === \"resourceRemove\")\n ResourceAPI_Remove_Response.internalBinaryWrite(message.response.resourceRemove, writer.tag(57, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.CreateRoot.Response resource_create_root = 58; */\n if (message.response.oneofKind === \"resourceCreateRoot\")\n ResourceAPI_CreateRoot_Response.internalBinaryWrite(message.response.resourceCreateRoot, writer.tag(58, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.CreateChild.Response resource_create_child = 59; */\n if (message.response.oneofKind === \"resourceCreateChild\")\n ResourceAPI_CreateChild_Response.internalBinaryWrite(message.response.resourceCreateChild, writer.tag(59, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.List.ByType.Response resource_list_by_type = 60; */\n if (message.response.oneofKind === \"resourceListByType\")\n ResourceAPI_List_ByType_Response.internalBinaryWrite(message.response.resourceListByType, writer.tag(60, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.SetError.Response resource_set_error = 61; */\n if (message.response.oneofKind === \"resourceSetError\")\n ResourceAPI_SetError_Response.internalBinaryWrite(message.response.resourceSetError, writer.tag(61, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.CreateEphemeral.Response resource_create_ephemeral = 62; */\n if (message.response.oneofKind === \"resourceCreateEphemeral\")\n ResourceAPI_CreateEphemeral_Response.internalBinaryWrite(message.response.resourceCreateEphemeral, writer.tag(62, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.GetValueID.Response resource_get_value_id = 63; */\n if (message.response.oneofKind === \"resourceGetValueId\")\n ResourceAPI_GetValueID_Response.internalBinaryWrite(message.response.resourceGetValueId, writer.tag(63, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.CreateSingleton.Response resource_create_singleton = 64; */\n if (message.response.oneofKind === \"resourceCreateSingleton\")\n ResourceAPI_CreateSingleton_Response.internalBinaryWrite(message.response.resourceCreateSingleton, writer.tag(64, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.GetSingleton.Response resource_get_singleton = 65; */\n if (message.response.oneofKind === \"resourceGetSingleton\")\n ResourceAPI_GetSingleton_Response.internalBinaryWrite(message.response.resourceGetSingleton, writer.tag(65, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.Name.Set.Response resource_name_set = 66; */\n if (message.response.oneofKind === \"resourceNameSet\")\n ResourceAPI_Name_Set_Response.internalBinaryWrite(message.response.resourceNameSet, writer.tag(66, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.Name.Get.Response resource_name_get = 67; */\n if (message.response.oneofKind === \"resourceNameGet\")\n ResourceAPI_Name_Get_Response.internalBinaryWrite(message.response.resourceNameGet, writer.tag(67, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.Name.Exists.Response resource_name_exists = 68; */\n if (message.response.oneofKind === \"resourceNameExists\")\n ResourceAPI_Name_Exists_Response.internalBinaryWrite(message.response.resourceNameExists, writer.tag(68, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.Name.Delete.Response resource_name_delete = 69; */\n if (message.response.oneofKind === \"resourceNameDelete\")\n ResourceAPI_Name_Delete_Response.internalBinaryWrite(message.response.resourceNameDelete, writer.tag(69, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.Tree.Response resource_tree = 70; */\n if (message.response.oneofKind === \"resourceTree\")\n ResourceAPI_Tree_Response.internalBinaryWrite(message.response.resourceTree, writer.tag(70, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceAPI.TreeSize.Response resource_tree_size = 71; */\n if (message.response.oneofKind === \"resourceTreeSize\")\n ResourceAPI_TreeSize_Response.internalBinaryWrite(message.response.resourceTreeSize, writer.tag(71, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.FieldAPI.Create.Response field_create = 101; */\n if (message.response.oneofKind === \"fieldCreate\")\n FieldAPI_Create_Response.internalBinaryWrite(message.response.fieldCreate, writer.tag(101, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.FieldAPI.Set.Response field_set = 102; */\n if (message.response.oneofKind === \"fieldSet\")\n FieldAPI_Set_Response.internalBinaryWrite(message.response.fieldSet, writer.tag(102, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.FieldAPI.Get.Response field_get = 103; */\n if (message.response.oneofKind === \"fieldGet\")\n FieldAPI_Get_Response.internalBinaryWrite(message.response.fieldGet, writer.tag(103, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.FieldAPI.Reset.Response field_reset = 104; */\n if (message.response.oneofKind === \"fieldReset\")\n FieldAPI_Reset_Response.internalBinaryWrite(message.response.fieldReset, writer.tag(104, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.FieldAPI.SetError.Response field_set_error = 105; */\n if (message.response.oneofKind === \"fieldSetError\")\n FieldAPI_SetError_Response.internalBinaryWrite(message.response.fieldSetError, writer.tag(105, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.FieldAPI.Remove.Response field_remove = 106; */\n if (message.response.oneofKind === \"fieldRemove\")\n FieldAPI_Remove_Response.internalBinaryWrite(message.response.fieldRemove, writer.tag(106, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.FieldAPI.Exists.Response field_exists = 107; */\n if (message.response.oneofKind === \"fieldExists\")\n FieldAPI_Exists_Response.internalBinaryWrite(message.response.fieldExists, writer.tag(107, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.FieldAPI.List.Response field_list = 108; */\n if (message.response.oneofKind === \"fieldList\")\n FieldAPI_List_Response.internalBinaryWrite(message.response.fieldList, writer.tag(108, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.SubscriptionAPI.CreateSubscription.Response subscription_create = 111; */\n if (message.response.oneofKind === \"subscriptionCreate\")\n SubscriptionAPI_CreateSubscription_Response.internalBinaryWrite(message.response.subscriptionCreate, writer.tag(111, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.SubscriptionAPI.AttachFilter.Response subscription_attach_filter = 112; */\n if (message.response.oneofKind === \"subscriptionAttachFilter\")\n SubscriptionAPI_AttachFilter_Response.internalBinaryWrite(message.response.subscriptionAttachFilter, writer.tag(112, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.SubscriptionAPI.DetachFilter.Response subscription_detach_filter = 113; */\n if (message.response.oneofKind === \"subscriptionDetachFilter\")\n SubscriptionAPI_DetachFilter_Response.internalBinaryWrite(message.response.subscriptionDetachFilter, writer.tag(113, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.SubscriptionAPI.CreateFilter.Response subscription_create_filter = 115; */\n if (message.response.oneofKind === \"subscriptionCreateFilter\")\n SubscriptionAPI_CreateFilter_Response.internalBinaryWrite(message.response.subscriptionCreateFilter, writer.tag(115, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.NotificationAPI.Get.Response notification_get = 154; */\n if (message.response.oneofKind === \"notificationGet\")\n NotificationAPI_Get_Response.internalBinaryWrite(message.response.notificationGet, writer.tag(154, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.NotificationAPI.Ack.Response notification_ack = 155; */\n if (message.response.oneofKind === \"notificationAck\")\n NotificationAPI_Ack_Response.internalBinaryWrite(message.response.notificationAck, writer.tag(155, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.NotificationAPI.Discard.Response notification_discard = 156; */\n if (message.response.oneofKind === \"notificationDiscard\")\n NotificationAPI_Discard_Response.internalBinaryWrite(message.response.notificationDiscard, writer.tag(156, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceKVAPI.Set.Response resource_key_value_set = 200; */\n if (message.response.oneofKind === \"resourceKeyValueSet\")\n ResourceKVAPI_Set_Response.internalBinaryWrite(message.response.resourceKeyValueSet, writer.tag(200, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceKVAPI.Get.Response resource_key_value_get = 201; */\n if (message.response.oneofKind === \"resourceKeyValueGet\")\n ResourceKVAPI_Get_Response.internalBinaryWrite(message.response.resourceKeyValueGet, writer.tag(201, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceKVAPI.GetIfExists.Response resource_key_value_get_if_exists = 202; */\n if (message.response.oneofKind === \"resourceKeyValueGetIfExists\")\n ResourceKVAPI_GetIfExists_Response.internalBinaryWrite(message.response.resourceKeyValueGetIfExists, writer.tag(202, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceKVAPI.SetFlag.Response resource_key_value_set_flag = 203; */\n if (message.response.oneofKind === \"resourceKeyValueSetFlag\")\n ResourceKVAPI_SetFlag_Response.internalBinaryWrite(message.response.resourceKeyValueSetFlag, writer.tag(203, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceKVAPI.GetFlag.Response resource_key_value_get_flag = 204; */\n if (message.response.oneofKind === \"resourceKeyValueGetFlag\")\n ResourceKVAPI_GetFlag_Response.internalBinaryWrite(message.response.resourceKeyValueGetFlag, writer.tag(204, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceKVAPI.GetFlag.Response resource_key_value_get_flag_if_exists = 205; */\n if (message.response.oneofKind === \"resourceKeyValueGetFlagIfExists\")\n ResourceKVAPI_GetFlag_Response.internalBinaryWrite(message.response.resourceKeyValueGetFlagIfExists, writer.tag(205, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceKVAPI.Delete.Response resource_key_value_delete = 206; */\n if (message.response.oneofKind === \"resourceKeyValueDelete\")\n ResourceKVAPI_Delete_Response.internalBinaryWrite(message.response.resourceKeyValueDelete, writer.tag(206, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ResourceKVAPI.List.Response resource_key_value_list = 207; */\n if (message.response.oneofKind === \"resourceKeyValueList\")\n ResourceKVAPI_List_Response.internalBinaryWrite(message.response.resourceKeyValueList, writer.tag(207, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ControllerKVAPI.Set.Response controller_key_value_set = 250; */\n if (message.response.oneofKind === \"controllerKeyValueSet\")\n ControllerKVAPI_Set_Response.internalBinaryWrite(message.response.controllerKeyValueSet, writer.tag(250, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ControllerKVAPI.Get.Response controller_key_value_get = 251; */\n if (message.response.oneofKind === \"controllerKeyValueGet\")\n ControllerKVAPI_Get_Response.internalBinaryWrite(message.response.controllerKeyValueGet, writer.tag(251, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ControllerKVAPI.GetIfExists.Response controller_key_value_get_if_exists = 252; */\n if (message.response.oneofKind === \"controllerKeyValueGetIfExists\")\n ControllerKVAPI_GetIfExists_Response.internalBinaryWrite(message.response.controllerKeyValueGetIfExists, writer.tag(252, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.CacheAPI.SetToField.Response cache_set_to_field = 300; */\n if (message.response.oneofKind === \"cacheSetToField\")\n CacheAPI_SetToField_Response.internalBinaryWrite(message.response.cacheSetToField, writer.tag(300, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.CacheAPI.DeleteExpiredRecords.Response cache_delete_expired_records = 301; */\n if (message.response.oneofKind === \"cacheDeleteExpiredRecords\")\n CacheAPI_DeleteExpiredRecords_Response.internalBinaryWrite(message.response.cacheDeleteExpiredRecords, writer.tag(301, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ControllerAPI.SetFeatures.Response controller_features_set = 350; */\n if (message.response.oneofKind === \"controllerFeaturesSet\")\n ControllerAPI_SetFeatures_Response.internalBinaryWrite(message.response.controllerFeaturesSet, writer.tag(350, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.API.ControllerAPI.ClearFeatures.Response controller_features_clear = 351; */\n if (message.response.oneofKind === \"controllerFeaturesClear\")\n ControllerAPI_ClearFeatures_Response.internalBinaryWrite(message.response.controllerFeaturesClear, writer.tag(351, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.TxAPI.ServerMessage\n */\nexport const TxAPI_ServerMessage = new TxAPI_ServerMessage$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass TxAPI_ServerMessage_Multi$Type extends MessageType<TxAPI_ServerMessage_Multi> {\n constructor() {\n super(\"MiLaboratories.PL.API.TxAPI.ServerMessage.Multi\", [\n { no: 1, name: \"id\", kind: \"scalar\", T: 13 /*ScalarType.UINT32*/ },\n { no: 2, name: \"is_last\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n { no: 3, name: \"is_empty\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ }\n ]);\n }\n create(value?: PartialMessage<TxAPI_ServerMessage_Multi>): TxAPI_ServerMessage_Multi {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.id = 0;\n message.isLast = false;\n message.isEmpty = false;\n if (value !== undefined)\n reflectionMergePartial<TxAPI_ServerMessage_Multi>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TxAPI_ServerMessage_Multi): TxAPI_ServerMessage_Multi {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint32 id */ 1:\n message.id = reader.uint32();\n break;\n case /* bool is_last */ 2:\n message.isLast = reader.bool();\n break;\n case /* bool is_empty */ 3:\n message.isEmpty = reader.bool();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: TxAPI_ServerMessage_Multi, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint32 id = 1; */\n if (message.id !== 0)\n writer.tag(1, WireType.Varint).uint32(message.id);\n /* bool is_last = 2; */\n if (message.isLast !== false)\n writer.tag(2, WireType.Varint).bool(message.isLast);\n /* bool is_empty = 3; */\n if (message.isEmpty !== false)\n writer.tag(3, WireType.Varint).bool(message.isEmpty);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.TxAPI.ServerMessage.Multi\n */\nexport const TxAPI_ServerMessage_Multi = new TxAPI_ServerMessage_Multi$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass TxAPI_Open$Type extends MessageType<TxAPI_Open> {\n constructor() {\n super(\"MiLaboratories.PL.API.TxAPI.Open\", []);\n }\n create(value?: PartialMessage<TxAPI_Open>): TxAPI_Open {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<TxAPI_Open>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TxAPI_Open): TxAPI_Open {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: TxAPI_Open, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.TxAPI.Open\n */\nexport const TxAPI_Open = new TxAPI_Open$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass TxAPI_Open_Request$Type extends MessageType<TxAPI_Open_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.TxAPI.Open.Request\", [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"writable\", kind: \"enum\", T: () => [\"MiLaboratories.PL.API.TxAPI.Open.Request.WritableTx\", TxAPI_Open_Request_WritableTx] },\n { no: 3, name: \"enableFormattedErrors\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ }\n ]);\n }\n create(value?: PartialMessage<TxAPI_Open_Request>): TxAPI_Open_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.name = \"\";\n message.writable = 0;\n message.enableFormattedErrors = false;\n if (value !== undefined)\n reflectionMergePartial<TxAPI_Open_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TxAPI_Open_Request): TxAPI_Open_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string name */ 1:\n message.name = reader.string();\n break;\n case /* MiLaboratories.PL.API.TxAPI.Open.Request.WritableTx writable */ 2:\n message.writable = reader.int32();\n break;\n case /* bool enableFormattedErrors */ 3:\n message.enableFormattedErrors = reader.bool();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: TxAPI_Open_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string name = 1; */\n if (message.name !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.name);\n /* MiLaboratories.PL.API.TxAPI.Open.Request.WritableTx writable = 2; */\n if (message.writable !== 0)\n writer.tag(2, WireType.Varint).int32(message.writable);\n /* bool enableFormattedErrors = 3; */\n if (message.enableFormattedErrors !== false)\n writer.tag(3, WireType.Varint).bool(message.enableFormattedErrors);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.TxAPI.Open.Request\n */\nexport const TxAPI_Open_Request = new TxAPI_Open_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass TxAPI_Open_Response$Type extends MessageType<TxAPI_Open_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.TxAPI.Open.Response\", [\n { no: 1, name: \"tx\", kind: \"message\", T: () => Tx }\n ]);\n }\n create(value?: PartialMessage<TxAPI_Open_Response>): TxAPI_Open_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<TxAPI_Open_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TxAPI_Open_Response): TxAPI_Open_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* MiLaboratories.PL.API.Tx tx */ 1:\n message.tx = Tx.internalBinaryRead(reader, reader.uint32(), options, message.tx);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: TxAPI_Open_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* MiLaboratories.PL.API.Tx tx = 1; */\n if (message.tx)\n Tx.internalBinaryWrite(message.tx, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.TxAPI.Open.Response\n */\nexport const TxAPI_Open_Response = new TxAPI_Open_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass TxAPI_Commit$Type extends MessageType<TxAPI_Commit> {\n constructor() {\n super(\"MiLaboratories.PL.API.TxAPI.Commit\", []);\n }\n create(value?: PartialMessage<TxAPI_Commit>): TxAPI_Commit {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<TxAPI_Commit>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TxAPI_Commit): TxAPI_Commit {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: TxAPI_Commit, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.TxAPI.Commit\n */\nexport const TxAPI_Commit = new TxAPI_Commit$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass TxAPI_Commit_Request$Type extends MessageType<TxAPI_Commit_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.TxAPI.Commit.Request\", []);\n }\n create(value?: PartialMessage<TxAPI_Commit_Request>): TxAPI_Commit_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<TxAPI_Commit_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TxAPI_Commit_Request): TxAPI_Commit_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: TxAPI_Commit_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.TxAPI.Commit.Request\n */\nexport const TxAPI_Commit_Request = new TxAPI_Commit_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass TxAPI_Commit_Response$Type extends MessageType<TxAPI_Commit_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.TxAPI.Commit.Response\", [\n { no: 1, name: \"success\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ }\n ]);\n }\n create(value?: PartialMessage<TxAPI_Commit_Response>): TxAPI_Commit_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.success = false;\n if (value !== undefined)\n reflectionMergePartial<TxAPI_Commit_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TxAPI_Commit_Response): TxAPI_Commit_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* bool success */ 1:\n message.success = reader.bool();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: TxAPI_Commit_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* bool success = 1; */\n if (message.success !== false)\n writer.tag(1, WireType.Varint).bool(message.success);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.TxAPI.Commit.Response\n */\nexport const TxAPI_Commit_Response = new TxAPI_Commit_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass TxAPI_Discard$Type extends MessageType<TxAPI_Discard> {\n constructor() {\n super(\"MiLaboratories.PL.API.TxAPI.Discard\", []);\n }\n create(value?: PartialMessage<TxAPI_Discard>): TxAPI_Discard {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<TxAPI_Discard>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TxAPI_Discard): TxAPI_Discard {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: TxAPI_Discard, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.TxAPI.Discard\n */\nexport const TxAPI_Discard = new TxAPI_Discard$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass TxAPI_Discard_Request$Type extends MessageType<TxAPI_Discard_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.TxAPI.Discard.Request\", []);\n }\n create(value?: PartialMessage<TxAPI_Discard_Request>): TxAPI_Discard_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<TxAPI_Discard_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TxAPI_Discard_Request): TxAPI_Discard_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: TxAPI_Discard_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.TxAPI.Discard.Request\n */\nexport const TxAPI_Discard_Request = new TxAPI_Discard_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass TxAPI_Discard_Response$Type extends MessageType<TxAPI_Discard_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.TxAPI.Discard.Response\", []);\n }\n create(value?: PartialMessage<TxAPI_Discard_Response>): TxAPI_Discard_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<TxAPI_Discard_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TxAPI_Discard_Response): TxAPI_Discard_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: TxAPI_Discard_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.TxAPI.Discard.Response\n */\nexport const TxAPI_Discard_Response = new TxAPI_Discard_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass TxAPI_Sync$Type extends MessageType<TxAPI_Sync> {\n constructor() {\n super(\"MiLaboratories.PL.API.TxAPI.Sync\", []);\n }\n create(value?: PartialMessage<TxAPI_Sync>): TxAPI_Sync {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<TxAPI_Sync>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TxAPI_Sync): TxAPI_Sync {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: TxAPI_Sync, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.TxAPI.Sync\n */\nexport const TxAPI_Sync = new TxAPI_Sync$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass TxAPI_Sync_Request$Type extends MessageType<TxAPI_Sync_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.TxAPI.Sync.Request\", [\n { no: 1, name: \"tx_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<TxAPI_Sync_Request>): TxAPI_Sync_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.txId = 0n;\n if (value !== undefined)\n reflectionMergePartial<TxAPI_Sync_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TxAPI_Sync_Request): TxAPI_Sync_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 tx_id */ 1:\n message.txId = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: TxAPI_Sync_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 tx_id = 1; */\n if (message.txId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.txId);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.TxAPI.Sync.Request\n */\nexport const TxAPI_Sync_Request = new TxAPI_Sync_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass TxAPI_Sync_Response$Type extends MessageType<TxAPI_Sync_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.TxAPI.Sync.Response\", []);\n }\n create(value?: PartialMessage<TxAPI_Sync_Response>): TxAPI_Sync_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<TxAPI_Sync_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TxAPI_Sync_Response): TxAPI_Sync_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: TxAPI_Sync_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.TxAPI.Sync.Response\n */\nexport const TxAPI_Sync_Response = new TxAPI_Sync_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI$Type extends MessageType<ResourceAPI> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI\", []);\n }\n create(value?: PartialMessage<ResourceAPI>): ResourceAPI {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI): ResourceAPI {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI\n */\nexport const ResourceAPI = new ResourceAPI$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_CreateStruct$Type extends MessageType<ResourceAPI_CreateStruct> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.CreateStruct\", []);\n }\n create(value?: PartialMessage<ResourceAPI_CreateStruct>): ResourceAPI_CreateStruct {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_CreateStruct>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_CreateStruct): ResourceAPI_CreateStruct {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_CreateStruct, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.CreateStruct\n */\nexport const ResourceAPI_CreateStruct = new ResourceAPI_CreateStruct$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_CreateStruct_Request$Type extends MessageType<ResourceAPI_CreateStruct_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.CreateStruct.Request\", [\n { no: 2, name: \"id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 3, name: \"type\", kind: \"message\", T: () => ResourceType },\n { no: 4, name: \"data\", kind: \"scalar\", opt: true, T: 12 /*ScalarType.BYTES*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_CreateStruct_Request>): ResourceAPI_CreateStruct_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.id = 0n;\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_CreateStruct_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_CreateStruct_Request): ResourceAPI_CreateStruct_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 id */ 2:\n message.id = reader.uint64().toBigInt();\n break;\n case /* MiLaboratories.PL.Base.ResourceType type */ 3:\n message.type = ResourceType.internalBinaryRead(reader, reader.uint32(), options, message.type);\n break;\n case /* optional bytes data */ 4:\n message.data = reader.bytes();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_CreateStruct_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 id = 2; */\n if (message.id !== 0n)\n writer.tag(2, WireType.Varint).uint64(message.id);\n /* MiLaboratories.PL.Base.ResourceType type = 3; */\n if (message.type)\n ResourceType.internalBinaryWrite(message.type, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n /* optional bytes data = 4; */\n if (message.data !== undefined)\n writer.tag(4, WireType.LengthDelimited).bytes(message.data);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.CreateStruct.Request\n */\nexport const ResourceAPI_CreateStruct_Request = new ResourceAPI_CreateStruct_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_CreateStruct_Response$Type extends MessageType<ResourceAPI_CreateStruct_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.CreateStruct.Response\", [\n { no: 1, name: \"resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_CreateStruct_Response>): ResourceAPI_CreateStruct_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.resourceId = 0n;\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_CreateStruct_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_CreateStruct_Response): ResourceAPI_CreateStruct_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 resource_id */ 1:\n message.resourceId = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_CreateStruct_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 resource_id = 1; */\n if (message.resourceId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.resourceId);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.CreateStruct.Response\n */\nexport const ResourceAPI_CreateStruct_Response = new ResourceAPI_CreateStruct_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_CreateEphemeral$Type extends MessageType<ResourceAPI_CreateEphemeral> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.CreateEphemeral\", []);\n }\n create(value?: PartialMessage<ResourceAPI_CreateEphemeral>): ResourceAPI_CreateEphemeral {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_CreateEphemeral>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_CreateEphemeral): ResourceAPI_CreateEphemeral {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_CreateEphemeral, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.CreateEphemeral\n */\nexport const ResourceAPI_CreateEphemeral = new ResourceAPI_CreateEphemeral$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_CreateEphemeral_Request$Type extends MessageType<ResourceAPI_CreateEphemeral_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.CreateEphemeral.Request\", [\n { no: 2, name: \"id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 3, name: \"type\", kind: \"message\", T: () => ResourceType },\n { no: 4, name: \"data\", kind: \"scalar\", opt: true, T: 12 /*ScalarType.BYTES*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_CreateEphemeral_Request>): ResourceAPI_CreateEphemeral_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.id = 0n;\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_CreateEphemeral_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_CreateEphemeral_Request): ResourceAPI_CreateEphemeral_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 id */ 2:\n message.id = reader.uint64().toBigInt();\n break;\n case /* MiLaboratories.PL.Base.ResourceType type */ 3:\n message.type = ResourceType.internalBinaryRead(reader, reader.uint32(), options, message.type);\n break;\n case /* optional bytes data */ 4:\n message.data = reader.bytes();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_CreateEphemeral_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 id = 2; */\n if (message.id !== 0n)\n writer.tag(2, WireType.Varint).uint64(message.id);\n /* MiLaboratories.PL.Base.ResourceType type = 3; */\n if (message.type)\n ResourceType.internalBinaryWrite(message.type, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n /* optional bytes data = 4; */\n if (message.data !== undefined)\n writer.tag(4, WireType.LengthDelimited).bytes(message.data);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.CreateEphemeral.Request\n */\nexport const ResourceAPI_CreateEphemeral_Request = new ResourceAPI_CreateEphemeral_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_CreateEphemeral_Response$Type extends MessageType<ResourceAPI_CreateEphemeral_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.CreateEphemeral.Response\", [\n { no: 1, name: \"resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_CreateEphemeral_Response>): ResourceAPI_CreateEphemeral_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.resourceId = 0n;\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_CreateEphemeral_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_CreateEphemeral_Response): ResourceAPI_CreateEphemeral_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 resource_id */ 1:\n message.resourceId = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_CreateEphemeral_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 resource_id = 1; */\n if (message.resourceId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.resourceId);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.CreateEphemeral.Response\n */\nexport const ResourceAPI_CreateEphemeral_Response = new ResourceAPI_CreateEphemeral_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_CreateChild$Type extends MessageType<ResourceAPI_CreateChild> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.CreateChild\", []);\n }\n create(value?: PartialMessage<ResourceAPI_CreateChild>): ResourceAPI_CreateChild {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_CreateChild>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_CreateChild): ResourceAPI_CreateChild {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_CreateChild, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.CreateChild\n */\nexport const ResourceAPI_CreateChild = new ResourceAPI_CreateChild$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_CreateChild_Request$Type extends MessageType<ResourceAPI_CreateChild_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.CreateChild.Request\", [\n { no: 1, name: \"id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"type\", kind: \"message\", T: () => ResourceType },\n { no: 3, name: \"parent_field\", kind: \"message\", T: () => FieldRef }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_CreateChild_Request>): ResourceAPI_CreateChild_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.id = 0n;\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_CreateChild_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_CreateChild_Request): ResourceAPI_CreateChild_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 id */ 1:\n message.id = reader.uint64().toBigInt();\n break;\n case /* MiLaboratories.PL.Base.ResourceType type */ 2:\n message.type = ResourceType.internalBinaryRead(reader, reader.uint32(), options, message.type);\n break;\n case /* MiLaboratories.PL.Base.FieldRef parent_field */ 3:\n message.parentField = FieldRef.internalBinaryRead(reader, reader.uint32(), options, message.parentField);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_CreateChild_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 id = 1; */\n if (message.id !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.id);\n /* MiLaboratories.PL.Base.ResourceType type = 2; */\n if (message.type)\n ResourceType.internalBinaryWrite(message.type, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.Base.FieldRef parent_field = 3; */\n if (message.parentField)\n FieldRef.internalBinaryWrite(message.parentField, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.CreateChild.Request\n */\nexport const ResourceAPI_CreateChild_Request = new ResourceAPI_CreateChild_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_CreateChild_Response$Type extends MessageType<ResourceAPI_CreateChild_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.CreateChild.Response\", [\n { no: 1, name: \"resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_CreateChild_Response>): ResourceAPI_CreateChild_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.resourceId = 0n;\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_CreateChild_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_CreateChild_Response): ResourceAPI_CreateChild_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 resource_id */ 1:\n message.resourceId = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_CreateChild_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 resource_id = 1; */\n if (message.resourceId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.resourceId);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.CreateChild.Response\n */\nexport const ResourceAPI_CreateChild_Response = new ResourceAPI_CreateChild_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_CreateValue$Type extends MessageType<ResourceAPI_CreateValue> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.CreateValue\", []);\n }\n create(value?: PartialMessage<ResourceAPI_CreateValue>): ResourceAPI_CreateValue {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_CreateValue>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_CreateValue): ResourceAPI_CreateValue {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_CreateValue, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.CreateValue\n */\nexport const ResourceAPI_CreateValue = new ResourceAPI_CreateValue$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_CreateValue_Request$Type extends MessageType<ResourceAPI_CreateValue_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.CreateValue.Request\", [\n { no: 2, name: \"id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 3, name: \"type\", kind: \"message\", T: () => ResourceType },\n { no: 6, name: \"data\", kind: \"scalar\", T: 12 /*ScalarType.BYTES*/ },\n { no: 7, name: \"error_if_exists\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_CreateValue_Request>): ResourceAPI_CreateValue_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.id = 0n;\n message.data = new Uint8Array(0);\n message.errorIfExists = false;\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_CreateValue_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_CreateValue_Request): ResourceAPI_CreateValue_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 id */ 2:\n message.id = reader.uint64().toBigInt();\n break;\n case /* MiLaboratories.PL.Base.ResourceType type */ 3:\n message.type = ResourceType.internalBinaryRead(reader, reader.uint32(), options, message.type);\n break;\n case /* bytes data */ 6:\n message.data = reader.bytes();\n break;\n case /* bool error_if_exists */ 7:\n message.errorIfExists = reader.bool();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_CreateValue_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 id = 2; */\n if (message.id !== 0n)\n writer.tag(2, WireType.Varint).uint64(message.id);\n /* MiLaboratories.PL.Base.ResourceType type = 3; */\n if (message.type)\n ResourceType.internalBinaryWrite(message.type, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n /* bytes data = 6; */\n if (message.data.length)\n writer.tag(6, WireType.LengthDelimited).bytes(message.data);\n /* bool error_if_exists = 7; */\n if (message.errorIfExists !== false)\n writer.tag(7, WireType.Varint).bool(message.errorIfExists);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.CreateValue.Request\n */\nexport const ResourceAPI_CreateValue_Request = new ResourceAPI_CreateValue_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_CreateValue_Response$Type extends MessageType<ResourceAPI_CreateValue_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.CreateValue.Response\", [\n { no: 1, name: \"resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_CreateValue_Response>): ResourceAPI_CreateValue_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.resourceId = 0n;\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_CreateValue_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_CreateValue_Response): ResourceAPI_CreateValue_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 resource_id */ 1:\n message.resourceId = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_CreateValue_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 resource_id = 1; */\n if (message.resourceId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.resourceId);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.CreateValue.Response\n */\nexport const ResourceAPI_CreateValue_Response = new ResourceAPI_CreateValue_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_GetValueID$Type extends MessageType<ResourceAPI_GetValueID> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.GetValueID\", []);\n }\n create(value?: PartialMessage<ResourceAPI_GetValueID>): ResourceAPI_GetValueID {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_GetValueID>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_GetValueID): ResourceAPI_GetValueID {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_GetValueID, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.GetValueID\n */\nexport const ResourceAPI_GetValueID = new ResourceAPI_GetValueID$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_GetValueID_Request$Type extends MessageType<ResourceAPI_GetValueID_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.GetValueID.Request\", [\n { no: 1, name: \"type\", kind: \"message\", T: () => ResourceType },\n { no: 2, name: \"data\", kind: \"scalar\", T: 12 /*ScalarType.BYTES*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_GetValueID_Request>): ResourceAPI_GetValueID_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.data = new Uint8Array(0);\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_GetValueID_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_GetValueID_Request): ResourceAPI_GetValueID_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* MiLaboratories.PL.Base.ResourceType type */ 1:\n message.type = ResourceType.internalBinaryRead(reader, reader.uint32(), options, message.type);\n break;\n case /* bytes data */ 2:\n message.data = reader.bytes();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_GetValueID_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* MiLaboratories.PL.Base.ResourceType type = 1; */\n if (message.type)\n ResourceType.internalBinaryWrite(message.type, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* bytes data = 2; */\n if (message.data.length)\n writer.tag(2, WireType.LengthDelimited).bytes(message.data);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.GetValueID.Request\n */\nexport const ResourceAPI_GetValueID_Request = new ResourceAPI_GetValueID_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_GetValueID_Response$Type extends MessageType<ResourceAPI_GetValueID_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.GetValueID.Response\", [\n { no: 1, name: \"resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_GetValueID_Response>): ResourceAPI_GetValueID_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.resourceId = 0n;\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_GetValueID_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_GetValueID_Response): ResourceAPI_GetValueID_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 resource_id */ 1:\n message.resourceId = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_GetValueID_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 resource_id = 1; */\n if (message.resourceId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.resourceId);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.GetValueID.Response\n */\nexport const ResourceAPI_GetValueID_Response = new ResourceAPI_GetValueID_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_CreateSingleton$Type extends MessageType<ResourceAPI_CreateSingleton> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.CreateSingleton\", []);\n }\n create(value?: PartialMessage<ResourceAPI_CreateSingleton>): ResourceAPI_CreateSingleton {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_CreateSingleton>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_CreateSingleton): ResourceAPI_CreateSingleton {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_CreateSingleton, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.CreateSingleton\n */\nexport const ResourceAPI_CreateSingleton = new ResourceAPI_CreateSingleton$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_CreateSingleton_Request$Type extends MessageType<ResourceAPI_CreateSingleton_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.CreateSingleton.Request\", [\n { no: 2, name: \"id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 3, name: \"type\", kind: \"message\", T: () => ResourceType },\n { no: 6, name: \"data\", kind: \"scalar\", T: 12 /*ScalarType.BYTES*/ },\n { no: 7, name: \"error_if_exists\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_CreateSingleton_Request>): ResourceAPI_CreateSingleton_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.id = 0n;\n message.data = new Uint8Array(0);\n message.errorIfExists = false;\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_CreateSingleton_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_CreateSingleton_Request): ResourceAPI_CreateSingleton_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 id */ 2:\n message.id = reader.uint64().toBigInt();\n break;\n case /* MiLaboratories.PL.Base.ResourceType type */ 3:\n message.type = ResourceType.internalBinaryRead(reader, reader.uint32(), options, message.type);\n break;\n case /* bytes data */ 6:\n message.data = reader.bytes();\n break;\n case /* bool error_if_exists */ 7:\n message.errorIfExists = reader.bool();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_CreateSingleton_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 id = 2; */\n if (message.id !== 0n)\n writer.tag(2, WireType.Varint).uint64(message.id);\n /* MiLaboratories.PL.Base.ResourceType type = 3; */\n if (message.type)\n ResourceType.internalBinaryWrite(message.type, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n /* bytes data = 6; */\n if (message.data.length)\n writer.tag(6, WireType.LengthDelimited).bytes(message.data);\n /* bool error_if_exists = 7; */\n if (message.errorIfExists !== false)\n writer.tag(7, WireType.Varint).bool(message.errorIfExists);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.CreateSingleton.Request\n */\nexport const ResourceAPI_CreateSingleton_Request = new ResourceAPI_CreateSingleton_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_CreateSingleton_Response$Type extends MessageType<ResourceAPI_CreateSingleton_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.CreateSingleton.Response\", [\n { no: 1, name: \"resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_CreateSingleton_Response>): ResourceAPI_CreateSingleton_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.resourceId = 0n;\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_CreateSingleton_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_CreateSingleton_Response): ResourceAPI_CreateSingleton_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 resource_id */ 1:\n message.resourceId = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_CreateSingleton_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 resource_id = 1; */\n if (message.resourceId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.resourceId);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.CreateSingleton.Response\n */\nexport const ResourceAPI_CreateSingleton_Response = new ResourceAPI_CreateSingleton_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_GetSingleton$Type extends MessageType<ResourceAPI_GetSingleton> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.GetSingleton\", []);\n }\n create(value?: PartialMessage<ResourceAPI_GetSingleton>): ResourceAPI_GetSingleton {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_GetSingleton>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_GetSingleton): ResourceAPI_GetSingleton {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_GetSingleton, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.GetSingleton\n */\nexport const ResourceAPI_GetSingleton = new ResourceAPI_GetSingleton$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_GetSingleton_Request$Type extends MessageType<ResourceAPI_GetSingleton_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.GetSingleton.Request\", [\n { no: 1, name: \"type\", kind: \"message\", T: () => ResourceType },\n { no: 2, name: \"data\", kind: \"scalar\", T: 12 /*ScalarType.BYTES*/ },\n { no: 3, name: \"load_fields\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_GetSingleton_Request>): ResourceAPI_GetSingleton_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.data = new Uint8Array(0);\n message.loadFields = false;\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_GetSingleton_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_GetSingleton_Request): ResourceAPI_GetSingleton_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* MiLaboratories.PL.Base.ResourceType type */ 1:\n message.type = ResourceType.internalBinaryRead(reader, reader.uint32(), options, message.type);\n break;\n case /* bytes data */ 2:\n message.data = reader.bytes();\n break;\n case /* bool load_fields */ 3:\n message.loadFields = reader.bool();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_GetSingleton_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* MiLaboratories.PL.Base.ResourceType type = 1; */\n if (message.type)\n ResourceType.internalBinaryWrite(message.type, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* bytes data = 2; */\n if (message.data.length)\n writer.tag(2, WireType.LengthDelimited).bytes(message.data);\n /* bool load_fields = 3; */\n if (message.loadFields !== false)\n writer.tag(3, WireType.Varint).bool(message.loadFields);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.GetSingleton.Request\n */\nexport const ResourceAPI_GetSingleton_Request = new ResourceAPI_GetSingleton_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_GetSingleton_Response$Type extends MessageType<ResourceAPI_GetSingleton_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.GetSingleton.Response\", [\n { no: 1, name: \"resource\", kind: \"message\", T: () => Resource }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_GetSingleton_Response>): ResourceAPI_GetSingleton_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_GetSingleton_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_GetSingleton_Response): ResourceAPI_GetSingleton_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* MiLaboratories.PL.API.Resource resource */ 1:\n message.resource = Resource.internalBinaryRead(reader, reader.uint32(), options, message.resource);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_GetSingleton_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* MiLaboratories.PL.API.Resource resource = 1; */\n if (message.resource)\n Resource.internalBinaryWrite(message.resource, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.GetSingleton.Response\n */\nexport const ResourceAPI_GetSingleton_Response = new ResourceAPI_GetSingleton_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_LockInputs$Type extends MessageType<ResourceAPI_LockInputs> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.LockInputs\", []);\n }\n create(value?: PartialMessage<ResourceAPI_LockInputs>): ResourceAPI_LockInputs {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_LockInputs>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_LockInputs): ResourceAPI_LockInputs {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_LockInputs, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.LockInputs\n */\nexport const ResourceAPI_LockInputs = new ResourceAPI_LockInputs$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_LockInputs_Request$Type extends MessageType<ResourceAPI_LockInputs_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.LockInputs.Request\", [\n { no: 1, name: \"resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_LockInputs_Request>): ResourceAPI_LockInputs_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.resourceId = 0n;\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_LockInputs_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_LockInputs_Request): ResourceAPI_LockInputs_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 resource_id */ 1:\n message.resourceId = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_LockInputs_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 resource_id = 1; */\n if (message.resourceId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.resourceId);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.LockInputs.Request\n */\nexport const ResourceAPI_LockInputs_Request = new ResourceAPI_LockInputs_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_LockInputs_Response$Type extends MessageType<ResourceAPI_LockInputs_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.LockInputs.Response\", []);\n }\n create(value?: PartialMessage<ResourceAPI_LockInputs_Response>): ResourceAPI_LockInputs_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_LockInputs_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_LockInputs_Response): ResourceAPI_LockInputs_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_LockInputs_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.LockInputs.Response\n */\nexport const ResourceAPI_LockInputs_Response = new ResourceAPI_LockInputs_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_LockOutputs$Type extends MessageType<ResourceAPI_LockOutputs> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.LockOutputs\", []);\n }\n create(value?: PartialMessage<ResourceAPI_LockOutputs>): ResourceAPI_LockOutputs {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_LockOutputs>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_LockOutputs): ResourceAPI_LockOutputs {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_LockOutputs, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.LockOutputs\n */\nexport const ResourceAPI_LockOutputs = new ResourceAPI_LockOutputs$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_LockOutputs_Request$Type extends MessageType<ResourceAPI_LockOutputs_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.LockOutputs.Request\", [\n { no: 1, name: \"resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_LockOutputs_Request>): ResourceAPI_LockOutputs_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.resourceId = 0n;\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_LockOutputs_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_LockOutputs_Request): ResourceAPI_LockOutputs_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 resource_id */ 1:\n message.resourceId = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_LockOutputs_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 resource_id = 1; */\n if (message.resourceId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.resourceId);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.LockOutputs.Request\n */\nexport const ResourceAPI_LockOutputs_Request = new ResourceAPI_LockOutputs_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_LockOutputs_Response$Type extends MessageType<ResourceAPI_LockOutputs_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.LockOutputs.Response\", []);\n }\n create(value?: PartialMessage<ResourceAPI_LockOutputs_Response>): ResourceAPI_LockOutputs_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_LockOutputs_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_LockOutputs_Response): ResourceAPI_LockOutputs_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_LockOutputs_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.LockOutputs.Response\n */\nexport const ResourceAPI_LockOutputs_Response = new ResourceAPI_LockOutputs_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_Exists$Type extends MessageType<ResourceAPI_Exists> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.Exists\", []);\n }\n create(value?: PartialMessage<ResourceAPI_Exists>): ResourceAPI_Exists {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_Exists>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_Exists): ResourceAPI_Exists {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_Exists, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.Exists\n */\nexport const ResourceAPI_Exists = new ResourceAPI_Exists$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_Exists_Request$Type extends MessageType<ResourceAPI_Exists_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.Exists.Request\", [\n { no: 1, name: \"resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_Exists_Request>): ResourceAPI_Exists_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.resourceId = 0n;\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_Exists_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_Exists_Request): ResourceAPI_Exists_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 resource_id */ 1:\n message.resourceId = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_Exists_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 resource_id = 1; */\n if (message.resourceId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.resourceId);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.Exists.Request\n */\nexport const ResourceAPI_Exists_Request = new ResourceAPI_Exists_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_Exists_Response$Type extends MessageType<ResourceAPI_Exists_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.Exists.Response\", [\n { no: 1, name: \"exists\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_Exists_Response>): ResourceAPI_Exists_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.exists = false;\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_Exists_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_Exists_Response): ResourceAPI_Exists_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* bool exists */ 1:\n message.exists = reader.bool();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_Exists_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* bool exists = 1; */\n if (message.exists !== false)\n writer.tag(1, WireType.Varint).bool(message.exists);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.Exists.Response\n */\nexport const ResourceAPI_Exists_Response = new ResourceAPI_Exists_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_SetError$Type extends MessageType<ResourceAPI_SetError> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.SetError\", []);\n }\n create(value?: PartialMessage<ResourceAPI_SetError>): ResourceAPI_SetError {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_SetError>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_SetError): ResourceAPI_SetError {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_SetError, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.SetError\n */\nexport const ResourceAPI_SetError = new ResourceAPI_SetError$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_SetError_Request$Type extends MessageType<ResourceAPI_SetError_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.SetError.Request\", [\n { no: 1, name: \"resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"error_resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_SetError_Request>): ResourceAPI_SetError_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.resourceId = 0n;\n message.errorResourceId = 0n;\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_SetError_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_SetError_Request): ResourceAPI_SetError_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 resource_id */ 1:\n message.resourceId = reader.uint64().toBigInt();\n break;\n case /* uint64 error_resource_id */ 2:\n message.errorResourceId = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_SetError_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 resource_id = 1; */\n if (message.resourceId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.resourceId);\n /* uint64 error_resource_id = 2; */\n if (message.errorResourceId !== 0n)\n writer.tag(2, WireType.Varint).uint64(message.errorResourceId);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.SetError.Request\n */\nexport const ResourceAPI_SetError_Request = new ResourceAPI_SetError_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_SetError_Response$Type extends MessageType<ResourceAPI_SetError_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.SetError.Response\", []);\n }\n create(value?: PartialMessage<ResourceAPI_SetError_Response>): ResourceAPI_SetError_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_SetError_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_SetError_Response): ResourceAPI_SetError_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_SetError_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.SetError.Response\n */\nexport const ResourceAPI_SetError_Response = new ResourceAPI_SetError_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_Get$Type extends MessageType<ResourceAPI_Get> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.Get\", []);\n }\n create(value?: PartialMessage<ResourceAPI_Get>): ResourceAPI_Get {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_Get>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_Get): ResourceAPI_Get {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_Get, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.Get\n */\nexport const ResourceAPI_Get = new ResourceAPI_Get$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_Get_Request$Type extends MessageType<ResourceAPI_Get_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.Get.Request\", [\n { no: 1, name: \"resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"load_fields\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_Get_Request>): ResourceAPI_Get_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.resourceId = 0n;\n message.loadFields = false;\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_Get_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_Get_Request): ResourceAPI_Get_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 resource_id */ 1:\n message.resourceId = reader.uint64().toBigInt();\n break;\n case /* bool load_fields */ 2:\n message.loadFields = reader.bool();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_Get_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 resource_id = 1; */\n if (message.resourceId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.resourceId);\n /* bool load_fields = 2; */\n if (message.loadFields !== false)\n writer.tag(2, WireType.Varint).bool(message.loadFields);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.Get.Request\n */\nexport const ResourceAPI_Get_Request = new ResourceAPI_Get_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_Get_Response$Type extends MessageType<ResourceAPI_Get_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.Get.Response\", [\n { no: 1, name: \"resource\", kind: \"message\", T: () => Resource }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_Get_Response>): ResourceAPI_Get_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_Get_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_Get_Response): ResourceAPI_Get_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* MiLaboratories.PL.API.Resource resource */ 1:\n message.resource = Resource.internalBinaryRead(reader, reader.uint32(), options, message.resource);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_Get_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* MiLaboratories.PL.API.Resource resource = 1; */\n if (message.resource)\n Resource.internalBinaryWrite(message.resource, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.Get.Response\n */\nexport const ResourceAPI_Get_Response = new ResourceAPI_Get_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_List$Type extends MessageType<ResourceAPI_List> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.List\", []);\n }\n create(value?: PartialMessage<ResourceAPI_List>): ResourceAPI_List {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_List>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_List): ResourceAPI_List {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_List, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.List\n */\nexport const ResourceAPI_List = new ResourceAPI_List$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_List_ByType$Type extends MessageType<ResourceAPI_List_ByType> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.List.ByType\", []);\n }\n create(value?: PartialMessage<ResourceAPI_List_ByType>): ResourceAPI_List_ByType {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_List_ByType>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_List_ByType): ResourceAPI_List_ByType {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_List_ByType, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.List.ByType\n */\nexport const ResourceAPI_List_ByType = new ResourceAPI_List_ByType$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_List_ByType_Request$Type extends MessageType<ResourceAPI_List_ByType_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.List.ByType.Request\", [\n { no: 1, name: \"resource_type\", kind: \"message\", T: () => ResourceType },\n { no: 3, name: \"limit\", kind: \"scalar\", T: 13 /*ScalarType.UINT32*/ },\n { no: 6, name: \"after\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 4, name: \"resolve_duplicates\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n { no: 5, name: \"load_fields\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_List_ByType_Request>): ResourceAPI_List_ByType_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.limit = 0;\n message.after = 0n;\n message.resolveDuplicates = false;\n message.loadFields = false;\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_List_ByType_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_List_ByType_Request): ResourceAPI_List_ByType_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* MiLaboratories.PL.Base.ResourceType resource_type */ 1:\n message.resourceType = ResourceType.internalBinaryRead(reader, reader.uint32(), options, message.resourceType);\n break;\n case /* uint32 limit */ 3:\n message.limit = reader.uint32();\n break;\n case /* uint64 after */ 6:\n message.after = reader.uint64().toBigInt();\n break;\n case /* bool resolve_duplicates */ 4:\n message.resolveDuplicates = reader.bool();\n break;\n case /* bool load_fields */ 5:\n message.loadFields = reader.bool();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_List_ByType_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* MiLaboratories.PL.Base.ResourceType resource_type = 1; */\n if (message.resourceType)\n ResourceType.internalBinaryWrite(message.resourceType, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* uint32 limit = 3; */\n if (message.limit !== 0)\n writer.tag(3, WireType.Varint).uint32(message.limit);\n /* bool resolve_duplicates = 4; */\n if (message.resolveDuplicates !== false)\n writer.tag(4, WireType.Varint).bool(message.resolveDuplicates);\n /* bool load_fields = 5; */\n if (message.loadFields !== false)\n writer.tag(5, WireType.Varint).bool(message.loadFields);\n /* uint64 after = 6; */\n if (message.after !== 0n)\n writer.tag(6, WireType.Varint).uint64(message.after);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.List.ByType.Request\n */\nexport const ResourceAPI_List_ByType_Request = new ResourceAPI_List_ByType_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_List_ByType_Response$Type extends MessageType<ResourceAPI_List_ByType_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.List.ByType.Response\", [\n { no: 1, name: \"resource\", kind: \"message\", T: () => Resource }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_List_ByType_Response>): ResourceAPI_List_ByType_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_List_ByType_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_List_ByType_Response): ResourceAPI_List_ByType_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* MiLaboratories.PL.API.Resource resource */ 1:\n message.resource = Resource.internalBinaryRead(reader, reader.uint32(), options, message.resource);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_List_ByType_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* MiLaboratories.PL.API.Resource resource = 1; */\n if (message.resource)\n Resource.internalBinaryWrite(message.resource, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.List.ByType.Response\n */\nexport const ResourceAPI_List_ByType_Response = new ResourceAPI_List_ByType_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_CreateRoot$Type extends MessageType<ResourceAPI_CreateRoot> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.CreateRoot\", []);\n }\n create(value?: PartialMessage<ResourceAPI_CreateRoot>): ResourceAPI_CreateRoot {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_CreateRoot>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_CreateRoot): ResourceAPI_CreateRoot {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_CreateRoot, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.CreateRoot\n */\nexport const ResourceAPI_CreateRoot = new ResourceAPI_CreateRoot$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_CreateRoot_Request$Type extends MessageType<ResourceAPI_CreateRoot_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.CreateRoot.Request\", [\n { no: 2, name: \"id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 3, name: \"type\", kind: \"message\", T: () => ResourceType }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_CreateRoot_Request>): ResourceAPI_CreateRoot_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.id = 0n;\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_CreateRoot_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_CreateRoot_Request): ResourceAPI_CreateRoot_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 id */ 2:\n message.id = reader.uint64().toBigInt();\n break;\n case /* MiLaboratories.PL.Base.ResourceType type */ 3:\n message.type = ResourceType.internalBinaryRead(reader, reader.uint32(), options, message.type);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_CreateRoot_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 id = 2; */\n if (message.id !== 0n)\n writer.tag(2, WireType.Varint).uint64(message.id);\n /* MiLaboratories.PL.Base.ResourceType type = 3; */\n if (message.type)\n ResourceType.internalBinaryWrite(message.type, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.CreateRoot.Request\n */\nexport const ResourceAPI_CreateRoot_Request = new ResourceAPI_CreateRoot_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_CreateRoot_Response$Type extends MessageType<ResourceAPI_CreateRoot_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.CreateRoot.Response\", [\n { no: 1, name: \"resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_CreateRoot_Response>): ResourceAPI_CreateRoot_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.resourceId = 0n;\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_CreateRoot_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_CreateRoot_Response): ResourceAPI_CreateRoot_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 resource_id */ 1:\n message.resourceId = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_CreateRoot_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 resource_id = 1; */\n if (message.resourceId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.resourceId);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.CreateRoot.Response\n */\nexport const ResourceAPI_CreateRoot_Response = new ResourceAPI_CreateRoot_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_Remove$Type extends MessageType<ResourceAPI_Remove> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.Remove\", []);\n }\n create(value?: PartialMessage<ResourceAPI_Remove>): ResourceAPI_Remove {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_Remove>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_Remove): ResourceAPI_Remove {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_Remove, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.Remove\n */\nexport const ResourceAPI_Remove = new ResourceAPI_Remove$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_Remove_Request$Type extends MessageType<ResourceAPI_Remove_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.Remove.Request\", [\n { no: 1, name: \"id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_Remove_Request>): ResourceAPI_Remove_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.id = 0n;\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_Remove_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_Remove_Request): ResourceAPI_Remove_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 id */ 1:\n message.id = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_Remove_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 id = 1; */\n if (message.id !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.id);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.Remove.Request\n */\nexport const ResourceAPI_Remove_Request = new ResourceAPI_Remove_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_Remove_Response$Type extends MessageType<ResourceAPI_Remove_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.Remove.Response\", []);\n }\n create(value?: PartialMessage<ResourceAPI_Remove_Response>): ResourceAPI_Remove_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_Remove_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_Remove_Response): ResourceAPI_Remove_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_Remove_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.Remove.Response\n */\nexport const ResourceAPI_Remove_Response = new ResourceAPI_Remove_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_Name$Type extends MessageType<ResourceAPI_Name> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.Name\", []);\n }\n create(value?: PartialMessage<ResourceAPI_Name>): ResourceAPI_Name {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_Name>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_Name): ResourceAPI_Name {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_Name, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.Name\n */\nexport const ResourceAPI_Name = new ResourceAPI_Name$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_Name_Set$Type extends MessageType<ResourceAPI_Name_Set> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.Name.Set\", []);\n }\n create(value?: PartialMessage<ResourceAPI_Name_Set>): ResourceAPI_Name_Set {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_Name_Set>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_Name_Set): ResourceAPI_Name_Set {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_Name_Set, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.Name.Set\n */\nexport const ResourceAPI_Name_Set = new ResourceAPI_Name_Set$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_Name_Set_Request$Type extends MessageType<ResourceAPI_Name_Set_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.Name.Set.Request\", [\n { no: 1, name: \"resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_Name_Set_Request>): ResourceAPI_Name_Set_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.resourceId = 0n;\n message.name = \"\";\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_Name_Set_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_Name_Set_Request): ResourceAPI_Name_Set_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 resource_id */ 1:\n message.resourceId = reader.uint64().toBigInt();\n break;\n case /* string name */ 2:\n message.name = reader.string();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_Name_Set_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 resource_id = 1; */\n if (message.resourceId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.resourceId);\n /* string name = 2; */\n if (message.name !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.name);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.Name.Set.Request\n */\nexport const ResourceAPI_Name_Set_Request = new ResourceAPI_Name_Set_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_Name_Set_Response$Type extends MessageType<ResourceAPI_Name_Set_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.Name.Set.Response\", []);\n }\n create(value?: PartialMessage<ResourceAPI_Name_Set_Response>): ResourceAPI_Name_Set_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_Name_Set_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_Name_Set_Response): ResourceAPI_Name_Set_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_Name_Set_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.Name.Set.Response\n */\nexport const ResourceAPI_Name_Set_Response = new ResourceAPI_Name_Set_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_Name_Get$Type extends MessageType<ResourceAPI_Name_Get> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.Name.Get\", []);\n }\n create(value?: PartialMessage<ResourceAPI_Name_Get>): ResourceAPI_Name_Get {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_Name_Get>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_Name_Get): ResourceAPI_Name_Get {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_Name_Get, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.Name.Get\n */\nexport const ResourceAPI_Name_Get = new ResourceAPI_Name_Get$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_Name_Get_Request$Type extends MessageType<ResourceAPI_Name_Get_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.Name.Get.Request\", [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_Name_Get_Request>): ResourceAPI_Name_Get_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.name = \"\";\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_Name_Get_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_Name_Get_Request): ResourceAPI_Name_Get_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string name */ 1:\n message.name = reader.string();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_Name_Get_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string name = 1; */\n if (message.name !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.name);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.Name.Get.Request\n */\nexport const ResourceAPI_Name_Get_Request = new ResourceAPI_Name_Get_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_Name_Get_Response$Type extends MessageType<ResourceAPI_Name_Get_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.Name.Get.Response\", [\n { no: 1, name: \"resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_Name_Get_Response>): ResourceAPI_Name_Get_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.resourceId = 0n;\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_Name_Get_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_Name_Get_Response): ResourceAPI_Name_Get_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 resource_id */ 1:\n message.resourceId = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_Name_Get_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 resource_id = 1; */\n if (message.resourceId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.resourceId);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.Name.Get.Response\n */\nexport const ResourceAPI_Name_Get_Response = new ResourceAPI_Name_Get_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_Name_Exists$Type extends MessageType<ResourceAPI_Name_Exists> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.Name.Exists\", []);\n }\n create(value?: PartialMessage<ResourceAPI_Name_Exists>): ResourceAPI_Name_Exists {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_Name_Exists>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_Name_Exists): ResourceAPI_Name_Exists {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_Name_Exists, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.Name.Exists\n */\nexport const ResourceAPI_Name_Exists = new ResourceAPI_Name_Exists$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_Name_Exists_Request$Type extends MessageType<ResourceAPI_Name_Exists_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.Name.Exists.Request\", [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_Name_Exists_Request>): ResourceAPI_Name_Exists_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.name = \"\";\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_Name_Exists_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_Name_Exists_Request): ResourceAPI_Name_Exists_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string name */ 1:\n message.name = reader.string();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_Name_Exists_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string name = 1; */\n if (message.name !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.name);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.Name.Exists.Request\n */\nexport const ResourceAPI_Name_Exists_Request = new ResourceAPI_Name_Exists_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_Name_Exists_Response$Type extends MessageType<ResourceAPI_Name_Exists_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.Name.Exists.Response\", [\n { no: 1, name: \"exists\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_Name_Exists_Response>): ResourceAPI_Name_Exists_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.exists = false;\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_Name_Exists_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_Name_Exists_Response): ResourceAPI_Name_Exists_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* bool exists */ 1:\n message.exists = reader.bool();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_Name_Exists_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* bool exists = 1; */\n if (message.exists !== false)\n writer.tag(1, WireType.Varint).bool(message.exists);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.Name.Exists.Response\n */\nexport const ResourceAPI_Name_Exists_Response = new ResourceAPI_Name_Exists_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_Name_Delete$Type extends MessageType<ResourceAPI_Name_Delete> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.Name.Delete\", []);\n }\n create(value?: PartialMessage<ResourceAPI_Name_Delete>): ResourceAPI_Name_Delete {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_Name_Delete>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_Name_Delete): ResourceAPI_Name_Delete {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_Name_Delete, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.Name.Delete\n */\nexport const ResourceAPI_Name_Delete = new ResourceAPI_Name_Delete$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_Name_Delete_Request$Type extends MessageType<ResourceAPI_Name_Delete_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.Name.Delete.Request\", [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_Name_Delete_Request>): ResourceAPI_Name_Delete_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.name = \"\";\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_Name_Delete_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_Name_Delete_Request): ResourceAPI_Name_Delete_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string name */ 1:\n message.name = reader.string();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_Name_Delete_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string name = 1; */\n if (message.name !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.name);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.Name.Delete.Request\n */\nexport const ResourceAPI_Name_Delete_Request = new ResourceAPI_Name_Delete_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_Name_Delete_Response$Type extends MessageType<ResourceAPI_Name_Delete_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.Name.Delete.Response\", []);\n }\n create(value?: PartialMessage<ResourceAPI_Name_Delete_Response>): ResourceAPI_Name_Delete_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_Name_Delete_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_Name_Delete_Response): ResourceAPI_Name_Delete_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_Name_Delete_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.Name.Delete.Response\n */\nexport const ResourceAPI_Name_Delete_Response = new ResourceAPI_Name_Delete_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_Tree$Type extends MessageType<ResourceAPI_Tree> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.Tree\", []);\n }\n create(value?: PartialMessage<ResourceAPI_Tree>): ResourceAPI_Tree {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_Tree>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_Tree): ResourceAPI_Tree {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_Tree, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.Tree\n */\nexport const ResourceAPI_Tree = new ResourceAPI_Tree$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_Tree_Request$Type extends MessageType<ResourceAPI_Tree_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.Tree.Request\", [\n { no: 1, name: \"resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"max_depth\", kind: \"scalar\", opt: true, T: 13 /*ScalarType.UINT32*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_Tree_Request>): ResourceAPI_Tree_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.resourceId = 0n;\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_Tree_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_Tree_Request): ResourceAPI_Tree_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 resource_id */ 1:\n message.resourceId = reader.uint64().toBigInt();\n break;\n case /* optional uint32 max_depth */ 2:\n message.maxDepth = reader.uint32();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_Tree_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 resource_id = 1; */\n if (message.resourceId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.resourceId);\n /* optional uint32 max_depth = 2; */\n if (message.maxDepth !== undefined)\n writer.tag(2, WireType.Varint).uint32(message.maxDepth);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.Tree.Request\n */\nexport const ResourceAPI_Tree_Request = new ResourceAPI_Tree_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_Tree_Response$Type extends MessageType<ResourceAPI_Tree_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.Tree.Response\", [\n { no: 1, name: \"resource\", kind: \"message\", T: () => Resource }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_Tree_Response>): ResourceAPI_Tree_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_Tree_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_Tree_Response): ResourceAPI_Tree_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* MiLaboratories.PL.API.Resource resource */ 1:\n message.resource = Resource.internalBinaryRead(reader, reader.uint32(), options, message.resource);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_Tree_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* MiLaboratories.PL.API.Resource resource = 1; */\n if (message.resource)\n Resource.internalBinaryWrite(message.resource, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.Tree.Response\n */\nexport const ResourceAPI_Tree_Response = new ResourceAPI_Tree_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_TreeSize$Type extends MessageType<ResourceAPI_TreeSize> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.TreeSize\", []);\n }\n create(value?: PartialMessage<ResourceAPI_TreeSize>): ResourceAPI_TreeSize {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_TreeSize>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_TreeSize): ResourceAPI_TreeSize {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_TreeSize, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.TreeSize\n */\nexport const ResourceAPI_TreeSize = new ResourceAPI_TreeSize$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_TreeSize_Request$Type extends MessageType<ResourceAPI_TreeSize_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.TreeSize.Request\", [\n { no: 1, name: \"resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_TreeSize_Request>): ResourceAPI_TreeSize_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.resourceId = 0n;\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_TreeSize_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_TreeSize_Request): ResourceAPI_TreeSize_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 resource_id */ 1:\n message.resourceId = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_TreeSize_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 resource_id = 1; */\n if (message.resourceId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.resourceId);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.TreeSize.Request\n */\nexport const ResourceAPI_TreeSize_Request = new ResourceAPI_TreeSize_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceAPI_TreeSize_Response$Type extends MessageType<ResourceAPI_TreeSize_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceAPI.TreeSize.Response\", [\n { no: 1, name: \"size\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"resource_count\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceAPI_TreeSize_Response>): ResourceAPI_TreeSize_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.size = 0n;\n message.resourceCount = 0n;\n if (value !== undefined)\n reflectionMergePartial<ResourceAPI_TreeSize_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceAPI_TreeSize_Response): ResourceAPI_TreeSize_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 size */ 1:\n message.size = reader.uint64().toBigInt();\n break;\n case /* uint64 resource_count */ 2:\n message.resourceCount = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceAPI_TreeSize_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 size = 1; */\n if (message.size !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.size);\n /* uint64 resource_count = 2; */\n if (message.resourceCount !== 0n)\n writer.tag(2, WireType.Varint).uint64(message.resourceCount);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceAPI.TreeSize.Response\n */\nexport const ResourceAPI_TreeSize_Response = new ResourceAPI_TreeSize_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldAPI$Type extends MessageType<FieldAPI> {\n constructor() {\n super(\"MiLaboratories.PL.API.FieldAPI\", []);\n }\n create(value?: PartialMessage<FieldAPI>): FieldAPI {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<FieldAPI>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FieldAPI): FieldAPI {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: FieldAPI, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.FieldAPI\n */\nexport const FieldAPI = new FieldAPI$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldAPI_Create$Type extends MessageType<FieldAPI_Create> {\n constructor() {\n super(\"MiLaboratories.PL.API.FieldAPI.Create\", []);\n }\n create(value?: PartialMessage<FieldAPI_Create>): FieldAPI_Create {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<FieldAPI_Create>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FieldAPI_Create): FieldAPI_Create {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: FieldAPI_Create, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.FieldAPI.Create\n */\nexport const FieldAPI_Create = new FieldAPI_Create$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldAPI_Create_Request$Type extends MessageType<FieldAPI_Create_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.FieldAPI.Create.Request\", [\n { no: 1, name: \"type\", kind: \"enum\", T: () => [\"MiLaboratories.PL.Base.FieldType\", FieldType] },\n { no: 2, name: \"id\", kind: \"message\", T: () => FieldRef }\n ]);\n }\n create(value?: PartialMessage<FieldAPI_Create_Request>): FieldAPI_Create_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.type = 0;\n if (value !== undefined)\n reflectionMergePartial<FieldAPI_Create_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FieldAPI_Create_Request): FieldAPI_Create_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* MiLaboratories.PL.Base.FieldType type */ 1:\n message.type = reader.int32();\n break;\n case /* MiLaboratories.PL.Base.FieldRef id */ 2:\n message.id = FieldRef.internalBinaryRead(reader, reader.uint32(), options, message.id);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: FieldAPI_Create_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* MiLaboratories.PL.Base.FieldType type = 1; */\n if (message.type !== 0)\n writer.tag(1, WireType.Varint).int32(message.type);\n /* MiLaboratories.PL.Base.FieldRef id = 2; */\n if (message.id)\n FieldRef.internalBinaryWrite(message.id, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.FieldAPI.Create.Request\n */\nexport const FieldAPI_Create_Request = new FieldAPI_Create_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldAPI_Create_Response$Type extends MessageType<FieldAPI_Create_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.FieldAPI.Create.Response\", [\n { no: 1, name: \"global_id\", kind: \"message\", T: () => FieldRef }\n ]);\n }\n create(value?: PartialMessage<FieldAPI_Create_Response>): FieldAPI_Create_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<FieldAPI_Create_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FieldAPI_Create_Response): FieldAPI_Create_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* MiLaboratories.PL.Base.FieldRef global_id */ 1:\n message.globalId = FieldRef.internalBinaryRead(reader, reader.uint32(), options, message.globalId);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: FieldAPI_Create_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* MiLaboratories.PL.Base.FieldRef global_id = 1; */\n if (message.globalId)\n FieldRef.internalBinaryWrite(message.globalId, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.FieldAPI.Create.Response\n */\nexport const FieldAPI_Create_Response = new FieldAPI_Create_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldAPI_Exists$Type extends MessageType<FieldAPI_Exists> {\n constructor() {\n super(\"MiLaboratories.PL.API.FieldAPI.Exists\", []);\n }\n create(value?: PartialMessage<FieldAPI_Exists>): FieldAPI_Exists {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<FieldAPI_Exists>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FieldAPI_Exists): FieldAPI_Exists {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: FieldAPI_Exists, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.FieldAPI.Exists\n */\nexport const FieldAPI_Exists = new FieldAPI_Exists$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldAPI_Exists_Request$Type extends MessageType<FieldAPI_Exists_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.FieldAPI.Exists.Request\", [\n { no: 1, name: \"field\", kind: \"message\", T: () => FieldRef }\n ]);\n }\n create(value?: PartialMessage<FieldAPI_Exists_Request>): FieldAPI_Exists_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<FieldAPI_Exists_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FieldAPI_Exists_Request): FieldAPI_Exists_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* MiLaboratories.PL.Base.FieldRef field */ 1:\n message.field = FieldRef.internalBinaryRead(reader, reader.uint32(), options, message.field);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: FieldAPI_Exists_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* MiLaboratories.PL.Base.FieldRef field = 1; */\n if (message.field)\n FieldRef.internalBinaryWrite(message.field, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.FieldAPI.Exists.Request\n */\nexport const FieldAPI_Exists_Request = new FieldAPI_Exists_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldAPI_Exists_Response$Type extends MessageType<FieldAPI_Exists_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.FieldAPI.Exists.Response\", [\n { no: 1, name: \"exists\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ }\n ]);\n }\n create(value?: PartialMessage<FieldAPI_Exists_Response>): FieldAPI_Exists_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.exists = false;\n if (value !== undefined)\n reflectionMergePartial<FieldAPI_Exists_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FieldAPI_Exists_Response): FieldAPI_Exists_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* bool exists */ 1:\n message.exists = reader.bool();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: FieldAPI_Exists_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* bool exists = 1; */\n if (message.exists !== false)\n writer.tag(1, WireType.Varint).bool(message.exists);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.FieldAPI.Exists.Response\n */\nexport const FieldAPI_Exists_Response = new FieldAPI_Exists_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldAPI_Set$Type extends MessageType<FieldAPI_Set> {\n constructor() {\n super(\"MiLaboratories.PL.API.FieldAPI.Set\", []);\n }\n create(value?: PartialMessage<FieldAPI_Set>): FieldAPI_Set {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<FieldAPI_Set>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FieldAPI_Set): FieldAPI_Set {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: FieldAPI_Set, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.FieldAPI.Set\n */\nexport const FieldAPI_Set = new FieldAPI_Set$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldAPI_Set_Request$Type extends MessageType<FieldAPI_Set_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.FieldAPI.Set.Request\", [\n { no: 1, name: \"field\", kind: \"message\", T: () => FieldRef },\n { no: 2, name: \"value\", kind: \"message\", T: () => FieldRef }\n ]);\n }\n create(value?: PartialMessage<FieldAPI_Set_Request>): FieldAPI_Set_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<FieldAPI_Set_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FieldAPI_Set_Request): FieldAPI_Set_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* MiLaboratories.PL.Base.FieldRef field */ 1:\n message.field = FieldRef.internalBinaryRead(reader, reader.uint32(), options, message.field);\n break;\n case /* MiLaboratories.PL.Base.FieldRef value */ 2:\n message.value = FieldRef.internalBinaryRead(reader, reader.uint32(), options, message.value);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: FieldAPI_Set_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* MiLaboratories.PL.Base.FieldRef field = 1; */\n if (message.field)\n FieldRef.internalBinaryWrite(message.field, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* MiLaboratories.PL.Base.FieldRef value = 2; */\n if (message.value)\n FieldRef.internalBinaryWrite(message.value, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.FieldAPI.Set.Request\n */\nexport const FieldAPI_Set_Request = new FieldAPI_Set_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldAPI_Set_Response$Type extends MessageType<FieldAPI_Set_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.FieldAPI.Set.Response\", []);\n }\n create(value?: PartialMessage<FieldAPI_Set_Response>): FieldAPI_Set_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<FieldAPI_Set_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FieldAPI_Set_Response): FieldAPI_Set_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: FieldAPI_Set_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.FieldAPI.Set.Response\n */\nexport const FieldAPI_Set_Response = new FieldAPI_Set_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldAPI_SetError$Type extends MessageType<FieldAPI_SetError> {\n constructor() {\n super(\"MiLaboratories.PL.API.FieldAPI.SetError\", []);\n }\n create(value?: PartialMessage<FieldAPI_SetError>): FieldAPI_SetError {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<FieldAPI_SetError>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FieldAPI_SetError): FieldAPI_SetError {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: FieldAPI_SetError, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.FieldAPI.SetError\n */\nexport const FieldAPI_SetError = new FieldAPI_SetError$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldAPI_SetError_Request$Type extends MessageType<FieldAPI_SetError_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.FieldAPI.SetError.Request\", [\n { no: 1, name: \"field\", kind: \"message\", T: () => FieldRef },\n { no: 2, name: \"err_resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<FieldAPI_SetError_Request>): FieldAPI_SetError_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.errResourceId = 0n;\n if (value !== undefined)\n reflectionMergePartial<FieldAPI_SetError_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FieldAPI_SetError_Request): FieldAPI_SetError_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* MiLaboratories.PL.Base.FieldRef field */ 1:\n message.field = FieldRef.internalBinaryRead(reader, reader.uint32(), options, message.field);\n break;\n case /* uint64 err_resource_id */ 2:\n message.errResourceId = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: FieldAPI_SetError_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* MiLaboratories.PL.Base.FieldRef field = 1; */\n if (message.field)\n FieldRef.internalBinaryWrite(message.field, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* uint64 err_resource_id = 2; */\n if (message.errResourceId !== 0n)\n writer.tag(2, WireType.Varint).uint64(message.errResourceId);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.FieldAPI.SetError.Request\n */\nexport const FieldAPI_SetError_Request = new FieldAPI_SetError_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldAPI_SetError_Response$Type extends MessageType<FieldAPI_SetError_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.FieldAPI.SetError.Response\", []);\n }\n create(value?: PartialMessage<FieldAPI_SetError_Response>): FieldAPI_SetError_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<FieldAPI_SetError_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FieldAPI_SetError_Response): FieldAPI_SetError_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: FieldAPI_SetError_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.FieldAPI.SetError.Response\n */\nexport const FieldAPI_SetError_Response = new FieldAPI_SetError_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldAPI_Get$Type extends MessageType<FieldAPI_Get> {\n constructor() {\n super(\"MiLaboratories.PL.API.FieldAPI.Get\", []);\n }\n create(value?: PartialMessage<FieldAPI_Get>): FieldAPI_Get {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<FieldAPI_Get>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FieldAPI_Get): FieldAPI_Get {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: FieldAPI_Get, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.FieldAPI.Get\n */\nexport const FieldAPI_Get = new FieldAPI_Get$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldAPI_Get_Request$Type extends MessageType<FieldAPI_Get_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.FieldAPI.Get.Request\", [\n { no: 1, name: \"field\", kind: \"message\", T: () => FieldRef }\n ]);\n }\n create(value?: PartialMessage<FieldAPI_Get_Request>): FieldAPI_Get_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<FieldAPI_Get_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FieldAPI_Get_Request): FieldAPI_Get_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* MiLaboratories.PL.Base.FieldRef field */ 1:\n message.field = FieldRef.internalBinaryRead(reader, reader.uint32(), options, message.field);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: FieldAPI_Get_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* MiLaboratories.PL.Base.FieldRef field = 1; */\n if (message.field)\n FieldRef.internalBinaryWrite(message.field, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.FieldAPI.Get.Request\n */\nexport const FieldAPI_Get_Request = new FieldAPI_Get_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldAPI_Get_Response$Type extends MessageType<FieldAPI_Get_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.FieldAPI.Get.Response\", [\n { no: 1, name: \"field\", kind: \"message\", T: () => Field }\n ]);\n }\n create(value?: PartialMessage<FieldAPI_Get_Response>): FieldAPI_Get_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<FieldAPI_Get_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FieldAPI_Get_Response): FieldAPI_Get_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* MiLaboratories.PL.API.Field field */ 1:\n message.field = Field.internalBinaryRead(reader, reader.uint32(), options, message.field);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: FieldAPI_Get_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* MiLaboratories.PL.API.Field field = 1; */\n if (message.field)\n Field.internalBinaryWrite(message.field, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.FieldAPI.Get.Response\n */\nexport const FieldAPI_Get_Response = new FieldAPI_Get_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldAPI_Reset$Type extends MessageType<FieldAPI_Reset> {\n constructor() {\n super(\"MiLaboratories.PL.API.FieldAPI.Reset\", []);\n }\n create(value?: PartialMessage<FieldAPI_Reset>): FieldAPI_Reset {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<FieldAPI_Reset>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FieldAPI_Reset): FieldAPI_Reset {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: FieldAPI_Reset, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.FieldAPI.Reset\n */\nexport const FieldAPI_Reset = new FieldAPI_Reset$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldAPI_Reset_Request$Type extends MessageType<FieldAPI_Reset_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.FieldAPI.Reset.Request\", [\n { no: 1, name: \"field\", kind: \"message\", T: () => FieldRef }\n ]);\n }\n create(value?: PartialMessage<FieldAPI_Reset_Request>): FieldAPI_Reset_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<FieldAPI_Reset_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FieldAPI_Reset_Request): FieldAPI_Reset_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* MiLaboratories.PL.Base.FieldRef field */ 1:\n message.field = FieldRef.internalBinaryRead(reader, reader.uint32(), options, message.field);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: FieldAPI_Reset_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* MiLaboratories.PL.Base.FieldRef field = 1; */\n if (message.field)\n FieldRef.internalBinaryWrite(message.field, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.FieldAPI.Reset.Request\n */\nexport const FieldAPI_Reset_Request = new FieldAPI_Reset_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldAPI_Reset_Response$Type extends MessageType<FieldAPI_Reset_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.FieldAPI.Reset.Response\", []);\n }\n create(value?: PartialMessage<FieldAPI_Reset_Response>): FieldAPI_Reset_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<FieldAPI_Reset_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FieldAPI_Reset_Response): FieldAPI_Reset_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: FieldAPI_Reset_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.FieldAPI.Reset.Response\n */\nexport const FieldAPI_Reset_Response = new FieldAPI_Reset_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldAPI_Remove$Type extends MessageType<FieldAPI_Remove> {\n constructor() {\n super(\"MiLaboratories.PL.API.FieldAPI.Remove\", []);\n }\n create(value?: PartialMessage<FieldAPI_Remove>): FieldAPI_Remove {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<FieldAPI_Remove>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FieldAPI_Remove): FieldAPI_Remove {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: FieldAPI_Remove, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.FieldAPI.Remove\n */\nexport const FieldAPI_Remove = new FieldAPI_Remove$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldAPI_Remove_Request$Type extends MessageType<FieldAPI_Remove_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.FieldAPI.Remove.Request\", [\n { no: 1, name: \"field\", kind: \"message\", T: () => FieldRef }\n ]);\n }\n create(value?: PartialMessage<FieldAPI_Remove_Request>): FieldAPI_Remove_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<FieldAPI_Remove_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FieldAPI_Remove_Request): FieldAPI_Remove_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* MiLaboratories.PL.Base.FieldRef field */ 1:\n message.field = FieldRef.internalBinaryRead(reader, reader.uint32(), options, message.field);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: FieldAPI_Remove_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* MiLaboratories.PL.Base.FieldRef field = 1; */\n if (message.field)\n FieldRef.internalBinaryWrite(message.field, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.FieldAPI.Remove.Request\n */\nexport const FieldAPI_Remove_Request = new FieldAPI_Remove_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldAPI_Remove_Response$Type extends MessageType<FieldAPI_Remove_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.FieldAPI.Remove.Response\", []);\n }\n create(value?: PartialMessage<FieldAPI_Remove_Response>): FieldAPI_Remove_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<FieldAPI_Remove_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FieldAPI_Remove_Response): FieldAPI_Remove_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: FieldAPI_Remove_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.FieldAPI.Remove.Response\n */\nexport const FieldAPI_Remove_Response = new FieldAPI_Remove_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldAPI_List$Type extends MessageType<FieldAPI_List> {\n constructor() {\n super(\"MiLaboratories.PL.API.FieldAPI.List\", []);\n }\n create(value?: PartialMessage<FieldAPI_List>): FieldAPI_List {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<FieldAPI_List>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FieldAPI_List): FieldAPI_List {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: FieldAPI_List, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.FieldAPI.List\n */\nexport const FieldAPI_List = new FieldAPI_List$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldAPI_List_Request$Type extends MessageType<FieldAPI_List_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.FieldAPI.List.Request\", [\n { no: 1, name: \"resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"start_from\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 3, name: \"limit\", kind: \"scalar\", T: 13 /*ScalarType.UINT32*/ }\n ]);\n }\n create(value?: PartialMessage<FieldAPI_List_Request>): FieldAPI_List_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.resourceId = 0n;\n message.startFrom = \"\";\n message.limit = 0;\n if (value !== undefined)\n reflectionMergePartial<FieldAPI_List_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FieldAPI_List_Request): FieldAPI_List_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 resource_id */ 1:\n message.resourceId = reader.uint64().toBigInt();\n break;\n case /* string start_from */ 2:\n message.startFrom = reader.string();\n break;\n case /* uint32 limit */ 3:\n message.limit = reader.uint32();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: FieldAPI_List_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 resource_id = 1; */\n if (message.resourceId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.resourceId);\n /* string start_from = 2; */\n if (message.startFrom !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.startFrom);\n /* uint32 limit = 3; */\n if (message.limit !== 0)\n writer.tag(3, WireType.Varint).uint32(message.limit);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.FieldAPI.List.Request\n */\nexport const FieldAPI_List_Request = new FieldAPI_List_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldAPI_List_Response$Type extends MessageType<FieldAPI_List_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.FieldAPI.List.Response\", [\n { no: 1, name: \"field\", kind: \"message\", T: () => Field },\n { no: 4, name: \"next\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<FieldAPI_List_Response>): FieldAPI_List_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.next = \"\";\n if (value !== undefined)\n reflectionMergePartial<FieldAPI_List_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FieldAPI_List_Response): FieldAPI_List_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* MiLaboratories.PL.API.Field field */ 1:\n message.field = Field.internalBinaryRead(reader, reader.uint32(), options, message.field);\n break;\n case /* string next */ 4:\n message.next = reader.string();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: FieldAPI_List_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* MiLaboratories.PL.API.Field field = 1; */\n if (message.field)\n Field.internalBinaryWrite(message.field, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* string next = 4; */\n if (message.next !== \"\")\n writer.tag(4, WireType.LengthDelimited).string(message.next);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.FieldAPI.List.Response\n */\nexport const FieldAPI_List_Response = new FieldAPI_List_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass NotificationAPI$Type extends MessageType<NotificationAPI> {\n constructor() {\n super(\"MiLaboratories.PL.API.NotificationAPI\", []);\n }\n create(value?: PartialMessage<NotificationAPI>): NotificationAPI {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<NotificationAPI>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NotificationAPI): NotificationAPI {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: NotificationAPI, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.NotificationAPI\n */\nexport const NotificationAPI = new NotificationAPI$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass NotificationAPI_Get$Type extends MessageType<NotificationAPI_Get> {\n constructor() {\n super(\"MiLaboratories.PL.API.NotificationAPI.Get\", []);\n }\n create(value?: PartialMessage<NotificationAPI_Get>): NotificationAPI_Get {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<NotificationAPI_Get>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NotificationAPI_Get): NotificationAPI_Get {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: NotificationAPI_Get, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.NotificationAPI.Get\n */\nexport const NotificationAPI_Get = new NotificationAPI_Get$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass NotificationAPI_Get_Request$Type extends MessageType<NotificationAPI_Get_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.NotificationAPI.Get.Request\", [\n { no: 1, name: \"subscription\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"max_notifications\", kind: \"scalar\", T: 13 /*ScalarType.UINT32*/ }\n ]);\n }\n create(value?: PartialMessage<NotificationAPI_Get_Request>): NotificationAPI_Get_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.subscription = 0n;\n message.maxNotifications = 0;\n if (value !== undefined)\n reflectionMergePartial<NotificationAPI_Get_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NotificationAPI_Get_Request): NotificationAPI_Get_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 subscription */ 1:\n message.subscription = reader.uint64().toBigInt();\n break;\n case /* uint32 max_notifications */ 2:\n message.maxNotifications = reader.uint32();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: NotificationAPI_Get_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 subscription = 1; */\n if (message.subscription !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.subscription);\n /* uint32 max_notifications = 2; */\n if (message.maxNotifications !== 0)\n writer.tag(2, WireType.Varint).uint32(message.maxNotifications);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.NotificationAPI.Get.Request\n */\nexport const NotificationAPI_Get_Request = new NotificationAPI_Get_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass NotificationAPI_Get_Response$Type extends MessageType<NotificationAPI_Get_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.NotificationAPI.Get.Response\", [\n { no: 1, name: \"notifications\", kind: \"message\", repeat: 2 /*RepeatType.UNPACKED*/, T: () => Notification }\n ]);\n }\n create(value?: PartialMessage<NotificationAPI_Get_Response>): NotificationAPI_Get_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.notifications = [];\n if (value !== undefined)\n reflectionMergePartial<NotificationAPI_Get_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NotificationAPI_Get_Response): NotificationAPI_Get_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* repeated MiLaboratories.PL.API.Notification notifications */ 1:\n message.notifications.push(Notification.internalBinaryRead(reader, reader.uint32(), options));\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: NotificationAPI_Get_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* repeated MiLaboratories.PL.API.Notification notifications = 1; */\n for (let i = 0; i < message.notifications.length; i++)\n Notification.internalBinaryWrite(message.notifications[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.NotificationAPI.Get.Response\n */\nexport const NotificationAPI_Get_Response = new NotificationAPI_Get_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass NotificationAPI_Ack$Type extends MessageType<NotificationAPI_Ack> {\n constructor() {\n super(\"MiLaboratories.PL.API.NotificationAPI.Ack\", []);\n }\n create(value?: PartialMessage<NotificationAPI_Ack>): NotificationAPI_Ack {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<NotificationAPI_Ack>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NotificationAPI_Ack): NotificationAPI_Ack {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: NotificationAPI_Ack, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.NotificationAPI.Ack\n */\nexport const NotificationAPI_Ack = new NotificationAPI_Ack$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass NotificationAPI_Ack_Request$Type extends MessageType<NotificationAPI_Ack_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.NotificationAPI.Ack.Request\", [\n { no: 1, name: \"subscription_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"event_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<NotificationAPI_Ack_Request>): NotificationAPI_Ack_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.subscriptionId = 0n;\n message.eventId = 0n;\n if (value !== undefined)\n reflectionMergePartial<NotificationAPI_Ack_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NotificationAPI_Ack_Request): NotificationAPI_Ack_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 subscription_id */ 1:\n message.subscriptionId = reader.uint64().toBigInt();\n break;\n case /* uint64 event_id */ 2:\n message.eventId = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: NotificationAPI_Ack_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 subscription_id = 1; */\n if (message.subscriptionId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.subscriptionId);\n /* uint64 event_id = 2; */\n if (message.eventId !== 0n)\n writer.tag(2, WireType.Varint).uint64(message.eventId);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.NotificationAPI.Ack.Request\n */\nexport const NotificationAPI_Ack_Request = new NotificationAPI_Ack_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass NotificationAPI_Ack_Response$Type extends MessageType<NotificationAPI_Ack_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.NotificationAPI.Ack.Response\", []);\n }\n create(value?: PartialMessage<NotificationAPI_Ack_Response>): NotificationAPI_Ack_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<NotificationAPI_Ack_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NotificationAPI_Ack_Response): NotificationAPI_Ack_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: NotificationAPI_Ack_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.NotificationAPI.Ack.Response\n */\nexport const NotificationAPI_Ack_Response = new NotificationAPI_Ack_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass NotificationAPI_Discard$Type extends MessageType<NotificationAPI_Discard> {\n constructor() {\n super(\"MiLaboratories.PL.API.NotificationAPI.Discard\", []);\n }\n create(value?: PartialMessage<NotificationAPI_Discard>): NotificationAPI_Discard {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<NotificationAPI_Discard>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NotificationAPI_Discard): NotificationAPI_Discard {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: NotificationAPI_Discard, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.NotificationAPI.Discard\n */\nexport const NotificationAPI_Discard = new NotificationAPI_Discard$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass NotificationAPI_Discard_Request$Type extends MessageType<NotificationAPI_Discard_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.NotificationAPI.Discard.Request\", [\n { no: 1, name: \"subscription_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"event_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<NotificationAPI_Discard_Request>): NotificationAPI_Discard_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.subscriptionId = 0n;\n message.eventId = 0n;\n if (value !== undefined)\n reflectionMergePartial<NotificationAPI_Discard_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NotificationAPI_Discard_Request): NotificationAPI_Discard_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 subscription_id */ 1:\n message.subscriptionId = reader.uint64().toBigInt();\n break;\n case /* uint64 event_id */ 2:\n message.eventId = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: NotificationAPI_Discard_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 subscription_id = 1; */\n if (message.subscriptionId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.subscriptionId);\n /* uint64 event_id = 2; */\n if (message.eventId !== 0n)\n writer.tag(2, WireType.Varint).uint64(message.eventId);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.NotificationAPI.Discard.Request\n */\nexport const NotificationAPI_Discard_Request = new NotificationAPI_Discard_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass NotificationAPI_Discard_Response$Type extends MessageType<NotificationAPI_Discard_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.NotificationAPI.Discard.Response\", []);\n }\n create(value?: PartialMessage<NotificationAPI_Discard_Response>): NotificationAPI_Discard_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<NotificationAPI_Discard_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NotificationAPI_Discard_Response): NotificationAPI_Discard_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: NotificationAPI_Discard_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.NotificationAPI.Discard.Response\n */\nexport const NotificationAPI_Discard_Response = new NotificationAPI_Discard_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SubscriptionAPI$Type extends MessageType<SubscriptionAPI> {\n constructor() {\n super(\"MiLaboratories.PL.API.SubscriptionAPI\", []);\n }\n create(value?: PartialMessage<SubscriptionAPI>): SubscriptionAPI {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<SubscriptionAPI>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SubscriptionAPI): SubscriptionAPI {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: SubscriptionAPI, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.SubscriptionAPI\n */\nexport const SubscriptionAPI = new SubscriptionAPI$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SubscriptionAPI_CreateSubscription$Type extends MessageType<SubscriptionAPI_CreateSubscription> {\n constructor() {\n super(\"MiLaboratories.PL.API.SubscriptionAPI.CreateSubscription\", []);\n }\n create(value?: PartialMessage<SubscriptionAPI_CreateSubscription>): SubscriptionAPI_CreateSubscription {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<SubscriptionAPI_CreateSubscription>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SubscriptionAPI_CreateSubscription): SubscriptionAPI_CreateSubscription {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: SubscriptionAPI_CreateSubscription, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.SubscriptionAPI.CreateSubscription\n */\nexport const SubscriptionAPI_CreateSubscription = new SubscriptionAPI_CreateSubscription$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SubscriptionAPI_CreateSubscription_Request$Type extends MessageType<SubscriptionAPI_CreateSubscription_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.SubscriptionAPI.CreateSubscription.Request\", [\n { no: 1, name: \"id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"blocking\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ },\n { no: 3, name: \"gc\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ }\n ]);\n }\n create(value?: PartialMessage<SubscriptionAPI_CreateSubscription_Request>): SubscriptionAPI_CreateSubscription_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.id = 0n;\n message.blocking = false;\n message.gc = false;\n if (value !== undefined)\n reflectionMergePartial<SubscriptionAPI_CreateSubscription_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SubscriptionAPI_CreateSubscription_Request): SubscriptionAPI_CreateSubscription_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 id */ 1:\n message.id = reader.uint64().toBigInt();\n break;\n case /* bool blocking */ 2:\n message.blocking = reader.bool();\n break;\n case /* bool gc */ 3:\n message.gc = reader.bool();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: SubscriptionAPI_CreateSubscription_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 id = 1; */\n if (message.id !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.id);\n /* bool blocking = 2; */\n if (message.blocking !== false)\n writer.tag(2, WireType.Varint).bool(message.blocking);\n /* bool gc = 3; */\n if (message.gc !== false)\n writer.tag(3, WireType.Varint).bool(message.gc);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.SubscriptionAPI.CreateSubscription.Request\n */\nexport const SubscriptionAPI_CreateSubscription_Request = new SubscriptionAPI_CreateSubscription_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SubscriptionAPI_CreateSubscription_Response$Type extends MessageType<SubscriptionAPI_CreateSubscription_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.SubscriptionAPI.CreateSubscription.Response\", [\n { no: 1, name: \"subscription_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<SubscriptionAPI_CreateSubscription_Response>): SubscriptionAPI_CreateSubscription_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.subscriptionId = 0n;\n if (value !== undefined)\n reflectionMergePartial<SubscriptionAPI_CreateSubscription_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SubscriptionAPI_CreateSubscription_Response): SubscriptionAPI_CreateSubscription_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 subscription_id */ 1:\n message.subscriptionId = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: SubscriptionAPI_CreateSubscription_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 subscription_id = 1; */\n if (message.subscriptionId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.subscriptionId);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.SubscriptionAPI.CreateSubscription.Response\n */\nexport const SubscriptionAPI_CreateSubscription_Response = new SubscriptionAPI_CreateSubscription_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SubscriptionAPI_CreateFilter$Type extends MessageType<SubscriptionAPI_CreateFilter> {\n constructor() {\n super(\"MiLaboratories.PL.API.SubscriptionAPI.CreateFilter\", []);\n }\n create(value?: PartialMessage<SubscriptionAPI_CreateFilter>): SubscriptionAPI_CreateFilter {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<SubscriptionAPI_CreateFilter>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SubscriptionAPI_CreateFilter): SubscriptionAPI_CreateFilter {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: SubscriptionAPI_CreateFilter, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.SubscriptionAPI.CreateFilter\n */\nexport const SubscriptionAPI_CreateFilter = new SubscriptionAPI_CreateFilter$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SubscriptionAPI_CreateFilter_Request$Type extends MessageType<SubscriptionAPI_CreateFilter_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.SubscriptionAPI.CreateFilter.Request\", [\n { no: 1, name: \"id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"filter\", kind: \"message\", T: () => NotificationFilter }\n ]);\n }\n create(value?: PartialMessage<SubscriptionAPI_CreateFilter_Request>): SubscriptionAPI_CreateFilter_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.id = 0n;\n if (value !== undefined)\n reflectionMergePartial<SubscriptionAPI_CreateFilter_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SubscriptionAPI_CreateFilter_Request): SubscriptionAPI_CreateFilter_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 id */ 1:\n message.id = reader.uint64().toBigInt();\n break;\n case /* MiLaboratories.PL.RTypes.NotificationFilter filter */ 2:\n message.filter = NotificationFilter.internalBinaryRead(reader, reader.uint32(), options, message.filter);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: SubscriptionAPI_CreateFilter_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 id = 1; */\n if (message.id !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.id);\n /* MiLaboratories.PL.RTypes.NotificationFilter filter = 2; */\n if (message.filter)\n NotificationFilter.internalBinaryWrite(message.filter, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.SubscriptionAPI.CreateFilter.Request\n */\nexport const SubscriptionAPI_CreateFilter_Request = new SubscriptionAPI_CreateFilter_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SubscriptionAPI_CreateFilter_Response$Type extends MessageType<SubscriptionAPI_CreateFilter_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.SubscriptionAPI.CreateFilter.Response\", [\n { no: 1, name: \"filter_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<SubscriptionAPI_CreateFilter_Response>): SubscriptionAPI_CreateFilter_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.filterId = 0n;\n if (value !== undefined)\n reflectionMergePartial<SubscriptionAPI_CreateFilter_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SubscriptionAPI_CreateFilter_Response): SubscriptionAPI_CreateFilter_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 filter_id */ 1:\n message.filterId = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: SubscriptionAPI_CreateFilter_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 filter_id = 1; */\n if (message.filterId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.filterId);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.SubscriptionAPI.CreateFilter.Response\n */\nexport const SubscriptionAPI_CreateFilter_Response = new SubscriptionAPI_CreateFilter_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SubscriptionAPI_ListSubscriptions$Type extends MessageType<SubscriptionAPI_ListSubscriptions> {\n constructor() {\n super(\"MiLaboratories.PL.API.SubscriptionAPI.ListSubscriptions\", []);\n }\n create(value?: PartialMessage<SubscriptionAPI_ListSubscriptions>): SubscriptionAPI_ListSubscriptions {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<SubscriptionAPI_ListSubscriptions>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SubscriptionAPI_ListSubscriptions): SubscriptionAPI_ListSubscriptions {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: SubscriptionAPI_ListSubscriptions, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.SubscriptionAPI.ListSubscriptions\n */\nexport const SubscriptionAPI_ListSubscriptions = new SubscriptionAPI_ListSubscriptions$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SubscriptionAPI_ListSubscriptions_SubscriptionInfo$Type extends MessageType<SubscriptionAPI_ListSubscriptions_SubscriptionInfo> {\n constructor() {\n super(\"MiLaboratories.PL.API.SubscriptionAPI.ListSubscriptions.SubscriptionInfo\", [\n { no: 1, name: \"subscription\", kind: \"message\", T: () => Subscription },\n { no: 2, name: \"last_read_time\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 3, name: \"notification_queue_size\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<SubscriptionAPI_ListSubscriptions_SubscriptionInfo>): SubscriptionAPI_ListSubscriptions_SubscriptionInfo {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.lastReadTime = 0n;\n message.notificationQueueSize = 0n;\n if (value !== undefined)\n reflectionMergePartial<SubscriptionAPI_ListSubscriptions_SubscriptionInfo>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SubscriptionAPI_ListSubscriptions_SubscriptionInfo): SubscriptionAPI_ListSubscriptions_SubscriptionInfo {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* MiLaboratories.PL.API.Subscription subscription */ 1:\n message.subscription = Subscription.internalBinaryRead(reader, reader.uint32(), options, message.subscription);\n break;\n case /* uint64 last_read_time */ 2:\n message.lastReadTime = reader.uint64().toBigInt();\n break;\n case /* uint64 notification_queue_size */ 3:\n message.notificationQueueSize = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: SubscriptionAPI_ListSubscriptions_SubscriptionInfo, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* MiLaboratories.PL.API.Subscription subscription = 1; */\n if (message.subscription)\n Subscription.internalBinaryWrite(message.subscription, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* uint64 last_read_time = 2; */\n if (message.lastReadTime !== 0n)\n writer.tag(2, WireType.Varint).uint64(message.lastReadTime);\n /* uint64 notification_queue_size = 3; */\n if (message.notificationQueueSize !== 0n)\n writer.tag(3, WireType.Varint).uint64(message.notificationQueueSize);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.SubscriptionAPI.ListSubscriptions.SubscriptionInfo\n */\nexport const SubscriptionAPI_ListSubscriptions_SubscriptionInfo = new SubscriptionAPI_ListSubscriptions_SubscriptionInfo$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SubscriptionAPI_ListSubscriptions_Request$Type extends MessageType<SubscriptionAPI_ListSubscriptions_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.SubscriptionAPI.ListSubscriptions.Request\", []);\n }\n create(value?: PartialMessage<SubscriptionAPI_ListSubscriptions_Request>): SubscriptionAPI_ListSubscriptions_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<SubscriptionAPI_ListSubscriptions_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SubscriptionAPI_ListSubscriptions_Request): SubscriptionAPI_ListSubscriptions_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: SubscriptionAPI_ListSubscriptions_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.SubscriptionAPI.ListSubscriptions.Request\n */\nexport const SubscriptionAPI_ListSubscriptions_Request = new SubscriptionAPI_ListSubscriptions_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SubscriptionAPI_ListSubscriptions_Response$Type extends MessageType<SubscriptionAPI_ListSubscriptions_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.SubscriptionAPI.ListSubscriptions.Response\", [\n { no: 1, name: \"subscriptions\", kind: \"message\", repeat: 2 /*RepeatType.UNPACKED*/, T: () => SubscriptionAPI_ListSubscriptions_SubscriptionInfo }\n ]);\n }\n create(value?: PartialMessage<SubscriptionAPI_ListSubscriptions_Response>): SubscriptionAPI_ListSubscriptions_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.subscriptions = [];\n if (value !== undefined)\n reflectionMergePartial<SubscriptionAPI_ListSubscriptions_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SubscriptionAPI_ListSubscriptions_Response): SubscriptionAPI_ListSubscriptions_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* repeated MiLaboratories.PL.API.SubscriptionAPI.ListSubscriptions.SubscriptionInfo subscriptions */ 1:\n message.subscriptions.push(SubscriptionAPI_ListSubscriptions_SubscriptionInfo.internalBinaryRead(reader, reader.uint32(), options));\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: SubscriptionAPI_ListSubscriptions_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* repeated MiLaboratories.PL.API.SubscriptionAPI.ListSubscriptions.SubscriptionInfo subscriptions = 1; */\n for (let i = 0; i < message.subscriptions.length; i++)\n SubscriptionAPI_ListSubscriptions_SubscriptionInfo.internalBinaryWrite(message.subscriptions[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.SubscriptionAPI.ListSubscriptions.Response\n */\nexport const SubscriptionAPI_ListSubscriptions_Response = new SubscriptionAPI_ListSubscriptions_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SubscriptionAPI_AttachFilter$Type extends MessageType<SubscriptionAPI_AttachFilter> {\n constructor() {\n super(\"MiLaboratories.PL.API.SubscriptionAPI.AttachFilter\", []);\n }\n create(value?: PartialMessage<SubscriptionAPI_AttachFilter>): SubscriptionAPI_AttachFilter {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<SubscriptionAPI_AttachFilter>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SubscriptionAPI_AttachFilter): SubscriptionAPI_AttachFilter {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: SubscriptionAPI_AttachFilter, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.SubscriptionAPI.AttachFilter\n */\nexport const SubscriptionAPI_AttachFilter = new SubscriptionAPI_AttachFilter$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SubscriptionAPI_AttachFilter_Request$Type extends MessageType<SubscriptionAPI_AttachFilter_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.SubscriptionAPI.AttachFilter.Request\", [\n { no: 1, name: \"subscription_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"filter_name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 3, name: \"filter_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<SubscriptionAPI_AttachFilter_Request>): SubscriptionAPI_AttachFilter_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.subscriptionId = 0n;\n message.filterName = \"\";\n message.filterId = 0n;\n if (value !== undefined)\n reflectionMergePartial<SubscriptionAPI_AttachFilter_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SubscriptionAPI_AttachFilter_Request): SubscriptionAPI_AttachFilter_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 subscription_id */ 1:\n message.subscriptionId = reader.uint64().toBigInt();\n break;\n case /* string filter_name */ 2:\n message.filterName = reader.string();\n break;\n case /* uint64 filter_id */ 3:\n message.filterId = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: SubscriptionAPI_AttachFilter_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 subscription_id = 1; */\n if (message.subscriptionId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.subscriptionId);\n /* string filter_name = 2; */\n if (message.filterName !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.filterName);\n /* uint64 filter_id = 3; */\n if (message.filterId !== 0n)\n writer.tag(3, WireType.Varint).uint64(message.filterId);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.SubscriptionAPI.AttachFilter.Request\n */\nexport const SubscriptionAPI_AttachFilter_Request = new SubscriptionAPI_AttachFilter_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SubscriptionAPI_AttachFilter_Response$Type extends MessageType<SubscriptionAPI_AttachFilter_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.SubscriptionAPI.AttachFilter.Response\", []);\n }\n create(value?: PartialMessage<SubscriptionAPI_AttachFilter_Response>): SubscriptionAPI_AttachFilter_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<SubscriptionAPI_AttachFilter_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SubscriptionAPI_AttachFilter_Response): SubscriptionAPI_AttachFilter_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: SubscriptionAPI_AttachFilter_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.SubscriptionAPI.AttachFilter.Response\n */\nexport const SubscriptionAPI_AttachFilter_Response = new SubscriptionAPI_AttachFilter_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SubscriptionAPI_DetachFilter$Type extends MessageType<SubscriptionAPI_DetachFilter> {\n constructor() {\n super(\"MiLaboratories.PL.API.SubscriptionAPI.DetachFilter\", []);\n }\n create(value?: PartialMessage<SubscriptionAPI_DetachFilter>): SubscriptionAPI_DetachFilter {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<SubscriptionAPI_DetachFilter>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SubscriptionAPI_DetachFilter): SubscriptionAPI_DetachFilter {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: SubscriptionAPI_DetachFilter, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.SubscriptionAPI.DetachFilter\n */\nexport const SubscriptionAPI_DetachFilter = new SubscriptionAPI_DetachFilter$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SubscriptionAPI_DetachFilter_Request$Type extends MessageType<SubscriptionAPI_DetachFilter_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.SubscriptionAPI.DetachFilter.Request\", [\n { no: 1, name: \"subscription_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"filter_name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<SubscriptionAPI_DetachFilter_Request>): SubscriptionAPI_DetachFilter_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.subscriptionId = 0n;\n message.filterName = \"\";\n if (value !== undefined)\n reflectionMergePartial<SubscriptionAPI_DetachFilter_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SubscriptionAPI_DetachFilter_Request): SubscriptionAPI_DetachFilter_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 subscription_id */ 1:\n message.subscriptionId = reader.uint64().toBigInt();\n break;\n case /* string filter_name */ 2:\n message.filterName = reader.string();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: SubscriptionAPI_DetachFilter_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 subscription_id = 1; */\n if (message.subscriptionId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.subscriptionId);\n /* string filter_name = 2; */\n if (message.filterName !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.filterName);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.SubscriptionAPI.DetachFilter.Request\n */\nexport const SubscriptionAPI_DetachFilter_Request = new SubscriptionAPI_DetachFilter_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SubscriptionAPI_DetachFilter_Response$Type extends MessageType<SubscriptionAPI_DetachFilter_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.SubscriptionAPI.DetachFilter.Response\", []);\n }\n create(value?: PartialMessage<SubscriptionAPI_DetachFilter_Response>): SubscriptionAPI_DetachFilter_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<SubscriptionAPI_DetachFilter_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SubscriptionAPI_DetachFilter_Response): SubscriptionAPI_DetachFilter_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: SubscriptionAPI_DetachFilter_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.SubscriptionAPI.DetachFilter.Response\n */\nexport const SubscriptionAPI_DetachFilter_Response = new SubscriptionAPI_DetachFilter_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI$Type extends MessageType<ControllerAPI> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI\", []);\n }\n create(value?: PartialMessage<ControllerAPI>): ControllerAPI {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI): ControllerAPI {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI\n */\nexport const ControllerAPI = new ControllerAPI$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_Register$Type extends MessageType<ControllerAPI_Register> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.Register\", []);\n }\n create(value?: PartialMessage<ControllerAPI_Register>): ControllerAPI_Register {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_Register>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_Register): ControllerAPI_Register {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_Register, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.Register\n */\nexport const ControllerAPI_Register = new ControllerAPI_Register$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_Register_Request$Type extends MessageType<ControllerAPI_Register_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.Register.Request\", [\n { no: 1, name: \"controller_type\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"filters\", kind: \"map\", K: 9 /*ScalarType.STRING*/, V: { kind: \"message\", T: () => NotificationFilter } },\n { no: 3, name: \"resource_schemas\", kind: \"message\", repeat: 2 /*RepeatType.UNPACKED*/, T: () => ResourceSchema }\n ]);\n }\n create(value?: PartialMessage<ControllerAPI_Register_Request>): ControllerAPI_Register_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.controllerType = \"\";\n message.filters = {};\n message.resourceSchemas = [];\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_Register_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_Register_Request): ControllerAPI_Register_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string controller_type */ 1:\n message.controllerType = reader.string();\n break;\n case /* map<string, MiLaboratories.PL.RTypes.NotificationFilter> filters */ 2:\n this.binaryReadMap2(message.filters, reader, options);\n break;\n case /* repeated MiLaboratories.PL.API.ResourceSchema resource_schemas */ 3:\n message.resourceSchemas.push(ResourceSchema.internalBinaryRead(reader, reader.uint32(), options));\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n private binaryReadMap2(map: ControllerAPI_Register_Request[\"filters\"], reader: IBinaryReader, options: BinaryReadOptions): void {\n let len = reader.uint32(), end = reader.pos + len, key: keyof ControllerAPI_Register_Request[\"filters\"] | undefined, val: ControllerAPI_Register_Request[\"filters\"][any] | undefined;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case 1:\n key = reader.string();\n break;\n case 2:\n val = NotificationFilter.internalBinaryRead(reader, reader.uint32(), options);\n break;\n default: throw new globalThis.Error(\"unknown map entry field for MiLaboratories.PL.API.ControllerAPI.Register.Request.filters\");\n }\n }\n map[key ?? \"\"] = val ?? NotificationFilter.create();\n }\n internalBinaryWrite(message: ControllerAPI_Register_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string controller_type = 1; */\n if (message.controllerType !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.controllerType);\n /* map<string, MiLaboratories.PL.RTypes.NotificationFilter> filters = 2; */\n for (let k of globalThis.Object.keys(message.filters)) {\n writer.tag(2, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k);\n writer.tag(2, WireType.LengthDelimited).fork();\n NotificationFilter.internalBinaryWrite(message.filters[k], writer, options);\n writer.join().join();\n }\n /* repeated MiLaboratories.PL.API.ResourceSchema resource_schemas = 3; */\n for (let i = 0; i < message.resourceSchemas.length; i++)\n ResourceSchema.internalBinaryWrite(message.resourceSchemas[i], writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.Register.Request\n */\nexport const ControllerAPI_Register_Request = new ControllerAPI_Register_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_Register_Response$Type extends MessageType<ControllerAPI_Register_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.Register.Response\", [\n { no: 1, name: \"controller_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"subscription_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<ControllerAPI_Register_Response>): ControllerAPI_Register_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.controllerId = 0n;\n message.subscriptionId = 0n;\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_Register_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_Register_Response): ControllerAPI_Register_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 controller_id */ 1:\n message.controllerId = reader.uint64().toBigInt();\n break;\n case /* uint64 subscription_id */ 2:\n message.subscriptionId = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_Register_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 controller_id = 1; */\n if (message.controllerId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.controllerId);\n /* uint64 subscription_id = 2; */\n if (message.subscriptionId !== 0n)\n writer.tag(2, WireType.Varint).uint64(message.subscriptionId);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.Register.Response\n */\nexport const ControllerAPI_Register_Response = new ControllerAPI_Register_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_Exists$Type extends MessageType<ControllerAPI_Exists> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.Exists\", []);\n }\n create(value?: PartialMessage<ControllerAPI_Exists>): ControllerAPI_Exists {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_Exists>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_Exists): ControllerAPI_Exists {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_Exists, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.Exists\n */\nexport const ControllerAPI_Exists = new ControllerAPI_Exists$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_Exists_Request$Type extends MessageType<ControllerAPI_Exists_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.Exists.Request\", [\n { no: 1, name: \"controller_type\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<ControllerAPI_Exists_Request>): ControllerAPI_Exists_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.controllerType = \"\";\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_Exists_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_Exists_Request): ControllerAPI_Exists_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string controller_type */ 1:\n message.controllerType = reader.string();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_Exists_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string controller_type = 1; */\n if (message.controllerType !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.controllerType);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.Exists.Request\n */\nexport const ControllerAPI_Exists_Request = new ControllerAPI_Exists_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_Exists_Response$Type extends MessageType<ControllerAPI_Exists_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.Exists.Response\", [\n { no: 1, name: \"exists\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ }\n ]);\n }\n create(value?: PartialMessage<ControllerAPI_Exists_Response>): ControllerAPI_Exists_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.exists = false;\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_Exists_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_Exists_Response): ControllerAPI_Exists_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* bool exists */ 1:\n message.exists = reader.bool();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_Exists_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* bool exists = 1; */\n if (message.exists !== false)\n writer.tag(1, WireType.Varint).bool(message.exists);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.Exists.Response\n */\nexport const ControllerAPI_Exists_Response = new ControllerAPI_Exists_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_Update$Type extends MessageType<ControllerAPI_Update> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.Update\", []);\n }\n create(value?: PartialMessage<ControllerAPI_Update>): ControllerAPI_Update {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_Update>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_Update): ControllerAPI_Update {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_Update, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.Update\n */\nexport const ControllerAPI_Update = new ControllerAPI_Update$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_Update_Request$Type extends MessageType<ControllerAPI_Update_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.Update.Request\", [\n { no: 1, name: \"controller_type\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"filters\", kind: \"map\", K: 9 /*ScalarType.STRING*/, V: { kind: \"message\", T: () => NotificationFilter } },\n { no: 3, name: \"resource_schemas\", kind: \"message\", repeat: 2 /*RepeatType.UNPACKED*/, T: () => ResourceSchema }\n ]);\n }\n create(value?: PartialMessage<ControllerAPI_Update_Request>): ControllerAPI_Update_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.controllerType = \"\";\n message.filters = {};\n message.resourceSchemas = [];\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_Update_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_Update_Request): ControllerAPI_Update_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string controller_type */ 1:\n message.controllerType = reader.string();\n break;\n case /* map<string, MiLaboratories.PL.RTypes.NotificationFilter> filters */ 2:\n this.binaryReadMap2(message.filters, reader, options);\n break;\n case /* repeated MiLaboratories.PL.API.ResourceSchema resource_schemas */ 3:\n message.resourceSchemas.push(ResourceSchema.internalBinaryRead(reader, reader.uint32(), options));\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n private binaryReadMap2(map: ControllerAPI_Update_Request[\"filters\"], reader: IBinaryReader, options: BinaryReadOptions): void {\n let len = reader.uint32(), end = reader.pos + len, key: keyof ControllerAPI_Update_Request[\"filters\"] | undefined, val: ControllerAPI_Update_Request[\"filters\"][any] | undefined;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case 1:\n key = reader.string();\n break;\n case 2:\n val = NotificationFilter.internalBinaryRead(reader, reader.uint32(), options);\n break;\n default: throw new globalThis.Error(\"unknown map entry field for MiLaboratories.PL.API.ControllerAPI.Update.Request.filters\");\n }\n }\n map[key ?? \"\"] = val ?? NotificationFilter.create();\n }\n internalBinaryWrite(message: ControllerAPI_Update_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string controller_type = 1; */\n if (message.controllerType !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.controllerType);\n /* map<string, MiLaboratories.PL.RTypes.NotificationFilter> filters = 2; */\n for (let k of globalThis.Object.keys(message.filters)) {\n writer.tag(2, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k);\n writer.tag(2, WireType.LengthDelimited).fork();\n NotificationFilter.internalBinaryWrite(message.filters[k], writer, options);\n writer.join().join();\n }\n /* repeated MiLaboratories.PL.API.ResourceSchema resource_schemas = 3; */\n for (let i = 0; i < message.resourceSchemas.length; i++)\n ResourceSchema.internalBinaryWrite(message.resourceSchemas[i], writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.Update.Request\n */\nexport const ControllerAPI_Update_Request = new ControllerAPI_Update_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_Update_Response$Type extends MessageType<ControllerAPI_Update_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.Update.Response\", []);\n }\n create(value?: PartialMessage<ControllerAPI_Update_Response>): ControllerAPI_Update_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_Update_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_Update_Response): ControllerAPI_Update_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_Update_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.Update.Response\n */\nexport const ControllerAPI_Update_Response = new ControllerAPI_Update_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_Deregister$Type extends MessageType<ControllerAPI_Deregister> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.Deregister\", []);\n }\n create(value?: PartialMessage<ControllerAPI_Deregister>): ControllerAPI_Deregister {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_Deregister>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_Deregister): ControllerAPI_Deregister {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_Deregister, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.Deregister\n */\nexport const ControllerAPI_Deregister = new ControllerAPI_Deregister$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_Deregister_Request$Type extends MessageType<ControllerAPI_Deregister_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.Deregister.Request\", [\n { no: 1, name: \"controller_type\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<ControllerAPI_Deregister_Request>): ControllerAPI_Deregister_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.controllerType = \"\";\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_Deregister_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_Deregister_Request): ControllerAPI_Deregister_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string controller_type */ 1:\n message.controllerType = reader.string();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_Deregister_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string controller_type = 1; */\n if (message.controllerType !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.controllerType);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.Deregister.Request\n */\nexport const ControllerAPI_Deregister_Request = new ControllerAPI_Deregister_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_Deregister_Response$Type extends MessageType<ControllerAPI_Deregister_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.Deregister.Response\", []);\n }\n create(value?: PartialMessage<ControllerAPI_Deregister_Response>): ControllerAPI_Deregister_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_Deregister_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_Deregister_Response): ControllerAPI_Deregister_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_Deregister_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.Deregister.Response\n */\nexport const ControllerAPI_Deregister_Response = new ControllerAPI_Deregister_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_Create$Type extends MessageType<ControllerAPI_Create> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.Create\", []);\n }\n create(value?: PartialMessage<ControllerAPI_Create>): ControllerAPI_Create {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_Create>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_Create): ControllerAPI_Create {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_Create, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.Create\n */\nexport const ControllerAPI_Create = new ControllerAPI_Create$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_Create_Request$Type extends MessageType<ControllerAPI_Create_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.Create.Request\", [\n { no: 1, name: \"id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"controller_type\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<ControllerAPI_Create_Request>): ControllerAPI_Create_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.id = 0n;\n message.controllerType = \"\";\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_Create_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_Create_Request): ControllerAPI_Create_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 id */ 1:\n message.id = reader.uint64().toBigInt();\n break;\n case /* string controller_type */ 2:\n message.controllerType = reader.string();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_Create_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 id = 1; */\n if (message.id !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.id);\n /* string controller_type = 2; */\n if (message.controllerType !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.controllerType);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.Create.Request\n */\nexport const ControllerAPI_Create_Request = new ControllerAPI_Create_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_Create_Response$Type extends MessageType<ControllerAPI_Create_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.Create.Response\", [\n { no: 1, name: \"controller_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<ControllerAPI_Create_Response>): ControllerAPI_Create_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.controllerId = 0n;\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_Create_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_Create_Response): ControllerAPI_Create_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 controller_id */ 1:\n message.controllerId = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_Create_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 controller_id = 1; */\n if (message.controllerId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.controllerId);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.Create.Response\n */\nexport const ControllerAPI_Create_Response = new ControllerAPI_Create_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_Get$Type extends MessageType<ControllerAPI_Get> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.Get\", []);\n }\n create(value?: PartialMessage<ControllerAPI_Get>): ControllerAPI_Get {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_Get>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_Get): ControllerAPI_Get {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_Get, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.Get\n */\nexport const ControllerAPI_Get = new ControllerAPI_Get$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_Get_Request$Type extends MessageType<ControllerAPI_Get_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.Get.Request\", [\n { no: 1, name: \"controller_type\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<ControllerAPI_Get_Request>): ControllerAPI_Get_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.controllerType = \"\";\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_Get_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_Get_Request): ControllerAPI_Get_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string controller_type */ 1:\n message.controllerType = reader.string();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_Get_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string controller_type = 1; */\n if (message.controllerType !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.controllerType);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.Get.Request\n */\nexport const ControllerAPI_Get_Request = new ControllerAPI_Get_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_Get_Response$Type extends MessageType<ControllerAPI_Get_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.Get.Response\", [\n { no: 1, name: \"controller\", kind: \"message\", T: () => Controller }\n ]);\n }\n create(value?: PartialMessage<ControllerAPI_Get_Response>): ControllerAPI_Get_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_Get_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_Get_Response): ControllerAPI_Get_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* MiLaboratories.PL.API.Controller controller */ 1:\n message.controller = Controller.internalBinaryRead(reader, reader.uint32(), options, message.controller);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_Get_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* MiLaboratories.PL.API.Controller controller = 1; */\n if (message.controller)\n Controller.internalBinaryWrite(message.controller, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.Get.Response\n */\nexport const ControllerAPI_Get_Response = new ControllerAPI_Get_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_AttachSubscription$Type extends MessageType<ControllerAPI_AttachSubscription> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.AttachSubscription\", []);\n }\n create(value?: PartialMessage<ControllerAPI_AttachSubscription>): ControllerAPI_AttachSubscription {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_AttachSubscription>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_AttachSubscription): ControllerAPI_AttachSubscription {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_AttachSubscription, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.AttachSubscription\n */\nexport const ControllerAPI_AttachSubscription = new ControllerAPI_AttachSubscription$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_AttachSubscription_Request$Type extends MessageType<ControllerAPI_AttachSubscription_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.AttachSubscription.Request\", [\n { no: 1, name: \"controller_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"subscription_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<ControllerAPI_AttachSubscription_Request>): ControllerAPI_AttachSubscription_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.controllerId = 0n;\n message.subscriptionId = 0n;\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_AttachSubscription_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_AttachSubscription_Request): ControllerAPI_AttachSubscription_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 controller_id */ 1:\n message.controllerId = reader.uint64().toBigInt();\n break;\n case /* uint64 subscription_id */ 2:\n message.subscriptionId = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_AttachSubscription_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 controller_id = 1; */\n if (message.controllerId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.controllerId);\n /* uint64 subscription_id = 2; */\n if (message.subscriptionId !== 0n)\n writer.tag(2, WireType.Varint).uint64(message.subscriptionId);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.AttachSubscription.Request\n */\nexport const ControllerAPI_AttachSubscription_Request = new ControllerAPI_AttachSubscription_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_AttachSubscription_Response$Type extends MessageType<ControllerAPI_AttachSubscription_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.AttachSubscription.Response\", []);\n }\n create(value?: PartialMessage<ControllerAPI_AttachSubscription_Response>): ControllerAPI_AttachSubscription_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_AttachSubscription_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_AttachSubscription_Response): ControllerAPI_AttachSubscription_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_AttachSubscription_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.AttachSubscription.Response\n */\nexport const ControllerAPI_AttachSubscription_Response = new ControllerAPI_AttachSubscription_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_GetNotifications$Type extends MessageType<ControllerAPI_GetNotifications> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.GetNotifications\", []);\n }\n create(value?: PartialMessage<ControllerAPI_GetNotifications>): ControllerAPI_GetNotifications {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_GetNotifications>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_GetNotifications): ControllerAPI_GetNotifications {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_GetNotifications, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.GetNotifications\n */\nexport const ControllerAPI_GetNotifications = new ControllerAPI_GetNotifications$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_GetNotifications_Request$Type extends MessageType<ControllerAPI_GetNotifications_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.GetNotifications.Request\", [\n { no: 1, name: \"controller_type\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"max_notifications\", kind: \"scalar\", T: 13 /*ScalarType.UINT32*/ }\n ]);\n }\n create(value?: PartialMessage<ControllerAPI_GetNotifications_Request>): ControllerAPI_GetNotifications_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.controllerType = \"\";\n message.maxNotifications = 0;\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_GetNotifications_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_GetNotifications_Request): ControllerAPI_GetNotifications_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string controller_type */ 1:\n message.controllerType = reader.string();\n break;\n case /* uint32 max_notifications */ 2:\n message.maxNotifications = reader.uint32();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_GetNotifications_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string controller_type = 1; */\n if (message.controllerType !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.controllerType);\n /* uint32 max_notifications = 2; */\n if (message.maxNotifications !== 0)\n writer.tag(2, WireType.Varint).uint32(message.maxNotifications);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.GetNotifications.Request\n */\nexport const ControllerAPI_GetNotifications_Request = new ControllerAPI_GetNotifications_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_GetNotifications_Response$Type extends MessageType<ControllerAPI_GetNotifications_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.GetNotifications.Response\", [\n { no: 1, name: \"notifications\", kind: \"message\", repeat: 2 /*RepeatType.UNPACKED*/, T: () => Notification }\n ]);\n }\n create(value?: PartialMessage<ControllerAPI_GetNotifications_Response>): ControllerAPI_GetNotifications_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.notifications = [];\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_GetNotifications_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_GetNotifications_Response): ControllerAPI_GetNotifications_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* repeated MiLaboratories.PL.API.Notification notifications */ 1:\n message.notifications.push(Notification.internalBinaryRead(reader, reader.uint32(), options));\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_GetNotifications_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* repeated MiLaboratories.PL.API.Notification notifications = 1; */\n for (let i = 0; i < message.notifications.length; i++)\n Notification.internalBinaryWrite(message.notifications[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.GetNotifications.Response\n */\nexport const ControllerAPI_GetNotifications_Response = new ControllerAPI_GetNotifications_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_WriteAliasesAndUrls$Type extends MessageType<ControllerAPI_WriteAliasesAndUrls> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.WriteAliasesAndUrls\", []);\n }\n create(value?: PartialMessage<ControllerAPI_WriteAliasesAndUrls>): ControllerAPI_WriteAliasesAndUrls {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_WriteAliasesAndUrls>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_WriteAliasesAndUrls): ControllerAPI_WriteAliasesAndUrls {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_WriteAliasesAndUrls, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.WriteAliasesAndUrls\n */\nexport const ControllerAPI_WriteAliasesAndUrls = new ControllerAPI_WriteAliasesAndUrls$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_WriteAliasesAndUrls_Request$Type extends MessageType<ControllerAPI_WriteAliasesAndUrls_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.WriteAliasesAndUrls.Request\", [\n { no: 1, name: \"controller_type\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"aliases_to_urls\", kind: \"map\", K: 9 /*ScalarType.STRING*/, V: { kind: \"scalar\", T: 9 /*ScalarType.STRING*/ } }\n ]);\n }\n create(value?: PartialMessage<ControllerAPI_WriteAliasesAndUrls_Request>): ControllerAPI_WriteAliasesAndUrls_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.controllerType = \"\";\n message.aliasesToUrls = {};\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_WriteAliasesAndUrls_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_WriteAliasesAndUrls_Request): ControllerAPI_WriteAliasesAndUrls_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string controller_type */ 1:\n message.controllerType = reader.string();\n break;\n case /* map<string, string> aliases_to_urls */ 2:\n this.binaryReadMap2(message.aliasesToUrls, reader, options);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n private binaryReadMap2(map: ControllerAPI_WriteAliasesAndUrls_Request[\"aliasesToUrls\"], reader: IBinaryReader, options: BinaryReadOptions): void {\n let len = reader.uint32(), end = reader.pos + len, key: keyof ControllerAPI_WriteAliasesAndUrls_Request[\"aliasesToUrls\"] | undefined, val: ControllerAPI_WriteAliasesAndUrls_Request[\"aliasesToUrls\"][any] | undefined;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case 1:\n key = reader.string();\n break;\n case 2:\n val = reader.string();\n break;\n default: throw new globalThis.Error(\"unknown map entry field for MiLaboratories.PL.API.ControllerAPI.WriteAliasesAndUrls.Request.aliases_to_urls\");\n }\n }\n map[key ?? \"\"] = val ?? \"\";\n }\n internalBinaryWrite(message: ControllerAPI_WriteAliasesAndUrls_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string controller_type = 1; */\n if (message.controllerType !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.controllerType);\n /* map<string, string> aliases_to_urls = 2; */\n for (let k of globalThis.Object.keys(message.aliasesToUrls))\n writer.tag(2, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k).tag(2, WireType.LengthDelimited).string(message.aliasesToUrls[k]).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.WriteAliasesAndUrls.Request\n */\nexport const ControllerAPI_WriteAliasesAndUrls_Request = new ControllerAPI_WriteAliasesAndUrls_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_WriteAliasesAndUrls_Response$Type extends MessageType<ControllerAPI_WriteAliasesAndUrls_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.WriteAliasesAndUrls.Response\", []);\n }\n create(value?: PartialMessage<ControllerAPI_WriteAliasesAndUrls_Response>): ControllerAPI_WriteAliasesAndUrls_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_WriteAliasesAndUrls_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_WriteAliasesAndUrls_Response): ControllerAPI_WriteAliasesAndUrls_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_WriteAliasesAndUrls_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.WriteAliasesAndUrls.Response\n */\nexport const ControllerAPI_WriteAliasesAndUrls_Response = new ControllerAPI_WriteAliasesAndUrls_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_GetUrl$Type extends MessageType<ControllerAPI_GetUrl> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.GetUrl\", []);\n }\n create(value?: PartialMessage<ControllerAPI_GetUrl>): ControllerAPI_GetUrl {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_GetUrl>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_GetUrl): ControllerAPI_GetUrl {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_GetUrl, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.GetUrl\n */\nexport const ControllerAPI_GetUrl = new ControllerAPI_GetUrl$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_GetUrl_Request$Type extends MessageType<ControllerAPI_GetUrl_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.GetUrl.Request\", [\n { no: 1, name: \"controller_alias\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }\n ]);\n }\n create(value?: PartialMessage<ControllerAPI_GetUrl_Request>): ControllerAPI_GetUrl_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.controllerAlias = \"\";\n message.resourceId = 0n;\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_GetUrl_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_GetUrl_Request): ControllerAPI_GetUrl_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string controller_alias */ 1:\n message.controllerAlias = reader.string();\n break;\n case /* uint64 resource_id */ 2:\n message.resourceId = reader.uint64().toBigInt();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_GetUrl_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string controller_alias = 1; */\n if (message.controllerAlias !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.controllerAlias);\n /* uint64 resource_id = 2; */\n if (message.resourceId !== 0n)\n writer.tag(2, WireType.Varint).uint64(message.resourceId);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.GetUrl.Request\n */\nexport const ControllerAPI_GetUrl_Request = new ControllerAPI_GetUrl_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_GetUrl_Response$Type extends MessageType<ControllerAPI_GetUrl_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.GetUrl.Response\", [\n { no: 2, name: \"controller_url\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<ControllerAPI_GetUrl_Response>): ControllerAPI_GetUrl_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.controllerUrl = \"\";\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_GetUrl_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_GetUrl_Response): ControllerAPI_GetUrl_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string controller_url */ 2:\n message.controllerUrl = reader.string();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_GetUrl_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string controller_url = 2; */\n if (message.controllerUrl !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.controllerUrl);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.GetUrl.Response\n */\nexport const ControllerAPI_GetUrl_Response = new ControllerAPI_GetUrl_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_RemoveAliasesAndUrls$Type extends MessageType<ControllerAPI_RemoveAliasesAndUrls> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.RemoveAliasesAndUrls\", []);\n }\n create(value?: PartialMessage<ControllerAPI_RemoveAliasesAndUrls>): ControllerAPI_RemoveAliasesAndUrls {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_RemoveAliasesAndUrls>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_RemoveAliasesAndUrls): ControllerAPI_RemoveAliasesAndUrls {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_RemoveAliasesAndUrls, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.RemoveAliasesAndUrls\n */\nexport const ControllerAPI_RemoveAliasesAndUrls = new ControllerAPI_RemoveAliasesAndUrls$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_RemoveAliasesAndUrls_Request$Type extends MessageType<ControllerAPI_RemoveAliasesAndUrls_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.RemoveAliasesAndUrls.Request\", [\n { no: 1, name: \"controller_type\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<ControllerAPI_RemoveAliasesAndUrls_Request>): ControllerAPI_RemoveAliasesAndUrls_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.controllerType = \"\";\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_RemoveAliasesAndUrls_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_RemoveAliasesAndUrls_Request): ControllerAPI_RemoveAliasesAndUrls_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string controller_type */ 1:\n message.controllerType = reader.string();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_RemoveAliasesAndUrls_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string controller_type = 1; */\n if (message.controllerType !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.controllerType);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.RemoveAliasesAndUrls.Request\n */\nexport const ControllerAPI_RemoveAliasesAndUrls_Request = new ControllerAPI_RemoveAliasesAndUrls_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_RemoveAliasesAndUrls_Response$Type extends MessageType<ControllerAPI_RemoveAliasesAndUrls_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.RemoveAliasesAndUrls.Response\", []);\n }\n create(value?: PartialMessage<ControllerAPI_RemoveAliasesAndUrls_Response>): ControllerAPI_RemoveAliasesAndUrls_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_RemoveAliasesAndUrls_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_RemoveAliasesAndUrls_Response): ControllerAPI_RemoveAliasesAndUrls_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_RemoveAliasesAndUrls_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.RemoveAliasesAndUrls.Response\n */\nexport const ControllerAPI_RemoveAliasesAndUrls_Response = new ControllerAPI_RemoveAliasesAndUrls_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_SetFeatures$Type extends MessageType<ControllerAPI_SetFeatures> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.SetFeatures\", []);\n }\n create(value?: PartialMessage<ControllerAPI_SetFeatures>): ControllerAPI_SetFeatures {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_SetFeatures>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_SetFeatures): ControllerAPI_SetFeatures {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_SetFeatures, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.SetFeatures\n */\nexport const ControllerAPI_SetFeatures = new ControllerAPI_SetFeatures$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_SetFeatures_Request$Type extends MessageType<ControllerAPI_SetFeatures_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.SetFeatures.Request\", [\n { no: 2, name: \"features\", kind: \"message\", repeat: 2 /*RepeatType.UNPACKED*/, T: () => ResourceAPIFeature }\n ]);\n }\n create(value?: PartialMessage<ControllerAPI_SetFeatures_Request>): ControllerAPI_SetFeatures_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.features = [];\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_SetFeatures_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_SetFeatures_Request): ControllerAPI_SetFeatures_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* repeated MiLaboratories.PL.API.ResourceAPIFeature features */ 2:\n message.features.push(ResourceAPIFeature.internalBinaryRead(reader, reader.uint32(), options));\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_SetFeatures_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* repeated MiLaboratories.PL.API.ResourceAPIFeature features = 2; */\n for (let i = 0; i < message.features.length; i++)\n ResourceAPIFeature.internalBinaryWrite(message.features[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.SetFeatures.Request\n */\nexport const ControllerAPI_SetFeatures_Request = new ControllerAPI_SetFeatures_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_SetFeatures_Response$Type extends MessageType<ControllerAPI_SetFeatures_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.SetFeatures.Response\", []);\n }\n create(value?: PartialMessage<ControllerAPI_SetFeatures_Response>): ControllerAPI_SetFeatures_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_SetFeatures_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_SetFeatures_Response): ControllerAPI_SetFeatures_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_SetFeatures_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.SetFeatures.Response\n */\nexport const ControllerAPI_SetFeatures_Response = new ControllerAPI_SetFeatures_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_ClearFeatures$Type extends MessageType<ControllerAPI_ClearFeatures> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.ClearFeatures\", []);\n }\n create(value?: PartialMessage<ControllerAPI_ClearFeatures>): ControllerAPI_ClearFeatures {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_ClearFeatures>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_ClearFeatures): ControllerAPI_ClearFeatures {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_ClearFeatures, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.ClearFeatures\n */\nexport const ControllerAPI_ClearFeatures = new ControllerAPI_ClearFeatures$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_ClearFeatures_Request$Type extends MessageType<ControllerAPI_ClearFeatures_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.ClearFeatures.Request\", [\n { no: 1, name: \"controller_type\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<ControllerAPI_ClearFeatures_Request>): ControllerAPI_ClearFeatures_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.controllerType = \"\";\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_ClearFeatures_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_ClearFeatures_Request): ControllerAPI_ClearFeatures_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string controller_type */ 1:\n message.controllerType = reader.string();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_ClearFeatures_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string controller_type = 1; */\n if (message.controllerType !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.controllerType);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.ClearFeatures.Request\n */\nexport const ControllerAPI_ClearFeatures_Request = new ControllerAPI_ClearFeatures_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerAPI_ClearFeatures_Response$Type extends MessageType<ControllerAPI_ClearFeatures_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerAPI.ClearFeatures.Response\", []);\n }\n create(value?: PartialMessage<ControllerAPI_ClearFeatures_Response>): ControllerAPI_ClearFeatures_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ControllerAPI_ClearFeatures_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerAPI_ClearFeatures_Response): ControllerAPI_ClearFeatures_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerAPI_ClearFeatures_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerAPI.ClearFeatures.Response\n */\nexport const ControllerAPI_ClearFeatures_Response = new ControllerAPI_ClearFeatures_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceKVAPI$Type extends MessageType<ResourceKVAPI> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceKVAPI\", []);\n }\n create(value?: PartialMessage<ResourceKVAPI>): ResourceKVAPI {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceKVAPI>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceKVAPI): ResourceKVAPI {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceKVAPI, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceKVAPI\n */\nexport const ResourceKVAPI = new ResourceKVAPI$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceKVAPI_List$Type extends MessageType<ResourceKVAPI_List> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceKVAPI.List\", []);\n }\n create(value?: PartialMessage<ResourceKVAPI_List>): ResourceKVAPI_List {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceKVAPI_List>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceKVAPI_List): ResourceKVAPI_List {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceKVAPI_List, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceKVAPI.List\n */\nexport const ResourceKVAPI_List = new ResourceKVAPI_List$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceKVAPI_List_Request$Type extends MessageType<ResourceKVAPI_List_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceKVAPI.List.Request\", [\n { no: 1, name: \"resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"start_from\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 3, name: \"limit\", kind: \"scalar\", T: 13 /*ScalarType.UINT32*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceKVAPI_List_Request>): ResourceKVAPI_List_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.resourceId = 0n;\n message.startFrom = \"\";\n message.limit = 0;\n if (value !== undefined)\n reflectionMergePartial<ResourceKVAPI_List_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceKVAPI_List_Request): ResourceKVAPI_List_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 resource_id */ 1:\n message.resourceId = reader.uint64().toBigInt();\n break;\n case /* string start_from */ 2:\n message.startFrom = reader.string();\n break;\n case /* uint32 limit */ 3:\n message.limit = reader.uint32();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceKVAPI_List_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 resource_id = 1; */\n if (message.resourceId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.resourceId);\n /* string start_from = 2; */\n if (message.startFrom !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.startFrom);\n /* uint32 limit = 3; */\n if (message.limit !== 0)\n writer.tag(3, WireType.Varint).uint32(message.limit);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceKVAPI.List.Request\n */\nexport const ResourceKVAPI_List_Request = new ResourceKVAPI_List_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceKVAPI_List_Response$Type extends MessageType<ResourceKVAPI_List_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceKVAPI.List.Response\", [\n { no: 1, name: \"record\", kind: \"message\", T: () => ResourceKVAPI_List_Response_KV },\n { no: 4, name: \"next\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceKVAPI_List_Response>): ResourceKVAPI_List_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.next = \"\";\n if (value !== undefined)\n reflectionMergePartial<ResourceKVAPI_List_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceKVAPI_List_Response): ResourceKVAPI_List_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* MiLaboratories.PL.API.ResourceKVAPI.List.Response.KV record */ 1:\n message.record = ResourceKVAPI_List_Response_KV.internalBinaryRead(reader, reader.uint32(), options, message.record);\n break;\n case /* string next */ 4:\n message.next = reader.string();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceKVAPI_List_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* MiLaboratories.PL.API.ResourceKVAPI.List.Response.KV record = 1; */\n if (message.record)\n ResourceKVAPI_List_Response_KV.internalBinaryWrite(message.record, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* string next = 4; */\n if (message.next !== \"\")\n writer.tag(4, WireType.LengthDelimited).string(message.next);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceKVAPI.List.Response\n */\nexport const ResourceKVAPI_List_Response = new ResourceKVAPI_List_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceKVAPI_List_Response_KV$Type extends MessageType<ResourceKVAPI_List_Response_KV> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceKVAPI.List.Response.KV\", [\n { no: 2, name: \"key\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 3, name: \"value\", kind: \"scalar\", T: 12 /*ScalarType.BYTES*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceKVAPI_List_Response_KV>): ResourceKVAPI_List_Response_KV {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.key = \"\";\n message.value = new Uint8Array(0);\n if (value !== undefined)\n reflectionMergePartial<ResourceKVAPI_List_Response_KV>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceKVAPI_List_Response_KV): ResourceKVAPI_List_Response_KV {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string key */ 2:\n message.key = reader.string();\n break;\n case /* bytes value */ 3:\n message.value = reader.bytes();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceKVAPI_List_Response_KV, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string key = 2; */\n if (message.key !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.key);\n /* bytes value = 3; */\n if (message.value.length)\n writer.tag(3, WireType.LengthDelimited).bytes(message.value);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceKVAPI.List.Response.KV\n */\nexport const ResourceKVAPI_List_Response_KV = new ResourceKVAPI_List_Response_KV$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceKVAPI_Set$Type extends MessageType<ResourceKVAPI_Set> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceKVAPI.Set\", []);\n }\n create(value?: PartialMessage<ResourceKVAPI_Set>): ResourceKVAPI_Set {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceKVAPI_Set>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceKVAPI_Set): ResourceKVAPI_Set {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceKVAPI_Set, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceKVAPI.Set\n */\nexport const ResourceKVAPI_Set = new ResourceKVAPI_Set$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceKVAPI_Set_Request$Type extends MessageType<ResourceKVAPI_Set_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceKVAPI.Set.Request\", [\n { no: 1, name: \"resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"key\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 3, name: \"value\", kind: \"scalar\", T: 12 /*ScalarType.BYTES*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceKVAPI_Set_Request>): ResourceKVAPI_Set_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.resourceId = 0n;\n message.key = \"\";\n message.value = new Uint8Array(0);\n if (value !== undefined)\n reflectionMergePartial<ResourceKVAPI_Set_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceKVAPI_Set_Request): ResourceKVAPI_Set_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 resource_id */ 1:\n message.resourceId = reader.uint64().toBigInt();\n break;\n case /* string key */ 2:\n message.key = reader.string();\n break;\n case /* bytes value */ 3:\n message.value = reader.bytes();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceKVAPI_Set_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 resource_id = 1; */\n if (message.resourceId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.resourceId);\n /* string key = 2; */\n if (message.key !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.key);\n /* bytes value = 3; */\n if (message.value.length)\n writer.tag(3, WireType.LengthDelimited).bytes(message.value);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceKVAPI.Set.Request\n */\nexport const ResourceKVAPI_Set_Request = new ResourceKVAPI_Set_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceKVAPI_Set_Response$Type extends MessageType<ResourceKVAPI_Set_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceKVAPI.Set.Response\", []);\n }\n create(value?: PartialMessage<ResourceKVAPI_Set_Response>): ResourceKVAPI_Set_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceKVAPI_Set_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceKVAPI_Set_Response): ResourceKVAPI_Set_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceKVAPI_Set_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceKVAPI.Set.Response\n */\nexport const ResourceKVAPI_Set_Response = new ResourceKVAPI_Set_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceKVAPI_Get$Type extends MessageType<ResourceKVAPI_Get> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceKVAPI.Get\", []);\n }\n create(value?: PartialMessage<ResourceKVAPI_Get>): ResourceKVAPI_Get {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceKVAPI_Get>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceKVAPI_Get): ResourceKVAPI_Get {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceKVAPI_Get, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceKVAPI.Get\n */\nexport const ResourceKVAPI_Get = new ResourceKVAPI_Get$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceKVAPI_Get_Request$Type extends MessageType<ResourceKVAPI_Get_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceKVAPI.Get.Request\", [\n { no: 1, name: \"resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"key\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceKVAPI_Get_Request>): ResourceKVAPI_Get_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.resourceId = 0n;\n message.key = \"\";\n if (value !== undefined)\n reflectionMergePartial<ResourceKVAPI_Get_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceKVAPI_Get_Request): ResourceKVAPI_Get_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 resource_id */ 1:\n message.resourceId = reader.uint64().toBigInt();\n break;\n case /* string key */ 2:\n message.key = reader.string();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceKVAPI_Get_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 resource_id = 1; */\n if (message.resourceId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.resourceId);\n /* string key = 2; */\n if (message.key !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.key);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceKVAPI.Get.Request\n */\nexport const ResourceKVAPI_Get_Request = new ResourceKVAPI_Get_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceKVAPI_Get_Response$Type extends MessageType<ResourceKVAPI_Get_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceKVAPI.Get.Response\", [\n { no: 1, name: \"value\", kind: \"scalar\", T: 12 /*ScalarType.BYTES*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceKVAPI_Get_Response>): ResourceKVAPI_Get_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.value = new Uint8Array(0);\n if (value !== undefined)\n reflectionMergePartial<ResourceKVAPI_Get_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceKVAPI_Get_Response): ResourceKVAPI_Get_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* bytes value */ 1:\n message.value = reader.bytes();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceKVAPI_Get_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* bytes value = 1; */\n if (message.value.length)\n writer.tag(1, WireType.LengthDelimited).bytes(message.value);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceKVAPI.Get.Response\n */\nexport const ResourceKVAPI_Get_Response = new ResourceKVAPI_Get_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceKVAPI_GetIfExists$Type extends MessageType<ResourceKVAPI_GetIfExists> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceKVAPI.GetIfExists\", []);\n }\n create(value?: PartialMessage<ResourceKVAPI_GetIfExists>): ResourceKVAPI_GetIfExists {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceKVAPI_GetIfExists>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceKVAPI_GetIfExists): ResourceKVAPI_GetIfExists {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceKVAPI_GetIfExists, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceKVAPI.GetIfExists\n */\nexport const ResourceKVAPI_GetIfExists = new ResourceKVAPI_GetIfExists$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceKVAPI_GetIfExists_Request$Type extends MessageType<ResourceKVAPI_GetIfExists_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceKVAPI.GetIfExists.Request\", [\n { no: 1, name: \"resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"key\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceKVAPI_GetIfExists_Request>): ResourceKVAPI_GetIfExists_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.resourceId = 0n;\n message.key = \"\";\n if (value !== undefined)\n reflectionMergePartial<ResourceKVAPI_GetIfExists_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceKVAPI_GetIfExists_Request): ResourceKVAPI_GetIfExists_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 resource_id */ 1:\n message.resourceId = reader.uint64().toBigInt();\n break;\n case /* string key */ 2:\n message.key = reader.string();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceKVAPI_GetIfExists_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 resource_id = 1; */\n if (message.resourceId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.resourceId);\n /* string key = 2; */\n if (message.key !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.key);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceKVAPI.GetIfExists.Request\n */\nexport const ResourceKVAPI_GetIfExists_Request = new ResourceKVAPI_GetIfExists_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceKVAPI_GetIfExists_Response$Type extends MessageType<ResourceKVAPI_GetIfExists_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceKVAPI.GetIfExists.Response\", [\n { no: 1, name: \"value\", kind: \"scalar\", T: 12 /*ScalarType.BYTES*/ },\n { no: 2, name: \"exists\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceKVAPI_GetIfExists_Response>): ResourceKVAPI_GetIfExists_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.value = new Uint8Array(0);\n message.exists = false;\n if (value !== undefined)\n reflectionMergePartial<ResourceKVAPI_GetIfExists_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceKVAPI_GetIfExists_Response): ResourceKVAPI_GetIfExists_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* bytes value */ 1:\n message.value = reader.bytes();\n break;\n case /* bool exists */ 2:\n message.exists = reader.bool();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceKVAPI_GetIfExists_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* bytes value = 1; */\n if (message.value.length)\n writer.tag(1, WireType.LengthDelimited).bytes(message.value);\n /* bool exists = 2; */\n if (message.exists !== false)\n writer.tag(2, WireType.Varint).bool(message.exists);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceKVAPI.GetIfExists.Response\n */\nexport const ResourceKVAPI_GetIfExists_Response = new ResourceKVAPI_GetIfExists_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceKVAPI_Delete$Type extends MessageType<ResourceKVAPI_Delete> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceKVAPI.Delete\", []);\n }\n create(value?: PartialMessage<ResourceKVAPI_Delete>): ResourceKVAPI_Delete {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceKVAPI_Delete>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceKVAPI_Delete): ResourceKVAPI_Delete {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceKVAPI_Delete, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceKVAPI.Delete\n */\nexport const ResourceKVAPI_Delete = new ResourceKVAPI_Delete$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceKVAPI_Delete_Request$Type extends MessageType<ResourceKVAPI_Delete_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceKVAPI.Delete.Request\", [\n { no: 1, name: \"resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"key\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceKVAPI_Delete_Request>): ResourceKVAPI_Delete_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.resourceId = 0n;\n message.key = \"\";\n if (value !== undefined)\n reflectionMergePartial<ResourceKVAPI_Delete_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceKVAPI_Delete_Request): ResourceKVAPI_Delete_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 resource_id */ 1:\n message.resourceId = reader.uint64().toBigInt();\n break;\n case /* string key */ 2:\n message.key = reader.string();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceKVAPI_Delete_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 resource_id = 1; */\n if (message.resourceId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.resourceId);\n /* string key = 2; */\n if (message.key !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.key);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceKVAPI.Delete.Request\n */\nexport const ResourceKVAPI_Delete_Request = new ResourceKVAPI_Delete_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceKVAPI_Delete_Response$Type extends MessageType<ResourceKVAPI_Delete_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceKVAPI.Delete.Response\", []);\n }\n create(value?: PartialMessage<ResourceKVAPI_Delete_Response>): ResourceKVAPI_Delete_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceKVAPI_Delete_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceKVAPI_Delete_Response): ResourceKVAPI_Delete_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceKVAPI_Delete_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceKVAPI.Delete.Response\n */\nexport const ResourceKVAPI_Delete_Response = new ResourceKVAPI_Delete_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceKVAPI_SetFlag$Type extends MessageType<ResourceKVAPI_SetFlag> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceKVAPI.SetFlag\", []);\n }\n create(value?: PartialMessage<ResourceKVAPI_SetFlag>): ResourceKVAPI_SetFlag {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceKVAPI_SetFlag>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceKVAPI_SetFlag): ResourceKVAPI_SetFlag {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceKVAPI_SetFlag, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceKVAPI.SetFlag\n */\nexport const ResourceKVAPI_SetFlag = new ResourceKVAPI_SetFlag$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceKVAPI_SetFlag_Request$Type extends MessageType<ResourceKVAPI_SetFlag_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceKVAPI.SetFlag.Request\", [\n { no: 1, name: \"resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"key\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 3, name: \"value\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceKVAPI_SetFlag_Request>): ResourceKVAPI_SetFlag_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.resourceId = 0n;\n message.key = \"\";\n message.value = false;\n if (value !== undefined)\n reflectionMergePartial<ResourceKVAPI_SetFlag_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceKVAPI_SetFlag_Request): ResourceKVAPI_SetFlag_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 resource_id */ 1:\n message.resourceId = reader.uint64().toBigInt();\n break;\n case /* string key */ 2:\n message.key = reader.string();\n break;\n case /* bool value */ 3:\n message.value = reader.bool();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceKVAPI_SetFlag_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 resource_id = 1; */\n if (message.resourceId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.resourceId);\n /* string key = 2; */\n if (message.key !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.key);\n /* bool value = 3; */\n if (message.value !== false)\n writer.tag(3, WireType.Varint).bool(message.value);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceKVAPI.SetFlag.Request\n */\nexport const ResourceKVAPI_SetFlag_Request = new ResourceKVAPI_SetFlag_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceKVAPI_SetFlag_Response$Type extends MessageType<ResourceKVAPI_SetFlag_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceKVAPI.SetFlag.Response\", []);\n }\n create(value?: PartialMessage<ResourceKVAPI_SetFlag_Response>): ResourceKVAPI_SetFlag_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceKVAPI_SetFlag_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceKVAPI_SetFlag_Response): ResourceKVAPI_SetFlag_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceKVAPI_SetFlag_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceKVAPI.SetFlag.Response\n */\nexport const ResourceKVAPI_SetFlag_Response = new ResourceKVAPI_SetFlag_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceKVAPI_GetFlag$Type extends MessageType<ResourceKVAPI_GetFlag> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceKVAPI.GetFlag\", []);\n }\n create(value?: PartialMessage<ResourceKVAPI_GetFlag>): ResourceKVAPI_GetFlag {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ResourceKVAPI_GetFlag>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceKVAPI_GetFlag): ResourceKVAPI_GetFlag {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceKVAPI_GetFlag, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceKVAPI.GetFlag\n */\nexport const ResourceKVAPI_GetFlag = new ResourceKVAPI_GetFlag$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceKVAPI_GetFlag_Request$Type extends MessageType<ResourceKVAPI_GetFlag_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceKVAPI.GetFlag.Request\", [\n { no: 1, name: \"resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"key\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceKVAPI_GetFlag_Request>): ResourceKVAPI_GetFlag_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.resourceId = 0n;\n message.key = \"\";\n if (value !== undefined)\n reflectionMergePartial<ResourceKVAPI_GetFlag_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceKVAPI_GetFlag_Request): ResourceKVAPI_GetFlag_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 resource_id */ 1:\n message.resourceId = reader.uint64().toBigInt();\n break;\n case /* string key */ 2:\n message.key = reader.string();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceKVAPI_GetFlag_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 resource_id = 1; */\n if (message.resourceId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.resourceId);\n /* string key = 2; */\n if (message.key !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.key);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceKVAPI.GetFlag.Request\n */\nexport const ResourceKVAPI_GetFlag_Request = new ResourceKVAPI_GetFlag_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ResourceKVAPI_GetFlag_Response$Type extends MessageType<ResourceKVAPI_GetFlag_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ResourceKVAPI.GetFlag.Response\", [\n { no: 1, name: \"value\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ }\n ]);\n }\n create(value?: PartialMessage<ResourceKVAPI_GetFlag_Response>): ResourceKVAPI_GetFlag_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.value = false;\n if (value !== undefined)\n reflectionMergePartial<ResourceKVAPI_GetFlag_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceKVAPI_GetFlag_Response): ResourceKVAPI_GetFlag_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* bool value */ 1:\n message.value = reader.bool();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ResourceKVAPI_GetFlag_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* bool value = 1; */\n if (message.value !== false)\n writer.tag(1, WireType.Varint).bool(message.value);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ResourceKVAPI.GetFlag.Response\n */\nexport const ResourceKVAPI_GetFlag_Response = new ResourceKVAPI_GetFlag_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerKVAPI$Type extends MessageType<ControllerKVAPI> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerKVAPI\", []);\n }\n create(value?: PartialMessage<ControllerKVAPI>): ControllerKVAPI {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ControllerKVAPI>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerKVAPI): ControllerKVAPI {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerKVAPI, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerKVAPI\n */\nexport const ControllerKVAPI = new ControllerKVAPI$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerKVAPI_Set$Type extends MessageType<ControllerKVAPI_Set> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerKVAPI.Set\", []);\n }\n create(value?: PartialMessage<ControllerKVAPI_Set>): ControllerKVAPI_Set {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ControllerKVAPI_Set>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerKVAPI_Set): ControllerKVAPI_Set {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerKVAPI_Set, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerKVAPI.Set\n */\nexport const ControllerKVAPI_Set = new ControllerKVAPI_Set$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerKVAPI_Set_Request$Type extends MessageType<ControllerKVAPI_Set_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerKVAPI.Set.Request\", [\n { no: 1, name: \"controller_type\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"key\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 3, name: \"value\", kind: \"scalar\", T: 12 /*ScalarType.BYTES*/ }\n ]);\n }\n create(value?: PartialMessage<ControllerKVAPI_Set_Request>): ControllerKVAPI_Set_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.controllerType = \"\";\n message.key = \"\";\n message.value = new Uint8Array(0);\n if (value !== undefined)\n reflectionMergePartial<ControllerKVAPI_Set_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerKVAPI_Set_Request): ControllerKVAPI_Set_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string controller_type */ 1:\n message.controllerType = reader.string();\n break;\n case /* string key */ 2:\n message.key = reader.string();\n break;\n case /* bytes value */ 3:\n message.value = reader.bytes();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerKVAPI_Set_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string controller_type = 1; */\n if (message.controllerType !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.controllerType);\n /* string key = 2; */\n if (message.key !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.key);\n /* bytes value = 3; */\n if (message.value.length)\n writer.tag(3, WireType.LengthDelimited).bytes(message.value);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerKVAPI.Set.Request\n */\nexport const ControllerKVAPI_Set_Request = new ControllerKVAPI_Set_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerKVAPI_Set_Response$Type extends MessageType<ControllerKVAPI_Set_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerKVAPI.Set.Response\", []);\n }\n create(value?: PartialMessage<ControllerKVAPI_Set_Response>): ControllerKVAPI_Set_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ControllerKVAPI_Set_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerKVAPI_Set_Response): ControllerKVAPI_Set_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerKVAPI_Set_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerKVAPI.Set.Response\n */\nexport const ControllerKVAPI_Set_Response = new ControllerKVAPI_Set_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerKVAPI_Get$Type extends MessageType<ControllerKVAPI_Get> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerKVAPI.Get\", []);\n }\n create(value?: PartialMessage<ControllerKVAPI_Get>): ControllerKVAPI_Get {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ControllerKVAPI_Get>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerKVAPI_Get): ControllerKVAPI_Get {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerKVAPI_Get, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerKVAPI.Get\n */\nexport const ControllerKVAPI_Get = new ControllerKVAPI_Get$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerKVAPI_Get_Request$Type extends MessageType<ControllerKVAPI_Get_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerKVAPI.Get.Request\", [\n { no: 1, name: \"controller_type\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"key\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<ControllerKVAPI_Get_Request>): ControllerKVAPI_Get_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.controllerType = \"\";\n message.key = \"\";\n if (value !== undefined)\n reflectionMergePartial<ControllerKVAPI_Get_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerKVAPI_Get_Request): ControllerKVAPI_Get_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string controller_type */ 1:\n message.controllerType = reader.string();\n break;\n case /* string key */ 2:\n message.key = reader.string();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerKVAPI_Get_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string controller_type = 1; */\n if (message.controllerType !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.controllerType);\n /* string key = 2; */\n if (message.key !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.key);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerKVAPI.Get.Request\n */\nexport const ControllerKVAPI_Get_Request = new ControllerKVAPI_Get_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerKVAPI_Get_Response$Type extends MessageType<ControllerKVAPI_Get_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerKVAPI.Get.Response\", [\n { no: 1, name: \"value\", kind: \"scalar\", T: 12 /*ScalarType.BYTES*/ }\n ]);\n }\n create(value?: PartialMessage<ControllerKVAPI_Get_Response>): ControllerKVAPI_Get_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.value = new Uint8Array(0);\n if (value !== undefined)\n reflectionMergePartial<ControllerKVAPI_Get_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerKVAPI_Get_Response): ControllerKVAPI_Get_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* bytes value */ 1:\n message.value = reader.bytes();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerKVAPI_Get_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* bytes value = 1; */\n if (message.value.length)\n writer.tag(1, WireType.LengthDelimited).bytes(message.value);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerKVAPI.Get.Response\n */\nexport const ControllerKVAPI_Get_Response = new ControllerKVAPI_Get_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerKVAPI_GetIfExists$Type extends MessageType<ControllerKVAPI_GetIfExists> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerKVAPI.GetIfExists\", []);\n }\n create(value?: PartialMessage<ControllerKVAPI_GetIfExists>): ControllerKVAPI_GetIfExists {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<ControllerKVAPI_GetIfExists>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerKVAPI_GetIfExists): ControllerKVAPI_GetIfExists {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerKVAPI_GetIfExists, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerKVAPI.GetIfExists\n */\nexport const ControllerKVAPI_GetIfExists = new ControllerKVAPI_GetIfExists$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerKVAPI_GetIfExists_Request$Type extends MessageType<ControllerKVAPI_GetIfExists_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerKVAPI.GetIfExists.Request\", [\n { no: 1, name: \"controller_type\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"key\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<ControllerKVAPI_GetIfExists_Request>): ControllerKVAPI_GetIfExists_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.controllerType = \"\";\n message.key = \"\";\n if (value !== undefined)\n reflectionMergePartial<ControllerKVAPI_GetIfExists_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerKVAPI_GetIfExists_Request): ControllerKVAPI_GetIfExists_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string controller_type */ 1:\n message.controllerType = reader.string();\n break;\n case /* string key */ 2:\n message.key = reader.string();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerKVAPI_GetIfExists_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string controller_type = 1; */\n if (message.controllerType !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.controllerType);\n /* string key = 2; */\n if (message.key !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.key);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerKVAPI.GetIfExists.Request\n */\nexport const ControllerKVAPI_GetIfExists_Request = new ControllerKVAPI_GetIfExists_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ControllerKVAPI_GetIfExists_Response$Type extends MessageType<ControllerKVAPI_GetIfExists_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.ControllerKVAPI.GetIfExists.Response\", [\n { no: 1, name: \"value\", kind: \"scalar\", T: 12 /*ScalarType.BYTES*/ },\n { no: 2, name: \"exists\", kind: \"scalar\", T: 8 /*ScalarType.BOOL*/ }\n ]);\n }\n create(value?: PartialMessage<ControllerKVAPI_GetIfExists_Response>): ControllerKVAPI_GetIfExists_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.value = new Uint8Array(0);\n message.exists = false;\n if (value !== undefined)\n reflectionMergePartial<ControllerKVAPI_GetIfExists_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ControllerKVAPI_GetIfExists_Response): ControllerKVAPI_GetIfExists_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* bytes value */ 1:\n message.value = reader.bytes();\n break;\n case /* bool exists */ 2:\n message.exists = reader.bool();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: ControllerKVAPI_GetIfExists_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* bytes value = 1; */\n if (message.value.length)\n writer.tag(1, WireType.LengthDelimited).bytes(message.value);\n /* bool exists = 2; */\n if (message.exists !== false)\n writer.tag(2, WireType.Varint).bool(message.exists);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.ControllerKVAPI.GetIfExists.Response\n */\nexport const ControllerKVAPI_GetIfExists_Response = new ControllerKVAPI_GetIfExists_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CacheAPI$Type extends MessageType<CacheAPI> {\n constructor() {\n super(\"MiLaboratories.PL.API.CacheAPI\", []);\n }\n create(value?: PartialMessage<CacheAPI>): CacheAPI {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<CacheAPI>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CacheAPI): CacheAPI {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: CacheAPI, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.CacheAPI\n */\nexport const CacheAPI = new CacheAPI$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CacheAPI_SetToField$Type extends MessageType<CacheAPI_SetToField> {\n constructor() {\n super(\"MiLaboratories.PL.API.CacheAPI.SetToField\", []);\n }\n create(value?: PartialMessage<CacheAPI_SetToField>): CacheAPI_SetToField {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<CacheAPI_SetToField>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CacheAPI_SetToField): CacheAPI_SetToField {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: CacheAPI_SetToField, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.CacheAPI.SetToField\n */\nexport const CacheAPI_SetToField = new CacheAPI_SetToField$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CacheAPI_SetToField_Request$Type extends MessageType<CacheAPI_SetToField_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.CacheAPI.SetToField.Request\", [\n { no: 1, name: \"id\", kind: \"message\", T: () => FieldRef },\n { no: 2, name: \"period\", kind: \"message\", T: () => Duration }\n ]);\n }\n create(value?: PartialMessage<CacheAPI_SetToField_Request>): CacheAPI_SetToField_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<CacheAPI_SetToField_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CacheAPI_SetToField_Request): CacheAPI_SetToField_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* MiLaboratories.PL.Base.FieldRef id */ 1:\n message.id = FieldRef.internalBinaryRead(reader, reader.uint32(), options, message.id);\n break;\n case /* google.protobuf.Duration period */ 2:\n message.period = Duration.internalBinaryRead(reader, reader.uint32(), options, message.period);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: CacheAPI_SetToField_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* MiLaboratories.PL.Base.FieldRef id = 1; */\n if (message.id)\n FieldRef.internalBinaryWrite(message.id, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n /* google.protobuf.Duration period = 2; */\n if (message.period)\n Duration.internalBinaryWrite(message.period, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.CacheAPI.SetToField.Request\n */\nexport const CacheAPI_SetToField_Request = new CacheAPI_SetToField_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CacheAPI_SetToField_Response$Type extends MessageType<CacheAPI_SetToField_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.CacheAPI.SetToField.Response\", []);\n }\n create(value?: PartialMessage<CacheAPI_SetToField_Response>): CacheAPI_SetToField_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<CacheAPI_SetToField_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CacheAPI_SetToField_Response): CacheAPI_SetToField_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: CacheAPI_SetToField_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.CacheAPI.SetToField.Response\n */\nexport const CacheAPI_SetToField_Response = new CacheAPI_SetToField_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CacheAPI_DeleteExpiredRecords$Type extends MessageType<CacheAPI_DeleteExpiredRecords> {\n constructor() {\n super(\"MiLaboratories.PL.API.CacheAPI.DeleteExpiredRecords\", []);\n }\n create(value?: PartialMessage<CacheAPI_DeleteExpiredRecords>): CacheAPI_DeleteExpiredRecords {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<CacheAPI_DeleteExpiredRecords>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CacheAPI_DeleteExpiredRecords): CacheAPI_DeleteExpiredRecords {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: CacheAPI_DeleteExpiredRecords, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.CacheAPI.DeleteExpiredRecords\n */\nexport const CacheAPI_DeleteExpiredRecords = new CacheAPI_DeleteExpiredRecords$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CacheAPI_DeleteExpiredRecords_Request$Type extends MessageType<CacheAPI_DeleteExpiredRecords_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.CacheAPI.DeleteExpiredRecords.Request\", []);\n }\n create(value?: PartialMessage<CacheAPI_DeleteExpiredRecords_Request>): CacheAPI_DeleteExpiredRecords_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<CacheAPI_DeleteExpiredRecords_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CacheAPI_DeleteExpiredRecords_Request): CacheAPI_DeleteExpiredRecords_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: CacheAPI_DeleteExpiredRecords_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.CacheAPI.DeleteExpiredRecords.Request\n */\nexport const CacheAPI_DeleteExpiredRecords_Request = new CacheAPI_DeleteExpiredRecords_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CacheAPI_DeleteExpiredRecords_Response$Type extends MessageType<CacheAPI_DeleteExpiredRecords_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.CacheAPI.DeleteExpiredRecords.Response\", []);\n }\n create(value?: PartialMessage<CacheAPI_DeleteExpiredRecords_Response>): CacheAPI_DeleteExpiredRecords_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<CacheAPI_DeleteExpiredRecords_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CacheAPI_DeleteExpiredRecords_Response): CacheAPI_DeleteExpiredRecords_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: CacheAPI_DeleteExpiredRecords_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.CacheAPI.DeleteExpiredRecords.Response\n */\nexport const CacheAPI_DeleteExpiredRecords_Response = new CacheAPI_DeleteExpiredRecords_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass LocksAPI$Type extends MessageType<LocksAPI> {\n constructor() {\n super(\"MiLaboratories.PL.API.LocksAPI\", []);\n }\n create(value?: PartialMessage<LocksAPI>): LocksAPI {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<LocksAPI>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: LocksAPI): LocksAPI {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: LocksAPI, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.LocksAPI\n */\nexport const LocksAPI = new LocksAPI$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass LocksAPI_Lease$Type extends MessageType<LocksAPI_Lease> {\n constructor() {\n super(\"MiLaboratories.PL.API.LocksAPI.Lease\", []);\n }\n create(value?: PartialMessage<LocksAPI_Lease>): LocksAPI_Lease {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<LocksAPI_Lease>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: LocksAPI_Lease): LocksAPI_Lease {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: LocksAPI_Lease, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.LocksAPI.Lease\n */\nexport const LocksAPI_Lease = new LocksAPI_Lease$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass LocksAPI_Lease_Create$Type extends MessageType<LocksAPI_Lease_Create> {\n constructor() {\n super(\"MiLaboratories.PL.API.LocksAPI.Lease.Create\", []);\n }\n create(value?: PartialMessage<LocksAPI_Lease_Create>): LocksAPI_Lease_Create {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<LocksAPI_Lease_Create>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: LocksAPI_Lease_Create): LocksAPI_Lease_Create {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: LocksAPI_Lease_Create, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.LocksAPI.Lease.Create\n */\nexport const LocksAPI_Lease_Create = new LocksAPI_Lease_Create$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass LocksAPI_Lease_Create_Request$Type extends MessageType<LocksAPI_Lease_Create_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.LocksAPI.Lease.Create.Request\", [\n { no: 1, name: \"resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 3, name: \"timeout\", kind: \"message\", T: () => Duration },\n { no: 4, name: \"name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<LocksAPI_Lease_Create_Request>): LocksAPI_Lease_Create_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.resourceId = 0n;\n message.name = \"\";\n if (value !== undefined)\n reflectionMergePartial<LocksAPI_Lease_Create_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: LocksAPI_Lease_Create_Request): LocksAPI_Lease_Create_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 resource_id */ 1:\n message.resourceId = reader.uint64().toBigInt();\n break;\n case /* google.protobuf.Duration timeout */ 3:\n message.timeout = Duration.internalBinaryRead(reader, reader.uint32(), options, message.timeout);\n break;\n case /* string name */ 4:\n message.name = reader.string();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: LocksAPI_Lease_Create_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 resource_id = 1; */\n if (message.resourceId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.resourceId);\n /* google.protobuf.Duration timeout = 3; */\n if (message.timeout)\n Duration.internalBinaryWrite(message.timeout, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n /* string name = 4; */\n if (message.name !== \"\")\n writer.tag(4, WireType.LengthDelimited).string(message.name);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.LocksAPI.Lease.Create.Request\n */\nexport const LocksAPI_Lease_Create_Request = new LocksAPI_Lease_Create_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass LocksAPI_Lease_Create_Response$Type extends MessageType<LocksAPI_Lease_Create_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.LocksAPI.Lease.Create.Response\", [\n { no: 1, name: \"lease_id\", kind: \"scalar\", T: 12 /*ScalarType.BYTES*/ }\n ]);\n }\n create(value?: PartialMessage<LocksAPI_Lease_Create_Response>): LocksAPI_Lease_Create_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.leaseId = new Uint8Array(0);\n if (value !== undefined)\n reflectionMergePartial<LocksAPI_Lease_Create_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: LocksAPI_Lease_Create_Response): LocksAPI_Lease_Create_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* bytes lease_id */ 1:\n message.leaseId = reader.bytes();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: LocksAPI_Lease_Create_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* bytes lease_id = 1; */\n if (message.leaseId.length)\n writer.tag(1, WireType.LengthDelimited).bytes(message.leaseId);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.LocksAPI.Lease.Create.Response\n */\nexport const LocksAPI_Lease_Create_Response = new LocksAPI_Lease_Create_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass LocksAPI_Lease_Update$Type extends MessageType<LocksAPI_Lease_Update> {\n constructor() {\n super(\"MiLaboratories.PL.API.LocksAPI.Lease.Update\", []);\n }\n create(value?: PartialMessage<LocksAPI_Lease_Update>): LocksAPI_Lease_Update {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<LocksAPI_Lease_Update>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: LocksAPI_Lease_Update): LocksAPI_Lease_Update {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: LocksAPI_Lease_Update, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.LocksAPI.Lease.Update\n */\nexport const LocksAPI_Lease_Update = new LocksAPI_Lease_Update$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass LocksAPI_Lease_Update_Request$Type extends MessageType<LocksAPI_Lease_Update_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.LocksAPI.Lease.Update.Request\", [\n { no: 1, name: \"resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"lease_id\", kind: \"scalar\", T: 12 /*ScalarType.BYTES*/ },\n { no: 3, name: \"timeout\", kind: \"message\", T: () => Duration },\n { no: 4, name: \"name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<LocksAPI_Lease_Update_Request>): LocksAPI_Lease_Update_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.resourceId = 0n;\n message.leaseId = new Uint8Array(0);\n message.name = \"\";\n if (value !== undefined)\n reflectionMergePartial<LocksAPI_Lease_Update_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: LocksAPI_Lease_Update_Request): LocksAPI_Lease_Update_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 resource_id */ 1:\n message.resourceId = reader.uint64().toBigInt();\n break;\n case /* bytes lease_id */ 2:\n message.leaseId = reader.bytes();\n break;\n case /* google.protobuf.Duration timeout */ 3:\n message.timeout = Duration.internalBinaryRead(reader, reader.uint32(), options, message.timeout);\n break;\n case /* string name */ 4:\n message.name = reader.string();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: LocksAPI_Lease_Update_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 resource_id = 1; */\n if (message.resourceId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.resourceId);\n /* bytes lease_id = 2; */\n if (message.leaseId.length)\n writer.tag(2, WireType.LengthDelimited).bytes(message.leaseId);\n /* google.protobuf.Duration timeout = 3; */\n if (message.timeout)\n Duration.internalBinaryWrite(message.timeout, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n /* string name = 4; */\n if (message.name !== \"\")\n writer.tag(4, WireType.LengthDelimited).string(message.name);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.LocksAPI.Lease.Update.Request\n */\nexport const LocksAPI_Lease_Update_Request = new LocksAPI_Lease_Update_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass LocksAPI_Lease_Update_Response$Type extends MessageType<LocksAPI_Lease_Update_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.LocksAPI.Lease.Update.Response\", []);\n }\n create(value?: PartialMessage<LocksAPI_Lease_Update_Response>): LocksAPI_Lease_Update_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<LocksAPI_Lease_Update_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: LocksAPI_Lease_Update_Response): LocksAPI_Lease_Update_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: LocksAPI_Lease_Update_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.LocksAPI.Lease.Update.Response\n */\nexport const LocksAPI_Lease_Update_Response = new LocksAPI_Lease_Update_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass LocksAPI_Lease_Release$Type extends MessageType<LocksAPI_Lease_Release> {\n constructor() {\n super(\"MiLaboratories.PL.API.LocksAPI.Lease.Release\", []);\n }\n create(value?: PartialMessage<LocksAPI_Lease_Release>): LocksAPI_Lease_Release {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<LocksAPI_Lease_Release>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: LocksAPI_Lease_Release): LocksAPI_Lease_Release {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: LocksAPI_Lease_Release, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.LocksAPI.Lease.Release\n */\nexport const LocksAPI_Lease_Release = new LocksAPI_Lease_Release$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass LocksAPI_Lease_Release_Request$Type extends MessageType<LocksAPI_Lease_Release_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.LocksAPI.Lease.Release.Request\", [\n { no: 1, name: \"resource_id\", kind: \"scalar\", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n { no: 2, name: \"lease_id\", kind: \"scalar\", T: 12 /*ScalarType.BYTES*/ }\n ]);\n }\n create(value?: PartialMessage<LocksAPI_Lease_Release_Request>): LocksAPI_Lease_Release_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.resourceId = 0n;\n message.leaseId = new Uint8Array(0);\n if (value !== undefined)\n reflectionMergePartial<LocksAPI_Lease_Release_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: LocksAPI_Lease_Release_Request): LocksAPI_Lease_Release_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* uint64 resource_id */ 1:\n message.resourceId = reader.uint64().toBigInt();\n break;\n case /* bytes lease_id */ 2:\n message.leaseId = reader.bytes();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: LocksAPI_Lease_Release_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* uint64 resource_id = 1; */\n if (message.resourceId !== 0n)\n writer.tag(1, WireType.Varint).uint64(message.resourceId);\n /* bytes lease_id = 2; */\n if (message.leaseId.length)\n writer.tag(2, WireType.LengthDelimited).bytes(message.leaseId);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.LocksAPI.Lease.Release.Request\n */\nexport const LocksAPI_Lease_Release_Request = new LocksAPI_Lease_Release_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass LocksAPI_Lease_Release_Response$Type extends MessageType<LocksAPI_Lease_Release_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.LocksAPI.Lease.Release.Response\", []);\n }\n create(value?: PartialMessage<LocksAPI_Lease_Release_Response>): LocksAPI_Lease_Release_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<LocksAPI_Lease_Release_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: LocksAPI_Lease_Release_Response): LocksAPI_Lease_Release_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: LocksAPI_Lease_Release_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.LocksAPI.Lease.Release.Response\n */\nexport const LocksAPI_Lease_Release_Response = new LocksAPI_Lease_Release_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass AuthAPI$Type extends MessageType<AuthAPI> {\n constructor() {\n super(\"MiLaboratories.PL.API.AuthAPI\", []);\n }\n create(value?: PartialMessage<AuthAPI>): AuthAPI {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<AuthAPI>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AuthAPI): AuthAPI {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: AuthAPI, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.AuthAPI\n */\nexport const AuthAPI = new AuthAPI$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass AuthAPI_ListMethods$Type extends MessageType<AuthAPI_ListMethods> {\n constructor() {\n super(\"MiLaboratories.PL.API.AuthAPI.ListMethods\", []);\n }\n create(value?: PartialMessage<AuthAPI_ListMethods>): AuthAPI_ListMethods {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<AuthAPI_ListMethods>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AuthAPI_ListMethods): AuthAPI_ListMethods {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: AuthAPI_ListMethods, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.AuthAPI.ListMethods\n */\nexport const AuthAPI_ListMethods = new AuthAPI_ListMethods$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass AuthAPI_ListMethods_Request$Type extends MessageType<AuthAPI_ListMethods_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.AuthAPI.ListMethods.Request\", []);\n }\n create(value?: PartialMessage<AuthAPI_ListMethods_Request>): AuthAPI_ListMethods_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<AuthAPI_ListMethods_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AuthAPI_ListMethods_Request): AuthAPI_ListMethods_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: AuthAPI_ListMethods_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.AuthAPI.ListMethods.Request\n */\nexport const AuthAPI_ListMethods_Request = new AuthAPI_ListMethods_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass AuthAPI_ListMethods_Response$Type extends MessageType<AuthAPI_ListMethods_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.AuthAPI.ListMethods.Response\", [\n { no: 1, name: \"methods\", kind: \"message\", repeat: 2 /*RepeatType.UNPACKED*/, T: () => AuthAPI_ListMethods_MethodInfo }\n ]);\n }\n create(value?: PartialMessage<AuthAPI_ListMethods_Response>): AuthAPI_ListMethods_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.methods = [];\n if (value !== undefined)\n reflectionMergePartial<AuthAPI_ListMethods_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AuthAPI_ListMethods_Response): AuthAPI_ListMethods_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* repeated MiLaboratories.PL.API.AuthAPI.ListMethods.MethodInfo methods */ 1:\n message.methods.push(AuthAPI_ListMethods_MethodInfo.internalBinaryRead(reader, reader.uint32(), options));\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: AuthAPI_ListMethods_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* repeated MiLaboratories.PL.API.AuthAPI.ListMethods.MethodInfo methods = 1; */\n for (let i = 0; i < message.methods.length; i++)\n AuthAPI_ListMethods_MethodInfo.internalBinaryWrite(message.methods[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.AuthAPI.ListMethods.Response\n */\nexport const AuthAPI_ListMethods_Response = new AuthAPI_ListMethods_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass AuthAPI_ListMethods_MethodInfo$Type extends MessageType<AuthAPI_ListMethods_MethodInfo> {\n constructor() {\n super(\"MiLaboratories.PL.API.AuthAPI.ListMethods.MethodInfo\", [\n { no: 1, name: \"type\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 3, name: \"info\", kind: \"map\", K: 9 /*ScalarType.STRING*/, V: { kind: \"scalar\", T: 9 /*ScalarType.STRING*/ } }\n ]);\n }\n create(value?: PartialMessage<AuthAPI_ListMethods_MethodInfo>): AuthAPI_ListMethods_MethodInfo {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.type = \"\";\n message.name = \"\";\n message.info = {};\n if (value !== undefined)\n reflectionMergePartial<AuthAPI_ListMethods_MethodInfo>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AuthAPI_ListMethods_MethodInfo): AuthAPI_ListMethods_MethodInfo {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string type */ 1:\n message.type = reader.string();\n break;\n case /* string name */ 2:\n message.name = reader.string();\n break;\n case /* map<string, string> info */ 3:\n this.binaryReadMap3(message.info, reader, options);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n private binaryReadMap3(map: AuthAPI_ListMethods_MethodInfo[\"info\"], reader: IBinaryReader, options: BinaryReadOptions): void {\n let len = reader.uint32(), end = reader.pos + len, key: keyof AuthAPI_ListMethods_MethodInfo[\"info\"] | undefined, val: AuthAPI_ListMethods_MethodInfo[\"info\"][any] | undefined;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case 1:\n key = reader.string();\n break;\n case 2:\n val = reader.string();\n break;\n default: throw new globalThis.Error(\"unknown map entry field for MiLaboratories.PL.API.AuthAPI.ListMethods.MethodInfo.info\");\n }\n }\n map[key ?? \"\"] = val ?? \"\";\n }\n internalBinaryWrite(message: AuthAPI_ListMethods_MethodInfo, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string type = 1; */\n if (message.type !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.type);\n /* string name = 2; */\n if (message.name !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.name);\n /* map<string, string> info = 3; */\n for (let k of globalThis.Object.keys(message.info))\n writer.tag(3, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k).tag(2, WireType.LengthDelimited).string(message.info[k]).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.AuthAPI.ListMethods.MethodInfo\n */\nexport const AuthAPI_ListMethods_MethodInfo = new AuthAPI_ListMethods_MethodInfo$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass AuthAPI_GetJWTToken$Type extends MessageType<AuthAPI_GetJWTToken> {\n constructor() {\n super(\"MiLaboratories.PL.API.AuthAPI.GetJWTToken\", []);\n }\n create(value?: PartialMessage<AuthAPI_GetJWTToken>): AuthAPI_GetJWTToken {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<AuthAPI_GetJWTToken>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AuthAPI_GetJWTToken): AuthAPI_GetJWTToken {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: AuthAPI_GetJWTToken, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.AuthAPI.GetJWTToken\n */\nexport const AuthAPI_GetJWTToken = new AuthAPI_GetJWTToken$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass AuthAPI_GetJWTToken_Request$Type extends MessageType<AuthAPI_GetJWTToken_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.AuthAPI.GetJWTToken.Request\", [\n { no: 1, name: \"expiration\", kind: \"message\", T: () => Duration }\n ]);\n }\n create(value?: PartialMessage<AuthAPI_GetJWTToken_Request>): AuthAPI_GetJWTToken_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<AuthAPI_GetJWTToken_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AuthAPI_GetJWTToken_Request): AuthAPI_GetJWTToken_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* google.protobuf.Duration expiration */ 1:\n message.expiration = Duration.internalBinaryRead(reader, reader.uint32(), options, message.expiration);\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: AuthAPI_GetJWTToken_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* google.protobuf.Duration expiration = 1; */\n if (message.expiration)\n Duration.internalBinaryWrite(message.expiration, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.AuthAPI.GetJWTToken.Request\n */\nexport const AuthAPI_GetJWTToken_Request = new AuthAPI_GetJWTToken_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass AuthAPI_GetJWTToken_Response$Type extends MessageType<AuthAPI_GetJWTToken_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.AuthAPI.GetJWTToken.Response\", [\n { no: 1, name: \"token\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<AuthAPI_GetJWTToken_Response>): AuthAPI_GetJWTToken_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.token = \"\";\n if (value !== undefined)\n reflectionMergePartial<AuthAPI_GetJWTToken_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AuthAPI_GetJWTToken_Response): AuthAPI_GetJWTToken_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string token */ 1:\n message.token = reader.string();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: AuthAPI_GetJWTToken_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string token = 1; */\n if (message.token !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.token);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.AuthAPI.GetJWTToken.Response\n */\nexport const AuthAPI_GetJWTToken_Response = new AuthAPI_GetJWTToken_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass MiscAPI$Type extends MessageType<MiscAPI> {\n constructor() {\n super(\"MiLaboratories.PL.API.MiscAPI\", []);\n }\n create(value?: PartialMessage<MiscAPI>): MiscAPI {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<MiscAPI>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MiscAPI): MiscAPI {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: MiscAPI, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.MiscAPI\n */\nexport const MiscAPI = new MiscAPI$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass MiscAPI_ListResourceTypes$Type extends MessageType<MiscAPI_ListResourceTypes> {\n constructor() {\n super(\"MiLaboratories.PL.API.MiscAPI.ListResourceTypes\", []);\n }\n create(value?: PartialMessage<MiscAPI_ListResourceTypes>): MiscAPI_ListResourceTypes {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<MiscAPI_ListResourceTypes>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MiscAPI_ListResourceTypes): MiscAPI_ListResourceTypes {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: MiscAPI_ListResourceTypes, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.MiscAPI.ListResourceTypes\n */\nexport const MiscAPI_ListResourceTypes = new MiscAPI_ListResourceTypes$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass MiscAPI_ListResourceTypes_Request$Type extends MessageType<MiscAPI_ListResourceTypes_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.MiscAPI.ListResourceTypes.Request\", []);\n }\n create(value?: PartialMessage<MiscAPI_ListResourceTypes_Request>): MiscAPI_ListResourceTypes_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<MiscAPI_ListResourceTypes_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MiscAPI_ListResourceTypes_Request): MiscAPI_ListResourceTypes_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: MiscAPI_ListResourceTypes_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.MiscAPI.ListResourceTypes.Request\n */\nexport const MiscAPI_ListResourceTypes_Request = new MiscAPI_ListResourceTypes_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass MiscAPI_ListResourceTypes_Response$Type extends MessageType<MiscAPI_ListResourceTypes_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.MiscAPI.ListResourceTypes.Response\", [\n { no: 1, name: \"types\", kind: \"message\", repeat: 2 /*RepeatType.UNPACKED*/, T: () => ResourceType }\n ]);\n }\n create(value?: PartialMessage<MiscAPI_ListResourceTypes_Response>): MiscAPI_ListResourceTypes_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.types = [];\n if (value !== undefined)\n reflectionMergePartial<MiscAPI_ListResourceTypes_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MiscAPI_ListResourceTypes_Response): MiscAPI_ListResourceTypes_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* repeated MiLaboratories.PL.Base.ResourceType types */ 1:\n message.types.push(ResourceType.internalBinaryRead(reader, reader.uint32(), options));\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: MiscAPI_ListResourceTypes_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* repeated MiLaboratories.PL.Base.ResourceType types = 1; */\n for (let i = 0; i < message.types.length; i++)\n ResourceType.internalBinaryWrite(message.types[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.MiscAPI.ListResourceTypes.Response\n */\nexport const MiscAPI_ListResourceTypes_Response = new MiscAPI_ListResourceTypes_Response$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass MaintenanceAPI$Type extends MessageType<MaintenanceAPI> {\n constructor() {\n super(\"MiLaboratories.PL.API.MaintenanceAPI\", []);\n }\n create(value?: PartialMessage<MaintenanceAPI>): MaintenanceAPI {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<MaintenanceAPI>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MaintenanceAPI): MaintenanceAPI {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: MaintenanceAPI, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.MaintenanceAPI\n */\nexport const MaintenanceAPI = new MaintenanceAPI$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass MaintenanceAPI_Ping$Type extends MessageType<MaintenanceAPI_Ping> {\n constructor() {\n super(\"MiLaboratories.PL.API.MaintenanceAPI.Ping\", []);\n }\n create(value?: PartialMessage<MaintenanceAPI_Ping>): MaintenanceAPI_Ping {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<MaintenanceAPI_Ping>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MaintenanceAPI_Ping): MaintenanceAPI_Ping {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: MaintenanceAPI_Ping, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.MaintenanceAPI.Ping\n */\nexport const MaintenanceAPI_Ping = new MaintenanceAPI_Ping$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass MaintenanceAPI_Ping_Request$Type extends MessageType<MaintenanceAPI_Ping_Request> {\n constructor() {\n super(\"MiLaboratories.PL.API.MaintenanceAPI.Ping.Request\", []);\n }\n create(value?: PartialMessage<MaintenanceAPI_Ping_Request>): MaintenanceAPI_Ping_Request {\n const message = globalThis.Object.create((this.messagePrototype!));\n if (value !== undefined)\n reflectionMergePartial<MaintenanceAPI_Ping_Request>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MaintenanceAPI_Ping_Request): MaintenanceAPI_Ping_Request {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: MaintenanceAPI_Ping_Request, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.MaintenanceAPI.Ping.Request\n */\nexport const MaintenanceAPI_Ping_Request = new MaintenanceAPI_Ping_Request$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass MaintenanceAPI_Ping_Response$Type extends MessageType<MaintenanceAPI_Ping_Response> {\n constructor() {\n super(\"MiLaboratories.PL.API.MaintenanceAPI.Ping.Response\", [\n { no: 1, name: \"core_version\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 2, name: \"core_full_version\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 3, name: \"server_info\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n { no: 4, name: \"compression\", kind: \"enum\", T: () => [\"MiLaboratories.PL.API.MaintenanceAPI.Ping.Response.Compression\", MaintenanceAPI_Ping_Response_Compression] },\n { no: 5, name: \"instance_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ }\n ]);\n }\n create(value?: PartialMessage<MaintenanceAPI_Ping_Response>): MaintenanceAPI_Ping_Response {\n const message = globalThis.Object.create((this.messagePrototype!));\n message.coreVersion = \"\";\n message.coreFullVersion = \"\";\n message.serverInfo = \"\";\n message.compression = 0;\n message.instanceId = \"\";\n if (value !== undefined)\n reflectionMergePartial<MaintenanceAPI_Ping_Response>(this, message, value);\n return message;\n }\n internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MaintenanceAPI_Ping_Response): MaintenanceAPI_Ping_Response {\n let message = target ?? this.create(), end = reader.pos + length;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case /* string core_version */ 1:\n message.coreVersion = reader.string();\n break;\n case /* string core_full_version */ 2:\n message.coreFullVersion = reader.string();\n break;\n case /* string server_info */ 3:\n message.serverInfo = reader.string();\n break;\n case /* MiLaboratories.PL.API.MaintenanceAPI.Ping.Response.Compression compression */ 4:\n message.compression = reader.int32();\n break;\n case /* string instance_id */ 5:\n message.instanceId = reader.string();\n break;\n default:\n let u = options.readUnknownField;\n if (u === \"throw\")\n throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n }\n }\n return message;\n }\n internalBinaryWrite(message: MaintenanceAPI_Ping_Response, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n /* string core_version = 1; */\n if (message.coreVersion !== \"\")\n writer.tag(1, WireType.LengthDelimited).string(message.coreVersion);\n /* string core_full_version = 2; */\n if (message.coreFullVersion !== \"\")\n writer.tag(2, WireType.LengthDelimited).string(message.coreFullVersion);\n /* string server_info = 3; */\n if (message.serverInfo !== \"\")\n writer.tag(3, WireType.LengthDelimited).string(message.serverInfo);\n /* MiLaboratories.PL.API.MaintenanceAPI.Ping.Response.Compression compression = 4; */\n if (message.compression !== 0)\n writer.tag(4, WireType.Varint).int32(message.compression);\n /* string instance_id = 5; */\n if (message.instanceId !== \"\")\n writer.tag(5, WireType.LengthDelimited).string(message.instanceId);\n let u = options.writeUnknownFields;\n if (u !== false)\n (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n return writer;\n }\n}\n/**\n * @generated MessageType for protobuf message MiLaboratories.PL.API.MaintenanceAPI.Ping.Response\n */\nexport const MaintenanceAPI_Ping_Response = new MaintenanceAPI_Ping_Response$Type();\n/**\n * @generated ServiceType for protobuf service MiLaboratories.PL.API.Platform\n */\nexport const Platform = new ServiceType(\"MiLaboratories.PL.API.Platform\", [\n { name: \"Tx\", serverStreaming: true, clientStreaming: true, options: {}, I: TxAPI_ClientMessage, O: TxAPI_ServerMessage },\n { name: \"TxSync\", options: {}, I: TxAPI_Sync_Request, O: TxAPI_Sync_Response },\n { name: \"SubscriptionAttachFilter\", options: {}, I: SubscriptionAPI_AttachFilter_Request, O: SubscriptionAPI_AttachFilter_Response },\n { name: \"SubscriptionDetachFilter\", options: {}, I: SubscriptionAPI_DetachFilter_Request, O: SubscriptionAPI_DetachFilter_Response },\n { name: \"NotificationsGet\", options: {}, I: NotificationAPI_Get_Request, O: NotificationAPI_Get_Response },\n { name: \"ControllerRegister\", options: {}, I: ControllerAPI_Register_Request, O: ControllerAPI_Register_Response },\n { name: \"ControllerDeregister\", options: {}, I: ControllerAPI_Deregister_Request, O: ControllerAPI_Deregister_Response },\n { name: \"ControllerCreate\", options: {}, I: ControllerAPI_Create_Request, O: ControllerAPI_Create_Response },\n { name: \"ControllerExists\", options: {}, I: ControllerAPI_Exists_Request, O: ControllerAPI_Exists_Response },\n { name: \"ControllerGet\", options: {}, I: ControllerAPI_Get_Request, O: ControllerAPI_Get_Response },\n { name: \"ControllerUpdate\", options: {}, I: ControllerAPI_Update_Request, O: ControllerAPI_Update_Response },\n { name: \"ControllerAttachSubscription\", options: {}, I: ControllerAPI_AttachSubscription_Request, O: ControllerAPI_AttachSubscription_Response },\n { name: \"GetControllerNotifications\", options: {}, I: ControllerAPI_GetNotifications_Request, O: ControllerAPI_GetNotifications_Response },\n { name: \"WriteControllerAliasesAndUrls\", options: {}, I: ControllerAPI_WriteAliasesAndUrls_Request, O: ControllerAPI_WriteAliasesAndUrls_Response },\n { name: \"RemoveControllerAliasesAndUrls\", options: {}, I: ControllerAPI_RemoveAliasesAndUrls_Request, O: ControllerAPI_RemoveAliasesAndUrls_Response },\n { name: \"GetControllerUrl\", options: {}, I: ControllerAPI_GetUrl_Request, O: ControllerAPI_GetUrl_Response },\n { name: \"ControllerSetFeatures\", options: {}, I: ControllerAPI_SetFeatures_Request, O: ControllerAPI_SetFeatures_Response },\n { name: \"ControllerClearFeatures\", options: {}, I: ControllerAPI_ClearFeatures_Request, O: ControllerAPI_ClearFeatures_Response },\n { name: \"LeaseResource\", options: {}, I: LocksAPI_Lease_Create_Request, O: LocksAPI_Lease_Create_Response },\n { name: \"UpdateLease\", options: {}, I: LocksAPI_Lease_Update_Request, O: LocksAPI_Lease_Update_Response },\n { name: \"ReleaseLease\", options: {}, I: LocksAPI_Lease_Release_Request, O: LocksAPI_Lease_Release_Response },\n { name: \"AuthMethods\", options: {}, I: AuthAPI_ListMethods_Request, O: AuthAPI_ListMethods_Response },\n { name: \"GetJWTToken\", options: {}, I: AuthAPI_GetJWTToken_Request, O: AuthAPI_GetJWTToken_Response },\n { name: \"ListResourceTypes\", options: {}, I: MiscAPI_ListResourceTypes_Request, O: MiscAPI_ListResourceTypes_Response },\n { name: \"Ping\", options: {}, I: MaintenanceAPI_Ping_Request, O: MaintenanceAPI_Ping_Response }\n]);\n","function isArrayBufferOrView(value: unknown): value is ArrayBufferLike {\n return value instanceof ArrayBuffer || ArrayBuffer.isView(value);\n}\n\nexport function toBytes(value: string | Uint8Array): Uint8Array {\n if (typeof value === 'string') return Buffer.from(value);\n else if (isArrayBufferOrView(value)) return value;\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n else throw new Error(`Unexpected type: ${value}`);\n}\n","import type { Status } from '../proto/github.com/googleapis/googleapis/google/rpc/status';\nimport { Aborted } from '@milaboratories/ts-helpers';\n\nexport function isConnectionProblem(err: unknown, nested: boolean = false): boolean {\n if (err instanceof DisconnectedError) return true;\n if ((err as any).name == 'RpcError' && (err as any).code == 'UNAVAILABLE') return true;\n if ((err as any).cause !== undefined && !nested)\n // nested limits the depth of search\n return isConnectionProblem((err as any).cause, true);\n return false;\n}\n\nexport function isUnauthenticated(err: unknown, nested: boolean = false): boolean {\n if (err instanceof UnauthenticatedError) return true;\n if ((err as any).name == 'RpcError' && (err as any).code == 'UNAUTHENTICATED') return true;\n if ((err as any).cause !== undefined && !nested)\n // nested limits the depth of search\n return isUnauthenticated((err as any).cause, true);\n return false;\n}\n\nexport function isTimeoutOrCancelError(err: unknown, nested: boolean = false): boolean {\n if (err instanceof Aborted || (err as any).name == 'AbortError') return true;\n if ((err as any).code == 'ABORT_ERR') return true;\n if (\n (err as any).name == 'RpcError'\n && ((err as any).code == 'CANCELLED' || (err as any).code == 'DEADLINE_EXCEEDED')\n )\n return true;\n if ((err as any).cause !== undefined && !nested)\n // nested limits the depth of search\n return isTimeoutOrCancelError((err as any).cause, true);\n return false;\n}\n\nexport const PlErrorCodeNotFound = 5;\n\nexport class PlError extends Error {\n name = 'PlError';\n constructor(public readonly status: Status) {\n super(`code=${status.code} ${status.message}`);\n }\n}\n\nexport function throwPlNotFoundError(message: string): never {\n throw new RecoverablePlError({ code: PlErrorCodeNotFound, message, details: [] });\n}\n\nexport class RecoverablePlError extends PlError {\n name = 'RecoverablePlError';\n constructor(status: Status) {\n super(status);\n }\n}\n\nexport class UnrecoverablePlError extends PlError {\n name = 'UnrecoverablePlError';\n constructor(status: Status) {\n super(status);\n }\n}\n\nexport function isNotFoundError(err: unknown, nested: boolean = false): boolean {\n if ((err as any).name == 'RpcError' && (err as any).code == 'NOT_FOUND') return true;\n if ((err as any).cause !== undefined && !nested) return isNotFoundError((err as any).cause, true);\n return err instanceof RecoverablePlError && err.status.code === PlErrorCodeNotFound;\n}\n\nexport class UnauthenticatedError extends Error {\n name = 'UnauthenticatedError';\n constructor(message: string) {\n super('LoginFailed: ' + message);\n }\n}\n\nexport class DisconnectedError extends Error {\n name = 'DisconnectedError';\n constructor(message: string) {\n super('Disconnected: ' + message);\n }\n}\n\nexport function rethrowMeaningfulError(error: any, wrapIfUnknown: boolean = false): never {\n if (isUnauthenticated(error)) throw new UnauthenticatedError(error.message);\n if (isConnectionProblem(error)) throw new DisconnectedError(error.message);\n if (isTimeoutOrCancelError(error)) throw new Aborted(error);\n if (wrapIfUnknown) throw new Error(error.message, { cause: error });\n else throw error;\n}\n","import type {\n Field,\n Resource } from '../proto/github.com/milaboratory/pl/plapi/plapiproto/api_types';\nimport {\n Field_ValueStatus,\n Resource_Kind,\n} from '../proto/github.com/milaboratory/pl/plapi/plapiproto/api_types';\nimport { FieldType as GrpcFieldType } from '../proto/github.com/milaboratory/pl/plapi/plapiproto/base_types';\nimport type {\n FieldData,\n FieldStatus,\n OptionalResourceId,\n FieldType,\n ResourceData,\n ResourceId,\n ResourceKind,\n} from './types';\nimport {\n NullResourceId,\n} from './types';\nimport { assertNever, notEmpty } from '@milaboratories/ts-helpers';\nimport { throwPlNotFoundError } from './errors';\n\nconst ResourceErrorField = 'resourceError';\n\nfunction resourceIsDeleted(proto: Resource): boolean {\n return proto.deletedTime !== undefined && proto.deletedTime.seconds !== 0n;\n}\n\n/** Throws \"native\" pl not found error, if resource is marked as deleted. */\nexport function protoToResource(proto: Resource): ResourceData {\n if (resourceIsDeleted(proto)) throwPlNotFoundError('resource deleted');\n return {\n id: proto.id as ResourceId,\n originalResourceId: proto.originalResourceId as OptionalResourceId,\n type: notEmpty(proto.type),\n data: proto.data,\n inputsLocked: proto.inputsLocked,\n outputsLocked: proto.outputsLocked,\n resourceReady: proto.resourceReady,\n kind: protoToResourceKind(proto.kind),\n error: protoToError(proto),\n final: proto.isFinal,\n fields: proto.fields?.filter((f) => f.id!.fieldName !== ResourceErrorField).map(protoToField),\n };\n}\n\nfunction protoToResourceKind(proto: Resource_Kind): ResourceKind {\n switch (proto) {\n case Resource_Kind.STRUCTURAL:\n return 'Structural';\n case Resource_Kind.VALUE:\n return 'Value';\n }\n\n throw new Error('invalid ResourceKind: ' + proto);\n}\n\nfunction protoToError(proto: Resource): OptionalResourceId {\n const f = proto.fields.find((f) => f?.id?.fieldName === ResourceErrorField);\n return (f?.error ?? NullResourceId) as OptionalResourceId;\n}\n\nexport function protoToField(proto: Field): FieldData {\n return {\n name: notEmpty(proto.id?.fieldName),\n type: protoToFieldType(proto.type),\n status: protoToFieldStatus(proto.valueStatus),\n value: proto.value as OptionalResourceId,\n error: proto.error as OptionalResourceId,\n valueIsFinal: proto.valueIsFinal,\n };\n}\n\nfunction protoToFieldType(proto: GrpcFieldType): FieldType {\n switch (proto) {\n case GrpcFieldType.INPUT:\n return 'Input';\n case GrpcFieldType.OUTPUT:\n return 'Output';\n case GrpcFieldType.SERVICE:\n return 'Service';\n case GrpcFieldType.ONE_TIME_WRITABLE:\n return 'OTW';\n case GrpcFieldType.DYNAMIC:\n return 'Dynamic';\n case GrpcFieldType.MULTIPLE_TIMES_WRITABLE:\n return 'MTW';\n default:\n throw new Error('invalid FieldType: ' + proto);\n }\n}\n\nfunction protoToFieldStatus(proto: Field_ValueStatus): FieldStatus {\n switch (proto) {\n case Field_ValueStatus.EMPTY:\n return 'Empty';\n case Field_ValueStatus.ASSIGNED:\n return 'Assigned';\n case Field_ValueStatus.RESOLVED:\n return 'Resolved';\n default:\n throw new Error('invalid FieldStatus: ' + proto);\n }\n}\n\nexport function fieldTypeToProto(type: FieldType): GrpcFieldType {\n switch (type) {\n case 'Input':\n return GrpcFieldType.INPUT;\n case 'Output':\n return GrpcFieldType.OUTPUT;\n case 'Dynamic':\n return GrpcFieldType.DYNAMIC;\n case 'Service':\n return GrpcFieldType.SERVICE;\n case 'MTW':\n return GrpcFieldType.MULTIPLE_TIMES_WRITABLE;\n case 'OTW':\n return GrpcFieldType.ONE_TIME_WRITABLE;\n default:\n return assertNever(type);\n }\n}\n","export type TxStat = {\n txCount: number;\n timeMs: number;\n\n rootsCreated: number;\n structsCreated: number;\n structsCreatedDataBytes: number;\n ephemeralsCreated: number;\n ephemeralsCreatedDataBytes: number;\n valuesCreated: number;\n valuesCreatedDataBytes: number;\n\n kvSetRequests: number;\n kvSetBytes: number;\n\n inputsLocked: number;\n outputsLocked: number;\n fieldsCreated: number;\n fieldsSet: number;\n fieldsGet: number;\n\n rGetDataCacheHits: number;\n rGetDataCacheFields: number;\n rGetDataCacheBytes: number;\n rGetDataNetRequests: number;\n rGetDataNetFields: number;\n rGetDataNetBytes: number;\n\n kvListRequests: number;\n kvListEntries: number;\n kvListBytes: number;\n\n kvGetRequests: number;\n kvGetBytes: number;\n};\n\nexport type TxStatWithoutTime = Omit<TxStat, 'timeMs'>;\n\nexport function initialTxStatWithoutTime(): TxStatWithoutTime {\n return {\n txCount: 0,\n rootsCreated: 0,\n structsCreated: 0,\n structsCreatedDataBytes: 0,\n ephemeralsCreated: 0,\n ephemeralsCreatedDataBytes: 0,\n valuesCreated: 0,\n valuesCreatedDataBytes: 0,\n kvSetRequests: 0,\n kvSetBytes: 0,\n inputsLocked: 0,\n outputsLocked: 0,\n fieldsCreated: 0,\n fieldsSet: 0,\n fieldsGet: 0,\n rGetDataCacheHits: 0,\n rGetDataCacheFields: 0,\n rGetDataCacheBytes: 0,\n rGetDataNetRequests: 0,\n rGetDataNetFields: 0,\n rGetDataNetBytes: 0,\n kvListRequests: 0,\n kvListEntries: 0,\n kvListBytes: 0,\n kvGetRequests: 0,\n kvGetBytes: 0,\n };\n}\nexport function initialTxStat(): TxStat {\n return {\n ...initialTxStatWithoutTime(),\n timeMs: 0,\n };\n}\n\nexport function addStat(a: TxStat, b: TxStat): TxStat {\n return {\n txCount: a.txCount + b.txCount,\n timeMs: a.timeMs + b.timeMs,\n rootsCreated: a.rootsCreated + b.rootsCreated,\n structsCreated: a.structsCreated + b.structsCreated,\n structsCreatedDataBytes: a.structsCreatedDataBytes + b.structsCreatedDataBytes,\n ephemeralsCreated: a.ephemeralsCreated + b.ephemeralsCreated,\n ephemeralsCreatedDataBytes: a.ephemeralsCreatedDataBytes + b.ephemeralsCreatedDataBytes,\n valuesCreated: a.valuesCreated + b.valuesCreated,\n valuesCreatedDataBytes: a.valuesCreatedDataBytes + b.valuesCreatedDataBytes,\n kvSetRequests: a.kvSetRequests + b.kvSetRequests,\n kvSetBytes: a.kvSetBytes + b.kvSetBytes,\n inputsLocked: a.inputsLocked + b.inputsLocked,\n outputsLocked: a.outputsLocked + b.outputsLocked,\n fieldsCreated: a.fieldsCreated + b.fieldsCreated,\n fieldsSet: a.fieldsSet + b.fieldsSet,\n fieldsGet: a.fieldsGet + b.fieldsGet,\n rGetDataCacheHits: a.rGetDataCacheHits + b.rGetDataCacheHits,\n rGetDataCacheFields: a.rGetDataCacheFields + b.rGetDataCacheFields,\n rGetDataCacheBytes: a.rGetDataCacheBytes + b.rGetDataCacheBytes,\n rGetDataNetRequests: a.rGetDataNetRequests + b.rGetDataNetRequests,\n rGetDataNetFields: a.rGetDataNetFields + b.rGetDataNetFields,\n rGetDataNetBytes: a.rGetDataNetBytes + b.rGetDataNetBytes,\n kvListRequests: a.kvListRequests + b.kvListRequests,\n kvListEntries: a.kvListEntries + b.kvListEntries,\n kvListBytes: a.kvListBytes + b.kvListBytes,\n kvGetRequests: a.kvGetRequests + b.kvGetRequests,\n kvGetBytes: a.kvGetBytes + b.kvGetBytes,\n };\n}\n\nexport type AllTxStat = {\n committed: TxStat;\n conflict: TxStat;\n error: TxStat;\n};\n","import type { ResourceType } from './types';\n\nexport type ErrorResourceData = {\n message: string;\n};\n\nexport const ErrorResourceType: ResourceType = {\n name: 'json/resourceError',\n version: '1',\n};\n","// TODO: fix this\n/* eslint-disable no-prototype-builtins */\nimport type {\n AnyResourceId,\n LocalResourceId,\n OptionalResourceId,\n BasicResourceData,\n FieldData,\n FieldType,\n ResourceData,\n ResourceId,\n ResourceType,\n FutureFieldType } from './types';\nimport {\n createLocalResourceId,\n ensureResourceIdNotNull,\n MaxTxId,\n isLocalResourceId,\n extractBasicResourceData,\n isNullResourceId,\n} from './types';\nimport type {\n ClientMessageRequest,\n LLPlTransaction,\n OneOfKind,\n ServerMessageResponse,\n} from './ll_transaction';\nimport { TxAPI_Open_Request_WritableTx } from '../proto/github.com/milaboratory/pl/plapi/plapiproto/api';\nimport type { NonUndefined } from 'utility-types';\nimport { toBytes } from '../util/util';\nimport { fieldTypeToProto, protoToField, protoToResource } from './type_conversion';\nimport { canonicalJsonBytes, canonicalJsonGzBytes, deepFreeze, notEmpty } from '@milaboratories/ts-helpers';\nimport { isNotFoundError } from './errors';\nimport type { FinalResourceDataPredicate } from './final';\nimport type { LRUCache } from 'lru-cache';\nimport type { ResourceDataCacheRecord } from './cache';\nimport type { TxStat } from './stat';\nimport { initialTxStatWithoutTime } from './stat';\nimport type { ErrorResourceData } from './error_resource';\nimport { ErrorResourceType } from './error_resource';\nimport { JsonGzObject, JsonObject } from '../helpers/pl';\n\n/** Reference to resource, used only within transaction */\nexport interface ResourceRef {\n /** Global resource id of newly created resources, become available only\n * after response for the corresponding creation request is received. */\n readonly globalId: Promise<ResourceId>;\n\n /** Transaction-local resource id is assigned right after resource creation\n * request is sent, and can be used right away */\n readonly localId: LocalResourceId;\n}\n\n/** Key-Value pair from resource-attached KV storage */\nexport interface KeyValue {\n key: string;\n value: Uint8Array;\n}\n\n/** Key-Value pair from resource-attached KV storage */\nexport interface KeyValueString {\n key: string;\n value: string;\n}\n\ninterface _FieldId<RId> {\n /** Parent resource id */\n resourceId: RId;\n /** Field name */\n fieldName: string;\n}\n\nexport type FieldId = _FieldId<ResourceId>;\nexport type FieldRef = _FieldId<ResourceRef>;\nexport type LocalFieldId = _FieldId<LocalResourceId>;\nexport type AnyFieldId = FieldId | LocalFieldId;\n\nexport type AnyResourceRef = ResourceRef | ResourceId;\nexport type AnyFieldRef = _FieldId<AnyResourceRef>; // FieldRef | FieldId\nexport type AnyRef = AnyResourceRef | AnyFieldRef;\n\nexport function isField(ref: AnyRef): ref is AnyFieldRef {\n return ref.hasOwnProperty('resourceId') && ref.hasOwnProperty('fieldName');\n}\n\nexport function isResource(ref: AnyRef): ref is AnyResourceRef {\n return (\n typeof ref === 'bigint' || (ref.hasOwnProperty('globalId') && ref.hasOwnProperty('localId'))\n );\n}\n\nexport function isResourceId(ref: AnyRef): ref is ResourceId {\n return typeof ref === 'bigint' && !isLocalResourceId(ref) && !isNullResourceId(ref);\n}\n\nexport function isFieldRef(ref: AnyFieldRef): ref is FieldRef {\n return isResourceRef(ref.resourceId);\n}\n\nexport function isResourceRef(ref: AnyResourceRef): ref is ResourceRef {\n return ref.hasOwnProperty('globalId') && ref.hasOwnProperty('localId');\n}\n\nexport function toFieldId(ref: AnyFieldRef): AnyFieldId {\n if (isFieldRef(ref)) return { resourceId: ref.resourceId.localId, fieldName: ref.fieldName };\n else return ref as FieldId;\n}\n\nexport async function toGlobalFieldId(ref: AnyFieldRef): Promise<FieldId> {\n if (isFieldRef(ref))\n return { resourceId: await ref.resourceId.globalId, fieldName: ref.fieldName };\n else return ref as FieldId;\n}\n\nexport function toResourceId(ref: AnyResourceRef): AnyResourceId {\n if (isResourceRef(ref)) return ref.localId;\n else return ref;\n}\n\nexport async function toGlobalResourceId(ref: AnyResourceRef): Promise<ResourceId> {\n if (isResourceRef(ref)) return await ref.globalId;\n else return ref;\n}\n\nexport function field(resourceId: AnyResourceRef, fieldName: string): AnyFieldRef {\n return { resourceId, fieldName };\n}\n\n/** If transaction commit failed due to write conflicts */\nexport class TxCommitConflict extends Error {\n name = 'TxCommitConflict';\n}\n\nasync function notFoundToUndefined<T>(cb: () => Promise<T>): Promise<T | undefined> {\n try {\n return await cb();\n } catch (e) {\n if (isNotFoundError(e)) return undefined;\n throw e;\n }\n}\n\n/**\n * Each platform transaction has 3 stages:\n * - initialization (txOpen message -> txInfo response)\n * - communication (create resources, fields, references and so on)\n * - finalization (txCommit or txDiscard message)\n *\n * This class encapsulates finalization stage and provides ready-to-communication transaction object.\n * */\nexport class PlTransaction {\n private readonly globalTxId: Promise<bigint>;\n private readonly localTxId: number = PlTransaction.nextLocalTxId();\n\n /** Used in caching */\n private readonly txOpenTimestamp = Date.now();\n\n private localResourceIdCounter = 0;\n\n /** Store logical tx open / closed state to prevent invalid sequence of requests.\n * True means output stream was completed.\n * Contract: there must be no async operations between setting this field to true and sending complete signal to stream. */\n private _completed = false;\n\n /** Void operation futures are placed into this pool, and corresponding method return immediately.\n * This is done to save number of round-trips. Next operation producing result will also await those\n * pending ops, to throw any pending errors. */\n private pendingVoidOps: Promise<void>[] = [];\n\n private globalTxIdWasAwaited: boolean = false;\n\n private readonly _startTime = Date.now();\n private readonly _stat = initialTxStatWithoutTime();\n public get stat(): TxStat {\n return {\n ...this._stat,\n timeMs: Date.now() - this._startTime,\n };\n }\n\n constructor(\n private readonly ll: LLPlTransaction,\n public readonly name: string,\n public readonly writable: boolean,\n private readonly _clientRoot: OptionalResourceId,\n private readonly finalPredicate: FinalResourceDataPredicate,\n private readonly sharedResourceDataCache: LRUCache<ResourceId, ResourceDataCacheRecord>,\n private readonly enableFormattedErrors: boolean = false,\n ) {\n // initiating transaction\n this.globalTxId = this.sendSingleAndParse(\n {\n oneofKind: 'txOpen',\n txOpen: {\n name,\n enableFormattedErrors,\n writable: writable\n ? TxAPI_Open_Request_WritableTx.WRITABLE\n : TxAPI_Open_Request_WritableTx.NOT_WRITABLE,\n },\n },\n (r) => notEmpty(r.txOpen.tx?.id),\n );\n\n // To avoid floating promise\n this.globalTxId.catch((err) => {\n if (!this.globalTxIdWasAwaited) {\n console.warn(err);\n }\n });\n\n // Adding stats\n this._stat.txCount++;\n }\n\n private async drainAndAwaitPendingOps(): Promise<void> {\n if (this.pendingVoidOps.length === 0) return;\n\n // drain pending operations into temp array\n const pending = this.pendingVoidOps;\n this.pendingVoidOps = [];\n // awaiting these pending operations first, to catch any errors\n await Promise.all(pending);\n }\n\n private async sendSingleAndParse<Kind extends NonUndefined<ClientMessageRequest['oneofKind']>, T>(\n r: OneOfKind<ClientMessageRequest, Kind>,\n parser: (resp: OneOfKind<ServerMessageResponse, Kind>) => T,\n ): Promise<T> {\n // pushing operation packet to server\n const rawResponsePromise = this.ll.send(r, false);\n\n await this.drainAndAwaitPendingOps();\n // awaiting our result, and parsing the response\n return parser(await rawResponsePromise);\n }\n\n private async sendMultiAndParse<Kind extends NonUndefined<ClientMessageRequest['oneofKind']>, T>(\n r: OneOfKind<ClientMessageRequest, Kind>,\n parser: (resp: OneOfKind<ServerMessageResponse, Kind>[]) => T,\n ): Promise<T> {\n // pushing operation packet to server\n const rawResponsePromise = this.ll.send(r, true);\n\n await this.drainAndAwaitPendingOps();\n // awaiting our result, and parsing the response\n return parser(await rawResponsePromise);\n }\n\n private async sendVoidSync<Kind extends NonUndefined<ClientMessageRequest['oneofKind']>>(\n r: OneOfKind<ClientMessageRequest, Kind>,\n ): Promise<void> {\n await this.ll.send(r, false);\n }\n\n /** Requests sent with this method should never produce recoverable errors */\n private sendVoidAsync<Kind extends NonUndefined<ClientMessageRequest['oneofKind']>>(\n r: OneOfKind<ClientMessageRequest, Kind>,\n ): void {\n this.pendingVoidOps.push(this.sendVoidSync(r));\n }\n\n private checkTxOpen() {\n if (this._completed) throw new Error('Transaction already closed');\n }\n\n public get completed() {\n return this._completed;\n }\n\n /** Commit & closes transaction. {@link TxCommitConflict} is thrown on\n * commit conflicts. */\n public async commit() {\n this.checkTxOpen();\n\n // tx will accept no requests after this one\n this._completed = true;\n\n if (!this.writable) {\n // no need to explicitly commit or reject read-only tx\n const completeResult = this.ll.complete();\n await this.drainAndAwaitPendingOps();\n await completeResult;\n await this.ll.await();\n } else {\n // @TODO, also floating promises\n const commitResponse = this.sendSingleAndParse(\n { oneofKind: 'txCommit', txCommit: {} },\n (r) => r.txCommit.success,\n );\n\n // send closing frame right after commit to save some time on round-trips\n const completeResult = this.ll.complete();\n\n // now when we pushed all packets into the stream, we should wait for any\n // pending void operations from before, to catch any errors\n await this.drainAndAwaitPendingOps();\n\n if (!(await commitResponse)) throw new TxCommitConflict();\n\n await completeResult;\n\n // await event-loop completion\n await this.ll.await();\n }\n }\n\n public async discard() {\n this.checkTxOpen();\n\n // tx will accept no requests after this one\n this._completed = true;\n\n const discardResponse = this.sendVoidSync({ oneofKind: 'txDiscard', txDiscard: {} });\n // send closing frame right after commit to save some time on round-trips\n const completeResult = this.ll.complete();\n\n // now when we pushed all packets into the stream, we should wait for any\n // pending void operations from before, to catch any errors\n await this.drainAndAwaitPendingOps();\n\n await discardResponse;\n await completeResult;\n await this.ll.await();\n }\n\n //\n // Main tx methods\n //\n\n public get clientRoot(): ResourceId {\n return ensureResourceIdNotNull(this._clientRoot);\n }\n\n //\n // Resources\n //\n\n public createSingleton(\n name: string,\n type: ResourceType,\n errorIfExists: boolean = false,\n ): ResourceRef {\n const localId = this.nextLocalResourceId(false);\n\n const globalId = this.sendSingleAndParse(\n {\n oneofKind: 'resourceCreateSingleton',\n resourceCreateSingleton: {\n type,\n id: localId,\n data: Buffer.from(name),\n errorIfExists,\n },\n },\n (r) => r.resourceCreateSingleton.resourceId as ResourceId,\n );\n\n return { globalId, localId };\n }\n\n public async getSingleton(name: string, loadFields: true): Promise<ResourceData>;\n public async getSingleton(name: string, loadFields: false): Promise<BasicResourceData>;\n public async getSingleton(\n name: string,\n loadFields: boolean = true,\n ): Promise<BasicResourceData | ResourceData> {\n return await this.sendSingleAndParse(\n {\n oneofKind: 'resourceGetSingleton',\n resourceGetSingleton: {\n data: Buffer.from(name),\n loadFields,\n },\n },\n (r) => protoToResource(notEmpty(r.resourceGetSingleton.resource)),\n );\n }\n\n private createResource<Kind extends NonUndefined<ClientMessageRequest['oneofKind']>>(\n root: boolean,\n req: (localId: LocalResourceId) => OneOfKind<ClientMessageRequest, Kind>,\n parser: (resp: OneOfKind<ServerMessageResponse, Kind>) => bigint,\n ): ResourceRef {\n const localId = this.nextLocalResourceId(root);\n\n const globalId = this.sendSingleAndParse(req(localId), (r) => parser(r) as ResourceId);\n\n return { globalId, localId };\n }\n\n public createRoot(type: ResourceType): ResourceRef {\n this._stat.rootsCreated++;\n return this.createResource(\n true,\n (localId) => ({ oneofKind: 'resourceCreateRoot', resourceCreateRoot: { type, id: localId } }),\n (r) => r.resourceCreateRoot.resourceId,\n );\n }\n\n public createStruct(type: ResourceType, data?: Uint8Array | string): ResourceRef {\n this._stat.structsCreated++;\n this._stat.structsCreatedDataBytes += data?.length ?? 0;\n return this.createResource(\n false,\n (localId) => ({\n oneofKind: 'resourceCreateStruct',\n resourceCreateStruct: {\n type,\n id: localId,\n data: data === undefined ? undefined : typeof data === 'string' ? Buffer.from(data) : data,\n },\n }),\n (r) => r.resourceCreateStruct.resourceId,\n );\n }\n\n public createEphemeral(type: ResourceType, data?: Uint8Array | string): ResourceRef {\n this._stat.ephemeralsCreated++;\n this._stat.ephemeralsCreatedDataBytes += data?.length ?? 0;\n return this.createResource(\n false,\n (localId) => ({\n oneofKind: 'resourceCreateEphemeral',\n resourceCreateEphemeral: {\n type,\n id: localId,\n data: data === undefined ? undefined : typeof data === 'string' ? Buffer.from(data) : data,\n },\n }),\n (r) => r.resourceCreateEphemeral.resourceId,\n );\n }\n\n public createValue(\n type: ResourceType,\n data: Uint8Array | string,\n errorIfExists: boolean = false,\n ): ResourceRef {\n this._stat.valuesCreated++;\n this._stat.valuesCreatedDataBytes += data?.length ?? 0;\n return this.createResource(\n false,\n (localId) => ({\n oneofKind: 'resourceCreateValue',\n resourceCreateValue: {\n type,\n id: localId,\n data: typeof data === 'string' ? Buffer.from(data) : data,\n errorIfExists,\n },\n }),\n (r) => r.resourceCreateValue.resourceId,\n );\n }\n\n public createJsonValue(data: unknown): ResourceRef {\n const jsonData = canonicalJsonBytes(data);\n return this.createValue(JsonObject, jsonData, false);\n }\n\n public createJsonGzValue(data: unknown, minSizeToGzip: number | undefined = 16_384): ResourceRef {\n const { data: jsonData, isGzipped } = canonicalJsonGzBytes(data, minSizeToGzip);\n return this.createValue(isGzipped ? JsonGzObject : JsonObject, jsonData, false);\n }\n\n public createError(message: string): ResourceRef {\n return this.createValue(ErrorResourceType, JSON.stringify({ message } satisfies ErrorResourceData));\n }\n\n public setResourceName(name: string, rId: AnyResourceRef): void {\n this.sendVoidAsync({\n oneofKind: 'resourceNameSet',\n resourceNameSet: { resourceId: toResourceId(rId), name },\n });\n }\n\n public deleteResourceName(name: string): void {\n this.sendVoidAsync({ oneofKind: 'resourceNameDelete', resourceNameDelete: { name } });\n }\n\n public async getResourceByName(name: string): Promise<ResourceId> {\n return await this.sendSingleAndParse(\n { oneofKind: 'resourceNameGet', resourceNameGet: { name } },\n (r) => ensureResourceIdNotNull(r.resourceNameGet.resourceId as OptionalResourceId),\n );\n }\n\n public async checkResourceNameExists(name: string): Promise<boolean> {\n return await this.sendSingleAndParse(\n { oneofKind: 'resourceNameExists', resourceNameExists: { name } },\n (r) => r.resourceNameExists.exists,\n );\n }\n\n public removeResource(rId: ResourceId): void {\n this.sendVoidAsync({ oneofKind: 'resourceRemove', resourceRemove: { id: rId } });\n }\n\n public async resourceExists(rId: ResourceId): Promise<boolean> {\n return await this.sendSingleAndParse(\n { oneofKind: 'resourceExists', resourceExists: { resourceId: rId } },\n (r) => r.resourceExists.exists,\n );\n }\n\n /** This method may return stale resource state from cache if resource was removed */\n public async getResourceData(rId: AnyResourceRef, loadFields: true): Promise<ResourceData>;\n /** This method may return stale resource state from cache if resource was removed */\n public async getResourceData(rId: AnyResourceRef, loadFields: false): Promise<BasicResourceData>;\n /** This method may return stale resource state from cache if resource was removed */\n public async getResourceData(\n rId: AnyResourceRef,\n loadFields: boolean\n ): Promise<BasicResourceData | ResourceData>;\n /** This method may return stale resource state from cache if ignoreCache == false if resource was removed */\n public async getResourceData(\n rId: AnyResourceRef,\n loadFields: true,\n ignoreCache: boolean\n ): Promise<ResourceData>;\n /** This method may return stale resource state from cache if ignoreCache == false if resource was removed */\n public async getResourceData(\n rId: AnyResourceRef,\n loadFields: false,\n ignoreCache: boolean\n ): Promise<BasicResourceData>;\n /** This method may return stale resource state from cache if ignoreCache == false if resource was removed */\n public async getResourceData(\n rId: AnyResourceRef,\n loadFields: boolean,\n ignoreCache: boolean\n ): Promise<BasicResourceData | ResourceData>;\n public async getResourceData(\n rId: AnyResourceRef,\n loadFields: boolean = true,\n ignoreCache: boolean = false,\n ): Promise<BasicResourceData | ResourceData> {\n if (!ignoreCache && !isResourceRef(rId) && !isLocalResourceId(rId)) {\n // checking if we can return result from cache\n const fromCache = this.sharedResourceDataCache.get(rId);\n if (fromCache && fromCache.cacheTxOpenTimestamp < this.txOpenTimestamp) {\n if (!loadFields) {\n this._stat.rGetDataCacheHits++;\n this._stat.rGetDataCacheBytes += fromCache.basicData.data?.length ?? 0;\n return fromCache.basicData;\n } else if (fromCache.data) {\n this._stat.rGetDataCacheHits++;\n this._stat.rGetDataCacheBytes += fromCache.basicData.data?.length ?? 0;\n this._stat.rGetDataCacheFields += fromCache.data.fields.length;\n return fromCache.data;\n }\n }\n }\n\n const result = await this.sendSingleAndParse(\n {\n oneofKind: 'resourceGet',\n resourceGet: { resourceId: toResourceId(rId), loadFields: loadFields },\n },\n (r) => protoToResource(notEmpty(r.resourceGet.resource)),\n );\n\n this._stat.rGetDataNetRequests++;\n this._stat.rGetDataNetBytes += result.data?.length ?? 0;\n this._stat.rGetDataNetFields += result.fields.length;\n\n // we will cache only final resource data states\n // caching result even if we were ignore the cache\n if (!isResourceRef(rId) && !isLocalResourceId(rId) && this.finalPredicate(result)) {\n deepFreeze(result);\n const fromCache = this.sharedResourceDataCache.get(rId);\n if (fromCache) {\n if (loadFields && !fromCache.data) {\n fromCache.data = result;\n // updating timestamp becuse we updated the record\n fromCache.cacheTxOpenTimestamp = this.txOpenTimestamp;\n }\n } else {\n const basicData = extractBasicResourceData(result);\n deepFreeze(basicData);\n if (loadFields)\n this.sharedResourceDataCache.set(rId, {\n basicData,\n data: result,\n cacheTxOpenTimestamp: this.txOpenTimestamp,\n });\n else\n this.sharedResourceDataCache.set(rId, {\n basicData,\n data: undefined,\n cacheTxOpenTimestamp: this.txOpenTimestamp,\n });\n }\n }\n\n return result;\n }\n\n public async getResourceDataIfExists(\n rId: AnyResourceRef,\n loadFields: true\n ): Promise<ResourceData | undefined>;\n public async getResourceDataIfExists(\n rId: AnyResourceRef,\n loadFields: false\n ): Promise<BasicResourceData | undefined>;\n public async getResourceDataIfExists(\n rId: AnyResourceRef,\n loadFields: boolean\n ): Promise<BasicResourceData | ResourceData | undefined>;\n public async getResourceDataIfExists(\n rId: AnyResourceRef,\n loadFields: boolean = true,\n ): Promise<BasicResourceData | ResourceData | undefined> {\n // calling this mehtod will ignore cache, because user intention is to detect resource absence\n // which cache will prevent\n const result = await notFoundToUndefined(\n async () => await this.getResourceData(rId, loadFields, true),\n );\n\n // cleaning cache record if resorce was removed from the db\n if (result === undefined && !isResourceRef(rId) && !isLocalResourceId(rId))\n this.sharedResourceDataCache.delete(rId);\n\n return result;\n }\n\n /**\n * Inform platform that resource will not get any new input fields.\n * This is required, when client creates resource without schema and wants\n * controller to start calculations.\n * Most controllers will not start calculations even when all inputs\n * have their values, if inputs list is not locked.\n */\n public lockInputs(rId: AnyResourceRef): void {\n this._stat.inputsLocked++;\n this.sendVoidAsync({\n oneofKind: 'resourceLockInputs',\n resourceLockInputs: { resourceId: toResourceId(rId) },\n });\n }\n\n /**\n * Inform platform that resource will not get any new output fields.\n * This is required for resource to pass deduplication.\n */\n public lockOutputs(rId: AnyResourceRef): void {\n this._stat.outputsLocked++;\n this.sendVoidAsync({\n oneofKind: 'resourceLockOutputs',\n resourceLockOutputs: { resourceId: toResourceId(rId) },\n });\n }\n\n public lock(rID: AnyResourceRef): void {\n this.lockInputs(rID);\n this.lockOutputs(rID);\n }\n\n public setResourceError(rId: AnyResourceRef, ref: AnyResourceRef): void {\n this.sendVoidAsync({\n oneofKind: 'resourceSetError',\n resourceSetError: { resourceId: toResourceId(rId), errorResourceId: toResourceId(ref) },\n });\n }\n\n //\n // Fields\n //\n\n public createField(fId: AnyFieldRef, fieldType: FieldType, value?: AnyRef): void {\n this._stat.fieldsCreated++;\n this.sendVoidAsync({\n oneofKind: 'fieldCreate',\n fieldCreate: { type: fieldTypeToProto(fieldType), id: toFieldId(fId) },\n });\n if (value !== undefined) this.setField(fId, value);\n }\n\n public async fieldExists(fId: AnyFieldRef): Promise<boolean> {\n return await this.sendSingleAndParse(\n {\n oneofKind: 'fieldExists',\n fieldExists: { field: toFieldId(fId) },\n },\n (r) => r.fieldExists.exists,\n );\n }\n\n public setField(fId: AnyFieldRef, ref: AnyRef): void {\n this._stat.fieldsSet++;\n if (isResource(ref))\n this.sendVoidAsync({\n oneofKind: 'fieldSet',\n fieldSet: {\n field: toFieldId(fId),\n value: {\n resourceId: toResourceId(ref),\n fieldName: '', // default value, read as undefined\n },\n },\n });\n else\n this.sendVoidAsync({\n oneofKind: 'fieldSet',\n fieldSet: {\n field: toFieldId(fId),\n value: toFieldId(ref),\n },\n });\n }\n\n public setFieldError(fId: AnyFieldRef, ref: AnyResourceRef): void {\n this._stat.fieldsSet++;\n this.sendVoidAsync({\n oneofKind: 'fieldSetError',\n fieldSetError: { field: toFieldId(fId), errResourceId: toResourceId(ref) },\n });\n }\n\n public async getField(fId: AnyFieldRef): Promise<FieldData> {\n this._stat.fieldsGet++;\n return await this.sendSingleAndParse(\n { oneofKind: 'fieldGet', fieldGet: { field: toFieldId(fId) } },\n (r) => protoToField(notEmpty(r.fieldGet.field)),\n );\n }\n\n public async getFieldIfExists(fId: AnyFieldRef): Promise<FieldData | undefined> {\n return notFoundToUndefined(async () => await this.getField(fId));\n }\n\n public resetField(fId: AnyFieldRef): void {\n this.sendVoidAsync({ oneofKind: 'fieldReset', fieldReset: { field: toFieldId(fId) } });\n }\n\n public removeField(fId: AnyFieldRef): void {\n this.sendVoidAsync({ oneofKind: 'fieldRemove', fieldRemove: { field: toFieldId(fId) } });\n }\n\n //\n // KV\n //\n\n public async listKeyValues(rId: AnyResourceRef): Promise<KeyValue[]> {\n const result = await this.sendMultiAndParse(\n {\n oneofKind: 'resourceKeyValueList',\n resourceKeyValueList: { resourceId: toResourceId(rId), startFrom: '', limit: 0 },\n },\n (r) => r.map((e) => e.resourceKeyValueList.record!),\n );\n\n this._stat.kvListRequests++;\n this._stat.kvListEntries += result.length;\n for (const kv of result) this._stat.kvListBytes += kv.key.length + kv.value.length;\n\n return result;\n }\n\n public async listKeyValuesString(rId: AnyResourceRef): Promise<KeyValueString[]> {\n return (await this.listKeyValues(rId)).map(({ key, value }) => ({\n key,\n value: Buffer.from(value).toString(),\n }));\n }\n\n public async listKeyValuesIfResourceExists(rId: AnyResourceRef): Promise<KeyValue[] | undefined> {\n return notFoundToUndefined(async () => await this.listKeyValues(rId));\n }\n\n public async listKeyValuesStringIfResourceExists(\n rId: AnyResourceRef,\n ): Promise<KeyValueString[] | undefined> {\n return notFoundToUndefined(async () => await this.listKeyValuesString(rId));\n }\n\n public setKValue(rId: AnyResourceRef, key: string, value: Uint8Array | string): void {\n this._stat.kvSetRequests++;\n this._stat.kvSetBytes++;\n this.sendVoidAsync({\n oneofKind: 'resourceKeyValueSet',\n resourceKeyValueSet: {\n resourceId: toResourceId(rId),\n key,\n value: toBytes(value),\n },\n });\n }\n\n public deleteKValue(rId: AnyResourceRef, key: string): void {\n this.sendVoidAsync({\n oneofKind: 'resourceKeyValueDelete',\n resourceKeyValueDelete: {\n resourceId: toResourceId(rId),\n key,\n },\n });\n }\n\n public async getKValue(rId: AnyResourceRef, key: string): Promise<Uint8Array> {\n const result = await this.sendSingleAndParse(\n {\n oneofKind: 'resourceKeyValueGet',\n resourceKeyValueGet: { resourceId: toResourceId(rId), key },\n },\n (r) => r.resourceKeyValueGet.value,\n );\n\n this._stat.kvGetRequests++;\n this._stat.kvGetBytes += result.length;\n\n return result;\n }\n\n public async getKValueString(rId: AnyResourceRef, key: string): Promise<string> {\n return Buffer.from(await this.getKValue(rId, key)).toString();\n }\n\n public async getKValueJson<T>(rId: AnyResourceRef, key: string): Promise<T> {\n return JSON.parse(await this.getKValueString(rId, key)) as T;\n }\n\n public async getKValueIfExists(\n rId: AnyResourceRef,\n key: string,\n ): Promise<Uint8Array | undefined> {\n const result = await this.sendSingleAndParse(\n {\n oneofKind: 'resourceKeyValueGetIfExists',\n resourceKeyValueGetIfExists: { resourceId: toResourceId(rId), key },\n },\n (r) =>\n r.resourceKeyValueGetIfExists.exists ? r.resourceKeyValueGetIfExists.value : undefined,\n );\n\n this._stat.kvGetRequests++;\n this._stat.kvGetBytes += result?.length ?? 0;\n\n return result;\n }\n\n public async getKValueStringIfExists(\n rId: AnyResourceRef,\n key: string,\n ): Promise<string | undefined> {\n const data = await this.getKValueIfExists(rId, key);\n return data === undefined ? undefined : Buffer.from(data).toString();\n }\n\n public async getKValueJsonIfExists<T>(rId: AnyResourceRef, key: string): Promise<T | undefined> {\n const str = await this.getKValueString(rId, key);\n if (str === undefined) return undefined;\n return JSON.parse(str) as T;\n }\n\n //\n // Cache\n //\n // TODO\n\n //\n // High level ops\n //\n\n /** Resolves existing or create first level resource from */\n public getFutureFieldValue(rId: AnyRef, fieldName: string, fieldType: FutureFieldType): FieldRef {\n const data = Buffer.from(JSON.stringify({ fieldName, fieldType }));\n const getFieldResource = this.createEphemeral({ name: 'json/getField', version: '1' }, data);\n this.setField({ resourceId: getFieldResource, fieldName: 'resource' }, rId);\n return { resourceId: getFieldResource, fieldName: 'result' };\n }\n\n //\n // Technical\n //\n\n public async getGlobalTxId() {\n this.globalTxIdWasAwaited = true;\n return await this.globalTxId;\n }\n\n /** Closes output event stream */\n public async complete() {\n if (this._completed) return;\n this._completed = true;\n const completeResult = this.ll.complete();\n await this.drainAndAwaitPendingOps();\n await completeResult;\n }\n\n /** Await incoming message loop termination and throw\n * any leftover errors if it was unsuccessful */\n public async await() {\n await this.ll.await();\n }\n\n //\n // Helpers\n //\n\n private nextLocalResourceId(root: boolean): LocalResourceId {\n return createLocalResourceId(root, ++this.localResourceIdCounter, this.localTxId);\n }\n\n private static localTxIdCounter = 0;\n\n private static nextLocalTxId() {\n PlTransaction.localTxIdCounter++;\n if (PlTransaction.localTxIdCounter === MaxTxId) PlTransaction.localTxIdCounter = 1;\n return PlTransaction.localTxIdCounter;\n }\n}\n","/**\n * @packageDocumentation\n *\n * This file is exported under Pl \"namespace\" to the client users.\n *\n * It defines well known pl types, and methods to manipulate them.\n *\n */\n\nimport type { FutureFieldType, ResourceType } from '../core/types';\nimport type { AnyRef, FieldRef, PlTransaction, ResourceRef } from '../core/transaction';\nimport { field } from '../core/transaction';\n\nfunction rt(name: string, version: string): ResourceType {\n return { name, version };\n}\n\nexport const ClientRoot = rt('ClientRoot', '1');\n\nexport const StructTestResource = rt('StructTest', '1');\nexport const ValueTestResource = rt('ValueTest', '1');\n\nexport const JsonString = rt('json/string', '1');\nexport const JsonBool = rt('json/bool', '1');\nexport const JsonObject = rt('json/object', '1');\nexport const JsonGzObject = rt('json-gz/object', '1');\nexport const JsonArray = rt('json/array', '1');\nexport const JsonNumber = rt('json/number', '1');\nexport const JsonNull = rt('json/null', '1');\n\nexport const RNull = rt('Null', '1');\n\nexport const EphStdMap: ResourceType = rt('EphStdMap', '1');\nexport const StdMap: ResourceType = rt('StdMap', '1');\n\n//\n// Standard value resources\n//\n\nexport function createPlNull(tx: PlTransaction): ResourceRef {\n return tx.createValue(JsonNull, Buffer.from(JSON.stringify(null)));\n}\n\nexport function createPlBool(tx: PlTransaction, val: boolean): ResourceRef {\n return tx.createValue(JsonBool, Buffer.from(JSON.stringify(val)));\n}\n\nexport function createPlNumber(tx: PlTransaction, val: number): ResourceRef {\n return tx.createValue(JsonNumber, Buffer.from(JSON.stringify(val)));\n}\n\nexport function createPlString(tx: PlTransaction, val: string): ResourceRef {\n return tx.createValue(JsonString, Buffer.from(JSON.stringify(val)));\n}\n\nexport function createPlArray(tx: PlTransaction, val: any[]): ResourceRef {\n return tx.createValue(JsonArray, Buffer.from(JSON.stringify(val)));\n}\n\nexport function createPlObject(tx: PlTransaction, val: object): ResourceRef {\n return tx.createValue(JsonObject, Buffer.from(JSON.stringify(val)));\n}\n\n//\n// Pl Map\n//\n\nexport type PlRecordEntry<Key extends string = string, Ref extends AnyRef = AnyRef> = [Key, Ref];\n\nexport type PlRecord<Key extends string = string, Ref extends AnyRef = AnyRef> = Record<Key, Ref>;\n\nexport function plEntry<Key extends string = string, Ref extends AnyRef = AnyRef>(\n key: Key,\n ref: Ref,\n): PlRecordEntry<Key, Ref> {\n return [key, ref];\n}\n\nexport function plEntries<Key extends string = string, Ref extends AnyRef = AnyRef>(\n record: PlRecord<Key, Ref>,\n fields?: Key[],\n): PlRecordEntry<Key, Ref>[] {\n return fields === undefined\n ? (Object.entries(record) as PlRecordEntry<Key, Ref>[])\n : fields.map((key) => plEntry(key, record[key]));\n}\n\n/** Helper method to build standard pl map from a set of entries */\nexport function createPlMap(\n tx: PlTransaction,\n entries: PlRecordEntry[] | PlRecord,\n ephemeral: boolean,\n type?: ResourceType,\n): ResourceRef {\n const actualType = type ?? (ephemeral ? EphStdMap : StdMap);\n const rId = ephemeral ? tx.createEphemeral(actualType) : tx.createStruct(actualType);\n\n for (const [name, value] of Array.isArray(entries) ? entries : plEntries(entries))\n tx.createField(field(rId, name), 'Input', value);\n\n tx.lock(rId);\n\n return rId;\n}\n\nexport function futureRecord<Key extends string>(\n tx: PlTransaction,\n rId: AnyRef,\n keys: Key[],\n fieldType: FutureFieldType,\n prefix: string = '',\n): PlRecord<Key, FieldRef> {\n return Object.fromEntries(\n keys.map((k) => plEntry(k, tx.getFutureFieldValue(rId, `${prefix}${k}`, fieldType))),\n ) as PlRecord<Key, FieldRef>;\n}\n\n//\n// Holder\n//\n\n/** Name of the field in block holder, that references the actual block-pack. */\nexport const Holder = StdMap;\nexport const EphHolder = EphStdMap;\nexport const HolderRefField = 'ref';\n\nexport function wrapInHolder(tx: PlTransaction, ref: AnyRef): ResourceRef {\n const holder = tx.createStruct(Holder);\n const mainHolderField = field(holder, HolderRefField);\n tx.createField(mainHolderField, 'Input', ref);\n tx.lock(holder);\n return holder;\n}\n\nexport function wrapInEphHolder(tx: PlTransaction, ref: AnyRef): ResourceRef {\n const holder = tx.createEphemeral(EphHolder);\n const mainHolderField = field(holder, HolderRefField);\n tx.createField(mainHolderField, 'Input', ref);\n tx.lock(holder);\n return holder;\n}\n\nexport function unwrapHolder(tx: PlTransaction, ref: AnyRef): FieldRef {\n return tx.getFutureFieldValue(ref, HolderRefField, 'Input');\n}\n","/** Base configuration structure for PL client */\nexport interface PlClientConfig {\n /** Port and host of remote pl server */\n hostAndPort: string;\n\n /** If set, client will expose a nested object under a field with name `alternative_root_${alternativeRoot}` as a\n * client root. */\n alternativeRoot?: string;\n\n /** If true, client will establish tls connection to the server, using default\n * CA of node instance. */\n // Not implementing custom ssl validation logic for now.\n // Implementing it in a correct way is really nontrivial thing,\n // real use-cases should be considered.\n ssl: boolean;\n\n /** Default timeout in milliseconds for unary calls, like ping and login. */\n defaultRequestTimeout: number;\n\n /** Default timeout in milliseconds for read-write transaction, should be\n * adjusted for long round-trip or low bandwidth connections. */\n defaultRWTransactionTimeout: number;\n /** Default timeout in milliseconds for read-only transaction, should be\n * adjusted for long round-trip or low bandwidth connections. */\n defaultROTransactionTimeout: number;\n\n /** Controls what TTL will be requested from the server, when new JWT token\n * is requested. */\n authTTLSeconds: number;\n /** If token is older than this time, it will be refreshed regardless of its\n * expiration time. */\n authMaxRefreshSeconds: number;\n\n /** Proxy server URL to use for pl connection. */\n grpcProxy?: string;\n /** Proxy server URL to use for http connections of pl drivers, like file\n * downloading. */\n httpProxy?: string;\n\n /** Username extracted from pl URL. Ignored by {@link PlClient}, picked up by {@link defaultPlClient}. */\n user?: string;\n /** Password extracted from pl URL. Ignored by {@link PlClient}, picked up by {@link defaultPlClient}. */\n password?: string;\n\n /** Artificial delay introduced after write transactions completion, to\n * somewhat throttle the load on pl. Delay introduced after sync, if requested. */\n txDelay: number;\n\n /** Last resort measure to solve complicated race conditions in pl. */\n forceSync: boolean;\n\n /** Maximal number of bytes of resource state to cache */\n maxCacheBytes: number;\n\n //\n // Retry\n //\n\n /**\n * What type of backoff strategy to use in transaction retries\n * (pl uses optimistic transaction model with regular retries in write transactions)\n * */\n retryBackoffAlgorithm: 'exponential' | 'linear';\n\n /** Maximal number of attempts in */\n retryMaxAttempts: number;\n\n /** Delay after first failed attempt, in ms. */\n retryInitialDelay: number;\n\n /** Each time delay will be multiplied by this number (1.5 means plus on 50% each attempt) */\n retryExponentialBackoffMultiplier: number;\n\n /** [used only for ] This value will be added to the delay from the previous step, in ms */\n retryLinearBackoffStep: number;\n\n /** Value from 0 to 1, determine level of randomness to introduce to the backoff delays sequence. (0 meaning no randomness) */\n retryJitter: number;\n}\n\nexport const DEFAULT_REQUEST_TIMEOUT = 5_000;\nexport const DEFAULT_RO_TX_TIMEOUT = 300_000;\nexport const DEFAULT_RW_TX_TIMEOUT = 60_000;\nexport const DEFAULT_TOKEN_TTL_SECONDS = 31 * 24 * 60 * 60;\nexport const DEFAULT_AUTH_MAX_REFRESH = 12 * 24 * 60 * 60;\n\nexport const DEFAULT_MAX_CACHE_BYTES = 128_000_000; // 128 Mb\n\nexport const DEFAULT_RETRY_BACKOFF_ALGORITHM = 'exponential';\nexport const DEFAULT_RETRY_MAX_ATTEMPTS = 16; // 1st attempt + 15 retries\nexport const DEFAULT_RETRY_INITIAL_DELAY = 14; // 14 ms * <jitter> of sleep after first failure\nexport const DEFAULT_RETRY_EXPONENTIAL_BACKOFF_MULTIPLIER = 1.5; // + 50% on each round\nexport const DEFAULT_RETRY_LINEAR_BACKOFF_STEP = 50; // + 50 ms\nexport const DEFAULT_RETRY_JITTER = 0.3; // 30%\n\ntype PlConfigOverrides = Partial<\n Pick<\n PlClientConfig,\n | 'ssl'\n | 'defaultRequestTimeout'\n | 'defaultROTransactionTimeout'\n | 'defaultRWTransactionTimeout'\n | 'httpProxy'\n | 'grpcProxy'\n >\n>;\n\nfunction parseInt(s: string | null | undefined): number | undefined {\n if (!s) return undefined;\n const num = Number(s);\n if (Number.isNaN(num)) throw new Error(`Can't parse number: ${s}`);\n return num;\n}\n\n/** Parses pl url and creates a config object that can be passed to\n * {@link PlClient} of {@link UnauthenticatedPlClient}. */\nexport function plAddressToConfig(\n address: string,\n overrides: PlConfigOverrides = {},\n): PlClientConfig {\n if (address.indexOf('://') === -1)\n // non-url address\n return {\n hostAndPort: address,\n ssl: false,\n defaultRequestTimeout: DEFAULT_REQUEST_TIMEOUT,\n defaultROTransactionTimeout: DEFAULT_RO_TX_TIMEOUT,\n defaultRWTransactionTimeout: DEFAULT_RW_TX_TIMEOUT,\n authTTLSeconds: DEFAULT_TOKEN_TTL_SECONDS,\n authMaxRefreshSeconds: DEFAULT_AUTH_MAX_REFRESH,\n txDelay: 0,\n forceSync: false,\n\n maxCacheBytes: DEFAULT_MAX_CACHE_BYTES,\n\n retryBackoffAlgorithm: DEFAULT_RETRY_BACKOFF_ALGORITHM,\n retryMaxAttempts: DEFAULT_RETRY_MAX_ATTEMPTS,\n retryInitialDelay: DEFAULT_RETRY_INITIAL_DELAY,\n retryExponentialBackoffMultiplier: DEFAULT_RETRY_EXPONENTIAL_BACKOFF_MULTIPLIER,\n retryLinearBackoffStep: DEFAULT_RETRY_LINEAR_BACKOFF_STEP,\n retryJitter: DEFAULT_RETRY_JITTER,\n\n ...overrides,\n };\n\n const url = new URL(address);\n\n if (\n url.protocol !== 'https:'\n && url.protocol !== 'http:'\n && url.protocol !== 'grpc:'\n && url.protocol !== 'tls:'\n )\n throw new Error(`Unexpected URL schema: ${url.protocol}`);\n\n if (url.pathname !== '/' && url.pathname !== '')\n throw new Error(`Unexpected URL path: ${url.pathname}`);\n\n return {\n hostAndPort: url.host, // this also includes port\n alternativeRoot: url.searchParams.get('alternative-root') ?? undefined,\n ssl: url.protocol === 'https:' || url.protocol === 'tls:',\n defaultRequestTimeout:\n parseInt(url.searchParams.get('request-timeout')) ?? DEFAULT_REQUEST_TIMEOUT,\n defaultROTransactionTimeout:\n parseInt(url.searchParams.get('ro-tx-timeout'))\n ?? parseInt(url.searchParams.get('tx-timeout'))\n ?? DEFAULT_RO_TX_TIMEOUT,\n defaultRWTransactionTimeout:\n parseInt(url.searchParams.get('rw-tx-timeout'))\n ?? parseInt(url.searchParams.get('tx-timeout'))\n ?? DEFAULT_RW_TX_TIMEOUT,\n authTTLSeconds: DEFAULT_TOKEN_TTL_SECONDS,\n authMaxRefreshSeconds: DEFAULT_AUTH_MAX_REFRESH,\n grpcProxy: url.searchParams.get('grpc-proxy') ?? undefined,\n httpProxy: url.searchParams.get('http-proxy') ?? undefined,\n user: url.username === '' ? undefined : url.username,\n password: url.password === '' ? undefined : url.password,\n txDelay: parseInt(url.searchParams.get('tx-delay')) ?? 0,\n forceSync: Boolean(url.searchParams.get('force-sync')),\n\n maxCacheBytes: parseInt(url.searchParams.get('max-cache-bytes')) ?? DEFAULT_MAX_CACHE_BYTES,\n\n retryBackoffAlgorithm: (url.searchParams.get('retry-backoff-algorithm')\n ?? DEFAULT_RETRY_BACKOFF_ALGORITHM) as any,\n retryMaxAttempts:\n parseInt(url.searchParams.get('retry-max-attempts')) ?? DEFAULT_RETRY_MAX_ATTEMPTS,\n retryInitialDelay:\n parseInt(url.searchParams.get('retry-initial-delay')) ?? DEFAULT_RETRY_INITIAL_DELAY,\n retryExponentialBackoffMultiplier:\n parseInt(url.searchParams.get('retry-exp-backoff-multiplier'))\n ?? DEFAULT_RETRY_EXPONENTIAL_BACKOFF_MULTIPLIER,\n retryLinearBackoffStep:\n parseInt(url.searchParams.get('retry-linear-backoff-step'))\n ?? DEFAULT_RETRY_LINEAR_BACKOFF_STEP,\n retryJitter: parseInt(url.searchParams.get('retry-backoff-jitter')) ?? DEFAULT_RETRY_JITTER,\n\n ...overrides,\n };\n}\n\n/**\n * Authorization data / JWT Token.\n * Absent JWT Token tells the client to connect as anonymous user.\n * */\nexport interface AuthInformation {\n /** Absent token means anonymous access */\n jwtToken?: string;\n}\n\nexport const AnonymousAuthInformation: AuthInformation = {};\n\n/** Authorization related settings to pass to {@link PlClient}. */\nexport interface AuthOps {\n /** Initial authorization information */\n authInformation: AuthInformation;\n /** Will be executed after successful authorization information refresh */\n readonly onUpdate?: (newInfo: AuthInformation) => void;\n /** Will be executed if auth-related error happens during normal client operation */\n readonly onAuthError?: () => void;\n /** Will be executed if error encountered during token update */\n readonly onUpdateError?: (error: unknown) => void;\n}\n\n/** Connection status. */\nexport type PlConnectionStatus = 'OK' | 'Disconnected' | 'Unauthenticated';\n\n/** Listener that will be called each time connection status changes. */\nexport type PlConnectionStatusListener = (status: PlConnectionStatus) => void;\n","// @generated by protobuf-ts 2.11.0 with parameter client_generic,optimize_speed,generate_dependencies,force_server_none\n// @generated from protobuf file \"github.com/milaboratory/pl/plapi/plapiproto/api.proto\" (package \"MiLaboratories.PL.API\", syntax proto3)\n// tslint:disable\nimport type { RpcTransport } from \"@protobuf-ts/runtime-rpc\";\nimport type { ServiceInfo } from \"@protobuf-ts/runtime-rpc\";\nimport { Platform } from \"./api\";\nimport type { MaintenanceAPI_Ping_Response } from \"./api\";\nimport type { MaintenanceAPI_Ping_Request } from \"./api\";\nimport type { MiscAPI_ListResourceTypes_Response } from \"./api\";\nimport type { MiscAPI_ListResourceTypes_Request } from \"./api\";\nimport type { AuthAPI_GetJWTToken_Response } from \"./api\";\nimport type { AuthAPI_GetJWTToken_Request } from \"./api\";\nimport type { AuthAPI_ListMethods_Response } from \"./api\";\nimport type { AuthAPI_ListMethods_Request } from \"./api\";\nimport type { LocksAPI_Lease_Release_Response } from \"./api\";\nimport type { LocksAPI_Lease_Release_Request } from \"./api\";\nimport type { LocksAPI_Lease_Update_Response } from \"./api\";\nimport type { LocksAPI_Lease_Update_Request } from \"./api\";\nimport type { LocksAPI_Lease_Create_Response } from \"./api\";\nimport type { LocksAPI_Lease_Create_Request } from \"./api\";\nimport type { ControllerAPI_ClearFeatures_Response } from \"./api\";\nimport type { ControllerAPI_ClearFeatures_Request } from \"./api\";\nimport type { ControllerAPI_SetFeatures_Response } from \"./api\";\nimport type { ControllerAPI_SetFeatures_Request } from \"./api\";\nimport type { ControllerAPI_GetUrl_Response } from \"./api\";\nimport type { ControllerAPI_GetUrl_Request } from \"./api\";\nimport type { ControllerAPI_RemoveAliasesAndUrls_Response } from \"./api\";\nimport type { ControllerAPI_RemoveAliasesAndUrls_Request } from \"./api\";\nimport type { ControllerAPI_WriteAliasesAndUrls_Response } from \"./api\";\nimport type { ControllerAPI_WriteAliasesAndUrls_Request } from \"./api\";\nimport type { ControllerAPI_GetNotifications_Response } from \"./api\";\nimport type { ControllerAPI_GetNotifications_Request } from \"./api\";\nimport type { ControllerAPI_AttachSubscription_Response } from \"./api\";\nimport type { ControllerAPI_AttachSubscription_Request } from \"./api\";\nimport type { ControllerAPI_Update_Response } from \"./api\";\nimport type { ControllerAPI_Update_Request } from \"./api\";\nimport type { ControllerAPI_Get_Response } from \"./api\";\nimport type { ControllerAPI_Get_Request } from \"./api\";\nimport type { ControllerAPI_Exists_Response } from \"./api\";\nimport type { ControllerAPI_Exists_Request } from \"./api\";\nimport type { ControllerAPI_Create_Response } from \"./api\";\nimport type { ControllerAPI_Create_Request } from \"./api\";\nimport type { ControllerAPI_Deregister_Response } from \"./api\";\nimport type { ControllerAPI_Deregister_Request } from \"./api\";\nimport type { ControllerAPI_Register_Response } from \"./api\";\nimport type { ControllerAPI_Register_Request } from \"./api\";\nimport type { NotificationAPI_Get_Response } from \"./api\";\nimport type { NotificationAPI_Get_Request } from \"./api\";\nimport type { SubscriptionAPI_DetachFilter_Response } from \"./api\";\nimport type { SubscriptionAPI_DetachFilter_Request } from \"./api\";\nimport type { SubscriptionAPI_AttachFilter_Response } from \"./api\";\nimport type { SubscriptionAPI_AttachFilter_Request } from \"./api\";\nimport type { TxAPI_Sync_Response } from \"./api\";\nimport type { TxAPI_Sync_Request } from \"./api\";\nimport type { UnaryCall } from \"@protobuf-ts/runtime-rpc\";\nimport { stackIntercept } from \"@protobuf-ts/runtime-rpc\";\nimport type { TxAPI_ServerMessage } from \"./api\";\nimport type { TxAPI_ClientMessage } from \"./api\";\nimport type { DuplexStreamingCall } from \"@protobuf-ts/runtime-rpc\";\nimport type { RpcOptions } from \"@protobuf-ts/runtime-rpc\";\n/**\n * @generated from protobuf service MiLaboratories.PL.API.Platform\n */\nexport interface IPlatformClient {\n /**\n *\n * Transactions\n *\n *\n * @generated from protobuf rpc: Tx\n */\n tx(options?: RpcOptions): DuplexStreamingCall<TxAPI_ClientMessage, TxAPI_ServerMessage>;\n /**\n * @generated from protobuf rpc: TxSync\n */\n txSync(input: TxAPI_Sync_Request, options?: RpcOptions): UnaryCall<TxAPI_Sync_Request, TxAPI_Sync_Response>;\n /**\n *\n * Subscriptions\n *\n *\n * @generated from protobuf rpc: SubscriptionAttachFilter\n */\n subscriptionAttachFilter(input: SubscriptionAPI_AttachFilter_Request, options?: RpcOptions): UnaryCall<SubscriptionAPI_AttachFilter_Request, SubscriptionAPI_AttachFilter_Response>;\n /**\n * @generated from protobuf rpc: SubscriptionDetachFilter\n */\n subscriptionDetachFilter(input: SubscriptionAPI_DetachFilter_Request, options?: RpcOptions): UnaryCall<SubscriptionAPI_DetachFilter_Request, SubscriptionAPI_DetachFilter_Response>;\n /**\n * @generated from protobuf rpc: NotificationsGet\n */\n notificationsGet(input: NotificationAPI_Get_Request, options?: RpcOptions): UnaryCall<NotificationAPI_Get_Request, NotificationAPI_Get_Response>;\n /**\n *\n * Controllers\n *\n *\n * @generated from protobuf rpc: ControllerRegister\n */\n controllerRegister(input: ControllerAPI_Register_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Register_Request, ControllerAPI_Register_Response>;\n /**\n * @generated from protobuf rpc: ControllerDeregister\n */\n controllerDeregister(input: ControllerAPI_Deregister_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Deregister_Request, ControllerAPI_Deregister_Response>;\n /**\n * @generated from protobuf rpc: ControllerCreate\n */\n controllerCreate(input: ControllerAPI_Create_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Create_Request, ControllerAPI_Create_Response>;\n /**\n * @generated from protobuf rpc: ControllerExists\n */\n controllerExists(input: ControllerAPI_Exists_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Exists_Request, ControllerAPI_Exists_Response>;\n /**\n * @generated from protobuf rpc: ControllerGet\n */\n controllerGet(input: ControllerAPI_Get_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Get_Request, ControllerAPI_Get_Response>;\n /**\n * @generated from protobuf rpc: ControllerUpdate\n */\n controllerUpdate(input: ControllerAPI_Update_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Update_Request, ControllerAPI_Update_Response>;\n /**\n * @generated from protobuf rpc: ControllerAttachSubscription\n */\n controllerAttachSubscription(input: ControllerAPI_AttachSubscription_Request, options?: RpcOptions): UnaryCall<ControllerAPI_AttachSubscription_Request, ControllerAPI_AttachSubscription_Response>;\n /**\n * @generated from protobuf rpc: GetControllerNotifications\n */\n getControllerNotifications(input: ControllerAPI_GetNotifications_Request, options?: RpcOptions): UnaryCall<ControllerAPI_GetNotifications_Request, ControllerAPI_GetNotifications_Response>;\n /**\n * @generated from protobuf rpc: WriteControllerAliasesAndUrls\n */\n writeControllerAliasesAndUrls(input: ControllerAPI_WriteAliasesAndUrls_Request, options?: RpcOptions): UnaryCall<ControllerAPI_WriteAliasesAndUrls_Request, ControllerAPI_WriteAliasesAndUrls_Response>;\n /**\n * @generated from protobuf rpc: RemoveControllerAliasesAndUrls\n */\n removeControllerAliasesAndUrls(input: ControllerAPI_RemoveAliasesAndUrls_Request, options?: RpcOptions): UnaryCall<ControllerAPI_RemoveAliasesAndUrls_Request, ControllerAPI_RemoveAliasesAndUrls_Response>;\n /**\n * @generated from protobuf rpc: GetControllerUrl\n */\n getControllerUrl(input: ControllerAPI_GetUrl_Request, options?: RpcOptions): UnaryCall<ControllerAPI_GetUrl_Request, ControllerAPI_GetUrl_Response>;\n /**\n * @generated from protobuf rpc: ControllerSetFeatures\n */\n controllerSetFeatures(input: ControllerAPI_SetFeatures_Request, options?: RpcOptions): UnaryCall<ControllerAPI_SetFeatures_Request, ControllerAPI_SetFeatures_Response>;\n /**\n * @generated from protobuf rpc: ControllerClearFeatures\n */\n controllerClearFeatures(input: ControllerAPI_ClearFeatures_Request, options?: RpcOptions): UnaryCall<ControllerAPI_ClearFeatures_Request, ControllerAPI_ClearFeatures_Response>;\n /**\n *\n * Locks\n *\n *\n * @generated from protobuf rpc: LeaseResource\n */\n leaseResource(input: LocksAPI_Lease_Create_Request, options?: RpcOptions): UnaryCall<LocksAPI_Lease_Create_Request, LocksAPI_Lease_Create_Response>;\n /**\n * @generated from protobuf rpc: UpdateLease\n */\n updateLease(input: LocksAPI_Lease_Update_Request, options?: RpcOptions): UnaryCall<LocksAPI_Lease_Update_Request, LocksAPI_Lease_Update_Response>;\n /**\n * @generated from protobuf rpc: ReleaseLease\n */\n releaseLease(input: LocksAPI_Lease_Release_Request, options?: RpcOptions): UnaryCall<LocksAPI_Lease_Release_Request, LocksAPI_Lease_Release_Response>;\n /**\n *\n * Authentication\n *\n *\n * @generated from protobuf rpc: AuthMethods\n */\n authMethods(input: AuthAPI_ListMethods_Request, options?: RpcOptions): UnaryCall<AuthAPI_ListMethods_Request, AuthAPI_ListMethods_Response>;\n /**\n * @generated from protobuf rpc: GetJWTToken\n */\n getJWTToken(input: AuthAPI_GetJWTToken_Request, options?: RpcOptions): UnaryCall<AuthAPI_GetJWTToken_Request, AuthAPI_GetJWTToken_Response>;\n /**\n *\n * Other stuff\n *\n *\n * @generated from protobuf rpc: ListResourceTypes\n */\n listResourceTypes(input: MiscAPI_ListResourceTypes_Request, options?: RpcOptions): UnaryCall<MiscAPI_ListResourceTypes_Request, MiscAPI_ListResourceTypes_Response>;\n /**\n *\n * Various service requests\n *\n *\n * @generated from protobuf rpc: Ping\n */\n ping(input: MaintenanceAPI_Ping_Request, options?: RpcOptions): UnaryCall<MaintenanceAPI_Ping_Request, MaintenanceAPI_Ping_Response>;\n}\n/**\n * @generated from protobuf service MiLaboratories.PL.API.Platform\n */\nexport class PlatformClient implements IPlatformClient, ServiceInfo {\n typeName = Platform.typeName;\n methods = Platform.methods;\n options = Platform.options;\n constructor(private readonly _transport: RpcTransport) {\n }\n /**\n *\n * Transactions\n *\n *\n * @generated from protobuf rpc: Tx\n */\n tx(options?: RpcOptions): DuplexStreamingCall<TxAPI_ClientMessage, TxAPI_ServerMessage> {\n const method = this.methods[0], opt = this._transport.mergeOptions(options);\n return stackIntercept<TxAPI_ClientMessage, TxAPI_ServerMessage>(\"duplex\", this._transport, method, opt);\n }\n /**\n * @generated from protobuf rpc: TxSync\n */\n txSync(input: TxAPI_Sync_Request, options?: RpcOptions): UnaryCall<TxAPI_Sync_Request, TxAPI_Sync_Response> {\n const method = this.methods[1], opt = this._transport.mergeOptions(options);\n return stackIntercept<TxAPI_Sync_Request, TxAPI_Sync_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n *\n * Subscriptions\n *\n *\n * @generated from protobuf rpc: SubscriptionAttachFilter\n */\n subscriptionAttachFilter(input: SubscriptionAPI_AttachFilter_Request, options?: RpcOptions): UnaryCall<SubscriptionAPI_AttachFilter_Request, SubscriptionAPI_AttachFilter_Response> {\n const method = this.methods[2], opt = this._transport.mergeOptions(options);\n return stackIntercept<SubscriptionAPI_AttachFilter_Request, SubscriptionAPI_AttachFilter_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: SubscriptionDetachFilter\n */\n subscriptionDetachFilter(input: SubscriptionAPI_DetachFilter_Request, options?: RpcOptions): UnaryCall<SubscriptionAPI_DetachFilter_Request, SubscriptionAPI_DetachFilter_Response> {\n const method = this.methods[3], opt = this._transport.mergeOptions(options);\n return stackIntercept<SubscriptionAPI_DetachFilter_Request, SubscriptionAPI_DetachFilter_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: NotificationsGet\n */\n notificationsGet(input: NotificationAPI_Get_Request, options?: RpcOptions): UnaryCall<NotificationAPI_Get_Request, NotificationAPI_Get_Response> {\n const method = this.methods[4], opt = this._transport.mergeOptions(options);\n return stackIntercept<NotificationAPI_Get_Request, NotificationAPI_Get_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n *\n * Controllers\n *\n *\n * @generated from protobuf rpc: ControllerRegister\n */\n controllerRegister(input: ControllerAPI_Register_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Register_Request, ControllerAPI_Register_Response> {\n const method = this.methods[5], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_Register_Request, ControllerAPI_Register_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: ControllerDeregister\n */\n controllerDeregister(input: ControllerAPI_Deregister_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Deregister_Request, ControllerAPI_Deregister_Response> {\n const method = this.methods[6], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_Deregister_Request, ControllerAPI_Deregister_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: ControllerCreate\n */\n controllerCreate(input: ControllerAPI_Create_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Create_Request, ControllerAPI_Create_Response> {\n const method = this.methods[7], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_Create_Request, ControllerAPI_Create_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: ControllerExists\n */\n controllerExists(input: ControllerAPI_Exists_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Exists_Request, ControllerAPI_Exists_Response> {\n const method = this.methods[8], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_Exists_Request, ControllerAPI_Exists_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: ControllerGet\n */\n controllerGet(input: ControllerAPI_Get_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Get_Request, ControllerAPI_Get_Response> {\n const method = this.methods[9], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_Get_Request, ControllerAPI_Get_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: ControllerUpdate\n */\n controllerUpdate(input: ControllerAPI_Update_Request, options?: RpcOptions): UnaryCall<ControllerAPI_Update_Request, ControllerAPI_Update_Response> {\n const method = this.methods[10], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_Update_Request, ControllerAPI_Update_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: ControllerAttachSubscription\n */\n controllerAttachSubscription(input: ControllerAPI_AttachSubscription_Request, options?: RpcOptions): UnaryCall<ControllerAPI_AttachSubscription_Request, ControllerAPI_AttachSubscription_Response> {\n const method = this.methods[11], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_AttachSubscription_Request, ControllerAPI_AttachSubscription_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: GetControllerNotifications\n */\n getControllerNotifications(input: ControllerAPI_GetNotifications_Request, options?: RpcOptions): UnaryCall<ControllerAPI_GetNotifications_Request, ControllerAPI_GetNotifications_Response> {\n const method = this.methods[12], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_GetNotifications_Request, ControllerAPI_GetNotifications_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: WriteControllerAliasesAndUrls\n */\n writeControllerAliasesAndUrls(input: ControllerAPI_WriteAliasesAndUrls_Request, options?: RpcOptions): UnaryCall<ControllerAPI_WriteAliasesAndUrls_Request, ControllerAPI_WriteAliasesAndUrls_Response> {\n const method = this.methods[13], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_WriteAliasesAndUrls_Request, ControllerAPI_WriteAliasesAndUrls_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: RemoveControllerAliasesAndUrls\n */\n removeControllerAliasesAndUrls(input: ControllerAPI_RemoveAliasesAndUrls_Request, options?: RpcOptions): UnaryCall<ControllerAPI_RemoveAliasesAndUrls_Request, ControllerAPI_RemoveAliasesAndUrls_Response> {\n const method = this.methods[14], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_RemoveAliasesAndUrls_Request, ControllerAPI_RemoveAliasesAndUrls_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: GetControllerUrl\n */\n getControllerUrl(input: ControllerAPI_GetUrl_Request, options?: RpcOptions): UnaryCall<ControllerAPI_GetUrl_Request, ControllerAPI_GetUrl_Response> {\n const method = this.methods[15], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_GetUrl_Request, ControllerAPI_GetUrl_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: ControllerSetFeatures\n */\n controllerSetFeatures(input: ControllerAPI_SetFeatures_Request, options?: RpcOptions): UnaryCall<ControllerAPI_SetFeatures_Request, ControllerAPI_SetFeatures_Response> {\n const method = this.methods[16], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_SetFeatures_Request, ControllerAPI_SetFeatures_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: ControllerClearFeatures\n */\n controllerClearFeatures(input: ControllerAPI_ClearFeatures_Request, options?: RpcOptions): UnaryCall<ControllerAPI_ClearFeatures_Request, ControllerAPI_ClearFeatures_Response> {\n const method = this.methods[17], opt = this._transport.mergeOptions(options);\n return stackIntercept<ControllerAPI_ClearFeatures_Request, ControllerAPI_ClearFeatures_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n *\n * Locks\n *\n *\n * @generated from protobuf rpc: LeaseResource\n */\n leaseResource(input: LocksAPI_Lease_Create_Request, options?: RpcOptions): UnaryCall<LocksAPI_Lease_Create_Request, LocksAPI_Lease_Create_Response> {\n const method = this.methods[18], opt = this._transport.mergeOptions(options);\n return stackIntercept<LocksAPI_Lease_Create_Request, LocksAPI_Lease_Create_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: UpdateLease\n */\n updateLease(input: LocksAPI_Lease_Update_Request, options?: RpcOptions): UnaryCall<LocksAPI_Lease_Update_Request, LocksAPI_Lease_Update_Response> {\n const method = this.methods[19], opt = this._transport.mergeOptions(options);\n return stackIntercept<LocksAPI_Lease_Update_Request, LocksAPI_Lease_Update_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: ReleaseLease\n */\n releaseLease(input: LocksAPI_Lease_Release_Request, options?: RpcOptions): UnaryCall<LocksAPI_Lease_Release_Request, LocksAPI_Lease_Release_Response> {\n const method = this.methods[20], opt = this._transport.mergeOptions(options);\n return stackIntercept<LocksAPI_Lease_Release_Request, LocksAPI_Lease_Release_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n *\n * Authentication\n *\n *\n * @generated from protobuf rpc: AuthMethods\n */\n authMethods(input: AuthAPI_ListMethods_Request, options?: RpcOptions): UnaryCall<AuthAPI_ListMethods_Request, AuthAPI_ListMethods_Response> {\n const method = this.methods[21], opt = this._transport.mergeOptions(options);\n return stackIntercept<AuthAPI_ListMethods_Request, AuthAPI_ListMethods_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n * @generated from protobuf rpc: GetJWTToken\n */\n getJWTToken(input: AuthAPI_GetJWTToken_Request, options?: RpcOptions): UnaryCall<AuthAPI_GetJWTToken_Request, AuthAPI_GetJWTToken_Response> {\n const method = this.methods[22], opt = this._transport.mergeOptions(options);\n return stackIntercept<AuthAPI_GetJWTToken_Request, AuthAPI_GetJWTToken_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n *\n * Other stuff\n *\n *\n * @generated from protobuf rpc: ListResourceTypes\n */\n listResourceTypes(input: MiscAPI_ListResourceTypes_Request, options?: RpcOptions): UnaryCall<MiscAPI_ListResourceTypes_Request, MiscAPI_ListResourceTypes_Response> {\n const method = this.methods[23], opt = this._transport.mergeOptions(options);\n return stackIntercept<MiscAPI_ListResourceTypes_Request, MiscAPI_ListResourceTypes_Response>(\"unary\", this._transport, method, opt, input);\n }\n /**\n *\n * Various service requests\n *\n *\n * @generated from protobuf rpc: Ping\n */\n ping(input: MaintenanceAPI_Ping_Request, options?: RpcOptions): UnaryCall<MaintenanceAPI_Ping_Request, MaintenanceAPI_Ping_Response> {\n const method = this.methods[24], opt = this._transport.mergeOptions(options);\n return stackIntercept<MaintenanceAPI_Ping_Request, MaintenanceAPI_Ping_Response>(\"unary\", this._transport, method, opt, input);\n }\n}\n","import type {\n TxAPI_ClientMessage,\n TxAPI_ServerMessage,\n} from '../proto/github.com/milaboratory/pl/plapi/plapiproto/api';\nimport type { DuplexStreamingCall } from '@protobuf-ts/runtime-rpc';\nimport Denque from 'denque';\nimport type { Status } from '../proto/github.com/googleapis/googleapis/google/rpc/status';\nimport {\n PlErrorCodeNotFound,\n RecoverablePlError,\n rethrowMeaningfulError,\n UnrecoverablePlError,\n} from './errors';\n\nexport type ClientMessageRequest = TxAPI_ClientMessage['request'];\n\nexport type ServerMessageResponse = TxAPI_ServerMessage['response'];\n\ntype TxStream = DuplexStreamingCall<TxAPI_ClientMessage, TxAPI_ServerMessage>;\n\nexport type OneOfKind<T extends { oneofKind: unknown }, Kind extends T['oneofKind']> = Extract<\n T,\n { oneofKind: Kind }\n>;\n\ninterface SingleResponseHandler<Kind extends ServerMessageResponse['oneofKind']> {\n kind: Kind;\n expectMultiResponse: false;\n resolve: (v: OneOfKind<ServerMessageResponse, Kind>) => void;\n reject: (e: Error) => void;\n}\n\ninterface MultiResponseHandler<Kind extends ServerMessageResponse['oneofKind']> {\n kind: Kind;\n expectMultiResponse: true;\n resolve: (v: OneOfKind<ServerMessageResponse, Kind>[]) => void;\n reject: (e: Error) => void;\n}\n\ntype AnySingleResponseHandler = SingleResponseHandler<ServerMessageResponse['oneofKind']>;\n\ntype AnyMultiResponseHandler = MultiResponseHandler<ServerMessageResponse['oneofKind']>;\n\ntype AnyResponseHandler =\n | SingleResponseHandler<ServerMessageResponse['oneofKind']>\n | MultiResponseHandler<ServerMessageResponse['oneofKind']>;\n\nfunction createResponseHandler<Kind extends ServerMessageResponse['oneofKind']>(\n kind: Kind,\n expectMultiResponse: boolean,\n resolve:\n | ((v: OneOfKind<ServerMessageResponse, Kind>) => void)\n | ((v: OneOfKind<ServerMessageResponse, Kind>[]) => void),\n reject: (e: Error) => void,\n): AnyResponseHandler {\n return { kind, expectMultiResponse, resolve, reject } as AnyResponseHandler;\n}\n\nfunction isRecoverable(status: Status): boolean {\n return status.code === PlErrorCodeNotFound;\n}\n\nexport class RethrowError extends Error {\n name = 'RethrowError';\n constructor(public readonly rethrowLambda: () => never) {\n super('Rethrow error, you should never see this one.');\n }\n}\n\nexport class LLPlTransaction {\n /** Bidirectional channel through which transaction communicates with the server */\n private readonly stream: TxStream;\n\n /** Used to abort ongoing transaction stream */\n private readonly abortController = new AbortController();\n\n /** Counter of sent requests, used to calculate which future response will correspond to this request.\n * Incremented on each sent request. */\n private requestIdxCounter = 0;\n\n /** Queue from which incoming message processor takes handlers to which pass incoming messages */\n private readonly responseHandlerQueue = new Denque<AnyResponseHandler>();\n\n /** Each new resource, created by the transaction, is assigned with virtual (local) resource id, to make it possible\n * to populate its fields without awaiting actual resource id. This counter tracks those ids on client side, the\n * same way it is tracked on the server, so client can synchronously return such ids to the user. */\n private localResourceIdCounter = 0n;\n\n /** Switches to true, when this transaction closes due to normal or exceptional conditions. Prevents any new messages\n * to be sent to the stream. */\n private closed = false;\n /** Whether the outgoing stream was already closed. */\n private completed = false;\n\n /** If this transaction was terminated due to error, this is a generator to create new errors if corresponding response is required. */\n private errorFactory?: () => never;\n\n /** Timestamp when transaction was opened */\n private readonly openTimestamp = Date.now();\n\n private readonly incomingProcessorResult: Promise<(() => never) | null>;\n\n constructor(streamFactory: (abortSignal: AbortSignal) => TxStream) {\n this.stream = streamFactory(this.abortController.signal);\n\n // Starting incoming event processor\n this.incomingProcessorResult = this.incomingEventProcessor();\n }\n\n private assignErrorFactoryIfNotSet(\n errorFactory: () => never,\n reject?: (e: Error) => void,\n ): () => never {\n if (reject !== undefined) reject(new RethrowError(errorFactory));\n if (this.errorFactory) return errorFactory;\n this.errorFactory = errorFactory;\n return errorFactory;\n }\n\n private async incomingEventProcessor(): Promise<(() => never) | null> {\n /** Counter of received responses, used to check consistency of responses.\n * Increments on each received message. */\n let expectedId = -1;\n\n // defined externally to make possible to communicate any processing errors\n // to the specific request on which it happened\n let currentHandler: AnyResponseHandler | undefined = undefined;\n let responseAggregator: ServerMessageResponse[] | undefined = undefined;\n try {\n for await (const message of this.stream.responses) {\n if (currentHandler === undefined) {\n currentHandler = this.responseHandlerQueue.shift();\n\n if (currentHandler === undefined) {\n this.assignErrorFactoryIfNotSet(() => {\n throw new Error(`orphan incoming message`);\n });\n break;\n }\n\n // allocating response aggregator array\n if (currentHandler.expectMultiResponse) responseAggregator = [];\n\n expectedId++;\n }\n\n if (message.requestId !== expectedId) {\n const errorMessage = `out of order messages, ${message.requestId} !== ${expectedId}`;\n this.assignErrorFactoryIfNotSet(() => {\n throw new Error(errorMessage);\n });\n break;\n }\n\n if (message.error !== undefined) {\n const status = message.error;\n\n if (isRecoverable(status)) {\n currentHandler.reject(\n new RethrowError(() => {\n throw new RecoverablePlError(status);\n }),\n );\n currentHandler = undefined;\n\n if (message.multiMessage !== undefined && !message.multiMessage.isLast) {\n this.assignErrorFactoryIfNotSet(() => {\n throw new Error('Unexpected message sequence.');\n });\n break;\n }\n\n // We can continue to work after recoverable errors\n continue;\n } else {\n this.assignErrorFactoryIfNotSet(() => {\n throw new UnrecoverablePlError(status);\n }, currentHandler.reject);\n currentHandler = undefined;\n\n // In case of unrecoverable errors we close the transaction\n break;\n }\n }\n\n if (\n currentHandler.kind !== message.response.oneofKind\n && message?.multiMessage?.isEmpty !== true\n ) {\n const errorMessage = `inconsistent request response types: ${currentHandler.kind} !== ${message.response.oneofKind}`;\n\n this.assignErrorFactoryIfNotSet(() => {\n throw new Error(errorMessage);\n }, currentHandler.reject);\n currentHandler = undefined;\n\n break;\n }\n\n if (currentHandler.expectMultiResponse !== (message.multiMessage !== undefined)) {\n const errorMessage = `inconsistent multi state: ${currentHandler.expectMultiResponse} !== ${message.multiMessage !== undefined}`;\n\n this.assignErrorFactoryIfNotSet(() => {\n throw new Error(errorMessage);\n }, currentHandler.reject);\n currentHandler = undefined;\n\n break;\n }\n\n // <- at this point we validated everything we can at this level\n\n if (message.multiMessage !== undefined) {\n if (!message.multiMessage.isEmpty) {\n if (message.multiMessage.id !== responseAggregator!.length + 1) {\n const errorMessage = `inconsistent multi id: ${message.multiMessage.id} !== ${responseAggregator!.length + 1}`;\n\n this.assignErrorFactoryIfNotSet(() => {\n throw new Error(errorMessage);\n }, currentHandler.reject);\n currentHandler = undefined;\n\n break;\n }\n\n responseAggregator!.push(message.response);\n }\n\n if (message.multiMessage.isLast) {\n (currentHandler as AnyMultiResponseHandler).resolve(responseAggregator!);\n responseAggregator = undefined;\n currentHandler = undefined;\n }\n } else {\n (currentHandler as AnySingleResponseHandler).resolve(message.response);\n currentHandler = undefined;\n }\n }\n } catch (e: any) {\n return this.assignErrorFactoryIfNotSet(() => {\n rethrowMeaningfulError(e, true);\n }, currentHandler?.reject);\n } finally {\n await this.close();\n }\n return null;\n }\n\n /** Executed after termination of incoming message processor */\n private async close(): Promise<void> {\n if (this.closed) return;\n\n this.closed = true;\n\n // Rejecting all messages\n\n while (true) {\n const handler = this.responseHandlerQueue.shift();\n if (!handler) break;\n if (this.errorFactory) handler.reject(new RethrowError(this.errorFactory));\n else handler.reject(new Error('no reply'));\n }\n\n // closing outgoing stream\n await this.stream.requests.complete();\n }\n\n /** Forcefully close the transaction, terminate all connections and reject all pending requests */\n public abort(cause?: Error) {\n this.assignErrorFactoryIfNotSet(() => {\n throw new Error(`transaction aborted`, { cause });\n });\n this.abortController.abort(cause);\n }\n\n /** Await incoming message loop termination and throw any leftover errors if it was unsuccessful */\n public async await(): Promise<void> {\n // for those who want to understand \"why?\":\n // this way there is no hanging promise that will complete with rejection\n // until await is implicitly requested, the this.incomingProcessorResult\n // always resolves with success\n\n const processingResult = await this.incomingProcessorResult;\n if (processingResult !== null) processingResult();\n }\n\n public async send<Kind extends ClientMessageRequest['oneofKind']>(\n r: OneOfKind<ClientMessageRequest, Kind>,\n expectMultiResponse: false\n ): Promise<OneOfKind<ServerMessageResponse, Kind>>;\n public async send<Kind extends ClientMessageRequest['oneofKind']>(\n r: OneOfKind<ClientMessageRequest, Kind>,\n expectMultiResponse: true\n ): Promise<OneOfKind<ServerMessageResponse, Kind>[]>;\n /** Generate proper client message and send it to the server, and returns a promise of future response. */\n public async send<Kind extends ClientMessageRequest['oneofKind']>(\n r: OneOfKind<ClientMessageRequest, Kind>,\n expectMultiResponse: boolean,\n ): Promise<OneOfKind<ServerMessageResponse, Kind> | OneOfKind<ServerMessageResponse, Kind>[]> {\n if (this.errorFactory) return Promise.reject(new RethrowError(this.errorFactory));\n\n if (this.closed) return Promise.reject(new Error('Transaction already closed'));\n\n // Note: Promise synchronously executes a callback passed to a constructor\n const result = new Promise<OneOfKind<ServerMessageResponse, Kind>>((resolve, reject) => {\n this.responseHandlerQueue.push(\n createResponseHandler(r.oneofKind, expectMultiResponse, resolve, reject),\n );\n });\n\n // Awaiting message dispatch to catch any associated errors.\n // There is no hurry, we are not going to receive a response until message is sent.\n await this.stream.requests.send({\n requestId: this.requestIdxCounter++,\n request: r,\n });\n\n try {\n return await result;\n } catch (e: any) {\n if (e instanceof RethrowError) e.rethrowLambda();\n throw new Error('Error while waiting for response', { cause: e });\n }\n }\n\n private _completed = false;\n\n /** Safe to call multiple times */\n public async complete() {\n if (this._completed) return;\n this._completed = true;\n await this.stream.requests.complete();\n }\n}\n","export type PlJWTPayload = {\n user: {\n login: string;\n };\n exp: number;\n iat: number;\n};\n\nexport function parsePlJwt(token: string): PlJWTPayload {\n return JSON.parse(Buffer.from(token.split('.')[1], 'base64').toString());\n}\n","import type { AuthInformation } from './config';\nimport { parsePlJwt } from '../util/pl';\n\n/** Returns a timestamp when current authorization information should be refreshed.\n * Compare the value with Date.now(). */\nexport function inferAuthRefreshTime(\n info: AuthInformation,\n maxRefreshSeconds: number,\n): number | undefined {\n if (info.jwtToken === undefined) return undefined;\n\n const { exp, iat } = parsePlJwt(info.jwtToken);\n\n return (\n Math.min(\n // in the middle between issue and expiration time points\n (iat + exp) / 2,\n iat + maxRefreshSeconds,\n ) * 1000\n );\n}\n\nexport function expirationFromAuthInformation(authInfo: AuthInformation): number | undefined {\n if (authInfo.jwtToken === undefined) return undefined;\n const parsed = parsePlJwt(authInfo.jwtToken);\n return parsed.exp * 1000;\n}\n","import { PlatformClient } from '../proto/github.com/milaboratory/pl/plapi/plapiproto/api.client';\nimport type { ClientOptions, Interceptor } from '@grpc/grpc-js';\nimport {\n ChannelCredentials,\n InterceptingCall,\n status as GrpcStatus,\n compressionAlgorithms,\n} from '@grpc/grpc-js';\nimport type {\n AuthInformation,\n AuthOps,\n PlClientConfig,\n PlConnectionStatus,\n PlConnectionStatusListener,\n} from './config';\nimport { plAddressToConfig } from './config';\nimport type { GrpcOptions } from '@protobuf-ts/grpc-transport';\nimport { GrpcTransport } from '@protobuf-ts/grpc-transport';\nimport { LLPlTransaction } from './ll_transaction';\nimport { parsePlJwt } from '../util/pl';\nimport type { Dispatcher } from 'undici';\nimport { inferAuthRefreshTime } from './auth';\nimport { defaultHttpDispatcher } from '@milaboratories/pl-http';\nimport type { GrpcClientProvider, GrpcClientProviderFactory } from './grpc';\n\nexport interface PlCallOps {\n timeout?: number;\n abortSignal?: AbortSignal;\n}\n\nclass GrpcClientProviderImpl<Client> implements GrpcClientProvider<Client> {\n private client: Client | undefined = undefined;\n\n constructor(private readonly grpcTransport: () => GrpcTransport, private readonly clientConstructor: (transport: GrpcTransport) => Client) {}\n\n public reset(): void {\n this.client = undefined;\n }\n\n public get(): Client {\n if (this.client === undefined)\n this.client = this.clientConstructor(this.grpcTransport());\n return this.client;\n }\n}\n\n/** Abstract out low level networking and authorization details */\nexport class LLPlClient implements GrpcClientProviderFactory {\n public readonly conf: PlClientConfig;\n\n /** Initial authorization information */\n private authInformation?: AuthInformation;\n /** Will be executed by the client when it is required */\n private readonly onAuthUpdate?: (newInfo: AuthInformation) => void;\n /** Will be executed if auth-related error happens during normal client operation */\n private readonly onAuthError?: () => void;\n /** Will be executed by the client when it is required */\n private readonly onAuthRefreshProblem?: (error: unknown) => void;\n /** Threshold after which auth info refresh is required */\n private refreshTimestamp?: number;\n\n private _status: PlConnectionStatus = 'OK';\n private readonly statusListener?: PlConnectionStatusListener;\n\n private readonly grpcInterceptors: Interceptor[];\n private _grpcTransport!: GrpcTransport;\n private readonly providers: WeakRef<GrpcClientProviderImpl<any>>[] = [];\n\n public readonly grpcPl: GrpcClientProvider<PlatformClient>;\n\n public readonly httpDispatcher: Dispatcher;\n\n constructor(\n configOrAddress: PlClientConfig | string,\n private readonly ops: {\n auth?: AuthOps;\n statusListener?: PlConnectionStatusListener;\n shouldUseGzip?: boolean;\n } = {},\n ) {\n this.conf\n = typeof configOrAddress === 'string' ? plAddressToConfig(configOrAddress) : configOrAddress;\n\n this.grpcInterceptors = [];\n\n const { auth, statusListener, shouldUseGzip } = ops;\n\n if (auth !== undefined) {\n this.refreshTimestamp = inferAuthRefreshTime(\n auth.authInformation,\n this.conf.authMaxRefreshSeconds,\n );\n this.grpcInterceptors.push(this.createAuthInterceptor());\n this.authInformation = auth.authInformation;\n this.onAuthUpdate = auth.onUpdate;\n this.onAuthRefreshProblem = auth.onUpdateError;\n this.onAuthError = auth.onAuthError;\n }\n\n this.grpcInterceptors.push(this.createErrorInterceptor());\n\n // initialize _grpcTransport and _grpcPl\n this.initGrpc(shouldUseGzip ?? false);\n\n this.httpDispatcher = defaultHttpDispatcher(this.conf.httpProxy);\n\n if (statusListener !== undefined) {\n this.statusListener = statusListener;\n statusListener(this._status);\n }\n\n this.grpcPl = this.createGrpcClientProvider((transport) => new PlatformClient(transport));\n }\n\n /**\n * Initializes (or reinitializes) _grpcTransport and _grpcPl\n * @param gzip - whether to enable gzip compression\n */\n private initGrpc(gzip: boolean) {\n const clientOptions: ClientOptions = {\n 'grpc.keepalive_time_ms': 30_000, // 30 seconds\n 'interceptors': this.grpcInterceptors,\n };\n\n if (gzip) clientOptions['grpc.default_compression_algorithm'] = compressionAlgorithms.gzip;\n\n //\n // Leaving it here for now\n // https://github.com/grpc/grpc-node/issues/2788\n //\n // We should implement message pooling algorithm to overcome hardcoded NO_DELAY behaviour\n // of HTTP/2 and allow our small messages to batch together.\n //\n const grpcOptions: GrpcOptions = {\n host: this.conf.hostAndPort,\n timeout: this.conf.defaultRequestTimeout,\n channelCredentials: this.conf.ssl\n ? ChannelCredentials.createSsl()\n : ChannelCredentials.createInsecure(),\n clientOptions,\n };\n\n if (this.conf.grpcProxy) process.env.grpc_proxy = this.conf.grpcProxy;\n else delete process.env.grpc_proxy;\n\n const oldTransport = this._grpcTransport;\n\n this._grpcTransport = new GrpcTransport(grpcOptions);\n\n // Reset all providers to let them reinitialize their clients\n for (let i = 0; i < this.providers.length; i++) {\n const provider = this.providers[i].deref();\n if (provider === undefined) {\n // at the same time we need to remove providers that are no longer valid\n this.providers.splice(i, 1);\n i--;\n } else {\n provider.reset();\n }\n }\n\n if (oldTransport !== undefined) oldTransport.close();\n }\n\n private providerCleanupCounter = 0;\n\n /**\n * Creates a provider for a grpc client. Returned provider will create fresh client whenever the underlying transport is reset.\n *\n * @param clientConstructor - a factory function that creates a grpc client\n */\n public createGrpcClientProvider<Client>(clientConstructor: (transport: GrpcTransport) => Client): GrpcClientProvider<Client> {\n // We need to cleanup providers periodically to avoid memory leaks.\n // This is a simple heuristic to avoid memory leaks.\n // We could use a more sophisticated algorithm, but this is good enough for now.\n this.providerCleanupCounter++;\n if (this.providerCleanupCounter >= 16) {\n for (let i = 0; i < this.providers.length; i++) {\n const provider = this.providers[i].deref();\n if (provider === undefined) {\n this.providers.splice(i, 1);\n i--;\n }\n }\n this.providerCleanupCounter = 0;\n }\n\n const provider = new GrpcClientProviderImpl<Client>(() => this._grpcTransport, clientConstructor);\n this.providers.push(new WeakRef(provider));\n return provider;\n }\n\n public get grpcTransport(): GrpcTransport {\n return this._grpcTransport;\n }\n\n /** Returns true if client is authenticated. Even with anonymous auth information\n * connection is considered authenticated. Unauthenticated clients are used for\n * login and similar tasks, see {@link UnauthenticatedPlClient}. */\n public get authenticated(): boolean {\n return this.authInformation !== undefined;\n }\n\n /** null means anonymous connection */\n public get authUser(): string | null {\n if (!this.authenticated) throw new Error('Client is not authenticated');\n if (this.authInformation?.jwtToken)\n return parsePlJwt(this.authInformation?.jwtToken).user.login;\n else return null;\n }\n\n private updateStatus(newStatus: PlConnectionStatus) {\n process.nextTick(() => {\n if (this._status !== newStatus) {\n this._status = newStatus;\n if (this.statusListener !== undefined) this.statusListener(this._status);\n if (this.onAuthError !== undefined) this.onAuthError();\n }\n });\n }\n\n public get status(): PlConnectionStatus {\n return this._status;\n }\n\n private authRefreshInProgress: boolean = false;\n\n private refreshAuthInformationIfNeeded(): void {\n if (\n this.refreshTimestamp === undefined\n || Date.now() < this.refreshTimestamp\n || this.authRefreshInProgress\n || this._status === 'Unauthenticated'\n )\n return;\n\n // Running refresh in background`\n this.authRefreshInProgress = true;\n void (async () => {\n try {\n const response = await this.grpcPl.get().getJWTToken({\n expiration: {\n seconds: BigInt(this.conf.authTTLSeconds),\n nanos: 0,\n },\n }).response;\n this.authInformation = { jwtToken: response.token };\n this.refreshTimestamp = inferAuthRefreshTime(\n this.authInformation,\n this.conf.authMaxRefreshSeconds,\n );\n if (this.onAuthUpdate) this.onAuthUpdate(this.authInformation);\n } catch (e: unknown) {\n if (this.onAuthRefreshProblem) this.onAuthRefreshProblem(e);\n } finally {\n this.authRefreshInProgress = false;\n }\n })();\n }\n\n /** Detects certain errors and update client status accordingly */\n private createErrorInterceptor(): Interceptor {\n return (options, nextCall) => {\n return new InterceptingCall(nextCall(options), {\n start: (metadata, listener, next) => {\n next(metadata, {\n onReceiveStatus: (status, next) => {\n if (status.code == GrpcStatus.UNAUTHENTICATED)\n // (!!!) don't change to \"===\"\n this.updateStatus('Unauthenticated');\n if (status.code == GrpcStatus.UNAVAILABLE)\n // (!!!) don't change to \"===\"\n this.updateStatus('Disconnected');\n next(status);\n },\n });\n },\n });\n };\n }\n\n /** Injects authentication information if needed */\n private createAuthInterceptor(): Interceptor {\n return (options, nextCall) => {\n return new InterceptingCall(nextCall(options), {\n start: (metadata, listener, next) => {\n if (this.authInformation?.jwtToken !== undefined) {\n metadata.set('authorization', 'Bearer ' + this.authInformation.jwtToken);\n this.refreshAuthInformationIfNeeded();\n next(metadata, listener);\n } else {\n next(metadata, listener);\n }\n },\n });\n };\n }\n\n createTx(rw: boolean, ops: PlCallOps = {}): LLPlTransaction {\n return new LLPlTransaction((abortSignal) => {\n let totalAbortSignal = abortSignal;\n if (ops.abortSignal) totalAbortSignal = AbortSignal.any([totalAbortSignal, ops.abortSignal]);\n return this.grpcPl.get().tx({\n abort: totalAbortSignal,\n timeout:\n ops.timeout\n ?? (rw ? this.conf.defaultRWTransactionTimeout : this.conf.defaultROTransactionTimeout),\n });\n });\n }\n\n /** Closes underlying transport */\n public async close() {\n this.grpcTransport.close();\n await this.httpDispatcher.destroy();\n }\n}\n","import type { Optional } from 'utility-types';\nimport type {\n BasicResourceData,\n ResourceData,\n} from './types';\nimport {\n getField,\n isNotNullResourceId,\n isNullResourceId,\n} from './types';\n\n/**\n * Function is used to guide multiple layers of caching in pl-client and derived pl-tree.\n *\n * This function defines expected resource-specific state mutation behaviour,\n * if it returns true, system will expect that this data will never change as long as resource exist.\n *\n * If resource data contain information about fields, if should be taken into account, fields are undefined,\n * \"final\" state should be calculated for \"basic\" part of resource data only.\n */\nexport type FinalResourceDataPredicate = (\n resourceData: Optional<ResourceData, 'fields'>\n) => boolean;\n\nfunction readyOrDuplicateOrError(r: ResourceData | BasicResourceData): boolean {\n return (\n r.resourceReady || isNotNullResourceId(r.originalResourceId) || isNotNullResourceId(r.error)\n );\n}\n\nfunction readyAndHasAllOutputsFilled(r: Optional<ResourceData, 'fields'>): boolean {\n if (!readyOrDuplicateOrError(r)) return false;\n if (!r.outputsLocked) return false;\n if (r.fields === undefined) return true; // if fields are not provided basic resource state is not expected to change in the future\n for (const f of r.fields)\n if (isNullResourceId(f.error) && (isNullResourceId(f.value) || !f.valueIsFinal)) return false;\n return true;\n}\n\n// solely for logging\nconst unknownResourceTypeNames = new Set<string>();\n\n/** Default implementation, defining behaviour for built-in resource types. */\nexport const DefaultFinalResourceDataPredicate: FinalResourceDataPredicate = (r): boolean => {\n switch (r.type.name) {\n case 'StreamManager': {\n if (!readyOrDuplicateOrError(r)) return false;\n if (r.fields === undefined) return true; // if fields are not provided basic resource state is not expected to change in the future\n if (isNotNullResourceId(r.error)) return true;\n const downloadable = getField(r as ResourceData, 'downloadable');\n const stream = getField(r as ResourceData, 'stream');\n return stream.value === downloadable.value;\n }\n case 'StdMap':\n case 'std/map':\n case 'EphStdMap':\n case 'PFrame':\n case 'BContext':\n case 'BlockPackCustom':\n case 'BinaryMap':\n case 'BinaryValue':\n case 'BlobMap':\n case 'BResolveSingle':\n case 'BResolveSingleNoResult':\n case 'BQueryResult':\n case 'TengoTemplate':\n case 'TengoLib':\n case 'SoftwareInfo':\n case 'Dummy':\n return readyOrDuplicateOrError(r);\n case 'json/resourceError':\n return r.type.version === '1';\n case 'json/object':\n case 'json-gz/object':\n case 'json/string':\n case 'json/array':\n case 'json/number':\n case 'BContextEnd':\n case 'Frontend/FromUrl':\n case 'Frontend/FromFolder':\n case 'BObjectSpec':\n case 'Blob':\n case 'Null':\n case 'binary':\n case 'LSProvider':\n return true;\n case 'UserProject':\n case 'Projects':\n case 'ClientRoot':\n return false;\n default:\n if (r.type.name.startsWith('Blob/')) return true;\n else if (r.type.name.startsWith('BlobUpload/') || r.type.name.startsWith('BlobIndex/')) {\n return readyAndHasAllOutputsFilled(r);\n } else if (r.type.name.startsWith('PColumnData/')) {\n return readyOrDuplicateOrError(r);\n } else if (r.type.name.startsWith('StreamWorkdir/')) {\n return readyOrDuplicateOrError(r);\n } else {\n // Unknonw resource type detected\n // Set used to log this message only once\n if (!unknownResourceTypeNames.has(r.type.name)) {\n console.log('UNKNOWN RESOURCE TYPE: ' + r.type.name);\n unknownResourceTypeNames.add(r.type.name);\n }\n }\n }\n return false;\n};\n","import type { AuthOps, PlClientConfig, PlConnectionStatusListener } from './config';\nimport type { PlCallOps } from './ll_client';\nimport { LLPlClient } from './ll_client';\nimport type { AnyResourceRef } from './transaction';\nimport { PlTransaction, toGlobalResourceId, TxCommitConflict } from './transaction';\nimport { createHash } from 'node:crypto';\nimport type { OptionalResourceId, ResourceId } from './types';\nimport { ensureResourceIdNotNull, isNullResourceId, NullResourceId } from './types';\nimport { ClientRoot } from '../helpers/pl';\nimport type { RetryOptions } from '@milaboratories/ts-helpers';\nimport { assertNever, createRetryState, nextRetryStateOrError } from '@milaboratories/ts-helpers';\nimport type { PlDriver, PlDriverDefinition } from './driver';\nimport type { MaintenanceAPI_Ping_Response } from '../proto/github.com/milaboratory/pl/plapi/plapiproto/api';\nimport { MaintenanceAPI_Ping_Response_Compression } from '../proto/github.com/milaboratory/pl/plapi/plapiproto/api';\nimport * as tp from 'node:timers/promises';\nimport type { Dispatcher } from 'undici';\nimport { LRUCache } from 'lru-cache';\nimport type { ResourceDataCacheRecord } from './cache';\nimport type { FinalResourceDataPredicate } from './final';\nimport { DefaultFinalResourceDataPredicate } from './final';\nimport type { AllTxStat, TxStat } from './stat';\nimport { addStat, initialTxStat } from './stat';\nimport type { GrpcTransport } from '@protobuf-ts/grpc-transport';\n\nexport type TxOps = PlCallOps & {\n sync?: boolean;\n retryOptions?: RetryOptions;\n};\n\nconst defaultTxOps = {\n sync: false,\n};\n\nconst AnonymousClientRoot = 'AnonymousRoot';\n\nfunction alternativeRootFieldName(alternativeRoot: string): string {\n return `alternative_root_${alternativeRoot}`;\n}\n\n/** Client to access core PL API. */\nexport class PlClient {\n private readonly drivers = new Map<string, PlDriver>();\n\n /** Artificial delay introduced after write transactions completion, to\n * somewhat throttle the load on pl. Delay introduced after sync, if requested. */\n private readonly txDelay: number;\n\n /** Last resort measure to solve complicated race conditions in pl. */\n private readonly forceSync: boolean;\n\n /** Last resort measure to solve complicated race conditions in pl. */\n private readonly defaultRetryOptions: RetryOptions;\n\n private readonly buildLLPlClient: (shouldUseGzip: boolean) => LLPlClient;\n private _ll: LLPlClient;\n /** Stores client root (this abstraction is intended for future implementation of the security model) */\n private _clientRoot: OptionalResourceId = NullResourceId;\n\n private _serverInfo: MaintenanceAPI_Ping_Response | undefined = undefined;\n\n private _txCommittedStat: TxStat = initialTxStat();\n private _txConflictStat: TxStat = initialTxStat();\n private _txErrorStat: TxStat = initialTxStat();\n\n //\n // Caching\n //\n\n /** This function determines whether resource data can be cached */\n public readonly finalPredicate: FinalResourceDataPredicate;\n\n /** Resource data cache, to minimize redundant data rereading from remote db */\n private readonly resourceDataCache: LRUCache<ResourceId, ResourceDataCacheRecord>;\n\n private constructor(\n configOrAddress: PlClientConfig | string,\n auth: AuthOps,\n ops: {\n statusListener?: PlConnectionStatusListener;\n finalPredicate?: FinalResourceDataPredicate;\n } = {},\n ) {\n // Will reinitialize client after getting available feature from server.\n this.buildLLPlClient = (shouldUseGzip: boolean) => {\n return new LLPlClient(configOrAddress, { auth, ...ops, shouldUseGzip });\n };\n this._ll = this.buildLLPlClient(false);\n const conf = this._ll.conf;\n this.txDelay = conf.txDelay;\n this.forceSync = conf.forceSync;\n this.finalPredicate = ops.finalPredicate ?? DefaultFinalResourceDataPredicate;\n this.resourceDataCache = new LRUCache({\n maxSize: conf.maxCacheBytes,\n sizeCalculation: (v) => (v.basicData.data?.length ?? 0) + 64,\n });\n switch (conf.retryBackoffAlgorithm) {\n case 'exponential':\n this.defaultRetryOptions = {\n type: 'exponentialBackoff',\n initialDelay: conf.retryInitialDelay,\n maxAttempts: conf.retryMaxAttempts,\n backoffMultiplier: conf.retryExponentialBackoffMultiplier,\n jitter: conf.retryJitter,\n };\n break;\n case 'linear':\n this.defaultRetryOptions = {\n type: 'linearBackoff',\n initialDelay: conf.retryInitialDelay,\n maxAttempts: conf.retryMaxAttempts,\n backoffStep: conf.retryLinearBackoffStep,\n jitter: conf.retryJitter,\n };\n break;\n default:\n assertNever(conf.retryBackoffAlgorithm);\n }\n }\n\n public get txCommittedStat(): TxStat {\n return { ...this._txCommittedStat };\n }\n\n public get txConflictStat(): TxStat {\n return { ...this._txConflictStat };\n }\n\n public get txErrorStat(): TxStat {\n return { ...this._txErrorStat };\n }\n\n public get txTotalStat(): TxStat {\n return addStat(addStat(this._txCommittedStat, this._txConflictStat), this._txErrorStat);\n }\n\n public get allTxStat(): AllTxStat {\n return {\n committed: this.txCommittedStat,\n conflict: this.txConflictStat,\n error: this.txErrorStat,\n };\n }\n\n public async ping(): Promise<MaintenanceAPI_Ping_Response> {\n return (await this._ll.grpcPl.get().ping({})).response;\n }\n\n public get conf(): PlClientConfig {\n return this._ll.conf;\n }\n\n public get httpDispatcher(): Dispatcher {\n return this._ll.httpDispatcher;\n }\n\n public get grpcTransport(): GrpcTransport {\n return this._ll.grpcTransport;\n }\n\n private get initialized() {\n return !isNullResourceId(this._clientRoot);\n }\n\n private checkInitialized() {\n if (!this.initialized) throw new Error('Client not initialized');\n }\n\n public get clientRoot(): ResourceId {\n this.checkInitialized();\n return ensureResourceIdNotNull(this._clientRoot);\n }\n\n public get serverInfo(): MaintenanceAPI_Ping_Response {\n this.checkInitialized();\n return this._serverInfo!;\n }\n\n /** Currently implements custom logic to emulate future behaviour with single root. */\n public async init() {\n if (this.initialized) throw new Error('Already initialized');\n\n // calculating reproducible root name from the username\n const user = this._ll.authUser;\n const mainRootName\n = user === null ? AnonymousClientRoot : createHash('sha256').update(user).digest('hex');\n\n this._serverInfo = await this.ping();\n if (this._serverInfo.compression === MaintenanceAPI_Ping_Response_Compression.GZIP) {\n await this._ll.close();\n this._ll = this.buildLLPlClient(true);\n }\n\n this._clientRoot = await this._withTx('initialization', true, NullResourceId, async (tx) => {\n let mainRoot: AnyResourceRef;\n\n if (await tx.checkResourceNameExists(mainRootName))\n mainRoot = await tx.getResourceByName(mainRootName);\n else {\n mainRoot = tx.createRoot(ClientRoot);\n tx.setResourceName(mainRootName, mainRoot);\n }\n\n if (this.conf.alternativeRoot === undefined) {\n await tx.commit();\n return await toGlobalResourceId(mainRoot);\n } else {\n const aFId = {\n resourceId: mainRoot,\n fieldName: alternativeRootFieldName(this.conf.alternativeRoot),\n };\n\n const altRoot = tx.createEphemeral(ClientRoot);\n tx.lock(altRoot);\n tx.createField(aFId, 'Dynamic');\n tx.setField(aFId, altRoot);\n await tx.commit();\n\n return await altRoot.globalId;\n }\n });\n }\n\n /** Returns true if field existed */\n public async deleteAlternativeRoot(alternativeRootName: string): Promise<boolean> {\n this.checkInitialized();\n if (this._ll.conf.alternativeRoot !== undefined)\n throw new Error('Initialized with alternative root.');\n return await this.withWriteTx('delete-alternative-root', async (tx) => {\n const fId = {\n resourceId: tx.clientRoot,\n fieldName: alternativeRootFieldName(alternativeRootName),\n };\n const exists = tx.fieldExists(fId);\n tx.removeField(fId);\n await tx.commit();\n return await exists;\n });\n }\n\n private async _withTx<T>(\n name: string,\n writable: boolean,\n clientRoot: OptionalResourceId,\n body: (tx: PlTransaction) => Promise<T>,\n ops?: TxOps,\n ): Promise<T> {\n // for exponential / linear backoff\n let retryState = createRetryState(ops?.retryOptions ?? this.defaultRetryOptions);\n\n while (true) {\n // opening low-level tx\n const llTx = this._ll.createTx(writable, ops);\n // wrapping it into high-level tx (this also asynchronously sends initialization message)\n const tx = new PlTransaction(\n llTx,\n name,\n writable,\n clientRoot,\n this.finalPredicate,\n this.resourceDataCache,\n );\n\n let ok = false;\n let result: T | undefined = undefined;\n let txId;\n\n try {\n // executing transaction body\n result = await body(tx);\n // collecting stat\n this._txCommittedStat = addStat(this._txCommittedStat, tx.stat);\n ok = true;\n } catch (e: unknown) {\n // the only recoverable\n if (e instanceof TxCommitConflict) {\n // ignoring\n // collecting stat\n this._txConflictStat = addStat(this._txConflictStat, tx.stat);\n } else {\n // collecting stat\n this._txErrorStat = addStat(this._txErrorStat, tx.stat);\n throw e;\n }\n } finally {\n // close underlying grpc stream, if not yet done\n\n // even though we can skip two lines below for read-only transactions,\n // we don't do it to simplify reasoning about what is going on in\n // concurrent code, especially in significant latency situations\n await tx.complete();\n await tx.await();\n\n txId = await tx.getGlobalTxId();\n }\n\n if (ok) {\n // syncing on transaction if requested\n if (ops?.sync === undefined ? this.forceSync : ops?.sync)\n await this._ll.grpcPl.get().txSync({ txId });\n\n // introducing artificial delay, if requested\n if (writable && this.txDelay > 0)\n await tp.setTimeout(this.txDelay, undefined, { signal: ops?.abortSignal });\n\n return result!;\n }\n\n // we only get here after TxCommitConflict error,\n // all other errors terminate this loop instantly\n\n await tp.setTimeout(retryState.nextDelay, undefined, { signal: ops?.abortSignal });\n retryState = nextRetryStateOrError(retryState);\n }\n }\n\n private async withTx<T>(\n name: string,\n writable: boolean,\n body: (tx: PlTransaction) => Promise<T>,\n ops: Partial<TxOps> = {},\n ): Promise<T> {\n this.checkInitialized();\n return await this._withTx(name, writable, this.clientRoot, body, { ...ops, ...defaultTxOps });\n }\n\n public async withWriteTx<T>(\n name: string,\n body: (tx: PlTransaction) => Promise<T>,\n ops: Partial<TxOps> = {},\n ): Promise<T> {\n return await this.withTx(name, true, body, { ...ops, ...defaultTxOps });\n }\n\n public async withReadTx<T>(\n name: string,\n body: (tx: PlTransaction) => Promise<T>,\n ops: Partial<TxOps> = {},\n ): Promise<T> {\n return await this.withTx(name, false, body, { ...ops, ...defaultTxOps });\n }\n\n public getDriver<Drv extends PlDriver>(definition: PlDriverDefinition<Drv>): Drv {\n const attached = this.drivers.get(definition.name);\n if (attached !== undefined) return attached as Drv;\n const driver = definition.init(this, this._ll, this.httpDispatcher);\n this.drivers.set(definition.name, driver);\n return driver;\n }\n\n /** Closes underlying transport */\n public async close() {\n await this._ll.close();\n }\n\n public static async init(\n configOrAddress: PlClientConfig | string,\n auth: AuthOps,\n ops: {\n statusListener?: PlConnectionStatusListener;\n } = {},\n ) {\n const pl = new PlClient(configOrAddress, auth, ops);\n await pl.init();\n return pl;\n }\n}\n","import type { PlClient } from './client';\nimport type { RpcOptions } from '@protobuf-ts/runtime-rpc';\nimport type { Dispatcher } from 'undici';\nimport type { ResourceType } from './types';\nimport type { GrpcClientProviderFactory } from './grpc';\n\n/** Drivers must implement this interface */\nexport interface PlDriver {\n close(): void;\n}\n\n/** Definition to use driver via {@link PlClient} */\nexport interface PlDriverDefinition<Drv extends PlDriver> {\n /** Used as key to only once instantiate specific drivers */\n readonly name: string;\n\n /** Initialization routine, will be executed only once for each driver in a specific client */\n init(pl: PlClient, grpcClientProviderFactory: GrpcClientProviderFactory, httpDispatcher: Dispatcher): Drv;\n}\n\n// addRTypeToMetadata adds a metadata with resource type\n// for every RPC call. It is necessary for the platform core\n// to proxy the call to the proper controller.\nexport function addRTypeToMetadata(rType: ResourceType, options?: RpcOptions) {\n options = options ?? {};\n options.meta = options.meta ?? {};\n options.meta['resourceType'] = `${rType.name}:${rType.version}`;\n\n return options;\n}\n","import type { AuthInformation, PlClientConfig } from './config';\nimport type {\n AuthAPI_ListMethods_Response,\n MaintenanceAPI_Ping_Response,\n} from '../proto/github.com/milaboratory/pl/plapi/plapiproto/api';\nimport { LLPlClient } from './ll_client';\nimport { notEmpty } from '@milaboratories/ts-helpers';\nimport { UnauthenticatedError } from './errors';\n\n/** Primarily used for initial authentication (login) */\nexport class UnauthenticatedPlClient {\n public readonly ll: LLPlClient;\n\n constructor(configOrAddress: PlClientConfig | string) {\n this.ll = new LLPlClient(configOrAddress);\n }\n\n public async ping(): Promise<MaintenanceAPI_Ping_Response> {\n return (await this.ll.grpcPl.get().ping({})).response;\n }\n\n public async authMethods(): Promise<AuthAPI_ListMethods_Response> {\n return (await this.ll.grpcPl.get().authMethods({})).response;\n }\n\n public async requireAuth(): Promise<boolean> {\n return (await this.authMethods()).methods.length > 0;\n }\n\n public async login(user: string, password: string): Promise<AuthInformation> {\n try {\n const response = await this.ll.grpcPl.get().getJWTToken(\n { expiration: { seconds: BigInt(this.ll.conf.authTTLSeconds), nanos: 0 } },\n {\n meta: {\n authorization: 'Basic ' + Buffer.from(user + ':' + password).toString('base64'),\n },\n },\n ).response;\n const jwtToken = notEmpty(response.token);\n if (jwtToken === '') throw new Error('empty token');\n return { jwtToken };\n } catch (e: any) {\n if (e.code === 'UNAUTHENTICATED') throw new UnauthenticatedError(e.message);\n throw new Error(e);\n }\n }\n}\n","import fs from 'node:fs';\nimport type { AuthInformation, PlClientConfig } from './config';\nimport { plAddressToConfig } from './config';\nimport canonicalize from 'canonicalize';\nimport YAML from 'yaml';\nimport * as os from 'node:os';\nimport * as path from 'node:path';\nimport { notEmpty } from '@milaboratories/ts-helpers';\nimport { UnauthenticatedPlClient } from './unauth_client';\nimport { PlClient } from './client';\nimport { createHash } from 'node:crypto';\nimport { inferAuthRefreshTime } from './auth';\n\nconst CONFIG_FILE_LOCAL_JSON = 'pl.json';\nconst CONFIG_FILE_USER_JSON = path.join(os.homedir(), '.pl.json');\nconst CONFIG_FILE_LOCAL_YAML = 'pl.yaml';\nconst CONFIG_FILE_USER_YAML = path.join(os.homedir(), '.pl.yaml');\nconst CONF_FILE_SEQUENCE = [\n CONFIG_FILE_LOCAL_JSON,\n CONFIG_FILE_LOCAL_YAML,\n CONFIG_FILE_USER_JSON,\n CONFIG_FILE_USER_YAML,\n];\n\nconst AUTH_DATA_FILE = '.pl_auth.json';\n\ntype FileConfigOverrideFields =\n | 'grpcProxy'\n | 'httpProxy'\n | 'user'\n | 'password'\n | 'alternativeRoot'\n | 'defaultROTransactionTimeout'\n | 'defaultRWTransactionTimeout'\n | 'defaultRequestTimeout'\n | 'authTTLSeconds'\n | 'authMaxRefreshSeconds';\nconst FILE_CONFIG_OVERRIDE_FIELDS: FileConfigOverrideFields[] = [\n 'grpcProxy',\n 'httpProxy',\n 'user',\n 'password',\n 'alternativeRoot',\n 'defaultROTransactionTimeout',\n 'defaultRWTransactionTimeout',\n 'defaultRequestTimeout',\n 'authTTLSeconds',\n 'authMaxRefreshSeconds',\n];\n\ntype PlConfigFile = {\n address: string;\n} & Partial<Pick<PlClientConfig, FileConfigOverrideFields>>;\n\ninterface AuthCache {\n /** To check if config changed */\n confHash: string;\n expiration: number;\n authInformation: AuthInformation;\n}\n\nexport function tryGetFileConfig(): [PlConfigFile, string] | undefined {\n for (const confPath of CONF_FILE_SEQUENCE)\n if (fs.existsSync(confPath)) {\n const fileContent = fs.readFileSync(confPath, { encoding: 'utf-8' });\n if (confPath.endsWith('json')) return [JSON.parse(fileContent) as PlConfigFile, confPath];\n else return [YAML.parse(fileContent) as PlConfigFile, confPath];\n }\n return undefined;\n}\n\nfunction saveAuthInfoCallback(\n confHash: string,\n authMaxRefreshSeconds: number,\n): (newAuthInfo: AuthInformation) => void {\n return (newAuthInfo) => {\n fs.writeFileSync(\n AUTH_DATA_FILE,\n Buffer.from(\n JSON.stringify({\n confHash,\n authInformation: newAuthInfo,\n expiration: inferAuthRefreshTime(newAuthInfo, authMaxRefreshSeconds),\n } as AuthCache),\n ),\n 'utf8',\n );\n };\n}\n\nconst cleanAuthInfoCallback = () => {\n fs.rmSync(AUTH_DATA_FILE);\n};\n\n/** Uses default algorithm to construct a pl client from the environment */\nexport async function defaultPlClient(): Promise<PlClient> {\n let config: PlClientConfig | undefined = undefined;\n if (process.env.PL_ADDRESS !== undefined) {\n config = plAddressToConfig(process.env.PL_ADDRESS);\n } else {\n const fromFile = tryGetFileConfig();\n if (fromFile !== undefined) {\n const [fileConfig, configPath] = fromFile;\n const address = notEmpty(fileConfig.address, `no pl address in file: ${configPath}`);\n config = plAddressToConfig(address);\n // applying overrides\n for (const field of FILE_CONFIG_OVERRIDE_FIELDS)\n if (fileConfig[field] !== undefined) (config as any)[field] = fileConfig[field];\n }\n }\n\n if (config === undefined)\n throw new Error('Can\\'t find configuration to create default platform client.');\n\n if (process.env.PL_USER !== undefined) config.user = process.env.PL_USER;\n\n if (process.env.PL_PASSWORD !== undefined) config.user = process.env.PL_PASSWORD;\n\n const confHash = createHash('sha256')\n .update(Buffer.from(canonicalize(config)!))\n .digest('base64');\n\n let authInformation: AuthInformation | undefined = undefined;\n\n // try recover auth information from cache\n if (fs.existsSync(AUTH_DATA_FILE)) {\n const cache: AuthCache = JSON.parse(fs.readFileSync(AUTH_DATA_FILE, { encoding: 'utf-8' }));\n if (cache.confHash === confHash && cache.expiration > Date.now())\n authInformation = cache.authInformation;\n }\n\n if (authInformation === undefined) {\n const client = new UnauthenticatedPlClient(config);\n\n if (await client.requireAuth()) {\n if (config.user === undefined || config.password === undefined)\n throw new Error(`No auth information for found to authenticate with PL server.`);\n authInformation = await client.login(config.user, config.password);\n } else {\n // No authorization is required\n authInformation = {};\n }\n\n // saving cache\n fs.writeFileSync(\n AUTH_DATA_FILE,\n Buffer.from(\n JSON.stringify({\n confHash,\n authInformation,\n expiration: inferAuthRefreshTime(authInformation, config.authMaxRefreshSeconds),\n } as AuthCache),\n ),\n 'utf8',\n );\n }\n\n return await PlClient.init(config, {\n authInformation,\n onUpdate: (_newAuthInfo) => saveAuthInfoCallback(confHash, config.authMaxRefreshSeconds),\n onUpdateError: cleanAuthInfoCallback,\n onAuthError: cleanAuthInfoCallback,\n });\n}\n","import type { PlTransaction } from '../core/transaction';\nimport type { FieldData, OptionalResourceId } from '../core/types';\nimport { isNotNullResourceId } from '../core/types';\nimport { cachedDeserialize, notEmpty } from '@milaboratories/ts-helpers';\n\nexport interface ValErr {\n valueId: OptionalResourceId;\n errorId: OptionalResourceId;\n error?: string;\n}\n\nexport async function valErr(tx: PlTransaction, f: FieldData): Promise<ValErr> {\n const result = {\n valueId: f.value,\n errorId: f.error,\n error: '',\n };\n\n if (isNotNullResourceId(f.error)) {\n const e = await tx.getResourceData(f.error, true);\n const deserializationResult = cachedDeserialize(notEmpty(e.data));\n if (typeof deserializationResult !== 'string') {\n const dataStr = notEmpty(e.data).toString();\n throw new Error(`Unexpected error structure: ${dataStr.substring(0, Math.min(dataStr.length, 100))}...`);\n }\n result.error = deserializationResult;\n }\n\n return result;\n}\n","import type { PlClient } from '../core/client';\nimport type {\n RetryOptions,\n} from '@milaboratories/ts-helpers';\nimport {\n createRetryState,\n nextRetryStateOrError,\n notEmpty,\n} from '@milaboratories/ts-helpers';\nimport type {\n FieldData,\n FieldType,\n ResourceData,\n ResourceId } from '../core/types';\nimport {\n isNotNullResourceId,\n isNullResourceId,\n resourceIdToString,\n} from '../core/types';\nimport type { PlTransaction } from '../core/transaction';\nimport * as tp from 'node:timers/promises';\n\n/** This error tells state assertion mechanism that required state is not yet ready */\nexport class ContinuePolling extends Error {\n name = 'ContinuePolling';\n}\n\nexport type PollFieldTraverseOps = {\n expectedType?: FieldType;\n /** Fail if error present along with the value, if value not present,\n * but error do, exception will be thrown anyway. */\n failOnError: boolean;\n /** Traverse only if field report its value as final. */\n onlyFinal: boolean;\n};\n\nconst DefaultPollFieldTraverseOps: PollFieldTraverseOps = {\n failOnError: true,\n onlyFinal: false,\n};\n\nexport class PollResourceAccessor {\n constructor(\n public readonly tx: PollTxAccessor,\n public readonly data: ResourceData,\n public readonly path: string[],\n ) {}\n\n public final(): PollResourceAccessor {\n if (!this.data.final) throw new ContinuePolling();\n return this;\n }\n\n public async requireNoError(): Promise<PollResourceAccessor> {\n if (isNullResourceId(this.data.error)) return this;\n await this.tx.throwError(this.data.error, this.path);\n // hmm... https://github.com/microsoft/TypeScript/issues/34955\n return this;\n }\n\n public getFieldData(name: string, expectedType?: FieldType): FieldData {\n const fieldData = this.data.fields.find((f) => f.name === name);\n\n if (fieldData !== undefined) {\n if (expectedType !== undefined && fieldData.type !== expectedType)\n throw new Error(`Unexpected field type. Expected ${expectedType}, found ${fieldData.type}`);\n return fieldData;\n }\n\n if (\n ((expectedType === 'Input' || expectedType === 'Service') && this.data.inputsLocked)\n || (expectedType === 'Output' && this.data.outputsLocked)\n )\n throw new Error(\n // eslint-disable-next-line @typescript-eslint/no-base-to-string, @typescript-eslint/restrict-template-expressions\n `Field \"${name}\" not found. Expected type: ${expectedType}, state: ${this.data}`,\n );\n\n throw new ContinuePolling();\n }\n\n public async get(\n name: string,\n ops: Partial<PollFieldTraverseOps> = {},\n ): Promise<PollResourceAccessor> {\n const { expectedType, failOnError } = { ...DefaultPollFieldTraverseOps, ...ops };\n const path = [...this.path, name];\n\n const fieldData = this.getFieldData(name, expectedType);\n if (isNotNullResourceId(fieldData.error) && (failOnError || isNullResourceId(fieldData.value)))\n await this.tx.throwError(fieldData.error, path);\n\n if (isNullResourceId(fieldData.value)) throw new ContinuePolling();\n\n return await this.tx.get(fieldData.value, failOnError, path);\n }\n\n public async getMulti(\n ops: Partial<PollFieldTraverseOps>,\n ...names: string[]\n ): Promise<PollResourceAccessor[]> {\n return await Promise.all(names.map((name) => this.get(name, ops)));\n }\n\n public async getMultiObj<Key extends string>(\n ops: Partial<PollFieldTraverseOps>,\n ...names: Key[]\n ): Promise<Record<Key, PollResourceAccessor>> {\n return Object.fromEntries(\n await Promise.all(names.map(async (name) => [name, await this.get(name, ops)])),\n );\n }\n\n public async getAllFinal(\n ops: Partial<PollFieldTraverseOps> = {},\n ): Promise<Record<string, PollResourceAccessor>> {\n return await this.getMultiObj(\n ops,\n ...this.data.fields\n .filter((f) => f.valueIsFinal || isNotNullResourceId(f.error))\n .map((f) => f.name),\n );\n }\n\n public async getKValue(key: string): Promise<string> {\n const value = await this.tx.tx.getKValueStringIfExists(this.data.id, key);\n if (value === undefined) throw new ContinuePolling();\n return value;\n }\n\n public async getKValueObj<T>(key: string): Promise<T> {\n return JSON.parse(await this.getKValue(key)) as T;\n }\n}\n\nexport class PollTxAccessor {\n constructor(public readonly tx: PlTransaction) {}\n\n public async get(\n rid: ResourceId,\n failOnError: boolean = true,\n path: string[] = [],\n ): Promise<PollResourceAccessor> {\n const data = await this.tx.getResourceData(rid, true);\n const accessor = new PollResourceAccessor(this, data, [...path, resourceIdToString(rid)]);\n if (failOnError) await accessor.requireNoError();\n return accessor;\n }\n\n async throwError(error: ResourceId, path: string[] = []): Promise<never> {\n const errorRes = await this.get(error);\n const errorText = Buffer.from(notEmpty(errorRes.data.data)).toString();\n throw new Error(`${path.join(' -> ')} = ${errorText}`);\n }\n}\n\nexport const DefaultPollingRetryOptions: RetryOptions = {\n type: 'linearBackoff',\n jitter: 0,\n maxAttempts: 100,\n backoffStep: 10,\n initialDelay: 10,\n};\n\nexport async function poll<T>(\n cl: PlClient,\n cb: (tx: PollTxAccessor) => Promise<T>,\n retryOptions: RetryOptions = DefaultPollingRetryOptions,\n txName: string = 'polling',\n): Promise<T> {\n let retryState = createRetryState(retryOptions);\n while (true) {\n try {\n return await cl.withReadTx(txName, async (tx) => {\n return await cb(new PollTxAccessor(tx));\n });\n } catch (e: any) {\n // Rethrowing any error except the \"not ready yet\"\n if (!(e instanceof ContinuePolling)) throw e;\n }\n await tp.setTimeout(retryState.nextDelay);\n retryState = nextRetryStateOrError(retryState);\n }\n}\n","import * as fs from 'node:fs';\nimport { LLPlClient } from '../core/ll_client';\nimport type { AuthInformation, AuthOps, PlClientConfig } from '../core/config';\nimport { plAddressToConfig } from '../core/config';\nimport { UnauthenticatedPlClient } from '../core/unauth_client';\nimport { PlClient } from '../core/client';\nimport { randomUUID } from 'node:crypto';\nimport type { OptionalResourceId } from '../core/types';\nimport { NullResourceId, resourceIdToString } from '../core/types';\nimport { inferAuthRefreshTime } from '../core/auth';\nimport * as path from 'node:path';\n\nexport interface TestConfig {\n address: string;\n test_proxy?: string;\n test_user?: string;\n test_password?: string;\n}\n\nconst CONFIG_FILE = 'test_config.json';\n// const AUTH_DATA_FILE = '.test_auth.json';\n\nlet authDataFilePath: string | undefined;\n\nfunction getFullAuthDataFilePath() {\n if (authDataFilePath === undefined) authDataFilePath = path.resolve('.test_auth.json');\n return authDataFilePath;\n}\n\nexport function getTestConfig(): TestConfig {\n let conf: Partial<TestConfig> = {};\n if (fs.existsSync(CONFIG_FILE))\n conf = JSON.parse(fs.readFileSync(CONFIG_FILE, { encoding: 'utf-8' })) as TestConfig;\n\n if (process.env.PL_ADDRESS !== undefined) conf.address = process.env.PL_ADDRESS;\n\n if (process.env.PL_TEST_USER !== undefined) conf.test_user = process.env.PL_TEST_USER;\n\n if (process.env.PL_TEST_PASSWORD !== undefined) conf.test_password = process.env.PL_TEST_PASSWORD;\n\n if (process.env.PL_TEST_PROXY !== undefined) conf.test_proxy = process.env.PL_TEST_PROXY;\n\n if (conf.address === undefined)\n throw new Error(\n `can't resolve platform address (checked ${CONFIG_FILE} file and PL_ADDRESS environment var)`,\n );\n\n return conf as TestConfig;\n}\n\ninterface AuthCache {\n /** To check if config changed */\n conf: TestConfig;\n expiration: number;\n authInformation: AuthInformation;\n}\n\nfunction saveAuthInfoCallback(tConf: TestConfig): (authInformation: AuthInformation) => void {\n return (authInformation) => {\n const dst = getFullAuthDataFilePath();\n const tmpDst = getFullAuthDataFilePath() + randomUUID();\n fs.writeFileSync(\n tmpDst,\n Buffer.from(\n JSON.stringify({\n conf: tConf,\n authInformation,\n expiration: inferAuthRefreshTime(authInformation, 24 * 60 * 60),\n } as AuthCache),\n ),\n 'utf8',\n );\n fs.renameSync(tmpDst, dst);\n };\n}\n\nconst cleanAuthInfoCallback = () => {\n console.warn(`Removing: ${getFullAuthDataFilePath()}`);\n fs.rmSync(getFullAuthDataFilePath());\n};\n\nexport async function getTestClientConf(): Promise<{ conf: PlClientConfig; auth: AuthOps }> {\n const tConf = getTestConfig();\n\n let authInformation: AuthInformation | undefined = undefined;\n\n // try recover from cache\n if (fs.existsSync(getFullAuthDataFilePath())) {\n try {\n const cache: AuthCache = JSON.parse(\n fs.readFileSync(getFullAuthDataFilePath(), { encoding: 'utf-8' }),\n ) as AuthCache; // TODO runtime validation\n if (\n cache.conf.address === tConf.address\n && cache.conf.test_user === tConf.test_user\n && cache.conf.test_password === tConf.test_password\n && cache.expiration > Date.now()\n )\n authInformation = cache.authInformation;\n } catch (_e) {\n // removing cache file on any error\n fs.rmSync(getFullAuthDataFilePath());\n }\n }\n\n const plConf = plAddressToConfig(tConf.address);\n\n const uClient = new UnauthenticatedPlClient(plConf);\n\n const requireAuth = await uClient.requireAuth();\n\n if (!requireAuth && (tConf.test_user !== undefined || tConf.test_password !== undefined))\n throw new Error(\n `Server require no auth, but test user name or test password are provided via (${CONFIG_FILE}) or env variables: PL_TEST_USER and PL_TEST_PASSWORD`,\n );\n\n if (requireAuth && (tConf.test_user === undefined || tConf.test_password === undefined))\n throw new Error(\n `No auth information found in config (${CONFIG_FILE}) or env variables: PL_TEST_USER and PL_TEST_PASSWORD`,\n );\n\n if (authInformation === undefined) {\n if (requireAuth) authInformation = await uClient.login(tConf.test_user!, tConf.test_password!);\n // No authorization is required\n else authInformation = {};\n\n // saving cache\n saveAuthInfoCallback(tConf)(authInformation);\n }\n\n return {\n conf: plConf,\n auth: {\n authInformation,\n onUpdate: saveAuthInfoCallback(tConf),\n onAuthError: cleanAuthInfoCallback,\n onUpdateError: cleanAuthInfoCallback,\n },\n };\n}\n\nexport async function getTestLLClient(confOverrides: Partial<PlClientConfig> = {}) {\n const { conf, auth } = await getTestClientConf();\n return new LLPlClient({ ...conf, ...confOverrides }, { auth });\n}\n\nexport async function getTestClient(alternativeRoot?: string) {\n const { conf, auth } = await getTestClientConf();\n if (alternativeRoot !== undefined && conf.alternativeRoot !== undefined)\n throw new Error('test pl address configured with alternative root');\n return await PlClient.init({ ...conf, alternativeRoot }, auth);\n}\n\nexport async function withTempRoot<T>(body: (pl: PlClient) => Promise<T>): Promise<T> {\n const alternativeRoot = `test_${Date.now()}_${randomUUID()}`;\n let altRootId: OptionalResourceId = NullResourceId;\n try {\n const client = await getTestClient(alternativeRoot);\n altRootId = client.clientRoot;\n const value = await body(client);\n const rawClient = await getTestClient();\n await rawClient.deleteAlternativeRoot(alternativeRoot);\n return value;\n } catch (err: any) {\n console.log(`ALTERNATIVE ROOT: ${alternativeRoot} (${resourceIdToString(altRootId)})`);\n throw new Error(err.message, { cause: err });\n }\n}\n"],"names":["NullResourceId","isNullResourceId","resourceId","isNotNullResourceId","ensureResourceIdNotNull","isAnyResourceId","resourceType","name","version","resourceTypeToString","rt","resourceTypesEqual","type1","type2","extractBasicResourceData","rd","id","originalResourceId","kind","type","data","error","inputsLocked","outputsLocked","resourceReady","final","jsonToData","resDataToJson","res","cachedDeserialize","notEmpty","getField","r","f","ResourceIdRootMask","ResourceIdLocalMask","NoFlagsIdMask","LocalResourceIdTxIdOffset","MaxLocalId","MaxTxId","TxIdMask","LocalIdMask","isRootResourceId","isLocalResourceId","createLocalResourceId","isRoot","localCounterValue","localTxId","createGlobalResourceId","unmaskedId","extractTxId","localResourceId","checkLocalityOfResourceId","expectedTxId","resourceIdToString","resourceIdRegexp","resourceIdFromString","str","match","xx","rn","lg","rid","txid","bigintToResourceId","stringifyWithResourceId","object","key","value","Duration$Type","MessageType","message","options","s","PbLong","text","nanosStr","json","target","typeofJsonValue","sign","secs","nanos","longSeconds","reflectionMergePartial","reader","length","end","fieldNo","wireType","u","d","UnknownFieldHandler","writer","WireType","Duration","FieldType","ResourceType$Type","ResourceType","FieldRef$Type","FieldRef","Number$$Type","ControllerSettings$Type","SubscriptionSettings$Type","NotificationFilter$Type","NotificationFilter_EventFilter","NotificationFilter_Payload","NotificationFilter","NotificationFilter_EventFilter$Type","NotificationFilter_Payload$Type","map","len","val","k","Timestamp$Type","msg","ms","date","z","matches","Timestamp","Resource_Kind","Field_ValueStatus","Tx$Type","Tx","Resource$Type","Resource_Features","Field","i","Resource","Resource_Features$Type","Field$Type","Notification$Type","Notification_Events","Notification_FieldChange","SpanInfo","Notification","Notification_Events$Type","Notification_FieldChange$Type","SpanInfo$Type","Subscription$Type","Subscription","Controller$Type","Controller","ResourceSchema$Type","FieldSchema","ResourceSchema","FieldSchema$Type","ResourceAPIFeature$Type","ResourceAPIFeature","Any$Type","any","wants","has","typeName","opt","jsonWriteOptions","_a","t","isJsonObject","copy","url","slash","Any","Status$Type","Status","TxAPI_Open_Request_WritableTx","MaintenanceAPI_Ping_Response_Compression","TxAPI$Type","TxAPI_ClientMessage$Type","TxAPI_Open_Request","TxAPI_Commit_Request","TxAPI_Discard_Request","ResourceAPI_CreateRoot_Request","ResourceAPI_Remove_Request","ResourceAPI_CreateStruct_Request","ResourceAPI_CreateEphemeral_Request","ResourceAPI_CreateValue_Request","ResourceAPI_GetValueID_Request","ResourceAPI_CreateSingleton_Request","ResourceAPI_GetSingleton_Request","ResourceAPI_CreateChild_Request","ResourceAPI_LockInputs_Request","ResourceAPI_LockOutputs_Request","ResourceAPI_Exists_Request","ResourceAPI_Get_Request","ResourceAPI_SetError_Request","ResourceAPI_List_ByType_Request","ResourceAPI_Name_Set_Request","ResourceAPI_Name_Get_Request","ResourceAPI_Name_Exists_Request","ResourceAPI_Name_Delete_Request","ResourceAPI_Tree_Request","ResourceAPI_TreeSize_Request","FieldAPI_Create_Request","FieldAPI_Exists_Request","FieldAPI_Set_Request","FieldAPI_SetError_Request","FieldAPI_Get_Request","FieldAPI_Reset_Request","FieldAPI_Remove_Request","FieldAPI_List_Request","SubscriptionAPI_CreateSubscription_Request","SubscriptionAPI_AttachFilter_Request","SubscriptionAPI_DetachFilter_Request","SubscriptionAPI_CreateFilter_Request","NotificationAPI_Get_Request","NotificationAPI_Ack_Request","NotificationAPI_Discard_Request","ResourceKVAPI_Set_Request","ResourceKVAPI_Get_Request","ResourceKVAPI_GetIfExists_Request","ResourceKVAPI_SetFlag_Request","ResourceKVAPI_GetFlag_Request","ResourceKVAPI_Delete_Request","ResourceKVAPI_List_Request","ControllerKVAPI_Set_Request","ControllerKVAPI_Get_Request","ControllerKVAPI_GetIfExists_Request","CacheAPI_SetToField_Request","CacheAPI_DeleteExpiredRecords_Request","ControllerAPI_SetFeatures_Request","ControllerAPI_ClearFeatures_Request","TxAPI_ClientMessage","TxAPI_ServerMessage$Type","TxAPI_ServerMessage_Multi","TxAPI_Open_Response","TxAPI_Commit_Response","TxAPI_Discard_Response","ResourceAPI_CreateRoot_Response","ResourceAPI_Remove_Response","ResourceAPI_CreateStruct_Response","ResourceAPI_CreateEphemeral_Response","ResourceAPI_CreateValue_Response","ResourceAPI_GetValueID_Response","ResourceAPI_CreateSingleton_Response","ResourceAPI_GetSingleton_Response","ResourceAPI_CreateChild_Response","ResourceAPI_LockInputs_Response","ResourceAPI_LockOutputs_Response","ResourceAPI_Exists_Response","ResourceAPI_Get_Response","ResourceAPI_SetError_Response","ResourceAPI_List_ByType_Response","ResourceAPI_Name_Set_Response","ResourceAPI_Name_Get_Response","ResourceAPI_Name_Exists_Response","ResourceAPI_Name_Delete_Response","ResourceAPI_Tree_Response","ResourceAPI_TreeSize_Response","FieldAPI_Create_Response","FieldAPI_Exists_Response","FieldAPI_Set_Response","FieldAPI_SetError_Response","FieldAPI_Get_Response","FieldAPI_Reset_Response","FieldAPI_Remove_Response","FieldAPI_List_Response","SubscriptionAPI_CreateSubscription_Response","SubscriptionAPI_CreateFilter_Response","SubscriptionAPI_AttachFilter_Response","SubscriptionAPI_DetachFilter_Response","NotificationAPI_Get_Response","NotificationAPI_Ack_Response","NotificationAPI_Discard_Response","ResourceKVAPI_Set_Response","ResourceKVAPI_Get_Response","ResourceKVAPI_GetIfExists_Response","ResourceKVAPI_SetFlag_Response","ResourceKVAPI_GetFlag_Response","ResourceKVAPI_Delete_Response","ResourceKVAPI_List_Response","ControllerKVAPI_Set_Response","ControllerKVAPI_Get_Response","ControllerKVAPI_GetIfExists_Response","CacheAPI_SetToField_Response","CacheAPI_DeleteExpiredRecords_Response","ControllerAPI_SetFeatures_Response","ControllerAPI_ClearFeatures_Response","TxAPI_ServerMessage","TxAPI_ServerMessage_Multi$Type","TxAPI_Open$Type","TxAPI_Open_Request$Type","TxAPI_Open_Response$Type","TxAPI_Commit$Type","TxAPI_Commit_Request$Type","TxAPI_Commit_Response$Type","TxAPI_Discard$Type","TxAPI_Discard_Request$Type","TxAPI_Discard_Response$Type","TxAPI_Sync$Type","TxAPI_Sync_Request$Type","TxAPI_Sync_Request","TxAPI_Sync_Response$Type","TxAPI_Sync_Response","ResourceAPI$Type","ResourceAPI_CreateStruct$Type","ResourceAPI_CreateStruct_Request$Type","ResourceAPI_CreateStruct_Response$Type","ResourceAPI_CreateEphemeral$Type","ResourceAPI_CreateEphemeral_Request$Type","ResourceAPI_CreateEphemeral_Response$Type","ResourceAPI_CreateChild$Type","ResourceAPI_CreateChild_Request$Type","ResourceAPI_CreateChild_Response$Type","ResourceAPI_CreateValue$Type","ResourceAPI_CreateValue_Request$Type","ResourceAPI_CreateValue_Response$Type","ResourceAPI_GetValueID$Type","ResourceAPI_GetValueID_Request$Type","ResourceAPI_GetValueID_Response$Type","ResourceAPI_CreateSingleton$Type","ResourceAPI_CreateSingleton_Request$Type","ResourceAPI_CreateSingleton_Response$Type","ResourceAPI_GetSingleton$Type","ResourceAPI_GetSingleton_Request$Type","ResourceAPI_GetSingleton_Response$Type","ResourceAPI_LockInputs$Type","ResourceAPI_LockInputs_Request$Type","ResourceAPI_LockInputs_Response$Type","ResourceAPI_LockOutputs$Type","ResourceAPI_LockOutputs_Request$Type","ResourceAPI_LockOutputs_Response$Type","ResourceAPI_Exists$Type","ResourceAPI_Exists_Request$Type","ResourceAPI_Exists_Response$Type","ResourceAPI_SetError$Type","ResourceAPI_SetError_Request$Type","ResourceAPI_SetError_Response$Type","ResourceAPI_Get$Type","ResourceAPI_Get_Request$Type","ResourceAPI_Get_Response$Type","ResourceAPI_List$Type","ResourceAPI_List_ByType$Type","ResourceAPI_List_ByType_Request$Type","ResourceAPI_List_ByType_Response$Type","ResourceAPI_CreateRoot$Type","ResourceAPI_CreateRoot_Request$Type","ResourceAPI_CreateRoot_Response$Type","ResourceAPI_Remove$Type","ResourceAPI_Remove_Request$Type","ResourceAPI_Remove_Response$Type","ResourceAPI_Name$Type","ResourceAPI_Name_Set$Type","ResourceAPI_Name_Set_Request$Type","ResourceAPI_Name_Set_Response$Type","ResourceAPI_Name_Get$Type","ResourceAPI_Name_Get_Request$Type","ResourceAPI_Name_Get_Response$Type","ResourceAPI_Name_Exists$Type","ResourceAPI_Name_Exists_Request$Type","ResourceAPI_Name_Exists_Response$Type","ResourceAPI_Name_Delete$Type","ResourceAPI_Name_Delete_Request$Type","ResourceAPI_Name_Delete_Response$Type","ResourceAPI_Tree$Type","ResourceAPI_Tree_Request$Type","ResourceAPI_Tree_Response$Type","ResourceAPI_TreeSize$Type","ResourceAPI_TreeSize_Request$Type","ResourceAPI_TreeSize_Response$Type","FieldAPI$Type","FieldAPI_Create$Type","FieldAPI_Create_Request$Type","FieldAPI_Create_Response$Type","FieldAPI_Exists$Type","FieldAPI_Exists_Request$Type","FieldAPI_Exists_Response$Type","FieldAPI_Set$Type","FieldAPI_Set_Request$Type","FieldAPI_Set_Response$Type","FieldAPI_SetError$Type","FieldAPI_SetError_Request$Type","FieldAPI_SetError_Response$Type","FieldAPI_Get$Type","FieldAPI_Get_Request$Type","FieldAPI_Get_Response$Type","FieldAPI_Reset$Type","FieldAPI_Reset_Request$Type","FieldAPI_Reset_Response$Type","FieldAPI_Remove$Type","FieldAPI_Remove_Request$Type","FieldAPI_Remove_Response$Type","FieldAPI_List$Type","FieldAPI_List_Request$Type","FieldAPI_List_Response$Type","NotificationAPI$Type","NotificationAPI_Get$Type","NotificationAPI_Get_Request$Type","NotificationAPI_Get_Response$Type","NotificationAPI_Ack$Type","NotificationAPI_Ack_Request$Type","NotificationAPI_Ack_Response$Type","NotificationAPI_Discard$Type","NotificationAPI_Discard_Request$Type","NotificationAPI_Discard_Response$Type","SubscriptionAPI$Type","SubscriptionAPI_CreateSubscription$Type","SubscriptionAPI_CreateSubscription_Request$Type","SubscriptionAPI_CreateSubscription_Response$Type","SubscriptionAPI_CreateFilter$Type","SubscriptionAPI_CreateFilter_Request$Type","SubscriptionAPI_CreateFilter_Response$Type","SubscriptionAPI_ListSubscriptions$Type","SubscriptionAPI_ListSubscriptions_SubscriptionInfo$Type","SubscriptionAPI_ListSubscriptions_SubscriptionInfo","SubscriptionAPI_ListSubscriptions_Request$Type","SubscriptionAPI_ListSubscriptions_Response$Type","SubscriptionAPI_AttachFilter$Type","SubscriptionAPI_AttachFilter_Request$Type","SubscriptionAPI_AttachFilter_Response$Type","SubscriptionAPI_DetachFilter$Type","SubscriptionAPI_DetachFilter_Request$Type","SubscriptionAPI_DetachFilter_Response$Type","ControllerAPI$Type","ControllerAPI_Register$Type","ControllerAPI_Register_Request$Type","ControllerAPI_Register_Request","ControllerAPI_Register_Response$Type","ControllerAPI_Register_Response","ControllerAPI_Exists$Type","ControllerAPI_Exists_Request$Type","ControllerAPI_Exists_Request","ControllerAPI_Exists_Response$Type","ControllerAPI_Exists_Response","ControllerAPI_Update$Type","ControllerAPI_Update_Request$Type","ControllerAPI_Update_Request","ControllerAPI_Update_Response$Type","ControllerAPI_Update_Response","ControllerAPI_Deregister$Type","ControllerAPI_Deregister_Request$Type","ControllerAPI_Deregister_Request","ControllerAPI_Deregister_Response$Type","ControllerAPI_Deregister_Response","ControllerAPI_Create$Type","ControllerAPI_Create_Request$Type","ControllerAPI_Create_Request","ControllerAPI_Create_Response$Type","ControllerAPI_Create_Response","ControllerAPI_Get$Type","ControllerAPI_Get_Request$Type","ControllerAPI_Get_Request","ControllerAPI_Get_Response$Type","ControllerAPI_Get_Response","ControllerAPI_AttachSubscription$Type","ControllerAPI_AttachSubscription_Request$Type","ControllerAPI_AttachSubscription_Request","ControllerAPI_AttachSubscription_Response$Type","ControllerAPI_AttachSubscription_Response","ControllerAPI_GetNotifications$Type","ControllerAPI_GetNotifications_Request$Type","ControllerAPI_GetNotifications_Request","ControllerAPI_GetNotifications_Response$Type","ControllerAPI_GetNotifications_Response","ControllerAPI_WriteAliasesAndUrls$Type","ControllerAPI_WriteAliasesAndUrls_Request$Type","ControllerAPI_WriteAliasesAndUrls_Request","ControllerAPI_WriteAliasesAndUrls_Response$Type","ControllerAPI_WriteAliasesAndUrls_Response","ControllerAPI_GetUrl$Type","ControllerAPI_GetUrl_Request$Type","ControllerAPI_GetUrl_Request","ControllerAPI_GetUrl_Response$Type","ControllerAPI_GetUrl_Response","ControllerAPI_RemoveAliasesAndUrls$Type","ControllerAPI_RemoveAliasesAndUrls_Request$Type","ControllerAPI_RemoveAliasesAndUrls_Request","ControllerAPI_RemoveAliasesAndUrls_Response$Type","ControllerAPI_RemoveAliasesAndUrls_Response","ControllerAPI_SetFeatures$Type","ControllerAPI_SetFeatures_Request$Type","ControllerAPI_SetFeatures_Response$Type","ControllerAPI_ClearFeatures$Type","ControllerAPI_ClearFeatures_Request$Type","ControllerAPI_ClearFeatures_Response$Type","ResourceKVAPI$Type","ResourceKVAPI_List$Type","ResourceKVAPI_List_Request$Type","ResourceKVAPI_List_Response$Type","ResourceKVAPI_List_Response_KV","ResourceKVAPI_List_Response_KV$Type","ResourceKVAPI_Set$Type","ResourceKVAPI_Set_Request$Type","ResourceKVAPI_Set_Response$Type","ResourceKVAPI_Get$Type","ResourceKVAPI_Get_Request$Type","ResourceKVAPI_Get_Response$Type","ResourceKVAPI_GetIfExists$Type","ResourceKVAPI_GetIfExists_Request$Type","ResourceKVAPI_GetIfExists_Response$Type","ResourceKVAPI_Delete$Type","ResourceKVAPI_Delete_Request$Type","ResourceKVAPI_Delete_Response$Type","ResourceKVAPI_SetFlag$Type","ResourceKVAPI_SetFlag_Request$Type","ResourceKVAPI_SetFlag_Response$Type","ResourceKVAPI_GetFlag$Type","ResourceKVAPI_GetFlag_Request$Type","ResourceKVAPI_GetFlag_Response$Type","ControllerKVAPI$Type","ControllerKVAPI_Set$Type","ControllerKVAPI_Set_Request$Type","ControllerKVAPI_Set_Response$Type","ControllerKVAPI_Get$Type","ControllerKVAPI_Get_Request$Type","ControllerKVAPI_Get_Response$Type","ControllerKVAPI_GetIfExists$Type","ControllerKVAPI_GetIfExists_Request$Type","ControllerKVAPI_GetIfExists_Response$Type","CacheAPI$Type","CacheAPI_SetToField$Type","CacheAPI_SetToField_Request$Type","CacheAPI_SetToField_Response$Type","CacheAPI_DeleteExpiredRecords$Type","CacheAPI_DeleteExpiredRecords_Request$Type","CacheAPI_DeleteExpiredRecords_Response$Type","LocksAPI$Type","LocksAPI_Lease$Type","LocksAPI_Lease_Create$Type","LocksAPI_Lease_Create_Request$Type","LocksAPI_Lease_Create_Request","LocksAPI_Lease_Create_Response$Type","LocksAPI_Lease_Create_Response","LocksAPI_Lease_Update$Type","LocksAPI_Lease_Update_Request$Type","LocksAPI_Lease_Update_Request","LocksAPI_Lease_Update_Response$Type","LocksAPI_Lease_Update_Response","LocksAPI_Lease_Release$Type","LocksAPI_Lease_Release_Request$Type","LocksAPI_Lease_Release_Request","LocksAPI_Lease_Release_Response$Type","LocksAPI_Lease_Release_Response","AuthAPI$Type","AuthAPI_ListMethods$Type","AuthAPI_ListMethods_Request$Type","AuthAPI_ListMethods_Request","AuthAPI_ListMethods_Response$Type","AuthAPI_ListMethods_MethodInfo","AuthAPI_ListMethods_Response","AuthAPI_ListMethods_MethodInfo$Type","AuthAPI_GetJWTToken$Type","AuthAPI_GetJWTToken_Request$Type","AuthAPI_GetJWTToken_Request","AuthAPI_GetJWTToken_Response$Type","AuthAPI_GetJWTToken_Response","MiscAPI$Type","MiscAPI_ListResourceTypes$Type","MiscAPI_ListResourceTypes_Request$Type","MiscAPI_ListResourceTypes_Request","MiscAPI_ListResourceTypes_Response$Type","MiscAPI_ListResourceTypes_Response","MaintenanceAPI$Type","MaintenanceAPI_Ping$Type","MaintenanceAPI_Ping_Request$Type","MaintenanceAPI_Ping_Request","MaintenanceAPI_Ping_Response$Type","MaintenanceAPI_Ping_Response","Platform","ServiceType","isArrayBufferOrView","toBytes","isConnectionProblem","err","nested","DisconnectedError","isUnauthenticated","UnauthenticatedError","isTimeoutOrCancelError","Aborted","PlErrorCodeNotFound","PlError","status","__publicField","throwPlNotFoundError","RecoverablePlError","UnrecoverablePlError","isNotFoundError","rethrowMeaningfulError","wrapIfUnknown","ResourceErrorField","resourceIsDeleted","proto","protoToResource","protoToResourceKind","protoToError","protoToField","protoToFieldType","protoToFieldStatus","GrpcFieldType","fieldTypeToProto","assertNever","initialTxStatWithoutTime","initialTxStat","addStat","a","b","ErrorResourceType","isField","ref","isResource","isResourceId","isFieldRef","isResourceRef","toFieldId","toGlobalFieldId","toResourceId","toGlobalResourceId","field","fieldName","TxCommitConflict","notFoundToUndefined","cb","_PlTransaction","ll","writable","_clientRoot","finalPredicate","sharedResourceDataCache","enableFormattedErrors","pending","parser","rawResponsePromise","commitResponse","completeResult","discardResponse","errorIfExists","localId","loadFields","root","req","jsonData","canonicalJsonBytes","JsonObject","minSizeToGzip","isGzipped","canonicalJsonGzBytes","JsonGzObject","rId","ignoreCache","fromCache","_b","result","_c","deepFreeze","basicData","rID","fId","fieldType","e","kv","getFieldResource","PlTransaction","ClientRoot","StructTestResource","ValueTestResource","JsonString","JsonBool","JsonArray","JsonNumber","JsonNull","RNull","EphStdMap","StdMap","createPlNull","tx","createPlBool","createPlNumber","createPlString","createPlArray","createPlObject","plEntry","plEntries","record","fields","createPlMap","entries","ephemeral","actualType","futureRecord","keys","prefix","Holder","EphHolder","HolderRefField","wrapInHolder","holder","mainHolderField","wrapInEphHolder","unwrapHolder","DEFAULT_REQUEST_TIMEOUT","DEFAULT_RO_TX_TIMEOUT","DEFAULT_RW_TX_TIMEOUT","DEFAULT_TOKEN_TTL_SECONDS","DEFAULT_AUTH_MAX_REFRESH","DEFAULT_MAX_CACHE_BYTES","DEFAULT_RETRY_BACKOFF_ALGORITHM","DEFAULT_RETRY_MAX_ATTEMPTS","DEFAULT_RETRY_INITIAL_DELAY","DEFAULT_RETRY_EXPONENTIAL_BACKOFF_MULTIPLIER","DEFAULT_RETRY_LINEAR_BACKOFF_STEP","DEFAULT_RETRY_JITTER","parseInt","num","plAddressToConfig","address","overrides","AnonymousAuthInformation","PlatformClient","_transport","method","stackIntercept","input","createResponseHandler","expectMultiResponse","resolve","reject","isRecoverable","RethrowError","rethrowLambda","LLPlTransaction","streamFactory","Denque","errorFactory","expectedId","currentHandler","responseAggregator","errorMessage","handler","cause","processingResult","parsePlJwt","token","inferAuthRefreshTime","info","maxRefreshSeconds","exp","iat","expirationFromAuthInformation","authInfo","GrpcClientProviderImpl","grpcTransport","clientConstructor","LLPlClient","configOrAddress","ops","auth","statusListener","shouldUseGzip","defaultHttpDispatcher","transport","gzip","clientOptions","compressionAlgorithms","grpcOptions","ChannelCredentials","oldTransport","GrpcTransport","provider","newStatus","response","nextCall","InterceptingCall","metadata","listener","next","GrpcStatus","rw","abortSignal","totalAbortSignal","readyOrDuplicateOrError","readyAndHasAllOutputsFilled","unknownResourceTypeNames","DefaultFinalResourceDataPredicate","downloadable","defaultTxOps","AnonymousClientRoot","alternativeRootFieldName","alternativeRoot","PlClient","conf","LRUCache","v","user","mainRootName","createHash","mainRoot","aFId","altRoot","alternativeRootName","exists","clientRoot","body","retryState","createRetryState","llTx","ok","txId","tp","nextRetryStateOrError","definition","attached","driver","pl","addRTypeToMetadata","rType","UnauthenticatedPlClient","password","jwtToken","CONFIG_FILE_LOCAL_JSON","CONFIG_FILE_USER_JSON","path","os","CONFIG_FILE_LOCAL_YAML","CONFIG_FILE_USER_YAML","CONF_FILE_SEQUENCE","AUTH_DATA_FILE","FILE_CONFIG_OVERRIDE_FIELDS","tryGetFileConfig","confPath","fs","fileContent","YAML","saveAuthInfoCallback","confHash","authMaxRefreshSeconds","newAuthInfo","cleanAuthInfoCallback","defaultPlClient","config","fromFile","fileConfig","configPath","canonicalize","authInformation","cache","client","_newAuthInfo","valErr","deserializationResult","dataStr","ContinuePolling","DefaultPollFieldTraverseOps","PollResourceAccessor","expectedType","fieldData","failOnError","names","PollTxAccessor","accessor","errorRes","errorText","DefaultPollingRetryOptions","poll","cl","retryOptions","txName","CONFIG_FILE","authDataFilePath","getFullAuthDataFilePath","getTestConfig","tConf","dst","tmpDst","randomUUID","getTestClientConf","plConf","uClient","requireAuth","getTestLLClient","confOverrides","getTestClient","withTempRoot","altRootId"],"mappings":"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"}
|