@basmilius/apple-airplay 0.0.11 → 0.0.12
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/index.d.ts +3 -0
- package/dist/index.js +12 -2
- package/dist/index.js.map +119 -3
- package/dist/proto/AudioFadeMessage_pb.d.ts +30 -0
- package/dist/proto/AudioFadeResponseMessage_pb.d.ts +25 -0
- package/dist/proto/AudioFormatSettingsMessage_pb.d.ts +20 -0
- package/dist/proto/ClientUpdatesConfigMessage_pb.d.ts +41 -0
- package/dist/proto/CommandInfo_pb.d.ts +452 -0
- package/dist/proto/CommandOptions_pb.d.ts +137 -0
- package/dist/proto/Common_pb.d.ts +306 -0
- package/dist/proto/ConfigureConnectionMessage_pb.d.ts +25 -0
- package/dist/proto/ContentItemMetadata_pb.d.ts +812 -0
- package/dist/proto/ContentItem_pb.d.ts +91 -0
- package/dist/proto/CryptoPairingMessage_pb.d.ts +45 -0
- package/dist/proto/DeviceInfoMessage_pb.d.ts +270 -0
- package/dist/proto/GenericMessage_pb.d.ts +29 -0
- package/dist/proto/GetKeyboardSessionMessage_pb.d.ts +20 -0
- package/dist/proto/GetRemoteTextInputSessionMessage_pb.d.ts +20 -0
- package/dist/proto/GetVolumeMessage_pb.d.ts +25 -0
- package/dist/proto/GetVolumeResultMessage_pb.d.ts +25 -0
- package/dist/proto/KeyboardMessage_pb.d.ts +321 -0
- package/dist/proto/LanguageOption_pb.d.ts +36 -0
- package/dist/proto/ModifyOutputContextRequestMessage_pb.d.ts +71 -0
- package/dist/proto/NotificationMessage_pb.d.ts +29 -0
- package/dist/proto/NowPlayingClient_pb.d.ts +46 -0
- package/dist/proto/NowPlayingInfo_pb.d.ts +89 -0
- package/dist/proto/NowPlayingPlayer_pb.d.ts +44 -0
- package/dist/proto/OriginClientPropertiesMessage_pb.d.ts +25 -0
- package/dist/proto/Origin_pb.d.ts +58 -0
- package/dist/proto/PlaybackQueueCapabilities_pb.d.ts +28 -0
- package/dist/proto/PlaybackQueueContext_pb.d.ts +20 -0
- package/dist/proto/PlaybackQueueRequestMessage_pb.d.ts +91 -0
- package/dist/proto/PlaybackQueue_pb.d.ts +47 -0
- package/dist/proto/PlayerClientPropertiesMessage_pb.d.ts +30 -0
- package/dist/proto/PlayerPath_pb.d.ts +31 -0
- package/dist/proto/ProtocolMessage_pb.d.ts +659 -0
- package/dist/proto/RegisterForGameControllerEventsMessage_pb.d.ts +50 -0
- package/dist/proto/RegisterHIDDeviceMessage_pb.d.ts +26 -0
- package/dist/proto/RegisterHIDDeviceResultMessage_pb.d.ts +29 -0
- package/dist/proto/RegisterVoiceInputDeviceMessage_pb.d.ts +26 -0
- package/dist/proto/RegisterVoiceInputDeviceResponseMessage_pb.d.ts +29 -0
- package/dist/proto/RemoteTextInputMessage_pb.d.ts +33 -0
- package/dist/proto/RemoveClientMessage_pb.d.ts +26 -0
- package/dist/proto/RemoveEndpointsMessage_pb.d.ts +25 -0
- package/dist/proto/RemoveOutputDevicesMessage_pb.d.ts +29 -0
- package/dist/proto/RemovePlayerMessage_pb.d.ts +26 -0
- package/dist/proto/SendButtonEventMessage_pb.d.ts +33 -0
- package/dist/proto/SendCommandMessage_pb.d.ts +36 -0
- package/dist/proto/SendCommandResultMessage_pb.d.ts +363 -0
- package/dist/proto/SendHIDEventMessage_pb.d.ts +56 -0
- package/dist/proto/SendPackedVirtualTouchEventMessage_pb.d.ts +60 -0
- package/dist/proto/SendVoiceInputMessage_pb.d.ts +122 -0
- package/dist/proto/SetArtworkMessage_pb.d.ts +25 -0
- package/dist/proto/SetConnectionStateMessage_pb.d.ts +50 -0
- package/dist/proto/SetDefaultSupportedCommandsMessage_pb.d.ts +70 -0
- package/dist/proto/SetDiscoveryModeMessage_pb.d.ts +29 -0
- package/dist/proto/SetHiliteModeMessage_pb.d.ts +25 -0
- package/dist/proto/SetNowPlayingClientMessage_pb.d.ts +26 -0
- package/dist/proto/SetNowPlayingPlayerMessage_pb.d.ts +26 -0
- package/dist/proto/SetRecordingStateMessage_pb.d.ts +46 -0
- package/dist/proto/SetStateMessage_pb.d.ts +68 -0
- package/dist/proto/SetVolumeMessage_pb.d.ts +29 -0
- package/dist/proto/SupportedCommands_pb.d.ts +21 -0
- package/dist/proto/TextInputMessage_pb.d.ts +73 -0
- package/dist/proto/TransactionKey_pb.d.ts +24 -0
- package/dist/proto/TransactionMessage_pb.d.ts +35 -0
- package/dist/proto/TransactionPacket_pb.d.ts +37 -0
- package/dist/proto/TransactionPackets_pb.d.ts +21 -0
- package/dist/proto/UpdateClientMessage_pb.d.ts +26 -0
- package/dist/proto/UpdateContentItemArtworkMessage_pb.d.ts +31 -0
- package/dist/proto/UpdateContentItemMessage_pb.d.ts +31 -0
- package/dist/proto/UpdateEndPointsMessage_pb.d.ts +72 -0
- package/dist/proto/UpdateOutputDeviceMessage_pb.d.ts +322 -0
- package/dist/proto/UpdatePlayerPath_pb.d.ts +26 -0
- package/dist/proto/VirtualTouchDeviceDescriptorMessage_pb.d.ts +32 -0
- package/dist/proto/VoiceInputDeviceDescriptorMessage_pb.d.ts +25 -0
- package/dist/proto/VolumeControlAvailabilityMessage_pb.d.ts +66 -0
- package/dist/proto/VolumeControlCapabilitiesDidChangeMessage_pb.d.ts +34 -0
- package/dist/proto/VolumeDidChangeMessage_pb.d.ts +33 -0
- package/dist/proto/WakeDeviceMessage_pb.d.ts +20 -0
- package/dist/proto/index.d.ts +77 -0
- package/dist/protocol/dataStream.d.ts +13 -0
- package/dist/protocol/dataStreamMessages.d.ts +9 -0
- package/dist/protocol/eventStream.d.ts +7 -0
- package/dist/protocol/index.d.ts +7 -0
- package/dist/protocol/pairing.d.ts +12 -0
- package/dist/protocol/protocol.d.ts +21 -0
- package/dist/protocol/rtsp.d.ts +15 -0
- package/dist/protocol/stream.d.ts +22 -0
- package/dist/protocol/utils.d.ts +18 -0
- package/dist/protocol/verify.d.ts +9 -0
- package/package.json +6 -2
package/dist/index.js.map
CHANGED
|
@@ -1,9 +1,125 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": [],
|
|
3
|
+
"sources": ["../../common/dist/index.js", "../src/protocol/utils.ts", "../../../node_modules/.bun/@bufbuild+protobuf@2.10.0/node_modules/@bufbuild/protobuf/dist/esm/is-message.js", "../../../node_modules/.bun/@bufbuild+protobuf@2.10.0/node_modules/@bufbuild/protobuf/dist/esm/descriptors.js", "../../../node_modules/.bun/@bufbuild+protobuf@2.10.0/node_modules/@bufbuild/protobuf/dist/esm/wire/varint.js", "../../../node_modules/.bun/@bufbuild+protobuf@2.10.0/node_modules/@bufbuild/protobuf/dist/esm/proto-int64.js", "../../../node_modules/.bun/@bufbuild+protobuf@2.10.0/node_modules/@bufbuild/protobuf/dist/esm/reflect/scalar.js", "../../../node_modules/.bun/@bufbuild+protobuf@2.10.0/node_modules/@bufbuild/protobuf/dist/esm/reflect/unsafe.js", "../../../node_modules/.bun/@bufbuild+protobuf@2.10.0/node_modules/@bufbuild/protobuf/dist/esm/reflect/guard.js", "../../../node_modules/.bun/@bufbuild+protobuf@2.10.0/node_modules/@bufbuild/protobuf/dist/esm/wkt/wrappers.js", "../../../node_modules/.bun/@bufbuild+protobuf@2.10.0/node_modules/@bufbuild/protobuf/dist/esm/create.js", "../../../node_modules/.bun/@bufbuild+protobuf@2.10.0/node_modules/@bufbuild/protobuf/dist/esm/reflect/error.js", "../../../node_modules/.bun/@bufbuild+protobuf@2.10.0/node_modules/@bufbuild/protobuf/dist/esm/wire/text-encoding.js", "../../../node_modules/.bun/@bufbuild+protobuf@2.10.0/node_modules/@bufbuild/protobuf/dist/esm/wire/binary-encoding.js", "../../../node_modules/.bun/@bufbuild+protobuf@2.10.0/node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect-check.js", "../../../node_modules/.bun/@bufbuild+protobuf@2.10.0/node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect.js", "../../../node_modules/.bun/@bufbuild+protobuf@2.10.0/node_modules/@bufbuild/protobuf/dist/esm/wire/base64-encoding.js", "../../../node_modules/.bun/@bufbuild+protobuf@2.10.0/node_modules/@bufbuild/protobuf/dist/esm/reflect/names.js", "../../../node_modules/.bun/@bufbuild+protobuf@2.10.0/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/restore-json-names.js", "../../../node_modules/.bun/@bufbuild+protobuf@2.10.0/node_modules/@bufbuild/protobuf/dist/esm/wire/text-format.js", "../../../node_modules/.bun/@bufbuild+protobuf@2.10.0/node_modules/@bufbuild/protobuf/dist/esm/reflect/nested-types.js", "../../../node_modules/.bun/@bufbuild+protobuf@2.10.0/node_modules/@bufbuild/protobuf/dist/esm/registry.js", "../../../node_modules/.bun/@bufbuild+protobuf@2.10.0/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/boot.js", "../../../node_modules/.bun/@bufbuild+protobuf@2.10.0/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/message.js", "../../../node_modules/.bun/@bufbuild+protobuf@2.10.0/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/enum.js", "../../../node_modules/.bun/@bufbuild+protobuf@2.10.0/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/descriptor_pb.js", "../../../node_modules/.bun/@bufbuild+protobuf@2.10.0/node_modules/@bufbuild/protobuf/dist/esm/from-binary.js", "../../../node_modules/.bun/@bufbuild+protobuf@2.10.0/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/file.js", "../../../node_modules/.bun/@bufbuild+protobuf@2.10.0/node_modules/@bufbuild/protobuf/dist/esm/to-binary.js", "../../../node_modules/.bun/@bufbuild+protobuf@2.10.0/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/extension.js", "../../../node_modules/.bun/@bufbuild+protobuf@2.10.0/node_modules/@bufbuild/protobuf/dist/esm/extensions.js", "../src/proto/ProtocolMessage_pb.ts", "../src/proto/Common_pb.ts", "../src/proto/DeviceInfoMessage_pb.ts", "../src/proto/Origin_pb.ts", "../src/proto/NowPlayingClient_pb.ts", "../src/proto/NowPlayingPlayer_pb.ts", "../src/proto/PlayerPath_pb.ts", "../src/proto/AudioFadeMessage_pb.ts", "../src/proto/AudioFadeResponseMessage_pb.ts", "../src/proto/AudioFormatSettingsMessage_pb.ts", "../src/proto/ClientUpdatesConfigMessage_pb.ts", "../src/proto/CommandInfo_pb.ts", "../src/proto/CommandOptions_pb.ts", "../src/proto/ConfigureConnectionMessage_pb.ts", "../src/proto/ContentItemMetadata_pb.ts", "../src/proto/LanguageOption_pb.ts", "../src/proto/ContentItem_pb.ts", "../src/proto/CryptoPairingMessage_pb.ts", "../src/proto/GenericMessage_pb.ts", "../src/proto/GetKeyboardSessionMessage_pb.ts", "../src/proto/GetRemoteTextInputSessionMessage_pb.ts", "../src/proto/GetVolumeMessage_pb.ts", "../src/proto/GetVolumeResultMessage_pb.ts", "../src/proto/KeyboardMessage_pb.ts", "../src/proto/ModifyOutputContextRequestMessage_pb.ts", "../src/proto/NotificationMessage_pb.ts", "../src/proto/NowPlayingInfo_pb.ts", "../src/proto/OriginClientPropertiesMessage_pb.ts", "../src/proto/PlaybackQueueContext_pb.ts", "../src/proto/PlaybackQueue_pb.ts", "../src/proto/PlaybackQueueCapabilities_pb.ts", "../src/proto/PlaybackQueueRequestMessage_pb.ts", "../src/proto/PlayerClientPropertiesMessage_pb.ts", "../src/proto/RegisterForGameControllerEventsMessage_pb.ts", "../src/proto/VirtualTouchDeviceDescriptorMessage_pb.ts", "../src/proto/RegisterHIDDeviceMessage_pb.ts", "../src/proto/RegisterHIDDeviceResultMessage_pb.ts", "../src/proto/VoiceInputDeviceDescriptorMessage_pb.ts", "../src/proto/RegisterVoiceInputDeviceMessage_pb.ts", "../src/proto/RegisterVoiceInputDeviceResponseMessage_pb.ts", "../src/proto/RemoteTextInputMessage_pb.ts", "../src/proto/RemoveClientMessage_pb.ts", "../src/proto/RemoveEndpointsMessage_pb.ts", "../src/proto/RemoveOutputDevicesMessage_pb.ts", "../src/proto/RemovePlayerMessage_pb.ts", "../src/proto/SendButtonEventMessage_pb.ts", "../src/proto/SendCommandMessage_pb.ts", "../src/proto/SendCommandResultMessage_pb.ts", "../src/proto/SendHIDEventMessage_pb.ts", "../src/proto/SendPackedVirtualTouchEventMessage_pb.ts", "../src/proto/SendVoiceInputMessage_pb.ts", "../src/proto/SetArtworkMessage_pb.ts", "../src/proto/SetConnectionStateMessage_pb.ts", "../src/proto/SupportedCommands_pb.ts", "../src/proto/SetDefaultSupportedCommandsMessage_pb.ts", "../src/proto/SetDiscoveryModeMessage_pb.ts", "../src/proto/SetHiliteModeMessage_pb.ts", "../src/proto/SetNowPlayingClientMessage_pb.ts", "../src/proto/SetNowPlayingPlayerMessage_pb.ts", "../src/proto/SetRecordingStateMessage_pb.ts", "../src/proto/SetStateMessage_pb.ts", "../src/proto/SetVolumeMessage_pb.ts", "../src/proto/TextInputMessage_pb.ts", "../src/proto/TransactionKey_pb.ts", "../src/proto/TransactionPacket_pb.ts", "../src/proto/TransactionPackets_pb.ts", "../src/proto/TransactionMessage_pb.ts", "../src/proto/UpdateClientMessage_pb.ts", "../src/proto/UpdateContentItemArtworkMessage_pb.ts", "../src/proto/UpdateContentItemMessage_pb.ts", "../src/proto/UpdateEndPointsMessage_pb.ts", "../src/proto/UpdateOutputDeviceMessage_pb.ts", "../src/proto/UpdatePlayerPath_pb.ts", "../src/proto/VolumeControlAvailabilityMessage_pb.ts", "../src/proto/VolumeControlCapabilitiesDidChangeMessage_pb.ts", "../src/proto/VolumeDidChangeMessage_pb.ts", "../src/proto/WakeDeviceMessage_pb.ts", "../src/protocol/dataStreamMessages.ts", "../src/protocol/stream.ts", "../src/protocol/dataStream.ts", "../src/protocol/eventStream.ts", "../src/protocol/pairing.ts", "../src/protocol/rtsp.ts", "../src/protocol/verify.ts", "../src/protocol/protocol.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
+
"import{createCipher as te,createDecipher as ne}from\"chacha\";var q=12;function A(e,n,r,o,t){n=$(n);let s=ne(e,n);r&&s.setAAD(r),s.setAuthTag(t);let i=s._update(o);return s._final(),i}function I(e,n,r,o){n=$(n);let t=te(e,n);r&&t.setAAD(r);let s=t._update(o);t._final();let i=t.getAuthTag();return{ciphertext:s,authTag:i}}function $(e){if(e.length>=q)return e;return Buffer.concat([Buffer.alloc(q-e.length,0),e])}import{randomBytes as se}from\"node:crypto\";import{x25519 as z}from\"@noble/curves/ed25519.js\";function T(){let e=se(32);return{publicKey:z.getPublicKey(e),secretKey:e}}function k(e,n){return z.getSharedSecret(e,n)}import{hkdfSync as oe}from\"node:crypto\";function x(e){return Buffer.from(oe(e.hash,e.key,e.salt,e.info,e.length))}import ae from\"node-dns-sd\";import{createInterface as ie}from\"node:readline\";var fe=ie({input:process.stdin,output:process.stdout});function H(...e){console.debug(\"\\x1B[36m[debug]\\x1B[39m\",...e)}async function ke(e){return await new Promise((n)=>fe.question(`${e}: `,n))}async function Y(e){return new Promise((n)=>setTimeout(n,e))}var L=\"3939\",Ce=15000,W=\"_airplay._tcp.local\",X=\"_companion-link._tcp.local\",Z=\"_raop._tcp.local\";class B{#e;constructor(e){this.#e=e}async find(){return await ae.discover({name:this.#e})}async findUntil(e,n=10,r=1000){while(n>0){let o=await this.find(),t=o.find((s)=>s.fqdn===e);if(t)return t;if(console.log(),console.log(`Device not found, retrying in ${r}ms...`),console.log(o.map((s)=>` ● ${s.fqdn}`).join(`\n`)),n--,n===0)throw Error(\"Device not found after serveral tries, aborting.\");await Y(r)}}static airplay(){return new B(W)}static companionLink(){return new B(X)}static raop(){return new B(Z)}}class U extends Number{size;constructor(e,n){super(e);this.size=n}}function J(e,n){return new U(e,n)}class C{value;constructor(e){this.value=e}}function ce(e){return new C(e)}class D{value;constructor(e){this.value=e}}function ue(e){return new D(e)}function l(e){let n=e.reduce((t,s)=>t+s.length,0),r=new Uint8Array(n),o=0;for(let t of e)r.set(t,o),o+=t.length;return r}function a(e){return Uint8Array.of(e)}function y(e,n){let r=new Uint8Array(n),o=BigInt(e);for(let t=0;t<n;t++)r[t]=Number(o&0xffn),o>>=8n;return r}function g(e){let n=e.reduce((t,s)=>t+s.length,0),r=new Uint8Array(n),o=0;for(let t of e)r.set(t,o),o+=t.length;return r}function R(e){return M(e,[])}function M(e,n){let r=null;if(e===null||e===void 0)r=a(4);else if(typeof e===\"boolean\")r=a(e?1:2);else if(e instanceof C){let t=new ArrayBuffer(8);new DataView(t).setFloat64(0,e.value,!0),r=l([a(54),new Uint8Array(t)])}else if(e instanceof D){let t=e.value;if(t<40)r=a(8+t);else if(t<=255)r=g([a(48),y(t,1)]);else if(t<=65535)r=g([a(49),y(t,2)]);else if(t<=4294967295)r=g([a(50),y(t,4)]);else r=g([a(51),y(t,8)])}else if(typeof e===\"number\")if(!Number.isInteger(e)){let t=new ArrayBuffer(8);new DataView(t).setFloat64(0,e,!0),r=l([a(54),new Uint8Array(t)])}else if(e<40)r=a(8+e);else if(e<=255)r=l([a(48),y(e,1)]);else if(e<=65535)r=l([a(49),y(e,2)]);else if(e<=4294967295)r=l([a(50),y(e,4)]);else r=l([a(51),y(e,8)]);else if(e instanceof U)r=l([a(48+Math.log2(e.size)),y(e.valueOf(),e.size)]);else if(typeof e===\"string\"){let t=new TextEncoder().encode(e),s=t.length;if(s<=32)r=l([a(64+s),t]);else if(s<=255)r=l([a(97),y(s,1),t]);else if(s<=65535)r=l([a(98),y(s,2),t]);else if(s<=16777215)r=l([a(99),y(s,3),t]);else r=l([a(100),y(s,4),t])}else if(e instanceof Uint8Array||Buffer.isBuffer(e)){let t=e instanceof Uint8Array?e:new Uint8Array(e),s=t.length;if(s<=32)r=l([a(112+s),t]);else if(s<=255)r=l([a(145),y(s,1),t]);else if(s<=65535)r=l([a(146),y(s,2),t]);else r=l([a(147),y(s,4),t])}else if(Array.isArray(e)){let t=l(e.map((i)=>M(i,n))),s=e.length;if(s<=15){if(r=l([a(208+s),t]),s>=15)r=l([r,a(3)])}else r=l([a(223),t,a(3)])}else if(typeof e===\"object\"){let t=Object.keys(e),s=t.length,i=[];for(let u of t)i.push(M(u,n)),i.push(M(e[u],n));let f;if(s<=15)f=a(224+s);else f=a(239);if(r=g([f,g(i)]),s>=15||n.some((u)=>u===r))r=g([r,a(129)])}else throw TypeError(typeof e);let o=n.findIndex((t)=>t.length===r.length&&t.every((s,i)=>s===r[i]));if(o>=0)if(o<33)r=a(160+o);else if(o<=255)r=l([a(193),y(o,1)]);else if(o<=65535)r=l([a(194),y(o,2)]);else if(o<=4294967295)r=l([a(195),y(o,4)]);else r=l([a(196),y(o,8)]);else if(r.length>1)n.push(r);return r}function le(e){return P(e,[])}function ye(e,n){if(e.length<n)throw TypeError(`Not enough data: need ${n} bytes, have ${e.length}`)}function v(e,n,r){ye(e.subarray(n),r);let o=0n;for(let t=r-1;t>=0;t--)o=o<<8n|BigInt(e[n+t]);return Number(o)}function P(e,n){if(e.length===0)throw TypeError(\"No data to unpack\");let r=e[0],o=!0,t,s;if(r===1)t=!0,s=e.subarray(1);else if(r===2)t=!1,s=e.subarray(1);else if(r===4)t=null,s=e.subarray(1);else if(r===5)t=e.subarray(1,17),s=e.subarray(17);else if(r===6)t=v(e,1,8),s=e.subarray(9);else if(r>=8&&r<=47)t=r-8,s=e.subarray(1);else if(r===53)t=new DataView(e.buffer,e.byteOffset+1,4).getFloat32(0,!0),s=e.subarray(5);else if(r===54)t=new DataView(e.buffer,e.byteOffset+1,8).getFloat64(0,!0),s=e.subarray(9);else if((r&240)===48){let i=2**(r&15),f=v(e,1,i);t=J(f,i),s=e.subarray(1+i)}else if(r>=64&&r<=96){let i=r-64;t=new TextDecoder().decode(e.subarray(1,1+i)),s=e.subarray(1+i)}else if(r>=97&&r<=100){let i=r&15,f=v(e,1,i);t=new TextDecoder().decode(e.subarray(1+i,1+i+f)),s=e.subarray(1+i+f)}else if(r>=112&&r<=144){let i=r-112;t=e.subarray(1,1+i),s=e.subarray(1+i)}else if(r>=145&&r<=148){let i=1<<(r&15)-1,f=v(e,1,i),u=1+i;t=e.subarray(u,u+f),s=e.subarray(u+f)}else if((r&240)===208){let i=r&15,f=e.subarray(1),u=[];if(i===15){while(f[0]!==3){let[p,m]=P(f,n);u.push(p),f=m}f=f.subarray(1)}else for(let p=0;p<i;p++){let[m,d]=P(f,n);u.push(m),f=d}t=u,s=f,o=!1}else if((r&224)===224){let i=r&15,f=e.subarray(1),u={};if(i===15){while(f[0]!==3){let[p,m]=P(f,n),[d,w]=P(m,n);u[p]=d,f=w}f=f.subarray(1)}else for(let p=0;p<i;p++){let[m,d]=P(f,n),[w,N]=P(d,n);u[m]=w,f=N}t=u,s=f,o=!1}else if(r>=160&&r<=192){let i=r-160;if(i>=n.length)throw TypeError(`Reference index ${i} out of range`);t=n[i],s=e.subarray(1),o=!1}else if(r>=193&&r<=196){let i=r-192,f=v(e,1,i);if(f>=n.length)throw TypeError(`UID ${f} out of range`);t=n[f],s=e.subarray(1+i),o=!1}else throw TypeError(`Unknown tag 0x${r.toString(16)}`);if(o)n.push(t);return[t,s]}import{parse as pe}from\"@plist/binary.parse\";import{serialize as me}from\"@plist/binary.serialize\";var V={TransientPairing:16},F={PairSetup:0,PairSetupWithAuth:1,PairVerify:2,AddPairing:3,RemovePairing:4,ListPairing:5},b={M1:1,M2:2,M3:3,M4:4,M5:5,M6:6},c={Method:0,Identifier:1,Salt:2,PublicKey:3,Proof:4,EncryptedData:5,State:6,Error:7,BackOff:8,Certificate:9,Signature:10,Permissions:11,FragmentData:12,FragmentLast:13,Name:17,Flags:19};function O(e){if(e.has(c.BackOff)){let n=e.get(c.BackOff),r=n.readUintLE(0,n.length);throw Error(`Device is busy, try again in ${r} seconds.`)}if(e.has(c.Error))throw Error(`Device returned an error code: ${e.get(c.Error).readUint8()}`);throw console.error(e),Error(\"Invalid response\")}function h(e){let n=[];for(let[r,o]of e){let t;if(typeof o===\"number\")t=Buffer.from([o]);else t=o;let s=0;do{let i=Math.min(t.length-s,255);if(n.push(r,i),i>0)for(let f=0;f<i;f++)n.push(t[s+f]);s+=i}while(s<t.length)}return Buffer.from(n)}function S(e){let n=new Map,r=0;while(r<e.length){let o=e[r++],t=e[r++],s=new Uint8Array(e).slice(r,r+t);r+=t;let i=n.get(o);if(i)n.set(o,Buffer.concat([i,s]));else n.set(o,Buffer.from(s))}return n}import{networkInterfaces as de}from\"node:os\";function Q(){let e=de();for(let n of Object.keys(e)){let r=e[n];if(!r)continue;for(let o of r){if(o.internal||o.family!==\"IPv4\")continue;if(o.address&&o.address!==\"127.0.0.1\")return o.address}}return null}import{networkInterfaces as xe}from\"node:os\";function G(){let e=xe();for(let n of Object.keys(e)){let r=e[n];if(!r)continue;for(let o of r){if(o.internal||o.family!==\"IPv4\")continue;if(o.mac&&o.mac!==\"00:00:00:00:00:00\")return o.mac.toUpperCase()}}return null}class _ extends EventTarget{get address(){return this.#e}get port(){return this.#r}#e;#r;constructor(e,n){super();this.#e=e,this.#r=n}async connect(){}async disconnect(){}}import{SRP as j,SrpClient as he}from\"fast-srp-hap\";import{v4 as ge}from\"uuid\";import K from\"tweetnacl\";class ee{#e;#r;#n;#s;#o;#t;constructor(e){this.#e=\"basmilius/apple-protocols\",this.#r=Buffer.from(ge().toUpperCase()),this.#n=e}async start(){let e=K.sign.keyPair();this.#s=Buffer.from(e.publicKey),this.#o=Buffer.from(e.secretKey)}async pin(e){let n=await this.m1(),r=await this.m2(n,await e()),o=await this.m3(r),t=await this.m4(o),s=await this.m5(t),i=await this.m6(t,s);if(!i)throw Error(\"Pairing failed, could not get accessory keys.\");return i}async transient(){let e=await this.m1([[c.Flags,V.TransientPairing]]),n=await this.m2(e),r=await this.m3(n),o=await this.m4(r),t=x({hash:\"sha512\",key:o.sharedSecret,length:32,salt:Buffer.from(\"Control-Salt\"),info:Buffer.from(\"Control-Read-Encryption-Key\")}),s=x({hash:\"sha512\",key:o.sharedSecret,length:32,salt:Buffer.from(\"Control-Salt\"),info:Buffer.from(\"Control-Write-Encryption-Key\")});return{pairingId:this.#r,sharedSecret:o.sharedSecret,accessoryToControllerKey:t,controllerToAccessoryKey:s}}async m1(e=[]){let n=await this.#n(\"m1\",h([[c.Method,F.PairSetup],[c.State,b.M1],...e])),r=E(n),o=r.get(c.PublicKey),t=r.get(c.Salt);return{publicKey:o,salt:t}}async m2(e,n=L){let r=await j.genKey(32);this.#t=new he(j.params.hap,e.salt,Buffer.from(\"Pair-Setup\"),Buffer.from(n),r,!0),this.#t.setB(e.publicKey);let o=this.#t.computeA(),t=this.#t.computeM1();return{publicKey:o,proof:t}}async m3(e){let n=await this.#n(\"m3\",h([[c.State,b.M3],[c.PublicKey,e.publicKey],[c.Proof,e.proof]]));return{serverProof:E(n).get(c.Proof)}}async m4(e){return this.#t.checkM2(e.serverProof),{sharedSecret:this.#t.computeK()}}async m5(e){let n=x({hash:\"sha512\",key:e.sharedSecret,length:32,salt:Buffer.from(\"Pair-Setup-Controller-Sign-Salt\",\"utf8\"),info:Buffer.from(\"Pair-Setup-Controller-Sign-Info\",\"utf8\")}),r=x({hash:\"sha512\",key:e.sharedSecret,length:32,salt:Buffer.from(\"Pair-Setup-Encrypt-Salt\",\"utf8\"),info:Buffer.from(\"Pair-Setup-Encrypt-Info\",\"utf8\")}),o=Buffer.concat([n,this.#r,this.#s]),t=K.sign.detached(o,this.#o),s=h([[c.Identifier,this.#r],[c.PublicKey,this.#s],[c.Signature,Buffer.from(t)],[c.Name,Buffer.from(R({name:this.#e}))]]),{authTag:i,ciphertext:f}=I(r,Buffer.from(\"PS-Msg05\"),null,s),u=Buffer.concat([f,i]),p=await this.#n(\"m5\",h([[c.State,b.M5],[c.EncryptedData,u]])),d=E(p).get(c.EncryptedData),w=d.subarray(0,-16);return{authTag:d.subarray(-16),data:w,sessionKey:r}}async m6(e,n){let r=A(n.sessionKey,Buffer.from(\"PS-Msg06\"),null,n.data,n.authTag),o=S(r),t=o.get(c.Identifier),s=o.get(c.PublicKey),i=o.get(c.Signature),f=x({hash:\"sha512\",key:e.sharedSecret,length:32,salt:Buffer.from(\"Pair-Setup-Accessory-Sign-Salt\"),info:Buffer.from(\"Pair-Setup-Accessory-Sign-Info\")}),u=Buffer.concat([f,t,s]);if(!K.sign.detached.verify(u,i,s))throw Error(\"Invalid accessory signature.\");return{accessoryIdentifier:t.toString(),accessoryLongTermPublicKey:s,pairingId:this.#r,publicKey:this.#s,secretKey:this.#o}}}class re{#e;#r;constructor(e){this.#e=T(),this.#r=e}async start(e){let n=await this.#n(),r=await this.#s(e.accessoryIdentifier,e.accessoryLongTermPublicKey,n);return await this.#o(e.pairingId,e.secretKey,r),await this.#t(r,e.pairingId)}async#n(){let e=await this.#r(\"m1\",h([[c.State,b.M1],[c.PublicKey,Buffer.from(this.#e.publicKey)]])),n=E(e),r=n.get(c.PublicKey);return{encryptedData:n.get(c.EncryptedData),serverPublicKey:r}}async#s(e,n,r){let o=Buffer.from(k(this.#e.secretKey,r.serverPublicKey)),t=x({hash:\"sha512\",key:o,length:32,salt:Buffer.from(\"Pair-Verify-Encrypt-Salt\"),info:Buffer.from(\"Pair-Verify-Encrypt-Info\")}),s=r.encryptedData.subarray(0,-16),i=r.encryptedData.subarray(-16),f=A(t,Buffer.from(\"PV-Msg02\"),null,s,i),u=S(f),p=u.get(c.Identifier),m=u.get(c.Signature);if(p.toString()!==e)throw Error(`Invalid accessory identifier. Expected ${p.toString()} to be ${e}.`);let d=Buffer.concat([r.serverPublicKey,p,this.#e.publicKey]);if(!K.sign.detached.verify(d,m,n))throw Error(\"Invalid accessory signature.\");return{serverEphemeralPublicKey:r.serverPublicKey,sessionKey:t,sharedSecret:o}}async#o(e,n,r){let o=Buffer.concat([this.#e.publicKey,e,r.serverEphemeralPublicKey]),t=Buffer.from(K.sign.detached(o,n)),s=h([[c.Identifier,e],[c.Signature,t]]),{authTag:i,ciphertext:f}=I(r.sessionKey,Buffer.from(\"PV-Msg03\"),null,s),u=Buffer.concat([f,i]);return await this.#r(\"m3\",h([[c.State,b.M3],[c.EncryptedData,u]])),{}}async#t(e,n){return{accessoryToControllerKey:Buffer.alloc(0),controllerToAccessoryKey:Buffer.alloc(0),pairingId:n,sharedSecret:e.sharedSecret}}}function E(e){let n=S(e);if(n.has(c.Error))O(n);return H(\"Decoded TLV\",n),n}import{v4 as wr}from\"uuid\";export{Y as waitFor,wr as uuid,me as serializeBinaryPlist,ke as prompt,pe as parseBinaryPlist,J as opackSizedInt,ue as opackInt,ce as opackFloat,x as hkdf,G as getMacAddress,Q as getLocalIP,k as generateCurve25519SharedSecKey,T as generateCurve25519KeyPair,I as encryptChacha20,h as encodeTlv,R as encodeOPack,A as decryptChacha20,S as decodeTlv,le as decodeOPack,H as debug,O as bailTlv,c as TlvValue,b as TlvState,F as TlvMethod,V as TlvFlags,Z as RAOP_SERVICE,Ce as HTTP_TIMEOUT,B as Discovery,X as COMPANION_LINK_SERVICE,_ as BaseSocket,re as AccessoryVerify,ee as AccessoryPair,L as AIRPLAY_TRANSIENT_PIN,W as AIRPLAY_SERVICE};\n\n//# debugId=FD90C40C2E246C2F64756E2164756E21\n//# sourceMappingURL=index.js.map\n",
|
|
6
|
+
"import { randomBytes } from 'node:crypto';\nimport { debug } from '@basmilius/apple-common';\nimport type { RTSPMethod } from '@/protocol/types';\n\nexport function makeHttpHeader(method: RTSPMethod, path: string, headers: HeadersInit, cseq: number): string {\n const lines = [];\n lines.push(`${method} ${path} RTSP/1.0`);\n lines.push(`CSeq: ${cseq}`);\n lines.push('User-Agent: AirPlay/320.20');\n lines.push('X-ProtocolVersion: 1');\n\n for (const [name, value] of Object.entries(headers)) {\n lines.push(`${name}: ${value}`);\n }\n\n lines.push('');\n lines.push('');\n\n return lines.join('\\r\\n');\n}\n\nexport function makeHttpRequest(buffer: Buffer): HttpRequest | null {\n const headerLength = buffer.indexOf('\\r\\n\\r\\n');\n const {headers, method, path} = parseRequestHeaders(buffer.subarray(0, headerLength));\n\n let contentLength = headers['Content-Length'] ? Number(headers['Content-Length']) : 0;\n\n if (isNaN(contentLength)) {\n contentLength = 0;\n }\n\n const requestLength = headerLength + 4 + contentLength;\n\n debug(buffer.byteLength, requestLength);\n\n if (buffer.byteLength < requestLength) {\n return null;\n }\n\n const body = buffer.subarray(headerLength + 4, requestLength);\n\n return {\n headers,\n method,\n path,\n body,\n requestLength\n };\n}\n\nexport function makeHttpResponse(buffer: Buffer): HttpResponse | null {\n const headerLength = buffer.indexOf('\\r\\n\\r\\n');\n const {headers, status, statusText} = parseResponseHeaders(buffer.subarray(0, headerLength));\n\n let contentLength = headers['Content-Length'] ? Number(headers['Content-Length']) : 0;\n\n if (isNaN(contentLength)) {\n contentLength = 0;\n }\n\n const responseLength = headerLength + 4 + contentLength;\n\n // not enough data yet\n if (buffer.byteLength < responseLength) {\n return null;\n }\n\n const body = buffer.subarray(headerLength + 4, responseLength);\n const response = new Response(body, {\n status,\n statusText,\n headers\n });\n\n return {\n response,\n responseLength\n };\n}\n\nexport function randomInt32(): number {\n return randomBytes(4).readUInt32BE(0);\n}\n\nexport function randomInt64(): bigint {\n return randomBytes(8).readBigUint64LE(0);\n}\n\nfunction parseHeaders(lines: string[]): Record<string, string> {\n const headers: Record<string, string> = {};\n\n for (let i = 0; i < lines.length; i++) {\n const colon = lines[i].indexOf(':');\n\n if (colon <= 0) {\n continue;\n }\n\n const name = lines[i].substring(0, colon).trim();\n headers[name] = lines[i].substring(colon + 1).trim();\n }\n\n return headers;\n}\n\nfunction parseRequestHeaders(buffer: Buffer): HttpRequestHeader {\n const lines = buffer.toString('utf8').split('\\r\\n');\n\n const rawRequest = lines[0].match(/^(\\S+)\\s+(\\S+)\\s+RTSP\\/1\\.0$/);\n const method = rawRequest[1] as RTSPMethod;\n const path = rawRequest[2];\n const headers: Record<string, string> = parseHeaders(lines.slice(1));\n\n return {\n headers,\n method,\n path\n };\n}\n\nfunction parseResponseHeaders(buffer: Buffer): HttpResponseHeader {\n const lines = buffer.toString('utf8').split('\\r\\n');\n\n const rawStatus = lines[0].match(/(HTTP|RTSP)\\/[\\d.]+\\s+(\\d+)\\s+(.+)/);\n const status = Number(rawStatus[2]);\n const statusText = rawStatus[3];\n const headers: Record<string, string> = parseHeaders(lines.slice(1));\n\n return {\n headers,\n status,\n statusText\n };\n}\n\ntype HttpRequestHeader = {\n readonly headers: Record<string, string>;\n readonly method: RTSPMethod;\n readonly path: string;\n};\n\ntype HttpResponseHeader = {\n readonly headers: Record<string, string>;\n readonly status: number;\n readonly statusText: string;\n};\n\ntype HttpRequest = {\n readonly headers: Record<string, string>;\n readonly method: RTSPMethod;\n readonly path: string;\n readonly body: Buffer;\n readonly requestLength: number;\n};\n\ntype HttpResponse = {\n readonly response: Response;\n readonly responseLength: number;\n};\n",
|
|
7
|
+
"// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Determine whether the given `arg` is a message.\n * If `desc` is set, determine whether `arg` is this specific message.\n */\nexport function isMessage(arg, schema) {\n const isMessage = arg !== null &&\n typeof arg == \"object\" &&\n \"$typeName\" in arg &&\n typeof arg.$typeName == \"string\";\n if (!isMessage) {\n return false;\n }\n if (schema === undefined) {\n return true;\n }\n return schema.typeName === arg.$typeName;\n}\n",
|
|
8
|
+
"// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Scalar value types. This is a subset of field types declared by protobuf\n * enum google.protobuf.FieldDescriptorProto.Type The types GROUP and MESSAGE\n * are omitted, but the numerical values are identical.\n */\nexport var ScalarType;\n(function (ScalarType) {\n // 0 is reserved for errors.\n // Order is weird for historical reasons.\n ScalarType[ScalarType[\"DOUBLE\"] = 1] = \"DOUBLE\";\n ScalarType[ScalarType[\"FLOAT\"] = 2] = \"FLOAT\";\n // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if\n // negative values are likely.\n ScalarType[ScalarType[\"INT64\"] = 3] = \"INT64\";\n ScalarType[ScalarType[\"UINT64\"] = 4] = \"UINT64\";\n // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if\n // negative values are likely.\n ScalarType[ScalarType[\"INT32\"] = 5] = \"INT32\";\n ScalarType[ScalarType[\"FIXED64\"] = 6] = \"FIXED64\";\n ScalarType[ScalarType[\"FIXED32\"] = 7] = \"FIXED32\";\n ScalarType[ScalarType[\"BOOL\"] = 8] = \"BOOL\";\n ScalarType[ScalarType[\"STRING\"] = 9] = \"STRING\";\n // Tag-delimited aggregate.\n // Group type is deprecated and not supported in proto3. However, Proto3\n // implementations should still be able to parse the group wire format and\n // treat group fields as unknown fields.\n // TYPE_GROUP = 10,\n // TYPE_MESSAGE = 11, // Length-delimited aggregate.\n // New in version 2.\n ScalarType[ScalarType[\"BYTES\"] = 12] = \"BYTES\";\n ScalarType[ScalarType[\"UINT32\"] = 13] = \"UINT32\";\n // TYPE_ENUM = 14,\n ScalarType[ScalarType[\"SFIXED32\"] = 15] = \"SFIXED32\";\n ScalarType[ScalarType[\"SFIXED64\"] = 16] = \"SFIXED64\";\n ScalarType[ScalarType[\"SINT32\"] = 17] = \"SINT32\";\n ScalarType[ScalarType[\"SINT64\"] = 18] = \"SINT64\";\n})(ScalarType || (ScalarType = {}));\n",
|
|
9
|
+
"// Copyright 2008 Google Inc. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\n// Code generated by the Protocol Buffer compiler is owned by the owner\n// of the input file used when generating it. This code is not\n// standalone and requires a support library to be linked with it. This\n// support library is itself covered by the above license.\n/**\n * Read a 64 bit varint as two JS numbers.\n *\n * Returns tuple:\n * [0]: low bits\n * [1]: high bits\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L175\n */\nexport function varint64read() {\n let lowBits = 0;\n let highBits = 0;\n for (let shift = 0; shift < 28; shift += 7) {\n let b = this.buf[this.pos++];\n lowBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n let middleByte = this.buf[this.pos++];\n // last four bits of the first 32 bit number\n lowBits |= (middleByte & 0x0f) << 28;\n // 3 upper bits are part of the next 32 bit number\n highBits = (middleByte & 0x70) >> 4;\n if ((middleByte & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n for (let shift = 3; shift <= 31; shift += 7) {\n let b = this.buf[this.pos++];\n highBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n throw new Error(\"invalid varint\");\n}\n/**\n * Write a 64 bit varint, given as two JS numbers, to the given bytes array.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/writer.js#L344\n */\nexport function varint64write(lo, hi, bytes) {\n for (let i = 0; i < 28; i = i + 7) {\n const shift = lo >>> i;\n const hasNext = !(shift >>> 7 == 0 && hi == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n const splitBits = ((lo >>> 28) & 0x0f) | ((hi & 0x07) << 4);\n const hasMoreBits = !(hi >> 3 == 0);\n bytes.push((hasMoreBits ? splitBits | 0x80 : splitBits) & 0xff);\n if (!hasMoreBits) {\n return;\n }\n for (let i = 3; i < 31; i = i + 7) {\n const shift = hi >>> i;\n const hasNext = !(shift >>> 7 == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n bytes.push((hi >>> 31) & 0x01);\n}\n// constants for binary math\nconst TWO_PWR_32_DBL = 0x100000000;\n/**\n * Parse decimal string of 64 bit integer value as two JS numbers.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function int64FromString(dec) {\n // Check for minus sign.\n const minus = dec[0] === \"-\";\n if (minus) {\n dec = dec.slice(1);\n }\n // Work 6 decimal digits at a time, acting like we're converting base 1e6\n // digits to binary. This is safe to do with floating point math because\n // Number.isSafeInteger(ALL_32_BITS * 1e6) == true.\n const base = 1e6;\n let lowBits = 0;\n let highBits = 0;\n function add1e6digit(begin, end) {\n // Note: Number('') is 0.\n const digit1e6 = Number(dec.slice(begin, end));\n highBits *= base;\n lowBits = lowBits * base + digit1e6;\n // Carry bits from lowBits to\n if (lowBits >= TWO_PWR_32_DBL) {\n highBits = highBits + ((lowBits / TWO_PWR_32_DBL) | 0);\n lowBits = lowBits % TWO_PWR_32_DBL;\n }\n }\n add1e6digit(-24, -18);\n add1e6digit(-18, -12);\n add1e6digit(-12, -6);\n add1e6digit(-6);\n return minus ? negate(lowBits, highBits) : newBits(lowBits, highBits);\n}\n/**\n * Losslessly converts a 64-bit signed integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function int64ToString(lo, hi) {\n let bits = newBits(lo, hi);\n // If we're treating the input as a signed value and the high bit is set, do\n // a manual two's complement conversion before the decimal conversion.\n const negative = bits.hi & 0x80000000;\n if (negative) {\n bits = negate(bits.lo, bits.hi);\n }\n const result = uInt64ToString(bits.lo, bits.hi);\n return negative ? \"-\" + result : result;\n}\n/**\n * Losslessly converts a 64-bit unsigned integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function uInt64ToString(lo, hi) {\n ({ lo, hi } = toUnsigned(lo, hi));\n // Skip the expensive conversion if the number is small enough to use the\n // built-in conversions.\n // Number.MAX_SAFE_INTEGER = 0x001FFFFF FFFFFFFF, thus any number with\n // highBits <= 0x1FFFFF can be safely expressed with a double and retain\n // integer precision.\n // Proven by: Number.isSafeInteger(0x1FFFFF * 2**32 + 0xFFFFFFFF) == true.\n if (hi <= 0x1fffff) {\n return String(TWO_PWR_32_DBL * hi + lo);\n }\n // What this code is doing is essentially converting the input number from\n // base-2 to base-1e7, which allows us to represent the 64-bit range with\n // only 3 (very large) digits. Those digits are then trivial to convert to\n // a base-10 string.\n // The magic numbers used here are -\n // 2^24 = 16777216 = (1,6777216) in base-1e7.\n // 2^48 = 281474976710656 = (2,8147497,6710656) in base-1e7.\n // Split 32:32 representation into 16:24:24 representation so our\n // intermediate digits don't overflow.\n const low = lo & 0xffffff;\n const mid = ((lo >>> 24) | (hi << 8)) & 0xffffff;\n const high = (hi >> 16) & 0xffff;\n // Assemble our three base-1e7 digits, ignoring carries. The maximum\n // value in a digit at this step is representable as a 48-bit integer, which\n // can be stored in a 64-bit floating point number.\n let digitA = low + mid * 6777216 + high * 6710656;\n let digitB = mid + high * 8147497;\n let digitC = high * 2;\n // Apply carries from A to B and from B to C.\n const base = 10000000;\n if (digitA >= base) {\n digitB += Math.floor(digitA / base);\n digitA %= base;\n }\n if (digitB >= base) {\n digitC += Math.floor(digitB / base);\n digitB %= base;\n }\n // If digitC is 0, then we should have returned in the trivial code path\n // at the top for non-safe integers. Given this, we can assume both digitB\n // and digitA need leading zeros.\n return (digitC.toString() +\n decimalFrom1e7WithLeadingZeros(digitB) +\n decimalFrom1e7WithLeadingZeros(digitA));\n}\nfunction toUnsigned(lo, hi) {\n return { lo: lo >>> 0, hi: hi >>> 0 };\n}\nfunction newBits(lo, hi) {\n return { lo: lo | 0, hi: hi | 0 };\n}\n/**\n * Returns two's compliment negation of input.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#Signed_32-bit_integers\n */\nfunction negate(lowBits, highBits) {\n highBits = ~highBits;\n if (lowBits) {\n lowBits = ~lowBits + 1;\n }\n else {\n // If lowBits is 0, then bitwise-not is 0xFFFFFFFF,\n // adding 1 to that, results in 0x100000000, which leaves\n // the low bits 0x0 and simply adds one to the high bits.\n highBits += 1;\n }\n return newBits(lowBits, highBits);\n}\n/**\n * Returns decimal representation of digit1e7 with leading zeros.\n */\nconst decimalFrom1e7WithLeadingZeros = (digit1e7) => {\n const partial = String(digit1e7);\n return \"0000000\".slice(partial.length) + partial;\n};\n/**\n * Write a 32 bit varint, signed or unsigned. Same as `varint64write(0, value, bytes)`\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/1b18833f4f2a2f681f4e4a25cdf3b0a43115ec26/js/binary/encoder.js#L144\n */\nexport function varint32write(value, bytes) {\n if (value >= 0) {\n // write value as varint 32\n while (value > 0x7f) {\n bytes.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n bytes.push(value);\n }\n else {\n for (let i = 0; i < 9; i++) {\n bytes.push((value & 127) | 128);\n value = value >> 7;\n }\n bytes.push(1);\n }\n}\n/**\n * Read an unsigned 32 bit varint.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L220\n */\nexport function varint32read() {\n let b = this.buf[this.pos++];\n let result = b & 0x7f;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 7;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 14;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 21;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n // Extract only last 4 bits\n b = this.buf[this.pos++];\n result |= (b & 0x0f) << 28;\n for (let readBytes = 5; (b & 0x80) !== 0 && readBytes < 10; readBytes++)\n b = this.buf[this.pos++];\n if ((b & 0x80) != 0)\n throw new Error(\"invalid varint\");\n this.assertBounds();\n // Result can have 32 bits, convert it to unsigned\n return result >>> 0;\n}\n",
|
|
10
|
+
"// Copyright 2021-2025 Buf Technologies, Inc.\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.\nimport { int64FromString, int64ToString, uInt64ToString, } from \"./wire/varint.js\";\n/**\n * Int64Support for the current environment.\n */\nexport const protoInt64 = /*@__PURE__*/ makeInt64Support();\nfunction makeInt64Support() {\n const dv = new DataView(new ArrayBuffer(8));\n // note that Safari 14 implements BigInt, but not the DataView methods\n const ok = typeof BigInt === \"function\" &&\n typeof dv.getBigInt64 === \"function\" &&\n typeof dv.getBigUint64 === \"function\" &&\n typeof dv.setBigInt64 === \"function\" &&\n typeof dv.setBigUint64 === \"function\" &&\n (!!globalThis.Deno ||\n typeof process != \"object\" ||\n typeof process.env != \"object\" ||\n process.env.BUF_BIGINT_DISABLE !== \"1\");\n if (ok) {\n const MIN = BigInt(\"-9223372036854775808\");\n const MAX = BigInt(\"9223372036854775807\");\n const UMIN = BigInt(\"0\");\n const UMAX = BigInt(\"18446744073709551615\");\n return {\n zero: BigInt(0),\n supported: true,\n parse(value) {\n const bi = typeof value == \"bigint\" ? value : BigInt(value);\n if (bi > MAX || bi < MIN) {\n throw new Error(`invalid int64: ${value}`);\n }\n return bi;\n },\n uParse(value) {\n const bi = typeof value == \"bigint\" ? value : BigInt(value);\n if (bi > UMAX || bi < UMIN) {\n throw new Error(`invalid uint64: ${value}`);\n }\n return bi;\n },\n enc(value) {\n dv.setBigInt64(0, this.parse(value), true);\n return {\n lo: dv.getInt32(0, true),\n hi: dv.getInt32(4, true),\n };\n },\n uEnc(value) {\n dv.setBigInt64(0, this.uParse(value), true);\n return {\n lo: dv.getInt32(0, true),\n hi: dv.getInt32(4, true),\n };\n },\n dec(lo, hi) {\n dv.setInt32(0, lo, true);\n dv.setInt32(4, hi, true);\n return dv.getBigInt64(0, true);\n },\n uDec(lo, hi) {\n dv.setInt32(0, lo, true);\n dv.setInt32(4, hi, true);\n return dv.getBigUint64(0, true);\n },\n };\n }\n return {\n zero: \"0\",\n supported: false,\n parse(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertInt64String(value);\n return value;\n },\n uParse(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertUInt64String(value);\n return value;\n },\n enc(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertInt64String(value);\n return int64FromString(value);\n },\n uEnc(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertUInt64String(value);\n return int64FromString(value);\n },\n dec(lo, hi) {\n return int64ToString(lo, hi);\n },\n uDec(lo, hi) {\n return uInt64ToString(lo, hi);\n },\n };\n}\nfunction assertInt64String(value) {\n if (!/^-?[0-9]+$/.test(value)) {\n throw new Error(\"invalid int64: \" + value);\n }\n}\nfunction assertUInt64String(value) {\n if (!/^[0-9]+$/.test(value)) {\n throw new Error(\"invalid uint64: \" + value);\n }\n}\n",
|
|
11
|
+
"// Copyright 2021-2025 Buf Technologies, Inc.\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.\nimport { protoInt64 } from \"../proto-int64.js\";\nimport { ScalarType } from \"../descriptors.js\";\n/**\n * Returns true if both scalar values are equal.\n */\nexport function scalarEquals(type, a, b) {\n if (a === b) {\n // This correctly matches equal values except BYTES and (possibly) 64-bit integers.\n return true;\n }\n // Special case BYTES - we need to compare each byte individually\n if (type == ScalarType.BYTES) {\n if (!(a instanceof Uint8Array) || !(b instanceof Uint8Array)) {\n return false;\n }\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n }\n // Special case 64-bit integers - we support number, string and bigint representation.\n switch (type) {\n case ScalarType.UINT64:\n case ScalarType.FIXED64:\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n // Loose comparison will match between 0n, 0 and \"0\".\n return a == b;\n }\n // Anything that hasn't been caught by strict comparison or special cased\n // BYTES and 64-bit integers is not equal.\n return false;\n}\n/**\n * Returns the zero value for the given scalar type.\n */\nexport function scalarZeroValue(type, longAsString) {\n switch (type) {\n case ScalarType.STRING:\n return \"\";\n case ScalarType.BOOL:\n return false;\n case ScalarType.DOUBLE:\n case ScalarType.FLOAT:\n return 0.0;\n case ScalarType.INT64:\n case ScalarType.UINT64:\n case ScalarType.SFIXED64:\n case ScalarType.FIXED64:\n case ScalarType.SINT64:\n return (longAsString ? \"0\" : protoInt64.zero);\n case ScalarType.BYTES:\n return new Uint8Array(0);\n default:\n // Handles INT32, UINT32, SINT32, FIXED32, SFIXED32.\n // We do not use individual cases to save a few bytes code size.\n return 0;\n }\n}\n/**\n * Returns true for a zero-value. For example, an integer has the zero-value `0`,\n * a boolean is `false`, a string is `\"\"`, and bytes is an empty Uint8Array.\n *\n * In proto3, zero-values are not written to the wire, unless the field is\n * optional or repeated.\n */\nexport function isScalarZeroValue(type, value) {\n switch (type) {\n case ScalarType.BOOL:\n return value === false;\n case ScalarType.STRING:\n return value === \"\";\n case ScalarType.BYTES:\n return value instanceof Uint8Array && !value.byteLength;\n default:\n return value == 0; // Loose comparison matches 0n, 0 and \"0\"\n }\n}\n",
|
|
12
|
+
"// Copyright 2021-2025 Buf Technologies, Inc.\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.\nimport { isScalarZeroValue, scalarZeroValue } from \"./scalar.js\";\n// bootstrap-inject google.protobuf.FeatureSet.FieldPresence.IMPLICIT: const $name: FeatureSet_FieldPresence.$localName = $number;\nconst IMPLICIT = 2;\nexport const unsafeLocal = Symbol.for(\"reflect unsafe local\");\n/**\n * Return the selected field of a oneof group.\n *\n * @private\n */\nexport function unsafeOneofCase(\n// biome-ignore lint/suspicious/noExplicitAny: `any` is the best choice for dynamic access\ntarget, oneof) {\n const c = target[oneof.localName].case;\n if (c === undefined) {\n return c;\n }\n return oneof.fields.find((f) => f.localName === c);\n}\n/**\n * Returns true if the field is set.\n *\n * @private\n */\nexport function unsafeIsSet(\n// biome-ignore lint/suspicious/noExplicitAny: `any` is the best choice for dynamic access\ntarget, field) {\n const name = field.localName;\n if (field.oneof) {\n return target[field.oneof.localName].case === name;\n }\n if (field.presence != IMPLICIT) {\n // Fields with explicit presence have properties on the prototype chain\n // for default / zero values (except for proto3).\n return (target[name] !== undefined &&\n Object.prototype.hasOwnProperty.call(target, name));\n }\n switch (field.fieldKind) {\n case \"list\":\n return target[name].length > 0;\n case \"map\":\n return Object.keys(target[name]).length > 0;\n case \"scalar\":\n return !isScalarZeroValue(field.scalar, target[name]);\n case \"enum\":\n return target[name] !== field.enum.values[0].number;\n }\n throw new Error(\"message field with implicit presence\");\n}\n/**\n * Returns true if the field is set, but only for singular fields with explicit\n * presence (proto2).\n *\n * @private\n */\nexport function unsafeIsSetExplicit(target, localName) {\n return (Object.prototype.hasOwnProperty.call(target, localName) &&\n target[localName] !== undefined);\n}\n/**\n * Return a field value, respecting oneof groups.\n *\n * @private\n */\nexport function unsafeGet(target, field) {\n if (field.oneof) {\n const oneof = target[field.oneof.localName];\n if (oneof.case === field.localName) {\n return oneof.value;\n }\n return undefined;\n }\n return target[field.localName];\n}\n/**\n * Set a field value, respecting oneof groups.\n *\n * @private\n */\nexport function unsafeSet(target, field, value) {\n if (field.oneof) {\n target[field.oneof.localName] = {\n case: field.localName,\n value: value,\n };\n }\n else {\n target[field.localName] = value;\n }\n}\n/**\n * Resets the field, so that unsafeIsSet() will return false.\n *\n * @private\n */\nexport function unsafeClear(\n// biome-ignore lint/suspicious/noExplicitAny: `any` is the best choice for dynamic access\ntarget, field) {\n const name = field.localName;\n if (field.oneof) {\n const oneofLocalName = field.oneof.localName;\n if (target[oneofLocalName].case === name) {\n target[oneofLocalName] = { case: undefined };\n }\n }\n else if (field.presence != IMPLICIT) {\n // Fields with explicit presence have properties on the prototype chain\n // for default / zero values (except for proto3). By deleting their own\n // property, the field is reset.\n delete target[name];\n }\n else {\n switch (field.fieldKind) {\n case \"map\":\n target[name] = {};\n break;\n case \"list\":\n target[name] = [];\n break;\n case \"enum\":\n target[name] = field.enum.values[0].number;\n break;\n case \"scalar\":\n target[name] = scalarZeroValue(field.scalar, field.longAsString);\n break;\n }\n }\n}\n",
|
|
13
|
+
"// Copyright 2021-2025 Buf Technologies, Inc.\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.\nimport { unsafeLocal } from \"./unsafe.js\";\nexport function isObject(arg) {\n return arg !== null && typeof arg == \"object\" && !Array.isArray(arg);\n}\nexport function isOneofADT(arg) {\n return (arg !== null &&\n typeof arg == \"object\" &&\n \"case\" in arg &&\n ((typeof arg.case == \"string\" && \"value\" in arg && arg.value != null) ||\n (arg.case === undefined &&\n (!(\"value\" in arg) || arg.value === undefined))));\n}\nexport function isReflectList(arg, field) {\n var _a, _b, _c, _d;\n if (isObject(arg) &&\n unsafeLocal in arg &&\n \"add\" in arg &&\n \"field\" in arg &&\n typeof arg.field == \"function\") {\n if (field !== undefined) {\n const a = field;\n const b = arg.field();\n return (a.listKind == b.listKind &&\n a.scalar === b.scalar &&\n ((_a = a.message) === null || _a === void 0 ? void 0 : _a.typeName) === ((_b = b.message) === null || _b === void 0 ? void 0 : _b.typeName) &&\n ((_c = a.enum) === null || _c === void 0 ? void 0 : _c.typeName) === ((_d = b.enum) === null || _d === void 0 ? void 0 : _d.typeName));\n }\n return true;\n }\n return false;\n}\nexport function isReflectMap(arg, field) {\n var _a, _b, _c, _d;\n if (isObject(arg) &&\n unsafeLocal in arg &&\n \"has\" in arg &&\n \"field\" in arg &&\n typeof arg.field == \"function\") {\n if (field !== undefined) {\n const a = field, b = arg.field();\n return (a.mapKey === b.mapKey &&\n a.mapKind == b.mapKind &&\n a.scalar === b.scalar &&\n ((_a = a.message) === null || _a === void 0 ? void 0 : _a.typeName) === ((_b = b.message) === null || _b === void 0 ? void 0 : _b.typeName) &&\n ((_c = a.enum) === null || _c === void 0 ? void 0 : _c.typeName) === ((_d = b.enum) === null || _d === void 0 ? void 0 : _d.typeName));\n }\n return true;\n }\n return false;\n}\nexport function isReflectMessage(arg, messageDesc) {\n return (isObject(arg) &&\n unsafeLocal in arg &&\n \"desc\" in arg &&\n isObject(arg.desc) &&\n arg.desc.kind === \"message\" &&\n (messageDesc === undefined || arg.desc.typeName == messageDesc.typeName));\n}\n",
|
|
14
|
+
"// Copyright 2021-2025 Buf Technologies, Inc.\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.\nexport function isWrapper(arg) {\n return isWrapperTypeName(arg.$typeName);\n}\nexport function isWrapperDesc(messageDesc) {\n const f = messageDesc.fields[0];\n return (isWrapperTypeName(messageDesc.typeName) &&\n f !== undefined &&\n f.fieldKind == \"scalar\" &&\n f.name == \"value\" &&\n f.number == 1);\n}\nfunction isWrapperTypeName(name) {\n return (name.startsWith(\"google.protobuf.\") &&\n [\n \"DoubleValue\",\n \"FloatValue\",\n \"Int64Value\",\n \"UInt64Value\",\n \"Int32Value\",\n \"UInt32Value\",\n \"BoolValue\",\n \"StringValue\",\n \"BytesValue\",\n ].includes(name.substring(16)));\n}\n",
|
|
15
|
+
"// Copyright 2021-2025 Buf Technologies, Inc.\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.\nimport { isMessage } from \"./is-message.js\";\nimport { ScalarType, } from \"./descriptors.js\";\nimport { scalarZeroValue } from \"./reflect/scalar.js\";\nimport { isObject } from \"./reflect/guard.js\";\nimport { unsafeGet, unsafeOneofCase, unsafeSet } from \"./reflect/unsafe.js\";\nimport { isWrapperDesc } from \"./wkt/wrappers.js\";\n// bootstrap-inject google.protobuf.Edition.EDITION_PROTO3: const $name: Edition.$localName = $number;\nconst EDITION_PROTO3 = 999;\n// bootstrap-inject google.protobuf.Edition.EDITION_PROTO2: const $name: Edition.$localName = $number;\nconst EDITION_PROTO2 = 998;\n// bootstrap-inject google.protobuf.FeatureSet.FieldPresence.IMPLICIT: const $name: FeatureSet_FieldPresence.$localName = $number;\nconst IMPLICIT = 2;\n/**\n * Create a new message instance.\n *\n * The second argument is an optional initializer object, where all fields are\n * optional.\n */\nexport function create(schema, init) {\n if (isMessage(init, schema)) {\n return init;\n }\n const message = createZeroMessage(schema);\n if (init !== undefined) {\n initMessage(schema, message, init);\n }\n return message;\n}\n/**\n * Sets field values from a MessageInitShape on a zero message.\n */\nfunction initMessage(messageDesc, message, init) {\n for (const member of messageDesc.members) {\n let value = init[member.localName];\n if (value == null) {\n // intentionally ignore undefined and null\n continue;\n }\n let field;\n if (member.kind == \"oneof\") {\n const oneofField = unsafeOneofCase(init, member);\n if (!oneofField) {\n continue;\n }\n field = oneofField;\n value = unsafeGet(init, oneofField);\n }\n else {\n field = member;\n }\n switch (field.fieldKind) {\n case \"message\":\n value = toMessage(field, value);\n break;\n case \"scalar\":\n value = initScalar(field, value);\n break;\n case \"list\":\n value = initList(field, value);\n break;\n case \"map\":\n value = initMap(field, value);\n break;\n }\n unsafeSet(message, field, value);\n }\n return message;\n}\nfunction initScalar(field, value) {\n if (field.scalar == ScalarType.BYTES) {\n return toU8Arr(value);\n }\n return value;\n}\nfunction initMap(field, value) {\n if (isObject(value)) {\n if (field.scalar == ScalarType.BYTES) {\n return convertObjectValues(value, toU8Arr);\n }\n if (field.mapKind == \"message\") {\n return convertObjectValues(value, (val) => toMessage(field, val));\n }\n }\n return value;\n}\nfunction initList(field, value) {\n if (Array.isArray(value)) {\n if (field.scalar == ScalarType.BYTES) {\n return value.map(toU8Arr);\n }\n if (field.listKind == \"message\") {\n return value.map((item) => toMessage(field, item));\n }\n }\n return value;\n}\nfunction toMessage(field, value) {\n if (field.fieldKind == \"message\" &&\n !field.oneof &&\n isWrapperDesc(field.message)) {\n // Types from google/protobuf/wrappers.proto are unwrapped when used in\n // a singular field that is not part of a oneof group.\n return initScalar(field.message.fields[0], value);\n }\n if (isObject(value)) {\n if (field.message.typeName == \"google.protobuf.Struct\" &&\n field.parent.typeName !== \"google.protobuf.Value\") {\n // google.protobuf.Struct is represented with JsonObject when used in a\n // field, except when used in google.protobuf.Value.\n return value;\n }\n if (!isMessage(value, field.message)) {\n return create(field.message, value);\n }\n }\n return value;\n}\n// converts any ArrayLike<number> to Uint8Array if necessary.\nfunction toU8Arr(value) {\n return Array.isArray(value) ? new Uint8Array(value) : value;\n}\nfunction convertObjectValues(obj, fn) {\n const ret = {};\n for (const entry of Object.entries(obj)) {\n ret[entry[0]] = fn(entry[1]);\n }\n return ret;\n}\nconst tokenZeroMessageField = Symbol();\nconst messagePrototypes = new WeakMap();\n/**\n * Create a zero message.\n */\nfunction createZeroMessage(desc) {\n let msg;\n if (!needsPrototypeChain(desc)) {\n msg = {\n $typeName: desc.typeName,\n };\n for (const member of desc.members) {\n if (member.kind == \"oneof\" || member.presence == IMPLICIT) {\n msg[member.localName] = createZeroField(member);\n }\n }\n }\n else {\n // Support default values and track presence via the prototype chain\n const cached = messagePrototypes.get(desc);\n let prototype;\n let members;\n if (cached) {\n ({ prototype, members } = cached);\n }\n else {\n prototype = {};\n members = new Set();\n for (const member of desc.members) {\n if (member.kind == \"oneof\") {\n // we can only put immutable values on the prototype,\n // oneof ADTs are mutable\n continue;\n }\n if (member.fieldKind != \"scalar\" && member.fieldKind != \"enum\") {\n // only scalar and enum values are immutable, map, list, and message\n // are not\n continue;\n }\n if (member.presence == IMPLICIT) {\n // implicit presence tracks field presence by zero values - e.g. 0, false, \"\", are unset, 1, true, \"x\" are set.\n // message, map, list fields are mutable, and also have IMPLICIT presence.\n continue;\n }\n members.add(member);\n prototype[member.localName] = createZeroField(member);\n }\n messagePrototypes.set(desc, { prototype, members });\n }\n msg = Object.create(prototype);\n msg.$typeName = desc.typeName;\n for (const member of desc.members) {\n if (members.has(member)) {\n continue;\n }\n if (member.kind == \"field\") {\n if (member.fieldKind == \"message\") {\n continue;\n }\n if (member.fieldKind == \"scalar\" || member.fieldKind == \"enum\") {\n if (member.presence != IMPLICIT) {\n continue;\n }\n }\n }\n msg[member.localName] = createZeroField(member);\n }\n }\n return msg;\n}\n/**\n * Do we need the prototype chain to track field presence?\n */\nfunction needsPrototypeChain(desc) {\n switch (desc.file.edition) {\n case EDITION_PROTO3:\n // proto3 always uses implicit presence, we never need the prototype chain.\n return false;\n case EDITION_PROTO2:\n // proto2 never uses implicit presence, we always need the prototype chain.\n return true;\n default:\n // If a message uses scalar or enum fields with explicit presence, we need\n // the prototype chain to track presence. This rule does not apply to fields\n // in a oneof group - they use a different mechanism to track presence.\n return desc.fields.some((f) => f.presence != IMPLICIT && f.fieldKind != \"message\" && !f.oneof);\n }\n}\n/**\n * Returns a zero value for oneof groups, and for every field kind except\n * messages. Scalar and enum fields can have default values.\n */\nfunction createZeroField(field) {\n if (field.kind == \"oneof\") {\n return { case: undefined };\n }\n if (field.fieldKind == \"list\") {\n return [];\n }\n if (field.fieldKind == \"map\") {\n return {}; // Object.create(null) would be desirable here, but is unsupported by react https://react.dev/reference/react/use-server#serializable-parameters-and-return-values\n }\n if (field.fieldKind == \"message\") {\n return tokenZeroMessageField;\n }\n const defaultValue = field.getDefaultValue();\n if (defaultValue !== undefined) {\n return field.fieldKind == \"scalar\" && field.longAsString\n ? defaultValue.toString()\n : defaultValue;\n }\n return field.fieldKind == \"scalar\"\n ? scalarZeroValue(field.scalar, field.longAsString)\n : field.enum.values[0].number;\n}\n",
|
|
16
|
+
"// Copyright 2021-2025 Buf Technologies, Inc.\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.\nconst errorNames = [\n \"FieldValueInvalidError\",\n \"FieldListRangeError\",\n \"ForeignFieldError\",\n];\nexport class FieldError extends Error {\n constructor(fieldOrOneof, message, name = \"FieldValueInvalidError\") {\n super(message);\n this.name = name;\n this.field = () => fieldOrOneof;\n }\n}\nexport function isFieldError(arg) {\n return (arg instanceof Error &&\n errorNames.includes(arg.name) &&\n \"field\" in arg &&\n typeof arg.field == \"function\");\n}\n",
|
|
17
|
+
"// Copyright 2021-2025 Buf Technologies, Inc.\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.\nconst symbol = Symbol.for(\"@bufbuild/protobuf/text-encoding\");\n/**\n * Protobuf-ES requires the Text Encoding API to convert UTF-8 from and to\n * binary. This WHATWG API is widely available, but it is not part of the\n * ECMAScript standard. On runtimes where it is not available, use this\n * function to provide your own implementation.\n *\n * Note that the Text Encoding API does not provide a way to validate UTF-8.\n * Our implementation falls back to use encodeURIComponent().\n */\nexport function configureTextEncoding(textEncoding) {\n globalThis[symbol] = textEncoding;\n}\nexport function getTextEncoding() {\n if (globalThis[symbol] == undefined) {\n const te = new globalThis.TextEncoder();\n const td = new globalThis.TextDecoder();\n globalThis[symbol] = {\n encodeUtf8(text) {\n return te.encode(text);\n },\n decodeUtf8(bytes) {\n return td.decode(bytes);\n },\n checkUtf8(text) {\n try {\n encodeURIComponent(text);\n return true;\n }\n catch (_) {\n return false;\n }\n },\n };\n }\n return globalThis[symbol];\n}\n",
|
|
18
|
+
"// Copyright 2021-2025 Buf Technologies, Inc.\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.\nimport { varint32read, varint32write, varint64read, varint64write, } from \"./varint.js\";\nimport { protoInt64 } from \"../proto-int64.js\";\nimport { getTextEncoding } from \"./text-encoding.js\";\n/**\n * Protobuf binary format wire types.\n *\n * A wire type provides just enough information to find the length of the\n * following value.\n *\n * See https://developers.google.com/protocol-buffers/docs/encoding#structure\n */\nexport var WireType;\n(function (WireType) {\n /**\n * Used for int32, int64, uint32, uint64, sint32, sint64, bool, enum\n */\n WireType[WireType[\"Varint\"] = 0] = \"Varint\";\n /**\n * Used for fixed64, sfixed64, double.\n * Always 8 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit64\"] = 1] = \"Bit64\";\n /**\n * Used for string, bytes, embedded messages, packed repeated fields\n *\n * Only repeated numeric types (types which use the varint, 32-bit,\n * or 64-bit wire types) can be packed. In proto3, such fields are\n * packed by default.\n */\n WireType[WireType[\"LengthDelimited\"] = 2] = \"LengthDelimited\";\n /**\n * Start of a tag-delimited aggregate, such as a proto2 group, or a message\n * in editions with message_encoding = DELIMITED.\n */\n WireType[WireType[\"StartGroup\"] = 3] = \"StartGroup\";\n /**\n * End of a tag-delimited aggregate.\n */\n WireType[WireType[\"EndGroup\"] = 4] = \"EndGroup\";\n /**\n * Used for fixed32, sfixed32, float.\n * Always 4 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit32\"] = 5] = \"Bit32\";\n})(WireType || (WireType = {}));\n/**\n * Maximum value for a 32-bit floating point value (Protobuf FLOAT).\n */\nexport const FLOAT32_MAX = 3.4028234663852886e38;\n/**\n * Minimum value for a 32-bit floating point value (Protobuf FLOAT).\n */\nexport const FLOAT32_MIN = -3.4028234663852886e38;\n/**\n * Maximum value for an unsigned 32-bit integer (Protobuf UINT32, FIXED32).\n */\nexport const UINT32_MAX = 0xffffffff;\n/**\n * Maximum value for a signed 32-bit integer (Protobuf INT32, SFIXED32, SINT32).\n */\nexport const INT32_MAX = 0x7fffffff;\n/**\n * Minimum value for a signed 32-bit integer (Protobuf INT32, SFIXED32, SINT32).\n */\nexport const INT32_MIN = -0x80000000;\nexport class BinaryWriter {\n constructor(encodeUtf8 = getTextEncoding().encodeUtf8) {\n this.encodeUtf8 = encodeUtf8;\n /**\n * Previous fork states.\n */\n this.stack = [];\n this.chunks = [];\n this.buf = [];\n }\n /**\n * Return all bytes written and reset this writer.\n */\n finish() {\n if (this.buf.length) {\n this.chunks.push(new Uint8Array(this.buf)); // flush the buffer\n this.buf = [];\n }\n let len = 0;\n for (let i = 0; i < this.chunks.length; i++)\n len += this.chunks[i].length;\n let bytes = new Uint8Array(len);\n let offset = 0;\n for (let i = 0; i < this.chunks.length; i++) {\n bytes.set(this.chunks[i], offset);\n offset += this.chunks[i].length;\n }\n this.chunks = [];\n return bytes;\n }\n /**\n * Start a new fork for length-delimited data like a message\n * or a packed repeated field.\n *\n * Must be joined later with `join()`.\n */\n fork() {\n this.stack.push({ chunks: this.chunks, buf: this.buf });\n this.chunks = [];\n this.buf = [];\n return this;\n }\n /**\n * Join the last fork. Write its length and bytes, then\n * return to the previous state.\n */\n join() {\n // get chunk of fork\n let chunk = this.finish();\n // restore previous state\n let prev = this.stack.pop();\n if (!prev)\n throw new Error(\"invalid state, fork stack empty\");\n this.chunks = prev.chunks;\n this.buf = prev.buf;\n // write length of chunk as varint\n this.uint32(chunk.byteLength);\n return this.raw(chunk);\n }\n /**\n * Writes a tag (field number and wire type).\n *\n * Equivalent to `uint32( (fieldNo << 3 | type) >>> 0 )`.\n *\n * Generated code should compute the tag ahead of time and call `uint32()`.\n */\n tag(fieldNo, type) {\n return this.uint32(((fieldNo << 3) | type) >>> 0);\n }\n /**\n * Write a chunk of raw bytes.\n */\n raw(chunk) {\n if (this.buf.length) {\n this.chunks.push(new Uint8Array(this.buf));\n this.buf = [];\n }\n this.chunks.push(chunk);\n return this;\n }\n /**\n * Write a `uint32` value, an unsigned 32 bit varint.\n */\n uint32(value) {\n assertUInt32(value);\n // write value as varint 32, inlined for speed\n while (value > 0x7f) {\n this.buf.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n this.buf.push(value);\n return this;\n }\n /**\n * Write a `int32` value, a signed 32 bit varint.\n */\n int32(value) {\n assertInt32(value);\n varint32write(value, this.buf);\n return this;\n }\n /**\n * Write a `bool` value, a variant.\n */\n bool(value) {\n this.buf.push(value ? 1 : 0);\n return this;\n }\n /**\n * Write a `bytes` value, length-delimited arbitrary data.\n */\n bytes(value) {\n this.uint32(value.byteLength); // write length of chunk as varint\n return this.raw(value);\n }\n /**\n * Write a `string` value, length-delimited data converted to UTF-8 text.\n */\n string(value) {\n let chunk = this.encodeUtf8(value);\n this.uint32(chunk.byteLength); // write length of chunk as varint\n return this.raw(chunk);\n }\n /**\n * Write a `float` value, 32-bit floating point number.\n */\n float(value) {\n assertFloat32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setFloat32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `double` value, a 64-bit floating point number.\n */\n double(value) {\n let chunk = new Uint8Array(8);\n new DataView(chunk.buffer).setFloat64(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed32` value, an unsigned, fixed-length 32-bit integer.\n */\n fixed32(value) {\n assertUInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setUint32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sfixed32` value, a signed, fixed-length 32-bit integer.\n */\n sfixed32(value) {\n assertInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setInt32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sint32` value, a signed, zigzag-encoded 32-bit varint.\n */\n sint32(value) {\n assertInt32(value);\n // zigzag encode\n value = ((value << 1) ^ (value >> 31)) >>> 0;\n varint32write(value, this.buf);\n return this;\n }\n /**\n * Write a `fixed64` value, a signed, fixed-length 64-bit integer.\n */\n sfixed64(value) {\n let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = protoInt64.enc(value);\n view.setInt32(0, tc.lo, true);\n view.setInt32(4, tc.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed64` value, an unsigned, fixed-length 64 bit integer.\n */\n fixed64(value) {\n let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = protoInt64.uEnc(value);\n view.setInt32(0, tc.lo, true);\n view.setInt32(4, tc.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `int64` value, a signed 64-bit varint.\n */\n int64(value) {\n let tc = protoInt64.enc(value);\n varint64write(tc.lo, tc.hi, this.buf);\n return this;\n }\n /**\n * Write a `sint64` value, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64(value) {\n const tc = protoInt64.enc(value), \n // zigzag encode\n sign = tc.hi >> 31, lo = (tc.lo << 1) ^ sign, hi = ((tc.hi << 1) | (tc.lo >>> 31)) ^ sign;\n varint64write(lo, hi, this.buf);\n return this;\n }\n /**\n * Write a `uint64` value, an unsigned 64-bit varint.\n */\n uint64(value) {\n const tc = protoInt64.uEnc(value);\n varint64write(tc.lo, tc.hi, this.buf);\n return this;\n }\n}\nexport class BinaryReader {\n constructor(buf, decodeUtf8 = getTextEncoding().decodeUtf8) {\n this.decodeUtf8 = decodeUtf8;\n this.varint64 = varint64read; // dirty cast for `this`\n /**\n * Read a `uint32` field, an unsigned 32 bit varint.\n */\n this.uint32 = varint32read;\n this.buf = buf;\n this.len = buf.length;\n this.pos = 0;\n this.view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);\n }\n /**\n * Reads a tag - field number and wire type.\n */\n tag() {\n let tag = this.uint32(), fieldNo = tag >>> 3, wireType = tag & 7;\n if (fieldNo <= 0 || wireType < 0 || wireType > 5)\n throw new Error(\"illegal tag: field no \" + fieldNo + \" wire type \" + wireType);\n return [fieldNo, wireType];\n }\n /**\n * Skip one element and return the skipped data.\n *\n * When skipping StartGroup, provide the tags field number to check for\n * matching field number in the EndGroup tag.\n */\n skip(wireType, fieldNo) {\n let start = this.pos;\n switch (wireType) {\n case WireType.Varint:\n while (this.buf[this.pos++] & 0x80) {\n // ignore\n }\n break;\n // @ts-ignore TS7029: Fallthrough case in switch -- ignore instead of expect-error for compiler settings without noFallthroughCasesInSwitch: true\n case WireType.Bit64:\n this.pos += 4;\n case WireType.Bit32:\n this.pos += 4;\n break;\n case WireType.LengthDelimited:\n let len = this.uint32();\n this.pos += len;\n break;\n case WireType.StartGroup:\n for (;;) {\n const [fn, wt] = this.tag();\n if (wt === WireType.EndGroup) {\n if (fieldNo !== undefined && fn !== fieldNo) {\n throw new Error(\"invalid end group tag\");\n }\n break;\n }\n this.skip(wt, fn);\n }\n break;\n default:\n throw new Error(\"cant skip wire type \" + wireType);\n }\n this.assertBounds();\n return this.buf.subarray(start, this.pos);\n }\n /**\n * Throws error if position in byte array is out of range.\n */\n assertBounds() {\n if (this.pos > this.len)\n throw new RangeError(\"premature EOF\");\n }\n /**\n * Read a `int32` field, a signed 32 bit varint.\n */\n int32() {\n return this.uint32() | 0;\n }\n /**\n * Read a `sint32` field, a signed, zigzag-encoded 32-bit varint.\n */\n sint32() {\n let zze = this.uint32();\n // decode zigzag\n return (zze >>> 1) ^ -(zze & 1);\n }\n /**\n * Read a `int64` field, a signed 64-bit varint.\n */\n int64() {\n return protoInt64.dec(...this.varint64());\n }\n /**\n * Read a `uint64` field, an unsigned 64-bit varint.\n */\n uint64() {\n return protoInt64.uDec(...this.varint64());\n }\n /**\n * Read a `sint64` field, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64() {\n let [lo, hi] = this.varint64();\n // decode zig zag\n let s = -(lo & 1);\n lo = ((lo >>> 1) | ((hi & 1) << 31)) ^ s;\n hi = (hi >>> 1) ^ s;\n return protoInt64.dec(lo, hi);\n }\n /**\n * Read a `bool` field, a variant.\n */\n bool() {\n let [lo, hi] = this.varint64();\n return lo !== 0 || hi !== 0;\n }\n /**\n * Read a `fixed32` field, an unsigned, fixed-length 32-bit integer.\n */\n fixed32() {\n // biome-ignore lint/suspicious/noAssignInExpressions: no\n return this.view.getUint32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `sfixed32` field, a signed, fixed-length 32-bit integer.\n */\n sfixed32() {\n // biome-ignore lint/suspicious/noAssignInExpressions: no\n return this.view.getInt32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `fixed64` field, an unsigned, fixed-length 64 bit integer.\n */\n fixed64() {\n return protoInt64.uDec(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `fixed64` field, a signed, fixed-length 64-bit integer.\n */\n sfixed64() {\n return protoInt64.dec(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `float` field, 32-bit floating point number.\n */\n float() {\n // biome-ignore lint/suspicious/noAssignInExpressions: no\n return this.view.getFloat32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `double` field, a 64-bit floating point number.\n */\n double() {\n // biome-ignore lint/suspicious/noAssignInExpressions: no\n return this.view.getFloat64((this.pos += 8) - 8, true);\n }\n /**\n * Read a `bytes` field, length-delimited arbitrary data.\n */\n bytes() {\n let len = this.uint32(), start = this.pos;\n this.pos += len;\n this.assertBounds();\n return this.buf.subarray(start, start + len);\n }\n /**\n * Read a `string` field, length-delimited data converted to UTF-8 text.\n */\n string() {\n return this.decodeUtf8(this.bytes());\n }\n}\n/**\n * Assert a valid signed protobuf 32-bit integer as a number or string.\n */\nfunction assertInt32(arg) {\n if (typeof arg == \"string\") {\n arg = Number(arg);\n }\n else if (typeof arg != \"number\") {\n throw new Error(\"invalid int32: \" + typeof arg);\n }\n if (!Number.isInteger(arg) ||\n arg > INT32_MAX ||\n arg < INT32_MIN)\n throw new Error(\"invalid int32: \" + arg);\n}\n/**\n * Assert a valid unsigned protobuf 32-bit integer as a number or string.\n */\nfunction assertUInt32(arg) {\n if (typeof arg == \"string\") {\n arg = Number(arg);\n }\n else if (typeof arg != \"number\") {\n throw new Error(\"invalid uint32: \" + typeof arg);\n }\n if (!Number.isInteger(arg) ||\n arg > UINT32_MAX ||\n arg < 0)\n throw new Error(\"invalid uint32: \" + arg);\n}\n/**\n * Assert a valid protobuf float value as a number or string.\n */\nfunction assertFloat32(arg) {\n if (typeof arg == \"string\") {\n const o = arg;\n arg = Number(arg);\n if (Number.isNaN(arg) && o !== \"NaN\") {\n throw new Error(\"invalid float32: \" + o);\n }\n }\n else if (typeof arg != \"number\") {\n throw new Error(\"invalid float32: \" + typeof arg);\n }\n if (Number.isFinite(arg) &&\n (arg > FLOAT32_MAX || arg < FLOAT32_MIN))\n throw new Error(\"invalid float32: \" + arg);\n}\n",
|
|
19
|
+
"// Copyright 2021-2025 Buf Technologies, Inc.\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.\nimport { ScalarType, } from \"../descriptors.js\";\nimport { isMessage } from \"../is-message.js\";\nimport { FieldError } from \"./error.js\";\nimport { isReflectList, isReflectMap, isReflectMessage } from \"./guard.js\";\nimport { FLOAT32_MAX, FLOAT32_MIN, INT32_MAX, INT32_MIN, UINT32_MAX, } from \"../wire/binary-encoding.js\";\nimport { getTextEncoding } from \"../wire/text-encoding.js\";\nimport { protoInt64 } from \"../proto-int64.js\";\n/**\n * Check whether the given field value is valid for the reflect API.\n */\nexport function checkField(field, value) {\n const check = field.fieldKind == \"list\"\n ? isReflectList(value, field)\n : field.fieldKind == \"map\"\n ? isReflectMap(value, field)\n : checkSingular(field, value);\n if (check === true) {\n return undefined;\n }\n let reason;\n switch (field.fieldKind) {\n case \"list\":\n reason = `expected ${formatReflectList(field)}, got ${formatVal(value)}`;\n break;\n case \"map\":\n reason = `expected ${formatReflectMap(field)}, got ${formatVal(value)}`;\n break;\n default: {\n reason = reasonSingular(field, value, check);\n }\n }\n return new FieldError(field, reason);\n}\n/**\n * Check whether the given list item is valid for the reflect API.\n */\nexport function checkListItem(field, index, value) {\n const check = checkSingular(field, value);\n if (check !== true) {\n return new FieldError(field, `list item #${index + 1}: ${reasonSingular(field, value, check)}`);\n }\n return undefined;\n}\n/**\n * Check whether the given map key and value are valid for the reflect API.\n */\nexport function checkMapEntry(field, key, value) {\n const checkKey = checkScalarValue(key, field.mapKey);\n if (checkKey !== true) {\n return new FieldError(field, `invalid map key: ${reasonSingular({ scalar: field.mapKey }, key, checkKey)}`);\n }\n const checkVal = checkSingular(field, value);\n if (checkVal !== true) {\n return new FieldError(field, `map entry ${formatVal(key)}: ${reasonSingular(field, value, checkVal)}`);\n }\n return undefined;\n}\nfunction checkSingular(field, value) {\n if (field.scalar !== undefined) {\n return checkScalarValue(value, field.scalar);\n }\n if (field.enum !== undefined) {\n if (field.enum.open) {\n return Number.isInteger(value);\n }\n return field.enum.values.some((v) => v.number === value);\n }\n return isReflectMessage(value, field.message);\n}\nfunction checkScalarValue(value, scalar) {\n switch (scalar) {\n case ScalarType.DOUBLE:\n return typeof value == \"number\";\n case ScalarType.FLOAT:\n if (typeof value != \"number\") {\n return false;\n }\n if (Number.isNaN(value) || !Number.isFinite(value)) {\n return true;\n }\n if (value > FLOAT32_MAX || value < FLOAT32_MIN) {\n return `${value.toFixed()} out of range`;\n }\n return true;\n case ScalarType.INT32:\n case ScalarType.SFIXED32:\n case ScalarType.SINT32:\n // signed\n if (typeof value !== \"number\" || !Number.isInteger(value)) {\n return false;\n }\n if (value > INT32_MAX || value < INT32_MIN) {\n return `${value.toFixed()} out of range`;\n }\n return true;\n case ScalarType.FIXED32:\n case ScalarType.UINT32:\n // unsigned\n if (typeof value !== \"number\" || !Number.isInteger(value)) {\n return false;\n }\n if (value > UINT32_MAX || value < 0) {\n return `${value.toFixed()} out of range`;\n }\n return true;\n case ScalarType.BOOL:\n return typeof value == \"boolean\";\n case ScalarType.STRING:\n if (typeof value != \"string\") {\n return false;\n }\n return getTextEncoding().checkUtf8(value) || \"invalid UTF8\";\n case ScalarType.BYTES:\n return value instanceof Uint8Array;\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n // signed\n if (typeof value == \"bigint\" ||\n typeof value == \"number\" ||\n (typeof value == \"string\" && value.length > 0)) {\n try {\n protoInt64.parse(value);\n return true;\n }\n catch (_) {\n return `${value} out of range`;\n }\n }\n return false;\n case ScalarType.FIXED64:\n case ScalarType.UINT64:\n // unsigned\n if (typeof value == \"bigint\" ||\n typeof value == \"number\" ||\n (typeof value == \"string\" && value.length > 0)) {\n try {\n protoInt64.uParse(value);\n return true;\n }\n catch (_) {\n return `${value} out of range`;\n }\n }\n return false;\n }\n}\nfunction reasonSingular(field, val, details) {\n details =\n typeof details == \"string\" ? `: ${details}` : `, got ${formatVal(val)}`;\n if (field.scalar !== undefined) {\n return `expected ${scalarTypeDescription(field.scalar)}` + details;\n }\n if (field.enum !== undefined) {\n return `expected ${field.enum.toString()}` + details;\n }\n return `expected ${formatReflectMessage(field.message)}` + details;\n}\nexport function formatVal(val) {\n switch (typeof val) {\n case \"object\":\n if (val === null) {\n return \"null\";\n }\n if (val instanceof Uint8Array) {\n return `Uint8Array(${val.length})`;\n }\n if (Array.isArray(val)) {\n return `Array(${val.length})`;\n }\n if (isReflectList(val)) {\n return formatReflectList(val.field());\n }\n if (isReflectMap(val)) {\n return formatReflectMap(val.field());\n }\n if (isReflectMessage(val)) {\n return formatReflectMessage(val.desc);\n }\n if (isMessage(val)) {\n return `message ${val.$typeName}`;\n }\n return \"object\";\n case \"string\":\n return val.length > 30 ? \"string\" : `\"${val.split('\"').join('\\\\\"')}\"`;\n case \"boolean\":\n return String(val);\n case \"number\":\n return String(val);\n case \"bigint\":\n return String(val) + \"n\";\n default:\n // \"symbol\" | \"undefined\" | \"object\" | \"function\"\n return typeof val;\n }\n}\nfunction formatReflectMessage(desc) {\n return `ReflectMessage (${desc.typeName})`;\n}\nfunction formatReflectList(field) {\n switch (field.listKind) {\n case \"message\":\n return `ReflectList (${field.message.toString()})`;\n case \"enum\":\n return `ReflectList (${field.enum.toString()})`;\n case \"scalar\":\n return `ReflectList (${ScalarType[field.scalar]})`;\n }\n}\nfunction formatReflectMap(field) {\n switch (field.mapKind) {\n case \"message\":\n return `ReflectMap (${ScalarType[field.mapKey]}, ${field.message.toString()})`;\n case \"enum\":\n return `ReflectMap (${ScalarType[field.mapKey]}, ${field.enum.toString()})`;\n case \"scalar\":\n return `ReflectMap (${ScalarType[field.mapKey]}, ${ScalarType[field.scalar]})`;\n }\n}\nfunction scalarTypeDescription(scalar) {\n switch (scalar) {\n case ScalarType.STRING:\n return \"string\";\n case ScalarType.BOOL:\n return \"boolean\";\n case ScalarType.INT64:\n case ScalarType.SINT64:\n case ScalarType.SFIXED64:\n return \"bigint (int64)\";\n case ScalarType.UINT64:\n case ScalarType.FIXED64:\n return \"bigint (uint64)\";\n case ScalarType.BYTES:\n return \"Uint8Array\";\n case ScalarType.DOUBLE:\n return \"number (float64)\";\n case ScalarType.FLOAT:\n return \"number (float32)\";\n case ScalarType.FIXED32:\n case ScalarType.UINT32:\n return \"number (uint32)\";\n case ScalarType.INT32:\n case ScalarType.SFIXED32:\n case ScalarType.SINT32:\n return \"number (int32)\";\n }\n}\n",
|
|
20
|
+
"// Copyright 2021-2025 Buf Technologies, Inc.\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.\nimport { ScalarType, } from \"../descriptors.js\";\nimport { checkField, checkListItem, checkMapEntry } from \"./reflect-check.js\";\nimport { FieldError } from \"./error.js\";\nimport { unsafeClear, unsafeGet, unsafeIsSet, unsafeLocal, unsafeOneofCase, unsafeSet, } from \"./unsafe.js\";\nimport { create } from \"../create.js\";\nimport { isWrapper, isWrapperDesc } from \"../wkt/wrappers.js\";\nimport { scalarZeroValue } from \"./scalar.js\";\nimport { protoInt64 } from \"../proto-int64.js\";\nimport { isObject, isReflectList, isReflectMap, isReflectMessage, } from \"./guard.js\";\n/**\n * Create a ReflectMessage.\n */\nexport function reflect(messageDesc, message, \n/**\n * By default, field values are validated when setting them. For example,\n * a value for an uint32 field must be a ECMAScript Number >= 0.\n *\n * When field values are trusted, performance can be improved by disabling\n * checks.\n */\ncheck = true) {\n return new ReflectMessageImpl(messageDesc, message, check);\n}\nconst messageSortedFields = new WeakMap();\nclass ReflectMessageImpl {\n get sortedFields() {\n const cached = messageSortedFields.get(this.desc);\n if (cached) {\n return cached;\n }\n const sortedFields = this.desc.fields\n .concat()\n .sort((a, b) => a.number - b.number);\n messageSortedFields.set(this.desc, sortedFields);\n return sortedFields;\n }\n constructor(messageDesc, message, check = true) {\n this.lists = new Map();\n this.maps = new Map();\n this.check = check;\n this.desc = messageDesc;\n this.message = this[unsafeLocal] = message !== null && message !== void 0 ? message : create(messageDesc);\n this.fields = messageDesc.fields;\n this.oneofs = messageDesc.oneofs;\n this.members = messageDesc.members;\n }\n findNumber(number) {\n if (!this._fieldsByNumber) {\n this._fieldsByNumber = new Map(this.desc.fields.map((f) => [f.number, f]));\n }\n return this._fieldsByNumber.get(number);\n }\n oneofCase(oneof) {\n assertOwn(this.message, oneof);\n return unsafeOneofCase(this.message, oneof);\n }\n isSet(field) {\n assertOwn(this.message, field);\n return unsafeIsSet(this.message, field);\n }\n clear(field) {\n assertOwn(this.message, field);\n unsafeClear(this.message, field);\n }\n get(field) {\n assertOwn(this.message, field);\n const value = unsafeGet(this.message, field);\n switch (field.fieldKind) {\n case \"list\":\n // eslint-disable-next-line no-case-declarations\n let list = this.lists.get(field);\n if (!list || list[unsafeLocal] !== value) {\n this.lists.set(field, \n // biome-ignore lint/suspicious/noAssignInExpressions: no\n (list = new ReflectListImpl(field, value, this.check)));\n }\n return list;\n case \"map\":\n let map = this.maps.get(field);\n if (!map || map[unsafeLocal] !== value) {\n this.maps.set(field, \n // biome-ignore lint/suspicious/noAssignInExpressions: no\n (map = new ReflectMapImpl(field, value, this.check)));\n }\n return map;\n case \"message\":\n return messageToReflect(field, value, this.check);\n case \"scalar\":\n return (value === undefined\n ? scalarZeroValue(field.scalar, false)\n : longToReflect(field, value));\n case \"enum\":\n return (value !== null && value !== void 0 ? value : field.enum.values[0].number);\n }\n }\n set(field, value) {\n assertOwn(this.message, field);\n if (this.check) {\n const err = checkField(field, value);\n if (err) {\n throw err;\n }\n }\n let local;\n if (field.fieldKind == \"message\") {\n local = messageToLocal(field, value);\n }\n else if (isReflectMap(value) || isReflectList(value)) {\n local = value[unsafeLocal];\n }\n else {\n local = longToLocal(field, value);\n }\n unsafeSet(this.message, field, local);\n }\n getUnknown() {\n return this.message.$unknown;\n }\n setUnknown(value) {\n this.message.$unknown = value;\n }\n}\nfunction assertOwn(owner, member) {\n if (member.parent.typeName !== owner.$typeName) {\n throw new FieldError(member, `cannot use ${member.toString()} with message ${owner.$typeName}`, \"ForeignFieldError\");\n }\n}\n/**\n * Create a ReflectList.\n */\nexport function reflectList(field, unsafeInput, \n/**\n * By default, field values are validated when setting them. For example,\n * a value for an uint32 field must be a ECMAScript Number >= 0.\n *\n * When field values are trusted, performance can be improved by disabling\n * checks.\n */\ncheck = true) {\n return new ReflectListImpl(field, unsafeInput !== null && unsafeInput !== void 0 ? unsafeInput : [], check);\n}\nclass ReflectListImpl {\n field() {\n return this._field;\n }\n get size() {\n return this._arr.length;\n }\n constructor(field, unsafeInput, check) {\n this._field = field;\n this._arr = this[unsafeLocal] = unsafeInput;\n this.check = check;\n }\n get(index) {\n const item = this._arr[index];\n return item === undefined\n ? undefined\n : listItemToReflect(this._field, item, this.check);\n }\n set(index, item) {\n if (index < 0 || index >= this._arr.length) {\n throw new FieldError(this._field, `list item #${index + 1}: out of range`);\n }\n if (this.check) {\n const err = checkListItem(this._field, index, item);\n if (err) {\n throw err;\n }\n }\n this._arr[index] = listItemToLocal(this._field, item);\n }\n add(item) {\n if (this.check) {\n const err = checkListItem(this._field, this._arr.length, item);\n if (err) {\n throw err;\n }\n }\n this._arr.push(listItemToLocal(this._field, item));\n return undefined;\n }\n clear() {\n this._arr.splice(0, this._arr.length);\n }\n [Symbol.iterator]() {\n return this.values();\n }\n keys() {\n return this._arr.keys();\n }\n *values() {\n for (const item of this._arr) {\n yield listItemToReflect(this._field, item, this.check);\n }\n }\n *entries() {\n for (let i = 0; i < this._arr.length; i++) {\n yield [i, listItemToReflect(this._field, this._arr[i], this.check)];\n }\n }\n}\n/**\n * Create a ReflectMap.\n */\nexport function reflectMap(field, unsafeInput, \n/**\n * By default, field values are validated when setting them. For example,\n * a value for an uint32 field must be a ECMAScript Number >= 0.\n *\n * When field values are trusted, performance can be improved by disabling\n * checks.\n */\ncheck = true) {\n return new ReflectMapImpl(field, unsafeInput, check);\n}\nclass ReflectMapImpl {\n constructor(field, unsafeInput, check = true) {\n this.obj = this[unsafeLocal] = unsafeInput !== null && unsafeInput !== void 0 ? unsafeInput : {};\n this.check = check;\n this._field = field;\n }\n field() {\n return this._field;\n }\n set(key, value) {\n if (this.check) {\n const err = checkMapEntry(this._field, key, value);\n if (err) {\n throw err;\n }\n }\n this.obj[mapKeyToLocal(key)] = mapValueToLocal(this._field, value);\n return this;\n }\n delete(key) {\n const k = mapKeyToLocal(key);\n const has = Object.prototype.hasOwnProperty.call(this.obj, k);\n if (has) {\n delete this.obj[k];\n }\n return has;\n }\n clear() {\n for (const key of Object.keys(this.obj)) {\n delete this.obj[key];\n }\n }\n get(key) {\n let val = this.obj[mapKeyToLocal(key)];\n if (val !== undefined) {\n val = mapValueToReflect(this._field, val, this.check);\n }\n return val;\n }\n has(key) {\n return Object.prototype.hasOwnProperty.call(this.obj, mapKeyToLocal(key));\n }\n *keys() {\n for (const objKey of Object.keys(this.obj)) {\n yield mapKeyToReflect(objKey, this._field.mapKey);\n }\n }\n *entries() {\n for (const objEntry of Object.entries(this.obj)) {\n yield [\n mapKeyToReflect(objEntry[0], this._field.mapKey),\n mapValueToReflect(this._field, objEntry[1], this.check),\n ];\n }\n }\n [Symbol.iterator]() {\n return this.entries();\n }\n get size() {\n return Object.keys(this.obj).length;\n }\n *values() {\n for (const val of Object.values(this.obj)) {\n yield mapValueToReflect(this._field, val, this.check);\n }\n }\n forEach(callbackfn, thisArg) {\n for (const mapEntry of this.entries()) {\n callbackfn.call(thisArg, mapEntry[1], mapEntry[0], this);\n }\n }\n}\nfunction messageToLocal(field, value) {\n if (!isReflectMessage(value)) {\n return value;\n }\n if (isWrapper(value.message) &&\n !field.oneof &&\n field.fieldKind == \"message\") {\n // Types from google/protobuf/wrappers.proto are unwrapped when used in\n // a singular field that is not part of a oneof group.\n return value.message.value;\n }\n if (value.desc.typeName == \"google.protobuf.Struct\" &&\n field.parent.typeName != \"google.protobuf.Value\") {\n // google.protobuf.Struct is represented with JsonObject when used in a\n // field, except when used in google.protobuf.Value.\n return wktStructToLocal(value.message);\n }\n return value.message;\n}\nfunction messageToReflect(field, value, check) {\n if (value !== undefined) {\n if (isWrapperDesc(field.message) &&\n !field.oneof &&\n field.fieldKind == \"message\") {\n // Types from google/protobuf/wrappers.proto are unwrapped when used in\n // a singular field that is not part of a oneof group.\n value = {\n $typeName: field.message.typeName,\n value: longToReflect(field.message.fields[0], value),\n };\n }\n else if (field.message.typeName == \"google.protobuf.Struct\" &&\n field.parent.typeName != \"google.protobuf.Value\" &&\n isObject(value)) {\n // google.protobuf.Struct is represented with JsonObject when used in a\n // field, except when used in google.protobuf.Value.\n value = wktStructToReflect(value);\n }\n }\n return new ReflectMessageImpl(field.message, value, check);\n}\nfunction listItemToLocal(field, value) {\n if (field.listKind == \"message\") {\n return messageToLocal(field, value);\n }\n return longToLocal(field, value);\n}\nfunction listItemToReflect(field, value, check) {\n if (field.listKind == \"message\") {\n return messageToReflect(field, value, check);\n }\n return longToReflect(field, value);\n}\nfunction mapValueToLocal(field, value) {\n if (field.mapKind == \"message\") {\n return messageToLocal(field, value);\n }\n return longToLocal(field, value);\n}\nfunction mapValueToReflect(field, value, check) {\n if (field.mapKind == \"message\") {\n return messageToReflect(field, value, check);\n }\n return value;\n}\nfunction mapKeyToLocal(key) {\n return typeof key == \"string\" || typeof key == \"number\" ? key : String(key);\n}\n/**\n * Converts a map key (any scalar value except float, double, or bytes) from its\n * representation in a message (string or number, the only possible object key\n * types) to the closest possible type in ECMAScript.\n */\nfunction mapKeyToReflect(key, type) {\n switch (type) {\n case ScalarType.STRING:\n return key;\n case ScalarType.INT32:\n case ScalarType.FIXED32:\n case ScalarType.UINT32:\n case ScalarType.SFIXED32:\n case ScalarType.SINT32: {\n const n = Number.parseInt(key);\n if (Number.isFinite(n)) {\n return n;\n }\n break;\n }\n case ScalarType.BOOL:\n switch (key) {\n case \"true\":\n return true;\n case \"false\":\n return false;\n }\n break;\n case ScalarType.UINT64:\n case ScalarType.FIXED64:\n try {\n return protoInt64.uParse(key);\n }\n catch (_a) {\n //\n }\n break;\n default:\n // INT64, SFIXED64, SINT64\n try {\n return protoInt64.parse(key);\n }\n catch (_b) {\n //\n }\n break;\n }\n return key;\n}\nfunction longToReflect(field, value) {\n switch (field.scalar) {\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n if (\"longAsString\" in field &&\n field.longAsString &&\n typeof value == \"string\") {\n value = protoInt64.parse(value);\n }\n break;\n case ScalarType.FIXED64:\n case ScalarType.UINT64:\n if (\"longAsString\" in field &&\n field.longAsString &&\n typeof value == \"string\") {\n value = protoInt64.uParse(value);\n }\n break;\n }\n return value;\n}\nfunction longToLocal(field, value) {\n switch (field.scalar) {\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n if (\"longAsString\" in field && field.longAsString) {\n value = String(value);\n }\n else if (typeof value == \"string\" || typeof value == \"number\") {\n value = protoInt64.parse(value);\n }\n break;\n case ScalarType.FIXED64:\n case ScalarType.UINT64:\n if (\"longAsString\" in field && field.longAsString) {\n value = String(value);\n }\n else if (typeof value == \"string\" || typeof value == \"number\") {\n value = protoInt64.uParse(value);\n }\n break;\n }\n return value;\n}\nfunction wktStructToReflect(json) {\n const struct = {\n $typeName: \"google.protobuf.Struct\",\n fields: {},\n };\n if (isObject(json)) {\n for (const [k, v] of Object.entries(json)) {\n struct.fields[k] = wktValueToReflect(v);\n }\n }\n return struct;\n}\nfunction wktStructToLocal(val) {\n const json = {};\n for (const [k, v] of Object.entries(val.fields)) {\n json[k] = wktValueToLocal(v);\n }\n return json;\n}\nfunction wktValueToLocal(val) {\n switch (val.kind.case) {\n case \"structValue\":\n return wktStructToLocal(val.kind.value);\n case \"listValue\":\n return val.kind.value.values.map(wktValueToLocal);\n case \"nullValue\":\n case undefined:\n return null;\n default:\n return val.kind.value;\n }\n}\nfunction wktValueToReflect(json) {\n const value = {\n $typeName: \"google.protobuf.Value\",\n kind: { case: undefined },\n };\n switch (typeof json) {\n case \"number\":\n value.kind = { case: \"numberValue\", value: json };\n break;\n case \"string\":\n value.kind = { case: \"stringValue\", value: json };\n break;\n case \"boolean\":\n value.kind = { case: \"boolValue\", value: json };\n break;\n case \"object\":\n if (json === null) {\n const nullValue = 0;\n value.kind = { case: \"nullValue\", value: nullValue };\n }\n else if (Array.isArray(json)) {\n const listValue = {\n $typeName: \"google.protobuf.ListValue\",\n values: [],\n };\n if (Array.isArray(json)) {\n for (const e of json) {\n listValue.values.push(wktValueToReflect(e));\n }\n }\n value.kind = {\n case: \"listValue\",\n value: listValue,\n };\n }\n else {\n value.kind = {\n case: \"structValue\",\n value: wktStructToReflect(json),\n };\n }\n break;\n }\n return value;\n}\n",
|
|
21
|
+
"// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Decodes a base64 string to a byte array.\n *\n * - ignores white-space, including line breaks and tabs\n * - allows inner padding (can decode concatenated base64 strings)\n * - does not require padding\n * - understands base64url encoding:\n * \"-\" instead of \"+\",\n * \"_\" instead of \"/\",\n * no padding\n */\nexport function base64Decode(base64Str) {\n const table = getDecodeTable();\n // estimate byte size, not accounting for inner padding and whitespace\n let es = (base64Str.length * 3) / 4;\n if (base64Str[base64Str.length - 2] == \"=\")\n es -= 2;\n else if (base64Str[base64Str.length - 1] == \"=\")\n es -= 1;\n let bytes = new Uint8Array(es), bytePos = 0, // position in byte array\n groupPos = 0, // position in base64 group\n b, // current byte\n p = 0; // previous byte\n for (let i = 0; i < base64Str.length; i++) {\n b = table[base64Str.charCodeAt(i)];\n if (b === undefined) {\n switch (base64Str[i]) {\n // @ts-ignore TS7029: Fallthrough case in switch -- ignore instead of expect-error for compiler settings without noFallthroughCasesInSwitch: true\n case \"=\":\n groupPos = 0; // reset state when padding found\n case \"\\n\":\n case \"\\r\":\n case \"\\t\":\n case \" \":\n continue; // skip white-space, and padding\n default:\n throw Error(\"invalid base64 string\");\n }\n }\n switch (groupPos) {\n case 0:\n p = b;\n groupPos = 1;\n break;\n case 1:\n bytes[bytePos++] = (p << 2) | ((b & 48) >> 4);\n p = b;\n groupPos = 2;\n break;\n case 2:\n bytes[bytePos++] = ((p & 15) << 4) | ((b & 60) >> 2);\n p = b;\n groupPos = 3;\n break;\n case 3:\n bytes[bytePos++] = ((p & 3) << 6) | b;\n groupPos = 0;\n break;\n }\n }\n if (groupPos == 1)\n throw Error(\"invalid base64 string\");\n return bytes.subarray(0, bytePos);\n}\n/**\n * Encode a byte array to a base64 string.\n *\n * By default, this function uses the standard base64 encoding with padding.\n *\n * To encode without padding, use encoding = \"std_raw\".\n *\n * To encode with the URL encoding, use encoding = \"url\", which replaces the\n * characters +/ by their URL-safe counterparts -_, and omits padding.\n */\nexport function base64Encode(bytes, encoding = \"std\") {\n const table = getEncodeTable(encoding);\n const pad = encoding == \"std\";\n let base64 = \"\", groupPos = 0, // position in base64 group\n b, // current byte\n p = 0; // carry over from previous byte\n for (let i = 0; i < bytes.length; i++) {\n b = bytes[i];\n switch (groupPos) {\n case 0:\n base64 += table[b >> 2];\n p = (b & 3) << 4;\n groupPos = 1;\n break;\n case 1:\n base64 += table[p | (b >> 4)];\n p = (b & 15) << 2;\n groupPos = 2;\n break;\n case 2:\n base64 += table[p | (b >> 6)];\n base64 += table[b & 63];\n groupPos = 0;\n break;\n }\n }\n // add output padding\n if (groupPos) {\n base64 += table[p];\n if (pad) {\n base64 += \"=\";\n if (groupPos == 1)\n base64 += \"=\";\n }\n }\n return base64;\n}\n// lookup table from base64 character to byte\nlet encodeTableStd;\nlet encodeTableUrl;\n// lookup table from base64 character *code* to byte because lookup by number is fast\nlet decodeTable;\nfunction getEncodeTable(encoding) {\n if (!encodeTableStd) {\n encodeTableStd =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\".split(\"\");\n encodeTableUrl = encodeTableStd.slice(0, -2).concat(\"-\", \"_\");\n }\n return encoding == \"url\"\n ? // biome-ignore lint/style/noNonNullAssertion: TS fails to narrow down\n encodeTableUrl\n : encodeTableStd;\n}\nfunction getDecodeTable() {\n if (!decodeTable) {\n decodeTable = [];\n const encodeTable = getEncodeTable(\"std\");\n for (let i = 0; i < encodeTable.length; i++)\n decodeTable[encodeTable[i].charCodeAt(0)] = i;\n // support base64url variants\n decodeTable[\"-\".charCodeAt(0)] = encodeTable.indexOf(\"+\");\n decodeTable[\"_\".charCodeAt(0)] = encodeTable.indexOf(\"/\");\n }\n return decodeTable;\n}\n",
|
|
22
|
+
"// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Return a fully-qualified name for a Protobuf descriptor.\n * For a file descriptor, return the original file path.\n *\n * See https://protobuf.com/docs/language-spec#fully-qualified-names\n */\nexport function qualifiedName(desc) {\n switch (desc.kind) {\n case \"field\":\n case \"oneof\":\n case \"rpc\":\n return desc.parent.typeName + \".\" + desc.name;\n case \"enum_value\": {\n const p = desc.parent.parent\n ? desc.parent.parent.typeName\n : desc.parent.file.proto.package;\n return p + (p.length > 0 ? \".\" : \"\") + desc.name;\n }\n case \"service\":\n case \"message\":\n case \"enum\":\n case \"extension\":\n return desc.typeName;\n case \"file\":\n return desc.proto.name;\n }\n}\n/**\n * Converts snake_case to protoCamelCase according to the convention\n * used by protoc to convert a field name to a JSON name.\n */\nexport function protoCamelCase(snakeCase) {\n let capNext = false;\n const b = [];\n for (let i = 0; i < snakeCase.length; i++) {\n let c = snakeCase.charAt(i);\n switch (c) {\n case \"_\":\n capNext = true;\n break;\n case \"0\":\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\":\n b.push(c);\n capNext = false;\n break;\n default:\n if (capNext) {\n capNext = false;\n c = c.toUpperCase();\n }\n b.push(c);\n break;\n }\n }\n return b.join(\"\");\n}\n/**\n * Names that cannot be used for object properties because they are reserved\n * by built-in JavaScript properties.\n */\nconst reservedObjectProperties = new Set([\n // names reserved by JavaScript\n \"constructor\",\n \"toString\",\n \"toJSON\",\n \"valueOf\",\n]);\n/**\n * Escapes names that are reserved for ECMAScript built-in object properties.\n *\n * Also see safeIdentifier() from @bufbuild/protoplugin.\n */\nexport function safeObjectProperty(name) {\n return reservedObjectProperties.has(name) ? name + \"$\" : name;\n}\n",
|
|
23
|
+
"// Copyright 2021-2025 Buf Technologies, Inc.\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.\nimport { protoCamelCase } from \"../reflect/names.js\";\nimport { unsafeIsSetExplicit } from \"../reflect/unsafe.js\";\n/**\n * @private\n */\nexport function restoreJsonNames(message) {\n for (const f of message.field) {\n if (!unsafeIsSetExplicit(f, \"jsonName\")) {\n f.jsonName = protoCamelCase(f.name);\n }\n }\n message.nestedType.forEach(restoreJsonNames);\n}\n",
|
|
24
|
+
"// Copyright 2021-2025 Buf Technologies, Inc.\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.\nimport { ScalarType } from \"../descriptors.js\";\nimport { protoInt64 } from \"../proto-int64.js\";\n/**\n * Parse an enum value from the Protobuf text format.\n *\n * @private\n */\nexport function parseTextFormatEnumValue(descEnum, value) {\n const enumValue = descEnum.values.find((v) => v.name === value);\n if (!enumValue) {\n throw new Error(`cannot parse ${descEnum} default value: ${value}`);\n }\n return enumValue.number;\n}\n/**\n * Parse a scalar value from the Protobuf text format.\n *\n * @private\n */\nexport function parseTextFormatScalarValue(type, value) {\n switch (type) {\n case ScalarType.STRING:\n return value;\n case ScalarType.BYTES: {\n const u = unescapeBytesDefaultValue(value);\n if (u === false) {\n throw new Error(`cannot parse ${ScalarType[type]} default value: ${value}`);\n }\n return u;\n }\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n return protoInt64.parse(value);\n case ScalarType.UINT64:\n case ScalarType.FIXED64:\n return protoInt64.uParse(value);\n case ScalarType.DOUBLE:\n case ScalarType.FLOAT:\n switch (value) {\n case \"inf\":\n return Number.POSITIVE_INFINITY;\n case \"-inf\":\n return Number.NEGATIVE_INFINITY;\n case \"nan\":\n return Number.NaN;\n default:\n return parseFloat(value);\n }\n case ScalarType.BOOL:\n return value === \"true\";\n case ScalarType.INT32:\n case ScalarType.UINT32:\n case ScalarType.SINT32:\n case ScalarType.FIXED32:\n case ScalarType.SFIXED32:\n return parseInt(value, 10);\n }\n}\n/**\n * Parses a text-encoded default value (proto2) of a BYTES field.\n */\nfunction unescapeBytesDefaultValue(str) {\n const b = [];\n const input = {\n tail: str,\n c: \"\",\n next() {\n if (this.tail.length == 0) {\n return false;\n }\n this.c = this.tail[0];\n this.tail = this.tail.substring(1);\n return true;\n },\n take(n) {\n if (this.tail.length >= n) {\n const r = this.tail.substring(0, n);\n this.tail = this.tail.substring(n);\n return r;\n }\n return false;\n },\n };\n while (input.next()) {\n switch (input.c) {\n case \"\\\\\":\n if (input.next()) {\n switch (input.c) {\n case \"\\\\\":\n b.push(input.c.charCodeAt(0));\n break;\n case \"b\":\n b.push(0x08);\n break;\n case \"f\":\n b.push(0x0c);\n break;\n case \"n\":\n b.push(0x0a);\n break;\n case \"r\":\n b.push(0x0d);\n break;\n case \"t\":\n b.push(0x09);\n break;\n case \"v\":\n b.push(0x0b);\n break;\n case \"0\":\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\": {\n const s = input.c;\n const t = input.take(2);\n if (t === false) {\n return false;\n }\n const n = parseInt(s + t, 8);\n if (Number.isNaN(n)) {\n return false;\n }\n b.push(n);\n break;\n }\n case \"x\": {\n const s = input.c;\n const t = input.take(2);\n if (t === false) {\n return false;\n }\n const n = parseInt(s + t, 16);\n if (Number.isNaN(n)) {\n return false;\n }\n b.push(n);\n break;\n }\n case \"u\": {\n const s = input.c;\n const t = input.take(4);\n if (t === false) {\n return false;\n }\n const n = parseInt(s + t, 16);\n if (Number.isNaN(n)) {\n return false;\n }\n const chunk = new Uint8Array(4);\n const view = new DataView(chunk.buffer);\n view.setInt32(0, n, true);\n b.push(chunk[0], chunk[1], chunk[2], chunk[3]);\n break;\n }\n case \"U\": {\n const s = input.c;\n const t = input.take(8);\n if (t === false) {\n return false;\n }\n const tc = protoInt64.uEnc(s + t);\n const chunk = new Uint8Array(8);\n const view = new DataView(chunk.buffer);\n view.setInt32(0, tc.lo, true);\n view.setInt32(4, tc.hi, true);\n b.push(chunk[0], chunk[1], chunk[2], chunk[3], chunk[4], chunk[5], chunk[6], chunk[7]);\n break;\n }\n }\n }\n break;\n default:\n b.push(input.c.charCodeAt(0));\n }\n }\n return new Uint8Array(b);\n}\n",
|
|
25
|
+
"// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Iterate over all types - enumerations, extensions, services, messages -\n * and enumerations, extensions and messages nested in messages.\n */\nexport function* nestedTypes(desc) {\n switch (desc.kind) {\n case \"file\":\n for (const message of desc.messages) {\n yield message;\n yield* nestedTypes(message);\n }\n yield* desc.enums;\n yield* desc.services;\n yield* desc.extensions;\n break;\n case \"message\":\n for (const message of desc.nestedMessages) {\n yield message;\n yield* nestedTypes(message);\n }\n yield* desc.nestedEnums;\n yield* desc.nestedExtensions;\n break;\n }\n}\n/**\n * Iterate over types referenced by fields of the given message.\n *\n * For example:\n *\n * ```proto\n * syntax=\"proto3\";\n *\n * message Example {\n * Msg singular = 1;\n * repeated Level list = 2;\n * }\n *\n * message Msg {}\n *\n * enum Level {\n * LEVEL_UNSPECIFIED = 0;\n * }\n * ```\n *\n * The message Example references the message Msg, and the enum Level.\n */\nexport function usedTypes(descMessage) {\n return usedTypesInternal(descMessage, new Set());\n}\nfunction* usedTypesInternal(descMessage, seen) {\n var _a, _b;\n for (const field of descMessage.fields) {\n const ref = (_b = (_a = field.enum) !== null && _a !== void 0 ? _a : field.message) !== null && _b !== void 0 ? _b : undefined;\n if (!ref || seen.has(ref.typeName)) {\n continue;\n }\n seen.add(ref.typeName);\n yield ref;\n if (ref.kind == \"message\") {\n yield* usedTypesInternal(ref, seen);\n }\n }\n}\n/**\n * Returns the ancestors of a given Protobuf element, up to the file.\n */\nexport function parentTypes(desc) {\n const parents = [];\n while (desc.kind !== \"file\") {\n const p = parent(desc);\n desc = p;\n parents.push(p);\n }\n return parents;\n}\nfunction parent(desc) {\n var _a;\n switch (desc.kind) {\n case \"enum_value\":\n case \"field\":\n case \"oneof\":\n case \"rpc\":\n return desc.parent;\n case \"service\":\n return desc.file;\n case \"extension\":\n case \"enum\":\n case \"message\":\n return (_a = desc.parent) !== null && _a !== void 0 ? _a : desc.file;\n }\n}\n",
|
|
26
|
+
"// Copyright 2021-2025 Buf Technologies, Inc.\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.\nimport { ScalarType, } from \"./descriptors.js\";\nimport { parseTextFormatEnumValue, parseTextFormatScalarValue, } from \"./wire/text-format.js\";\nimport { nestedTypes } from \"./reflect/nested-types.js\";\nimport { unsafeIsSetExplicit } from \"./reflect/unsafe.js\";\nimport { protoCamelCase, safeObjectProperty } from \"./reflect/names.js\";\n/**\n * Create a registry from the given inputs.\n *\n * An input can be:\n * - Any message, enum, service, or extension descriptor, which adds just the\n * descriptor for this type.\n * - A file descriptor, which adds all typed defined in this file.\n * - A registry, which adds all types from the registry.\n *\n * For duplicate descriptors (same type name), the one given last wins.\n */\nexport function createRegistry(...input) {\n return initBaseRegistry(input);\n}\n/**\n * Create a registry that allows adding and removing descriptors.\n */\nexport function createMutableRegistry(...input) {\n const reg = initBaseRegistry(input);\n return Object.assign(Object.assign({}, reg), { remove(desc) {\n var _a;\n if (desc.kind == \"extension\") {\n (_a = reg.extendees.get(desc.extendee.typeName)) === null || _a === void 0 ? void 0 : _a.delete(desc.number);\n }\n reg.types.delete(desc.typeName);\n } });\n}\nexport function createFileRegistry(...args) {\n const registry = createBaseRegistry();\n if (!args.length) {\n return registry;\n }\n if (\"$typeName\" in args[0] &&\n args[0].$typeName == \"google.protobuf.FileDescriptorSet\") {\n for (const file of args[0].file) {\n addFile(file, registry);\n }\n return registry;\n }\n if (\"$typeName\" in args[0]) {\n const input = args[0];\n const resolve = args[1];\n const seen = new Set();\n function recurseDeps(file) {\n const deps = [];\n for (const protoFileName of file.dependency) {\n if (registry.getFile(protoFileName) != undefined) {\n continue;\n }\n if (seen.has(protoFileName)) {\n continue;\n }\n const dep = resolve(protoFileName);\n if (!dep) {\n throw new Error(`Unable to resolve ${protoFileName}, imported by ${file.name}`);\n }\n if (\"kind\" in dep) {\n registry.addFile(dep, false, true);\n }\n else {\n seen.add(dep.name);\n deps.push(dep);\n }\n }\n return deps.concat(...deps.map(recurseDeps));\n }\n for (const file of [input, ...recurseDeps(input)].reverse()) {\n addFile(file, registry);\n }\n }\n else {\n for (const fileReg of args) {\n for (const file of fileReg.files) {\n registry.addFile(file);\n }\n }\n }\n return registry;\n}\n/**\n * @private\n */\nfunction createBaseRegistry() {\n const types = new Map();\n const extendees = new Map();\n const files = new Map();\n return {\n kind: \"registry\",\n types,\n extendees,\n [Symbol.iterator]() {\n return types.values();\n },\n get files() {\n return files.values();\n },\n addFile(file, skipTypes, withDeps) {\n files.set(file.proto.name, file);\n if (!skipTypes) {\n for (const type of nestedTypes(file)) {\n this.add(type);\n }\n }\n if (withDeps) {\n for (const f of file.dependencies) {\n this.addFile(f, skipTypes, withDeps);\n }\n }\n },\n add(desc) {\n if (desc.kind == \"extension\") {\n let numberToExt = extendees.get(desc.extendee.typeName);\n if (!numberToExt) {\n extendees.set(desc.extendee.typeName, \n // biome-ignore lint/suspicious/noAssignInExpressions: no\n (numberToExt = new Map()));\n }\n numberToExt.set(desc.number, desc);\n }\n types.set(desc.typeName, desc);\n },\n get(typeName) {\n return types.get(typeName);\n },\n getFile(fileName) {\n return files.get(fileName);\n },\n getMessage(typeName) {\n const t = types.get(typeName);\n return (t === null || t === void 0 ? void 0 : t.kind) == \"message\" ? t : undefined;\n },\n getEnum(typeName) {\n const t = types.get(typeName);\n return (t === null || t === void 0 ? void 0 : t.kind) == \"enum\" ? t : undefined;\n },\n getExtension(typeName) {\n const t = types.get(typeName);\n return (t === null || t === void 0 ? void 0 : t.kind) == \"extension\" ? t : undefined;\n },\n getExtensionFor(extendee, no) {\n var _a;\n return (_a = extendees.get(extendee.typeName)) === null || _a === void 0 ? void 0 : _a.get(no);\n },\n getService(typeName) {\n const t = types.get(typeName);\n return (t === null || t === void 0 ? void 0 : t.kind) == \"service\" ? t : undefined;\n },\n };\n}\n/**\n * @private\n */\nfunction initBaseRegistry(inputs) {\n const registry = createBaseRegistry();\n for (const input of inputs) {\n switch (input.kind) {\n case \"registry\":\n for (const n of input) {\n registry.add(n);\n }\n break;\n case \"file\":\n registry.addFile(input);\n break;\n default:\n registry.add(input);\n break;\n }\n }\n return registry;\n}\n// bootstrap-inject google.protobuf.Edition.EDITION_PROTO2: const $name: Edition.$localName = $number;\nconst EDITION_PROTO2 = 998;\n// bootstrap-inject google.protobuf.Edition.EDITION_PROTO3: const $name: Edition.$localName = $number;\nconst EDITION_PROTO3 = 999;\n// bootstrap-inject google.protobuf.FieldDescriptorProto.Type.TYPE_STRING: const $name: FieldDescriptorProto_Type.$localName = $number;\nconst TYPE_STRING = 9;\n// bootstrap-inject google.protobuf.FieldDescriptorProto.Type.TYPE_GROUP: const $name: FieldDescriptorProto_Type.$localName = $number;\nconst TYPE_GROUP = 10;\n// bootstrap-inject google.protobuf.FieldDescriptorProto.Type.TYPE_MESSAGE: const $name: FieldDescriptorProto_Type.$localName = $number;\nconst TYPE_MESSAGE = 11;\n// bootstrap-inject google.protobuf.FieldDescriptorProto.Type.TYPE_BYTES: const $name: FieldDescriptorProto_Type.$localName = $number;\nconst TYPE_BYTES = 12;\n// bootstrap-inject google.protobuf.FieldDescriptorProto.Type.TYPE_ENUM: const $name: FieldDescriptorProto_Type.$localName = $number;\nconst TYPE_ENUM = 14;\n// bootstrap-inject google.protobuf.FieldDescriptorProto.Label.LABEL_REPEATED: const $name: FieldDescriptorProto_Label.$localName = $number;\nconst LABEL_REPEATED = 3;\n// bootstrap-inject google.protobuf.FieldDescriptorProto.Label.LABEL_REQUIRED: const $name: FieldDescriptorProto_Label.$localName = $number;\nconst LABEL_REQUIRED = 2;\n// bootstrap-inject google.protobuf.FieldOptions.JSType.JS_STRING: const $name: FieldOptions_JSType.$localName = $number;\nconst JS_STRING = 1;\n// bootstrap-inject google.protobuf.MethodOptions.IdempotencyLevel.IDEMPOTENCY_UNKNOWN: const $name: MethodOptions_IdempotencyLevel.$localName = $number;\nconst IDEMPOTENCY_UNKNOWN = 0;\n// bootstrap-inject google.protobuf.FeatureSet.FieldPresence.EXPLICIT: const $name: FeatureSet_FieldPresence.$localName = $number;\nconst EXPLICIT = 1;\n// bootstrap-inject google.protobuf.FeatureSet.FieldPresence.IMPLICIT: const $name: FeatureSet_FieldPresence.$localName = $number;\nconst IMPLICIT = 2;\n// bootstrap-inject google.protobuf.FeatureSet.FieldPresence.LEGACY_REQUIRED: const $name: FeatureSet_FieldPresence.$localName = $number;\nconst LEGACY_REQUIRED = 3;\n// bootstrap-inject google.protobuf.FeatureSet.RepeatedFieldEncoding.PACKED: const $name: FeatureSet_RepeatedFieldEncoding.$localName = $number;\nconst PACKED = 1;\n// bootstrap-inject google.protobuf.FeatureSet.MessageEncoding.DELIMITED: const $name: FeatureSet_MessageEncoding.$localName = $number;\nconst DELIMITED = 2;\n// bootstrap-inject google.protobuf.FeatureSet.EnumType.OPEN: const $name: FeatureSet_EnumType.$localName = $number;\nconst OPEN = 1;\n// biome-ignore format: want this to read well\n// bootstrap-inject defaults: EDITION_PROTO2 to EDITION_2024: export const minimumEdition: SupportedEdition = $minimumEdition, maximumEdition: SupportedEdition = $maximumEdition;\n// generated from protoc v33.0\nexport const minimumEdition = 998, maximumEdition = 1001;\nconst featureDefaults = {\n // EDITION_PROTO2\n 998: {\n fieldPresence: 1, // EXPLICIT,\n enumType: 2, // CLOSED,\n repeatedFieldEncoding: 2, // EXPANDED,\n utf8Validation: 3, // NONE,\n messageEncoding: 1, // LENGTH_PREFIXED,\n jsonFormat: 2, // LEGACY_BEST_EFFORT,\n enforceNamingStyle: 2, // STYLE_LEGACY,\n defaultSymbolVisibility: 1, // EXPORT_ALL,\n },\n // EDITION_PROTO3\n 999: {\n fieldPresence: 2, // IMPLICIT,\n enumType: 1, // OPEN,\n repeatedFieldEncoding: 1, // PACKED,\n utf8Validation: 2, // VERIFY,\n messageEncoding: 1, // LENGTH_PREFIXED,\n jsonFormat: 1, // ALLOW,\n enforceNamingStyle: 2, // STYLE_LEGACY,\n defaultSymbolVisibility: 1, // EXPORT_ALL,\n },\n // EDITION_2023\n 1000: {\n fieldPresence: 1, // EXPLICIT,\n enumType: 1, // OPEN,\n repeatedFieldEncoding: 1, // PACKED,\n utf8Validation: 2, // VERIFY,\n messageEncoding: 1, // LENGTH_PREFIXED,\n jsonFormat: 1, // ALLOW,\n enforceNamingStyle: 2, // STYLE_LEGACY,\n defaultSymbolVisibility: 1, // EXPORT_ALL,\n },\n // EDITION_2024\n 1001: {\n fieldPresence: 1, // EXPLICIT,\n enumType: 1, // OPEN,\n repeatedFieldEncoding: 1, // PACKED,\n utf8Validation: 2, // VERIFY,\n messageEncoding: 1, // LENGTH_PREFIXED,\n jsonFormat: 1, // ALLOW,\n enforceNamingStyle: 1, // STYLE2024,\n defaultSymbolVisibility: 2, // EXPORT_TOP_LEVEL,\n },\n};\n/**\n * Create a descriptor for a file, add it to the registry.\n */\nfunction addFile(proto, reg) {\n var _a, _b;\n const file = {\n kind: \"file\",\n proto,\n deprecated: (_b = (_a = proto.options) === null || _a === void 0 ? void 0 : _a.deprecated) !== null && _b !== void 0 ? _b : false,\n edition: getFileEdition(proto),\n name: proto.name.replace(/\\.proto$/, \"\"),\n dependencies: findFileDependencies(proto, reg),\n enums: [],\n messages: [],\n extensions: [],\n services: [],\n toString() {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions -- we asserted above\n return `file ${proto.name}`;\n },\n };\n const mapEntriesStore = new Map();\n const mapEntries = {\n get(typeName) {\n return mapEntriesStore.get(typeName);\n },\n add(desc) {\n var _a;\n assert(((_a = desc.proto.options) === null || _a === void 0 ? void 0 : _a.mapEntry) === true);\n mapEntriesStore.set(desc.typeName, desc);\n },\n };\n for (const enumProto of proto.enumType) {\n addEnum(enumProto, file, undefined, reg);\n }\n for (const messageProto of proto.messageType) {\n addMessage(messageProto, file, undefined, reg, mapEntries);\n }\n for (const serviceProto of proto.service) {\n addService(serviceProto, file, reg);\n }\n addExtensions(file, reg);\n for (const mapEntry of mapEntriesStore.values()) {\n // to create a map field, we need access to the map entry's fields\n addFields(mapEntry, reg, mapEntries);\n }\n for (const message of file.messages) {\n addFields(message, reg, mapEntries);\n addExtensions(message, reg);\n }\n reg.addFile(file, true);\n}\n/**\n * Create descriptors for extensions, and add them to the message / file,\n * and to our cart.\n * Recurses into nested types.\n */\nfunction addExtensions(desc, reg) {\n switch (desc.kind) {\n case \"file\":\n for (const proto of desc.proto.extension) {\n const ext = newField(proto, desc, reg);\n desc.extensions.push(ext);\n reg.add(ext);\n }\n break;\n case \"message\":\n for (const proto of desc.proto.extension) {\n const ext = newField(proto, desc, reg);\n desc.nestedExtensions.push(ext);\n reg.add(ext);\n }\n for (const message of desc.nestedMessages) {\n addExtensions(message, reg);\n }\n break;\n }\n}\n/**\n * Create descriptors for fields and oneof groups, and add them to the message.\n * Recurses into nested types.\n */\nfunction addFields(message, reg, mapEntries) {\n const allOneofs = message.proto.oneofDecl.map((proto) => newOneof(proto, message));\n const oneofsSeen = new Set();\n for (const proto of message.proto.field) {\n const oneof = findOneof(proto, allOneofs);\n const field = newField(proto, message, reg, oneof, mapEntries);\n message.fields.push(field);\n message.field[field.localName] = field;\n if (oneof === undefined) {\n message.members.push(field);\n }\n else {\n oneof.fields.push(field);\n if (!oneofsSeen.has(oneof)) {\n oneofsSeen.add(oneof);\n message.members.push(oneof);\n }\n }\n }\n for (const oneof of allOneofs.filter((o) => oneofsSeen.has(o))) {\n message.oneofs.push(oneof);\n }\n for (const child of message.nestedMessages) {\n addFields(child, reg, mapEntries);\n }\n}\n/**\n * Create a descriptor for an enumeration, and add it our cart and to the\n * parent type, if any.\n */\nfunction addEnum(proto, file, parent, reg) {\n var _a, _b, _c, _d, _e;\n const sharedPrefix = findEnumSharedPrefix(proto.name, proto.value);\n const desc = {\n kind: \"enum\",\n proto,\n deprecated: (_b = (_a = proto.options) === null || _a === void 0 ? void 0 : _a.deprecated) !== null && _b !== void 0 ? _b : false,\n file,\n parent,\n open: true,\n name: proto.name,\n typeName: makeTypeName(proto, parent, file),\n value: {},\n values: [],\n sharedPrefix,\n toString() {\n return `enum ${this.typeName}`;\n },\n };\n desc.open = isEnumOpen(desc);\n reg.add(desc);\n for (const p of proto.value) {\n const name = p.name;\n desc.values.push(\n // biome-ignore lint/suspicious/noAssignInExpressions: no\n (desc.value[p.number] = {\n kind: \"enum_value\",\n proto: p,\n deprecated: (_d = (_c = p.options) === null || _c === void 0 ? void 0 : _c.deprecated) !== null && _d !== void 0 ? _d : false,\n parent: desc,\n name,\n localName: safeObjectProperty(sharedPrefix == undefined\n ? name\n : name.substring(sharedPrefix.length)),\n number: p.number,\n toString() {\n return `enum value ${desc.typeName}.${name}`;\n },\n }));\n }\n ((_e = parent === null || parent === void 0 ? void 0 : parent.nestedEnums) !== null && _e !== void 0 ? _e : file.enums).push(desc);\n}\n/**\n * Create a descriptor for a message, including nested types, and add it to our\n * cart. Note that this does not create descriptors fields.\n */\nfunction addMessage(proto, file, parent, reg, mapEntries) {\n var _a, _b, _c, _d;\n const desc = {\n kind: \"message\",\n proto,\n deprecated: (_b = (_a = proto.options) === null || _a === void 0 ? void 0 : _a.deprecated) !== null && _b !== void 0 ? _b : false,\n file,\n parent,\n name: proto.name,\n typeName: makeTypeName(proto, parent, file),\n fields: [],\n field: {},\n oneofs: [],\n members: [],\n nestedEnums: [],\n nestedMessages: [],\n nestedExtensions: [],\n toString() {\n return `message ${this.typeName}`;\n },\n };\n if (((_c = proto.options) === null || _c === void 0 ? void 0 : _c.mapEntry) === true) {\n mapEntries.add(desc);\n }\n else {\n ((_d = parent === null || parent === void 0 ? void 0 : parent.nestedMessages) !== null && _d !== void 0 ? _d : file.messages).push(desc);\n reg.add(desc);\n }\n for (const enumProto of proto.enumType) {\n addEnum(enumProto, file, desc, reg);\n }\n for (const messageProto of proto.nestedType) {\n addMessage(messageProto, file, desc, reg, mapEntries);\n }\n}\n/**\n * Create a descriptor for a service, including methods, and add it to our\n * cart.\n */\nfunction addService(proto, file, reg) {\n var _a, _b;\n const desc = {\n kind: \"service\",\n proto,\n deprecated: (_b = (_a = proto.options) === null || _a === void 0 ? void 0 : _a.deprecated) !== null && _b !== void 0 ? _b : false,\n file,\n name: proto.name,\n typeName: makeTypeName(proto, undefined, file),\n methods: [],\n method: {},\n toString() {\n return `service ${this.typeName}`;\n },\n };\n file.services.push(desc);\n reg.add(desc);\n for (const methodProto of proto.method) {\n const method = newMethod(methodProto, desc, reg);\n desc.methods.push(method);\n desc.method[method.localName] = method;\n }\n}\n/**\n * Create a descriptor for a method.\n */\nfunction newMethod(proto, parent, reg) {\n var _a, _b, _c, _d;\n let methodKind;\n if (proto.clientStreaming && proto.serverStreaming) {\n methodKind = \"bidi_streaming\";\n }\n else if (proto.clientStreaming) {\n methodKind = \"client_streaming\";\n }\n else if (proto.serverStreaming) {\n methodKind = \"server_streaming\";\n }\n else {\n methodKind = \"unary\";\n }\n const input = reg.getMessage(trimLeadingDot(proto.inputType));\n const output = reg.getMessage(trimLeadingDot(proto.outputType));\n assert(input, `invalid MethodDescriptorProto: input_type ${proto.inputType} not found`);\n assert(output, `invalid MethodDescriptorProto: output_type ${proto.inputType} not found`);\n const name = proto.name;\n return {\n kind: \"rpc\",\n proto,\n deprecated: (_b = (_a = proto.options) === null || _a === void 0 ? void 0 : _a.deprecated) !== null && _b !== void 0 ? _b : false,\n parent,\n name,\n localName: safeObjectProperty(name.length\n ? safeObjectProperty(name[0].toLowerCase() + name.substring(1))\n : name),\n methodKind,\n input,\n output,\n idempotency: (_d = (_c = proto.options) === null || _c === void 0 ? void 0 : _c.idempotencyLevel) !== null && _d !== void 0 ? _d : IDEMPOTENCY_UNKNOWN,\n toString() {\n return `rpc ${parent.typeName}.${name}`;\n },\n };\n}\n/**\n * Create a descriptor for a oneof group.\n */\nfunction newOneof(proto, parent) {\n return {\n kind: \"oneof\",\n proto,\n deprecated: false,\n parent,\n fields: [],\n name: proto.name,\n localName: safeObjectProperty(protoCamelCase(proto.name)),\n toString() {\n return `oneof ${parent.typeName}.${this.name}`;\n },\n };\n}\nfunction newField(proto, parentOrFile, reg, oneof, mapEntries) {\n var _a, _b, _c;\n const isExtension = mapEntries === undefined;\n const field = {\n kind: \"field\",\n proto,\n deprecated: (_b = (_a = proto.options) === null || _a === void 0 ? void 0 : _a.deprecated) !== null && _b !== void 0 ? _b : false,\n name: proto.name,\n number: proto.number,\n scalar: undefined,\n message: undefined,\n enum: undefined,\n presence: getFieldPresence(proto, oneof, isExtension, parentOrFile),\n listKind: undefined,\n mapKind: undefined,\n mapKey: undefined,\n delimitedEncoding: undefined,\n packed: undefined,\n longAsString: false,\n getDefaultValue: undefined,\n };\n if (isExtension) {\n // extension field\n const file = parentOrFile.kind == \"file\" ? parentOrFile : parentOrFile.file;\n const parent = parentOrFile.kind == \"file\" ? undefined : parentOrFile;\n const typeName = makeTypeName(proto, parent, file);\n field.kind = \"extension\";\n field.file = file;\n field.parent = parent;\n field.oneof = undefined;\n field.typeName = typeName;\n field.jsonName = `[${typeName}]`; // option json_name is not allowed on extension fields\n field.toString = () => `extension ${typeName}`;\n const extendee = reg.getMessage(trimLeadingDot(proto.extendee));\n assert(extendee, `invalid FieldDescriptorProto: extendee ${proto.extendee} not found`);\n field.extendee = extendee;\n }\n else {\n // regular field\n const parent = parentOrFile;\n assert(parent.kind == \"message\");\n field.parent = parent;\n field.oneof = oneof;\n field.localName = oneof\n ? protoCamelCase(proto.name)\n : safeObjectProperty(protoCamelCase(proto.name));\n field.jsonName = proto.jsonName;\n field.toString = () => `field ${parent.typeName}.${proto.name}`;\n }\n const label = proto.label;\n const type = proto.type;\n const jstype = (_c = proto.options) === null || _c === void 0 ? void 0 : _c.jstype;\n if (label === LABEL_REPEATED) {\n // list or map field\n const mapEntry = type == TYPE_MESSAGE\n ? mapEntries === null || mapEntries === void 0 ? void 0 : mapEntries.get(trimLeadingDot(proto.typeName))\n : undefined;\n if (mapEntry) {\n // map field\n field.fieldKind = \"map\";\n const { key, value } = findMapEntryFields(mapEntry);\n field.mapKey = key.scalar;\n field.mapKind = value.fieldKind;\n field.message = value.message;\n field.delimitedEncoding = false; // map fields are always LENGTH_PREFIXED\n field.enum = value.enum;\n field.scalar = value.scalar;\n return field;\n }\n // list field\n field.fieldKind = \"list\";\n switch (type) {\n case TYPE_MESSAGE:\n case TYPE_GROUP:\n field.listKind = \"message\";\n field.message = reg.getMessage(trimLeadingDot(proto.typeName));\n assert(field.message);\n field.delimitedEncoding = isDelimitedEncoding(proto, parentOrFile);\n break;\n case TYPE_ENUM:\n field.listKind = \"enum\";\n field.enum = reg.getEnum(trimLeadingDot(proto.typeName));\n assert(field.enum);\n break;\n default:\n field.listKind = \"scalar\";\n field.scalar = type;\n field.longAsString = jstype == JS_STRING;\n break;\n }\n field.packed = isPackedField(proto, parentOrFile);\n return field;\n }\n // singular\n switch (type) {\n case TYPE_MESSAGE:\n case TYPE_GROUP:\n field.fieldKind = \"message\";\n field.message = reg.getMessage(trimLeadingDot(proto.typeName));\n assert(field.message, `invalid FieldDescriptorProto: type_name ${proto.typeName} not found`);\n field.delimitedEncoding = isDelimitedEncoding(proto, parentOrFile);\n field.getDefaultValue = () => undefined;\n break;\n case TYPE_ENUM: {\n const enumeration = reg.getEnum(trimLeadingDot(proto.typeName));\n assert(enumeration !== undefined, `invalid FieldDescriptorProto: type_name ${proto.typeName} not found`);\n field.fieldKind = \"enum\";\n field.enum = reg.getEnum(trimLeadingDot(proto.typeName));\n field.getDefaultValue = () => {\n return unsafeIsSetExplicit(proto, \"defaultValue\")\n ? parseTextFormatEnumValue(enumeration, proto.defaultValue)\n : undefined;\n };\n break;\n }\n default: {\n field.fieldKind = \"scalar\";\n field.scalar = type;\n field.longAsString = jstype == JS_STRING;\n field.getDefaultValue = () => {\n return unsafeIsSetExplicit(proto, \"defaultValue\")\n ? parseTextFormatScalarValue(type, proto.defaultValue)\n : undefined;\n };\n break;\n }\n }\n return field;\n}\n/**\n * Parse the \"syntax\" and \"edition\" fields, returning one of the supported\n * editions.\n */\nfunction getFileEdition(proto) {\n switch (proto.syntax) {\n case \"\":\n case \"proto2\":\n return EDITION_PROTO2;\n case \"proto3\":\n return EDITION_PROTO3;\n case \"editions\":\n if (proto.edition in featureDefaults) {\n return proto.edition;\n }\n throw new Error(`${proto.name}: unsupported edition`);\n default:\n throw new Error(`${proto.name}: unsupported syntax \"${proto.syntax}\"`);\n }\n}\n/**\n * Resolve dependencies of FileDescriptorProto to DescFile.\n */\nfunction findFileDependencies(proto, reg) {\n return proto.dependency.map((wantName) => {\n const dep = reg.getFile(wantName);\n if (!dep) {\n throw new Error(`Cannot find ${wantName}, imported by ${proto.name}`);\n }\n return dep;\n });\n}\n/**\n * Finds a prefix shared by enum values, for example `my_enum_` for\n * `enum MyEnum {MY_ENUM_A=0; MY_ENUM_B=1;}`.\n */\nfunction findEnumSharedPrefix(enumName, values) {\n const prefix = camelToSnakeCase(enumName) + \"_\";\n for (const value of values) {\n if (!value.name.toLowerCase().startsWith(prefix)) {\n return undefined;\n }\n const shortName = value.name.substring(prefix.length);\n if (shortName.length == 0) {\n return undefined;\n }\n if (/^\\d/.test(shortName)) {\n // identifiers must not start with numbers\n return undefined;\n }\n }\n return prefix;\n}\n/**\n * Converts lowerCamelCase or UpperCamelCase into lower_snake_case.\n * This is used to find shared prefixes in an enum.\n */\nfunction camelToSnakeCase(camel) {\n return (camel.substring(0, 1) + camel.substring(1).replace(/[A-Z]/g, (c) => \"_\" + c)).toLowerCase();\n}\n/**\n * Create a fully qualified name for a protobuf type or extension field.\n *\n * The fully qualified name for messages, enumerations, and services is\n * constructed by concatenating the package name (if present), parent\n * message names (for nested types), and the type name. We omit the leading\n * dot added by protobuf compilers. Examples:\n * - mypackage.MyMessage\n * - mypackage.MyMessage.NestedMessage\n *\n * The fully qualified name for extension fields is constructed by\n * concatenating the package name (if present), parent message names (for\n * extensions declared within a message), and the field name. Examples:\n * - mypackage.extfield\n * - mypackage.MyMessage.extfield\n */\nfunction makeTypeName(proto, parent, file) {\n let typeName;\n if (parent) {\n typeName = `${parent.typeName}.${proto.name}`;\n }\n else if (file.proto.package.length > 0) {\n typeName = `${file.proto.package}.${proto.name}`;\n }\n else {\n typeName = `${proto.name}`;\n }\n return typeName;\n}\n/**\n * Remove the leading dot from a fully qualified type name.\n */\nfunction trimLeadingDot(typeName) {\n return typeName.startsWith(\".\") ? typeName.substring(1) : typeName;\n}\n/**\n * Did the user put the field in a oneof group?\n * Synthetic oneofs for proto3 optionals are ignored.\n */\nfunction findOneof(proto, allOneofs) {\n if (!unsafeIsSetExplicit(proto, \"oneofIndex\")) {\n return undefined;\n }\n if (proto.proto3Optional) {\n return undefined;\n }\n const oneof = allOneofs[proto.oneofIndex];\n assert(oneof, `invalid FieldDescriptorProto: oneof #${proto.oneofIndex} for field #${proto.number} not found`);\n return oneof;\n}\n/**\n * Presence of the field.\n * See https://protobuf.dev/programming-guides/field_presence/\n */\nfunction getFieldPresence(proto, oneof, isExtension, parent) {\n if (proto.label == LABEL_REQUIRED) {\n // proto2 required is LEGACY_REQUIRED\n return LEGACY_REQUIRED;\n }\n if (proto.label == LABEL_REPEATED) {\n // repeated fields (including maps) do not track presence\n return IMPLICIT;\n }\n if (!!oneof || proto.proto3Optional) {\n // oneof is always explicit\n return EXPLICIT;\n }\n if (isExtension) {\n // extensions always track presence\n return EXPLICIT;\n }\n const resolved = resolveFeature(\"fieldPresence\", { proto, parent });\n if (resolved == IMPLICIT &&\n (proto.type == TYPE_MESSAGE || proto.type == TYPE_GROUP)) {\n // singular message field cannot be implicit\n return EXPLICIT;\n }\n return resolved;\n}\n/**\n * Pack this repeated field?\n */\nfunction isPackedField(proto, parent) {\n if (proto.label != LABEL_REPEATED) {\n return false;\n }\n switch (proto.type) {\n case TYPE_STRING:\n case TYPE_BYTES:\n case TYPE_GROUP:\n case TYPE_MESSAGE:\n // length-delimited types cannot be packed\n return false;\n }\n const o = proto.options;\n if (o && unsafeIsSetExplicit(o, \"packed\")) {\n // prefer the field option over edition features\n return o.packed;\n }\n return (PACKED ==\n resolveFeature(\"repeatedFieldEncoding\", {\n proto,\n parent,\n }));\n}\n/**\n * Find the key and value fields of a synthetic map entry message.\n */\nfunction findMapEntryFields(mapEntry) {\n const key = mapEntry.fields.find((f) => f.number === 1);\n const value = mapEntry.fields.find((f) => f.number === 2);\n assert(key &&\n key.fieldKind == \"scalar\" &&\n key.scalar != ScalarType.BYTES &&\n key.scalar != ScalarType.FLOAT &&\n key.scalar != ScalarType.DOUBLE &&\n value &&\n value.fieldKind != \"list\" &&\n value.fieldKind != \"map\");\n return { key, value };\n}\n/**\n * Enumerations can be open or closed.\n * See https://protobuf.dev/programming-guides/enum/\n */\nfunction isEnumOpen(desc) {\n var _a;\n return (OPEN ==\n resolveFeature(\"enumType\", {\n proto: desc.proto,\n parent: (_a = desc.parent) !== null && _a !== void 0 ? _a : desc.file,\n }));\n}\n/**\n * Encode the message delimited (a.k.a. proto2 group encoding), or\n * length-prefixed?\n */\nfunction isDelimitedEncoding(proto, parent) {\n if (proto.type == TYPE_GROUP) {\n return true;\n }\n return (DELIMITED ==\n resolveFeature(\"messageEncoding\", {\n proto,\n parent,\n }));\n}\nfunction resolveFeature(name, ref) {\n var _a, _b;\n const featureSet = (_a = ref.proto.options) === null || _a === void 0 ? void 0 : _a.features;\n if (featureSet) {\n const val = featureSet[name];\n if (val != 0) {\n return val;\n }\n }\n if (\"kind\" in ref) {\n if (ref.kind == \"message\") {\n return resolveFeature(name, (_b = ref.parent) !== null && _b !== void 0 ? _b : ref.file);\n }\n const editionDefaults = featureDefaults[ref.edition];\n if (!editionDefaults) {\n throw new Error(`feature default for edition ${ref.edition} not found`);\n }\n return editionDefaults[name];\n }\n return resolveFeature(name, ref.parent);\n}\n/**\n * Assert that condition is truthy or throw error (with message)\n */\nfunction assert(condition, msg) {\n if (!condition) {\n throw new Error(msg);\n }\n}\n",
|
|
27
|
+
"// Copyright 2021-2025 Buf Technologies, Inc.\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.\nimport { restoreJsonNames } from \"./restore-json-names.js\";\nimport { createFileRegistry } from \"../registry.js\";\n/**\n * Hydrate a file descriptor for google/protobuf/descriptor.proto from a plain\n * object.\n *\n * See createFileDescriptorProtoBoot() for details.\n *\n * @private\n */\nexport function boot(boot) {\n const root = bootFileDescriptorProto(boot);\n root.messageType.forEach(restoreJsonNames);\n const reg = createFileRegistry(root, () => undefined);\n // biome-ignore lint/style/noNonNullAssertion: non-null assertion because we just created the registry from the file we look up\n return reg.getFile(root.name);\n}\n/**\n * Creates the message google.protobuf.FileDescriptorProto from an object literal.\n *\n * See createFileDescriptorProtoBoot() for details.\n *\n * @private\n */\nexport function bootFileDescriptorProto(init) {\n const proto = Object.create({\n syntax: \"\",\n edition: 0,\n });\n return Object.assign(proto, Object.assign(Object.assign({ $typeName: \"google.protobuf.FileDescriptorProto\", dependency: [], publicDependency: [], weakDependency: [], optionDependency: [], service: [], extension: [] }, init), { messageType: init.messageType.map(bootDescriptorProto), enumType: init.enumType.map(bootEnumDescriptorProto) }));\n}\nfunction bootDescriptorProto(init) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n const proto = Object.create({\n visibility: 0,\n });\n return Object.assign(proto, {\n $typeName: \"google.protobuf.DescriptorProto\",\n name: init.name,\n field: (_b = (_a = init.field) === null || _a === void 0 ? void 0 : _a.map(bootFieldDescriptorProto)) !== null && _b !== void 0 ? _b : [],\n extension: [],\n nestedType: (_d = (_c = init.nestedType) === null || _c === void 0 ? void 0 : _c.map(bootDescriptorProto)) !== null && _d !== void 0 ? _d : [],\n enumType: (_f = (_e = init.enumType) === null || _e === void 0 ? void 0 : _e.map(bootEnumDescriptorProto)) !== null && _f !== void 0 ? _f : [],\n extensionRange: (_h = (_g = init.extensionRange) === null || _g === void 0 ? void 0 : _g.map((e) => (Object.assign({ $typeName: \"google.protobuf.DescriptorProto.ExtensionRange\" }, e)))) !== null && _h !== void 0 ? _h : [],\n oneofDecl: [],\n reservedRange: [],\n reservedName: [],\n });\n}\nfunction bootFieldDescriptorProto(init) {\n const proto = Object.create({\n label: 1,\n typeName: \"\",\n extendee: \"\",\n defaultValue: \"\",\n oneofIndex: 0,\n jsonName: \"\",\n proto3Optional: false,\n });\n return Object.assign(proto, Object.assign(Object.assign({ $typeName: \"google.protobuf.FieldDescriptorProto\" }, init), { options: init.options ? bootFieldOptions(init.options) : undefined }));\n}\nfunction bootFieldOptions(init) {\n var _a, _b, _c;\n const proto = Object.create({\n ctype: 0,\n packed: false,\n jstype: 0,\n lazy: false,\n unverifiedLazy: false,\n deprecated: false,\n weak: false,\n debugRedact: false,\n retention: 0,\n });\n return Object.assign(proto, Object.assign(Object.assign({ $typeName: \"google.protobuf.FieldOptions\" }, init), { targets: (_a = init.targets) !== null && _a !== void 0 ? _a : [], editionDefaults: (_c = (_b = init.editionDefaults) === null || _b === void 0 ? void 0 : _b.map((e) => (Object.assign({ $typeName: \"google.protobuf.FieldOptions.EditionDefault\" }, e)))) !== null && _c !== void 0 ? _c : [], uninterpretedOption: [] }));\n}\nfunction bootEnumDescriptorProto(init) {\n const proto = Object.create({\n visibility: 0,\n });\n return Object.assign(proto, {\n $typeName: \"google.protobuf.EnumDescriptorProto\",\n name: init.name,\n reservedName: [],\n reservedRange: [],\n value: init.value.map((e) => (Object.assign({ $typeName: \"google.protobuf.EnumValueDescriptorProto\" }, e))),\n });\n}\n",
|
|
28
|
+
"// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Hydrate a message descriptor.\n *\n * @private\n */\nexport function messageDesc(file, path, ...paths) {\n return paths.reduce((acc, cur) => acc.nestedMessages[cur], file.messages[path]);\n}\n",
|
|
29
|
+
"// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Hydrate an enum descriptor.\n *\n * @private\n */\nexport function enumDesc(file, path, ...paths) {\n if (paths.length == 0) {\n return file.enums[path];\n }\n const e = paths.pop(); // we checked length above\n return paths.reduce((acc, cur) => acc.nestedMessages[cur], file.messages[path]).nestedEnums[e];\n}\n/**\n * Construct a TypeScript enum object at runtime from a descriptor.\n */\nexport function tsEnum(desc) {\n const enumObject = {};\n for (const value of desc.values) {\n enumObject[value.localName] = value.number;\n enumObject[value.number] = value.localName;\n }\n return enumObject;\n}\n",
|
|
30
|
+
"// Copyright 2021-2025 Buf Technologies, Inc.\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.\nimport { boot } from \"../../../../codegenv2/boot.js\";\nimport { messageDesc } from \"../../../../codegenv2/message.js\";\nimport { enumDesc } from \"../../../../codegenv2/enum.js\";\n/**\n * Describes the file google/protobuf/descriptor.proto.\n */\nexport const file_google_protobuf_descriptor = /*@__PURE__*/ boot({ \"name\": \"google/protobuf/descriptor.proto\", \"package\": \"google.protobuf\", \"messageType\": [{ \"name\": \"FileDescriptorSet\", \"field\": [{ \"name\": \"file\", \"number\": 1, \"type\": 11, \"label\": 3, \"typeName\": \".google.protobuf.FileDescriptorProto\" }], \"extensionRange\": [{ \"start\": 536000000, \"end\": 536000001 }] }, { \"name\": \"FileDescriptorProto\", \"field\": [{ \"name\": \"name\", \"number\": 1, \"type\": 9, \"label\": 1 }, { \"name\": \"package\", \"number\": 2, \"type\": 9, \"label\": 1 }, { \"name\": \"dependency\", \"number\": 3, \"type\": 9, \"label\": 3 }, { \"name\": \"public_dependency\", \"number\": 10, \"type\": 5, \"label\": 3 }, { \"name\": \"weak_dependency\", \"number\": 11, \"type\": 5, \"label\": 3 }, { \"name\": \"option_dependency\", \"number\": 15, \"type\": 9, \"label\": 3 }, { \"name\": \"message_type\", \"number\": 4, \"type\": 11, \"label\": 3, \"typeName\": \".google.protobuf.DescriptorProto\" }, { \"name\": \"enum_type\", \"number\": 5, \"type\": 11, \"label\": 3, \"typeName\": \".google.protobuf.EnumDescriptorProto\" }, { \"name\": \"service\", \"number\": 6, \"type\": 11, \"label\": 3, \"typeName\": \".google.protobuf.ServiceDescriptorProto\" }, { \"name\": \"extension\", \"number\": 7, \"type\": 11, \"label\": 3, \"typeName\": \".google.protobuf.FieldDescriptorProto\" }, { \"name\": \"options\", \"number\": 8, \"type\": 11, \"label\": 1, \"typeName\": \".google.protobuf.FileOptions\" }, { \"name\": \"source_code_info\", \"number\": 9, \"type\": 11, \"label\": 1, \"typeName\": \".google.protobuf.SourceCodeInfo\" }, { \"name\": \"syntax\", \"number\": 12, \"type\": 9, \"label\": 1 }, { \"name\": \"edition\", \"number\": 14, \"type\": 14, \"label\": 1, \"typeName\": \".google.protobuf.Edition\" }] }, { \"name\": \"DescriptorProto\", \"field\": [{ \"name\": \"name\", \"number\": 1, \"type\": 9, \"label\": 1 }, { \"name\": \"field\", \"number\": 2, \"type\": 11, \"label\": 3, \"typeName\": \".google.protobuf.FieldDescriptorProto\" }, { \"name\": \"extension\", \"number\": 6, \"type\": 11, \"label\": 3, \"typeName\": \".google.protobuf.FieldDescriptorProto\" }, { \"name\": \"nested_type\", \"number\": 3, \"type\": 11, \"label\": 3, \"typeName\": \".google.protobuf.DescriptorProto\" }, { \"name\": \"enum_type\", \"number\": 4, \"type\": 11, \"label\": 3, \"typeName\": \".google.protobuf.EnumDescriptorProto\" }, { \"name\": \"extension_range\", \"number\": 5, \"type\": 11, \"label\": 3, \"typeName\": \".google.protobuf.DescriptorProto.ExtensionRange\" }, { \"name\": \"oneof_decl\", \"number\": 8, \"type\": 11, \"label\": 3, \"typeName\": \".google.protobuf.OneofDescriptorProto\" }, { \"name\": \"options\", \"number\": 7, \"type\": 11, \"label\": 1, \"typeName\": \".google.protobuf.MessageOptions\" }, { \"name\": \"reserved_range\", \"number\": 9, \"type\": 11, \"label\": 3, \"typeName\": \".google.protobuf.DescriptorProto.ReservedRange\" }, { \"name\": \"reserved_name\", \"number\": 10, \"type\": 9, \"label\": 3 }, { \"name\": \"visibility\", \"number\": 11, \"type\": 14, \"label\": 1, \"typeName\": \".google.protobuf.SymbolVisibility\" }], \"nestedType\": [{ \"name\": \"ExtensionRange\", \"field\": [{ \"name\": \"start\", \"number\": 1, \"type\": 5, \"label\": 1 }, { \"name\": \"end\", \"number\": 2, \"type\": 5, \"label\": 1 }, { \"name\": \"options\", \"number\": 3, \"type\": 11, \"label\": 1, \"typeName\": \".google.protobuf.ExtensionRangeOptions\" }] }, { \"name\": \"ReservedRange\", \"field\": [{ \"name\": \"start\", \"number\": 1, \"type\": 5, \"label\": 1 }, { \"name\": \"end\", \"number\": 2, \"type\": 5, \"label\": 1 }] }] }, { \"name\": \"ExtensionRangeOptions\", \"field\": [{ \"name\": \"uninterpreted_option\", \"number\": 999, \"type\": 11, \"label\": 3, \"typeName\": \".google.protobuf.UninterpretedOption\" }, { \"name\": \"declaration\", \"number\": 2, \"type\": 11, \"label\": 3, \"typeName\": \".google.protobuf.ExtensionRangeOptions.Declaration\", \"options\": { \"retention\": 2 } }, { \"name\": \"features\", \"number\": 50, \"type\": 11, \"label\": 1, \"typeName\": \".google.protobuf.FeatureSet\" }, { \"name\": \"verification\", \"number\": 3, \"type\": 14, \"label\": 1, \"typeName\": \".google.protobuf.ExtensionRangeOptions.VerificationState\", \"defaultValue\": \"UNVERIFIED\", \"options\": { \"retention\": 2 } }], \"nestedType\": [{ \"name\": \"Declaration\", \"field\": [{ \"name\": \"number\", \"number\": 1, \"type\": 5, \"label\": 1 }, { \"name\": \"full_name\", \"number\": 2, \"type\": 9, \"label\": 1 }, { \"name\": \"type\", \"number\": 3, \"type\": 9, \"label\": 1 }, { \"name\": \"reserved\", \"number\": 5, \"type\": 8, \"label\": 1 }, { \"name\": \"repeated\", \"number\": 6, \"type\": 8, \"label\": 1 }] }], \"enumType\": [{ \"name\": \"VerificationState\", \"value\": [{ \"name\": \"DECLARATION\", \"number\": 0 }, { \"name\": \"UNVERIFIED\", \"number\": 1 }] }], \"extensionRange\": [{ \"start\": 1000, \"end\": 536870912 }] }, { \"name\": \"FieldDescriptorProto\", \"field\": [{ \"name\": \"name\", \"number\": 1, \"type\": 9, \"label\": 1 }, { \"name\": \"number\", \"number\": 3, \"type\": 5, \"label\": 1 }, { \"name\": \"label\", \"number\": 4, \"type\": 14, \"label\": 1, \"typeName\": \".google.protobuf.FieldDescriptorProto.Label\" }, { \"name\": \"type\", \"number\": 5, \"type\": 14, \"label\": 1, \"typeName\": \".google.protobuf.FieldDescriptorProto.Type\" }, { \"name\": \"type_name\", \"number\": 6, \"type\": 9, \"label\": 1 }, { \"name\": \"extendee\", \"number\": 2, \"type\": 9, \"label\": 1 }, { \"name\": \"default_value\", \"number\": 7, \"type\": 9, \"label\": 1 }, { \"name\": \"oneof_index\", \"number\": 9, \"type\": 5, \"label\": 1 }, { \"name\": \"json_name\", \"number\": 10, \"type\": 9, \"label\": 1 }, { \"name\": \"options\", \"number\": 8, \"type\": 11, \"label\": 1, \"typeName\": \".google.protobuf.FieldOptions\" }, { \"name\": \"proto3_optional\", \"number\": 17, \"type\": 8, \"label\": 1 }], \"enumType\": [{ \"name\": \"Type\", \"value\": [{ \"name\": \"TYPE_DOUBLE\", \"number\": 1 }, { \"name\": \"TYPE_FLOAT\", \"number\": 2 }, { \"name\": \"TYPE_INT64\", \"number\": 3 }, { \"name\": \"TYPE_UINT64\", \"number\": 4 }, { \"name\": \"TYPE_INT32\", \"number\": 5 }, { \"name\": \"TYPE_FIXED64\", \"number\": 6 }, { \"name\": \"TYPE_FIXED32\", \"number\": 7 }, { \"name\": \"TYPE_BOOL\", \"number\": 8 }, { \"name\": \"TYPE_STRING\", \"number\": 9 }, { \"name\": \"TYPE_GROUP\", \"number\": 10 }, { \"name\": \"TYPE_MESSAGE\", \"number\": 11 }, { \"name\": \"TYPE_BYTES\", \"number\": 12 }, { \"name\": \"TYPE_UINT32\", \"number\": 13 }, { \"name\": \"TYPE_ENUM\", \"number\": 14 }, { \"name\": \"TYPE_SFIXED32\", \"number\": 15 }, { \"name\": \"TYPE_SFIXED64\", \"number\": 16 }, { \"name\": \"TYPE_SINT32\", \"number\": 17 }, { \"name\": \"TYPE_SINT64\", \"number\": 18 }] }, { \"name\": \"Label\", \"value\": [{ \"name\": \"LABEL_OPTIONAL\", \"number\": 1 }, { \"name\": \"LABEL_REPEATED\", \"number\": 3 }, { \"name\": \"LABEL_REQUIRED\", \"number\": 2 }] }] }, { \"name\": \"OneofDescriptorProto\", \"field\": [{ \"name\": \"name\", \"number\": 1, \"type\": 9, \"label\": 1 }, { \"name\": \"options\", \"number\": 2, \"type\": 11, \"label\": 1, \"typeName\": \".google.protobuf.OneofOptions\" }] }, { \"name\": \"EnumDescriptorProto\", \"field\": [{ \"name\": \"name\", \"number\": 1, \"type\": 9, \"label\": 1 }, { \"name\": \"value\", \"number\": 2, \"type\": 11, \"label\": 3, \"typeName\": \".google.protobuf.EnumValueDescriptorProto\" }, { \"name\": \"options\", \"number\": 3, \"type\": 11, \"label\": 1, \"typeName\": \".google.protobuf.EnumOptions\" }, { \"name\": \"reserved_range\", \"number\": 4, \"type\": 11, \"label\": 3, \"typeName\": \".google.protobuf.EnumDescriptorProto.EnumReservedRange\" }, { \"name\": \"reserved_name\", \"number\": 5, \"type\": 9, \"label\": 3 }, { \"name\": \"visibility\", \"number\": 6, \"type\": 14, \"label\": 1, \"typeName\": \".google.protobuf.SymbolVisibility\" }], \"nestedType\": [{ \"name\": \"EnumReservedRange\", \"field\": [{ \"name\": \"start\", \"number\": 1, \"type\": 5, \"label\": 1 }, { \"name\": \"end\", \"number\": 2, \"type\": 5, \"label\": 1 }] }] }, { \"name\": \"EnumValueDescriptorProto\", \"field\": [{ \"name\": \"name\", \"number\": 1, \"type\": 9, \"label\": 1 }, { \"name\": \"number\", \"number\": 2, \"type\": 5, \"label\": 1 }, { \"name\": \"options\", \"number\": 3, \"type\": 11, \"label\": 1, \"typeName\": \".google.protobuf.EnumValueOptions\" }] }, { \"name\": \"ServiceDescriptorProto\", \"field\": [{ \"name\": \"name\", \"number\": 1, \"type\": 9, \"label\": 1 }, { \"name\": \"method\", \"number\": 2, \"type\": 11, \"label\": 3, \"typeName\": \".google.protobuf.MethodDescriptorProto\" }, { \"name\": \"options\", \"number\": 3, \"type\": 11, \"label\": 1, \"typeName\": \".google.protobuf.ServiceOptions\" }] }, { \"name\": \"MethodDescriptorProto\", \"field\": [{ \"name\": \"name\", \"number\": 1, \"type\": 9, \"label\": 1 }, { \"name\": \"input_type\", \"number\": 2, \"type\": 9, \"label\": 1 }, { \"name\": \"output_type\", \"number\": 3, \"type\": 9, \"label\": 1 }, { \"name\": \"options\", \"number\": 4, \"type\": 11, \"label\": 1, \"typeName\": \".google.protobuf.MethodOptions\" }, { \"name\": \"client_streaming\", \"number\": 5, \"type\": 8, \"label\": 1, \"defaultValue\": \"false\" }, { \"name\": \"server_streaming\", \"number\": 6, \"type\": 8, \"label\": 1, \"defaultValue\": \"false\" }] }, { \"name\": \"FileOptions\", \"field\": [{ \"name\": \"java_package\", \"number\": 1, \"type\": 9, \"label\": 1 }, { \"name\": \"java_outer_classname\", \"number\": 8, \"type\": 9, \"label\": 1 }, { \"name\": \"java_multiple_files\", \"number\": 10, \"type\": 8, \"label\": 1, \"defaultValue\": \"false\" }, { \"name\": \"java_generate_equals_and_hash\", \"number\": 20, \"type\": 8, \"label\": 1, \"options\": { \"deprecated\": true } }, { \"name\": \"java_string_check_utf8\", \"number\": 27, \"type\": 8, \"label\": 1, \"defaultValue\": \"false\" }, { \"name\": \"optimize_for\", \"number\": 9, \"type\": 14, \"label\": 1, \"typeName\": \".google.protobuf.FileOptions.OptimizeMode\", \"defaultValue\": \"SPEED\" }, { \"name\": \"go_package\", \"number\": 11, \"type\": 9, \"label\": 1 }, { \"name\": \"cc_generic_services\", \"number\": 16, \"type\": 8, \"label\": 1, \"defaultValue\": \"false\" }, { \"name\": \"java_generic_services\", \"number\": 17, \"type\": 8, \"label\": 1, \"defaultValue\": \"false\" }, { \"name\": \"py_generic_services\", \"number\": 18, \"type\": 8, \"label\": 1, \"defaultValue\": \"false\" }, { \"name\": \"deprecated\", \"number\": 23, \"type\": 8, \"label\": 1, \"defaultValue\": \"false\" }, { \"name\": \"cc_enable_arenas\", \"number\": 31, \"type\": 8, \"label\": 1, \"defaultValue\": \"true\" }, { \"name\": \"objc_class_prefix\", \"number\": 36, \"type\": 9, \"label\": 1 }, { \"name\": \"csharp_namespace\", \"number\": 37, \"type\": 9, \"label\": 1 }, { \"name\": \"swift_prefix\", \"number\": 39, \"type\": 9, \"label\": 1 }, { \"name\": \"php_class_prefix\", \"number\": 40, \"type\": 9, \"label\": 1 }, { \"name\": \"php_namespace\", \"number\": 41, \"type\": 9, \"label\": 1 }, { \"name\": \"php_metadata_namespace\", \"number\": 44, \"type\": 9, \"label\": 1 }, { \"name\": \"ruby_package\", \"number\": 45, \"type\": 9, \"label\": 1 }, { \"name\": \"features\", \"number\": 50, \"type\": 11, \"label\": 1, \"typeName\": \".google.protobuf.FeatureSet\" }, { \"name\": \"uninterpreted_option\", \"number\": 999, \"type\": 11, \"label\": 3, \"typeName\": \".google.protobuf.UninterpretedOption\" }], \"enumType\": [{ \"name\": \"OptimizeMode\", \"value\": [{ \"name\": \"SPEED\", \"number\": 1 }, { \"name\": \"CODE_SIZE\", \"number\": 2 }, { \"name\": \"LITE_RUNTIME\", \"number\": 3 }] }], \"extensionRange\": [{ \"start\": 1000, \"end\": 536870912 }] }, { \"name\": \"MessageOptions\", \"field\": [{ \"name\": \"message_set_wire_format\", \"number\": 1, \"type\": 8, \"label\": 1, \"defaultValue\": \"false\" }, { \"name\": \"no_standard_descriptor_accessor\", \"number\": 2, \"type\": 8, \"label\": 1, \"defaultValue\": \"false\" }, { \"name\": \"deprecated\", \"number\": 3, \"type\": 8, \"label\": 1, \"defaultValue\": \"false\" }, { \"name\": \"map_entry\", \"number\": 7, \"type\": 8, \"label\": 1 }, { \"name\": \"deprecated_legacy_json_field_conflicts\", \"number\": 11, \"type\": 8, \"label\": 1, \"options\": { \"deprecated\": true } }, { \"name\": \"features\", \"number\": 12, \"type\": 11, \"label\": 1, \"typeName\": \".google.protobuf.FeatureSet\" }, { \"name\": \"uninterpreted_option\", \"number\": 999, \"type\": 11, \"label\": 3, \"typeName\": \".google.protobuf.UninterpretedOption\" }], \"extensionRange\": [{ \"start\": 1000, \"end\": 536870912 }] }, { \"name\": \"FieldOptions\", \"field\": [{ \"name\": \"ctype\", \"number\": 1, \"type\": 14, \"label\": 1, \"typeName\": \".google.protobuf.FieldOptions.CType\", \"defaultValue\": \"STRING\" }, { \"name\": \"packed\", \"number\": 2, \"type\": 8, \"label\": 1 }, { \"name\": \"jstype\", \"number\": 6, \"type\": 14, \"label\": 1, \"typeName\": \".google.protobuf.FieldOptions.JSType\", \"defaultValue\": \"JS_NORMAL\" }, { \"name\": \"lazy\", \"number\": 5, \"type\": 8, \"label\": 1, \"defaultValue\": \"false\" }, { \"name\": \"unverified_lazy\", \"number\": 15, \"type\": 8, \"label\": 1, \"defaultValue\": \"false\" }, { \"name\": \"deprecated\", \"number\": 3, \"type\": 8, \"label\": 1, \"defaultValue\": \"false\" }, { \"name\": \"weak\", \"number\": 10, \"type\": 8, \"label\": 1, \"defaultValue\": \"false\", \"options\": { \"deprecated\": true } }, { \"name\": \"debug_redact\", \"number\": 16, \"type\": 8, \"label\": 1, \"defaultValue\": \"false\" }, { \"name\": \"retention\", \"number\": 17, \"type\": 14, \"label\": 1, \"typeName\": \".google.protobuf.FieldOptions.OptionRetention\" }, { \"name\": \"targets\", \"number\": 19, \"type\": 14, \"label\": 3, \"typeName\": \".google.protobuf.FieldOptions.OptionTargetType\" }, { \"name\": \"edition_defaults\", \"number\": 20, \"type\": 11, \"label\": 3, \"typeName\": \".google.protobuf.FieldOptions.EditionDefault\" }, { \"name\": \"features\", \"number\": 21, \"type\": 11, \"label\": 1, \"typeName\": \".google.protobuf.FeatureSet\" }, { \"name\": \"feature_support\", \"number\": 22, \"type\": 11, \"label\": 1, \"typeName\": \".google.protobuf.FieldOptions.FeatureSupport\" }, { \"name\": \"uninterpreted_option\", \"number\": 999, \"type\": 11, \"label\": 3, \"typeName\": \".google.protobuf.UninterpretedOption\" }], \"nestedType\": [{ \"name\": \"EditionDefault\", \"field\": [{ \"name\": \"edition\", \"number\": 3, \"type\": 14, \"label\": 1, \"typeName\": \".google.protobuf.Edition\" }, { \"name\": \"value\", \"number\": 2, \"type\": 9, \"label\": 1 }] }, { \"name\": \"FeatureSupport\", \"field\": [{ \"name\": \"edition_introduced\", \"number\": 1, \"type\": 14, \"label\": 1, \"typeName\": \".google.protobuf.Edition\" }, { \"name\": \"edition_deprecated\", \"number\": 2, \"type\": 14, \"label\": 1, \"typeName\": \".google.protobuf.Edition\" }, { \"name\": \"deprecation_warning\", \"number\": 3, \"type\": 9, \"label\": 1 }, { \"name\": \"edition_removed\", \"number\": 4, \"type\": 14, \"label\": 1, \"typeName\": \".google.protobuf.Edition\" }] }], \"enumType\": [{ \"name\": \"CType\", \"value\": [{ \"name\": \"STRING\", \"number\": 0 }, { \"name\": \"CORD\", \"number\": 1 }, { \"name\": \"STRING_PIECE\", \"number\": 2 }] }, { \"name\": \"JSType\", \"value\": [{ \"name\": \"JS_NORMAL\", \"number\": 0 }, { \"name\": \"JS_STRING\", \"number\": 1 }, { \"name\": \"JS_NUMBER\", \"number\": 2 }] }, { \"name\": \"OptionRetention\", \"value\": [{ \"name\": \"RETENTION_UNKNOWN\", \"number\": 0 }, { \"name\": \"RETENTION_RUNTIME\", \"number\": 1 }, { \"name\": \"RETENTION_SOURCE\", \"number\": 2 }] }, { \"name\": \"OptionTargetType\", \"value\": [{ \"name\": \"TARGET_TYPE_UNKNOWN\", \"number\": 0 }, { \"name\": \"TARGET_TYPE_FILE\", \"number\": 1 }, { \"name\": \"TARGET_TYPE_EXTENSION_RANGE\", \"number\": 2 }, { \"name\": \"TARGET_TYPE_MESSAGE\", \"number\": 3 }, { \"name\": \"TARGET_TYPE_FIELD\", \"number\": 4 }, { \"name\": \"TARGET_TYPE_ONEOF\", \"number\": 5 }, { \"name\": \"TARGET_TYPE_ENUM\", \"number\": 6 }, { \"name\": \"TARGET_TYPE_ENUM_ENTRY\", \"number\": 7 }, { \"name\": \"TARGET_TYPE_SERVICE\", \"number\": 8 }, { \"name\": \"TARGET_TYPE_METHOD\", \"number\": 9 }] }], \"extensionRange\": [{ \"start\": 1000, \"end\": 536870912 }] }, { \"name\": \"OneofOptions\", \"field\": [{ \"name\": \"features\", \"number\": 1, \"type\": 11, \"label\": 1, \"typeName\": \".google.protobuf.FeatureSet\" }, { \"name\": \"uninterpreted_option\", \"number\": 999, \"type\": 11, \"label\": 3, \"typeName\": \".google.protobuf.UninterpretedOption\" }], \"extensionRange\": [{ \"start\": 1000, \"end\": 536870912 }] }, { \"name\": \"EnumOptions\", \"field\": [{ \"name\": \"allow_alias\", \"number\": 2, \"type\": 8, \"label\": 1 }, { \"name\": \"deprecated\", \"number\": 3, \"type\": 8, \"label\": 1, \"defaultValue\": \"false\" }, { \"name\": \"deprecated_legacy_json_field_conflicts\", \"number\": 6, \"type\": 8, \"label\": 1, \"options\": { \"deprecated\": true } }, { \"name\": \"features\", \"number\": 7, \"type\": 11, \"label\": 1, \"typeName\": \".google.protobuf.FeatureSet\" }, { \"name\": \"uninterpreted_option\", \"number\": 999, \"type\": 11, \"label\": 3, \"typeName\": \".google.protobuf.UninterpretedOption\" }], \"extensionRange\": [{ \"start\": 1000, \"end\": 536870912 }] }, { \"name\": \"EnumValueOptions\", \"field\": [{ \"name\": \"deprecated\", \"number\": 1, \"type\": 8, \"label\": 1, \"defaultValue\": \"false\" }, { \"name\": \"features\", \"number\": 2, \"type\": 11, \"label\": 1, \"typeName\": \".google.protobuf.FeatureSet\" }, { \"name\": \"debug_redact\", \"number\": 3, \"type\": 8, \"label\": 1, \"defaultValue\": \"false\" }, { \"name\": \"feature_support\", \"number\": 4, \"type\": 11, \"label\": 1, \"typeName\": \".google.protobuf.FieldOptions.FeatureSupport\" }, { \"name\": \"uninterpreted_option\", \"number\": 999, \"type\": 11, \"label\": 3, \"typeName\": \".google.protobuf.UninterpretedOption\" }], \"extensionRange\": [{ \"start\": 1000, \"end\": 536870912 }] }, { \"name\": \"ServiceOptions\", \"field\": [{ \"name\": \"features\", \"number\": 34, \"type\": 11, \"label\": 1, \"typeName\": \".google.protobuf.FeatureSet\" }, { \"name\": \"deprecated\", \"number\": 33, \"type\": 8, \"label\": 1, \"defaultValue\": \"false\" }, { \"name\": \"uninterpreted_option\", \"number\": 999, \"type\": 11, \"label\": 3, \"typeName\": \".google.protobuf.UninterpretedOption\" }], \"extensionRange\": [{ \"start\": 1000, \"end\": 536870912 }] }, { \"name\": \"MethodOptions\", \"field\": [{ \"name\": \"deprecated\", \"number\": 33, \"type\": 8, \"label\": 1, \"defaultValue\": \"false\" }, { \"name\": \"idempotency_level\", \"number\": 34, \"type\": 14, \"label\": 1, \"typeName\": \".google.protobuf.MethodOptions.IdempotencyLevel\", \"defaultValue\": \"IDEMPOTENCY_UNKNOWN\" }, { \"name\": \"features\", \"number\": 35, \"type\": 11, \"label\": 1, \"typeName\": \".google.protobuf.FeatureSet\" }, { \"name\": \"uninterpreted_option\", \"number\": 999, \"type\": 11, \"label\": 3, \"typeName\": \".google.protobuf.UninterpretedOption\" }], \"enumType\": [{ \"name\": \"IdempotencyLevel\", \"value\": [{ \"name\": \"IDEMPOTENCY_UNKNOWN\", \"number\": 0 }, { \"name\": \"NO_SIDE_EFFECTS\", \"number\": 1 }, { \"name\": \"IDEMPOTENT\", \"number\": 2 }] }], \"extensionRange\": [{ \"start\": 1000, \"end\": 536870912 }] }, { \"name\": \"UninterpretedOption\", \"field\": [{ \"name\": \"name\", \"number\": 2, \"type\": 11, \"label\": 3, \"typeName\": \".google.protobuf.UninterpretedOption.NamePart\" }, { \"name\": \"identifier_value\", \"number\": 3, \"type\": 9, \"label\": 1 }, { \"name\": \"positive_int_value\", \"number\": 4, \"type\": 4, \"label\": 1 }, { \"name\": \"negative_int_value\", \"number\": 5, \"type\": 3, \"label\": 1 }, { \"name\": \"double_value\", \"number\": 6, \"type\": 1, \"label\": 1 }, { \"name\": \"string_value\", \"number\": 7, \"type\": 12, \"label\": 1 }, { \"name\": \"aggregate_value\", \"number\": 8, \"type\": 9, \"label\": 1 }], \"nestedType\": [{ \"name\": \"NamePart\", \"field\": [{ \"name\": \"name_part\", \"number\": 1, \"type\": 9, \"label\": 2 }, { \"name\": \"is_extension\", \"number\": 2, \"type\": 8, \"label\": 2 }] }] }, { \"name\": \"FeatureSet\", \"field\": [{ \"name\": \"field_presence\", \"number\": 1, \"type\": 14, \"label\": 1, \"typeName\": \".google.protobuf.FeatureSet.FieldPresence\", \"options\": { \"retention\": 1, \"targets\": [4, 1], \"editionDefaults\": [{ \"value\": \"EXPLICIT\", \"edition\": 900 }, { \"value\": \"IMPLICIT\", \"edition\": 999 }, { \"value\": \"EXPLICIT\", \"edition\": 1000 }] } }, { \"name\": \"enum_type\", \"number\": 2, \"type\": 14, \"label\": 1, \"typeName\": \".google.protobuf.FeatureSet.EnumType\", \"options\": { \"retention\": 1, \"targets\": [6, 1], \"editionDefaults\": [{ \"value\": \"CLOSED\", \"edition\": 900 }, { \"value\": \"OPEN\", \"edition\": 999 }] } }, { \"name\": \"repeated_field_encoding\", \"number\": 3, \"type\": 14, \"label\": 1, \"typeName\": \".google.protobuf.FeatureSet.RepeatedFieldEncoding\", \"options\": { \"retention\": 1, \"targets\": [4, 1], \"editionDefaults\": [{ \"value\": \"EXPANDED\", \"edition\": 900 }, { \"value\": \"PACKED\", \"edition\": 999 }] } }, { \"name\": \"utf8_validation\", \"number\": 4, \"type\": 14, \"label\": 1, \"typeName\": \".google.protobuf.FeatureSet.Utf8Validation\", \"options\": { \"retention\": 1, \"targets\": [4, 1], \"editionDefaults\": [{ \"value\": \"NONE\", \"edition\": 900 }, { \"value\": \"VERIFY\", \"edition\": 999 }] } }, { \"name\": \"message_encoding\", \"number\": 5, \"type\": 14, \"label\": 1, \"typeName\": \".google.protobuf.FeatureSet.MessageEncoding\", \"options\": { \"retention\": 1, \"targets\": [4, 1], \"editionDefaults\": [{ \"value\": \"LENGTH_PREFIXED\", \"edition\": 900 }] } }, { \"name\": \"json_format\", \"number\": 6, \"type\": 14, \"label\": 1, \"typeName\": \".google.protobuf.FeatureSet.JsonFormat\", \"options\": { \"retention\": 1, \"targets\": [3, 6, 1], \"editionDefaults\": [{ \"value\": \"LEGACY_BEST_EFFORT\", \"edition\": 900 }, { \"value\": \"ALLOW\", \"edition\": 999 }] } }, { \"name\": \"enforce_naming_style\", \"number\": 7, \"type\": 14, \"label\": 1, \"typeName\": \".google.protobuf.FeatureSet.EnforceNamingStyle\", \"options\": { \"retention\": 2, \"targets\": [1, 2, 3, 4, 5, 6, 7, 8, 9], \"editionDefaults\": [{ \"value\": \"STYLE_LEGACY\", \"edition\": 900 }, { \"value\": \"STYLE2024\", \"edition\": 1001 }] } }, { \"name\": \"default_symbol_visibility\", \"number\": 8, \"type\": 14, \"label\": 1, \"typeName\": \".google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility\", \"options\": { \"retention\": 2, \"targets\": [1], \"editionDefaults\": [{ \"value\": \"EXPORT_ALL\", \"edition\": 900 }, { \"value\": \"EXPORT_TOP_LEVEL\", \"edition\": 1001 }] } }], \"nestedType\": [{ \"name\": \"VisibilityFeature\", \"enumType\": [{ \"name\": \"DefaultSymbolVisibility\", \"value\": [{ \"name\": \"DEFAULT_SYMBOL_VISIBILITY_UNKNOWN\", \"number\": 0 }, { \"name\": \"EXPORT_ALL\", \"number\": 1 }, { \"name\": \"EXPORT_TOP_LEVEL\", \"number\": 2 }, { \"name\": \"LOCAL_ALL\", \"number\": 3 }, { \"name\": \"STRICT\", \"number\": 4 }] }] }], \"enumType\": [{ \"name\": \"FieldPresence\", \"value\": [{ \"name\": \"FIELD_PRESENCE_UNKNOWN\", \"number\": 0 }, { \"name\": \"EXPLICIT\", \"number\": 1 }, { \"name\": \"IMPLICIT\", \"number\": 2 }, { \"name\": \"LEGACY_REQUIRED\", \"number\": 3 }] }, { \"name\": \"EnumType\", \"value\": [{ \"name\": \"ENUM_TYPE_UNKNOWN\", \"number\": 0 }, { \"name\": \"OPEN\", \"number\": 1 }, { \"name\": \"CLOSED\", \"number\": 2 }] }, { \"name\": \"RepeatedFieldEncoding\", \"value\": [{ \"name\": \"REPEATED_FIELD_ENCODING_UNKNOWN\", \"number\": 0 }, { \"name\": \"PACKED\", \"number\": 1 }, { \"name\": \"EXPANDED\", \"number\": 2 }] }, { \"name\": \"Utf8Validation\", \"value\": [{ \"name\": \"UTF8_VALIDATION_UNKNOWN\", \"number\": 0 }, { \"name\": \"VERIFY\", \"number\": 2 }, { \"name\": \"NONE\", \"number\": 3 }] }, { \"name\": \"MessageEncoding\", \"value\": [{ \"name\": \"MESSAGE_ENCODING_UNKNOWN\", \"number\": 0 }, { \"name\": \"LENGTH_PREFIXED\", \"number\": 1 }, { \"name\": \"DELIMITED\", \"number\": 2 }] }, { \"name\": \"JsonFormat\", \"value\": [{ \"name\": \"JSON_FORMAT_UNKNOWN\", \"number\": 0 }, { \"name\": \"ALLOW\", \"number\": 1 }, { \"name\": \"LEGACY_BEST_EFFORT\", \"number\": 2 }] }, { \"name\": \"EnforceNamingStyle\", \"value\": [{ \"name\": \"ENFORCE_NAMING_STYLE_UNKNOWN\", \"number\": 0 }, { \"name\": \"STYLE2024\", \"number\": 1 }, { \"name\": \"STYLE_LEGACY\", \"number\": 2 }] }], \"extensionRange\": [{ \"start\": 1000, \"end\": 9995 }, { \"start\": 9995, \"end\": 10000 }, { \"start\": 10000, \"end\": 10001 }] }, { \"name\": \"FeatureSetDefaults\", \"field\": [{ \"name\": \"defaults\", \"number\": 1, \"type\": 11, \"label\": 3, \"typeName\": \".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault\" }, { \"name\": \"minimum_edition\", \"number\": 4, \"type\": 14, \"label\": 1, \"typeName\": \".google.protobuf.Edition\" }, { \"name\": \"maximum_edition\", \"number\": 5, \"type\": 14, \"label\": 1, \"typeName\": \".google.protobuf.Edition\" }], \"nestedType\": [{ \"name\": \"FeatureSetEditionDefault\", \"field\": [{ \"name\": \"edition\", \"number\": 3, \"type\": 14, \"label\": 1, \"typeName\": \".google.protobuf.Edition\" }, { \"name\": \"overridable_features\", \"number\": 4, \"type\": 11, \"label\": 1, \"typeName\": \".google.protobuf.FeatureSet\" }, { \"name\": \"fixed_features\", \"number\": 5, \"type\": 11, \"label\": 1, \"typeName\": \".google.protobuf.FeatureSet\" }] }] }, { \"name\": \"SourceCodeInfo\", \"field\": [{ \"name\": \"location\", \"number\": 1, \"type\": 11, \"label\": 3, \"typeName\": \".google.protobuf.SourceCodeInfo.Location\" }], \"nestedType\": [{ \"name\": \"Location\", \"field\": [{ \"name\": \"path\", \"number\": 1, \"type\": 5, \"label\": 3, \"options\": { \"packed\": true } }, { \"name\": \"span\", \"number\": 2, \"type\": 5, \"label\": 3, \"options\": { \"packed\": true } }, { \"name\": \"leading_comments\", \"number\": 3, \"type\": 9, \"label\": 1 }, { \"name\": \"trailing_comments\", \"number\": 4, \"type\": 9, \"label\": 1 }, { \"name\": \"leading_detached_comments\", \"number\": 6, \"type\": 9, \"label\": 3 }] }], \"extensionRange\": [{ \"start\": 536000000, \"end\": 536000001 }] }, { \"name\": \"GeneratedCodeInfo\", \"field\": [{ \"name\": \"annotation\", \"number\": 1, \"type\": 11, \"label\": 3, \"typeName\": \".google.protobuf.GeneratedCodeInfo.Annotation\" }], \"nestedType\": [{ \"name\": \"Annotation\", \"field\": [{ \"name\": \"path\", \"number\": 1, \"type\": 5, \"label\": 3, \"options\": { \"packed\": true } }, { \"name\": \"source_file\", \"number\": 2, \"type\": 9, \"label\": 1 }, { \"name\": \"begin\", \"number\": 3, \"type\": 5, \"label\": 1 }, { \"name\": \"end\", \"number\": 4, \"type\": 5, \"label\": 1 }, { \"name\": \"semantic\", \"number\": 5, \"type\": 14, \"label\": 1, \"typeName\": \".google.protobuf.GeneratedCodeInfo.Annotation.Semantic\" }], \"enumType\": [{ \"name\": \"Semantic\", \"value\": [{ \"name\": \"NONE\", \"number\": 0 }, { \"name\": \"SET\", \"number\": 1 }, { \"name\": \"ALIAS\", \"number\": 2 }] }] }] }], \"enumType\": [{ \"name\": \"Edition\", \"value\": [{ \"name\": \"EDITION_UNKNOWN\", \"number\": 0 }, { \"name\": \"EDITION_LEGACY\", \"number\": 900 }, { \"name\": \"EDITION_PROTO2\", \"number\": 998 }, { \"name\": \"EDITION_PROTO3\", \"number\": 999 }, { \"name\": \"EDITION_2023\", \"number\": 1000 }, { \"name\": \"EDITION_2024\", \"number\": 1001 }, { \"name\": \"EDITION_1_TEST_ONLY\", \"number\": 1 }, { \"name\": \"EDITION_2_TEST_ONLY\", \"number\": 2 }, { \"name\": \"EDITION_99997_TEST_ONLY\", \"number\": 99997 }, { \"name\": \"EDITION_99998_TEST_ONLY\", \"number\": 99998 }, { \"name\": \"EDITION_99999_TEST_ONLY\", \"number\": 99999 }, { \"name\": \"EDITION_MAX\", \"number\": 2147483647 }] }, { \"name\": \"SymbolVisibility\", \"value\": [{ \"name\": \"VISIBILITY_UNSET\", \"number\": 0 }, { \"name\": \"VISIBILITY_LOCAL\", \"number\": 1 }, { \"name\": \"VISIBILITY_EXPORT\", \"number\": 2 }] }] });\n/**\n * Describes the message google.protobuf.FileDescriptorSet.\n * Use `create(FileDescriptorSetSchema)` to create a new message.\n */\nexport const FileDescriptorSetSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 0);\n/**\n * Describes the message google.protobuf.FileDescriptorProto.\n * Use `create(FileDescriptorProtoSchema)` to create a new message.\n */\nexport const FileDescriptorProtoSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 1);\n/**\n * Describes the message google.protobuf.DescriptorProto.\n * Use `create(DescriptorProtoSchema)` to create a new message.\n */\nexport const DescriptorProtoSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 2);\n/**\n * Describes the message google.protobuf.DescriptorProto.ExtensionRange.\n * Use `create(DescriptorProto_ExtensionRangeSchema)` to create a new message.\n */\nexport const DescriptorProto_ExtensionRangeSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 2, 0);\n/**\n * Describes the message google.protobuf.DescriptorProto.ReservedRange.\n * Use `create(DescriptorProto_ReservedRangeSchema)` to create a new message.\n */\nexport const DescriptorProto_ReservedRangeSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 2, 1);\n/**\n * Describes the message google.protobuf.ExtensionRangeOptions.\n * Use `create(ExtensionRangeOptionsSchema)` to create a new message.\n */\nexport const ExtensionRangeOptionsSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 3);\n/**\n * Describes the message google.protobuf.ExtensionRangeOptions.Declaration.\n * Use `create(ExtensionRangeOptions_DeclarationSchema)` to create a new message.\n */\nexport const ExtensionRangeOptions_DeclarationSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 3, 0);\n/**\n * The verification state of the extension range.\n *\n * @generated from enum google.protobuf.ExtensionRangeOptions.VerificationState\n */\nexport var ExtensionRangeOptions_VerificationState;\n(function (ExtensionRangeOptions_VerificationState) {\n /**\n * All the extensions of the range must be declared.\n *\n * @generated from enum value: DECLARATION = 0;\n */\n ExtensionRangeOptions_VerificationState[ExtensionRangeOptions_VerificationState[\"DECLARATION\"] = 0] = \"DECLARATION\";\n /**\n * @generated from enum value: UNVERIFIED = 1;\n */\n ExtensionRangeOptions_VerificationState[ExtensionRangeOptions_VerificationState[\"UNVERIFIED\"] = 1] = \"UNVERIFIED\";\n})(ExtensionRangeOptions_VerificationState || (ExtensionRangeOptions_VerificationState = {}));\n/**\n * Describes the enum google.protobuf.ExtensionRangeOptions.VerificationState.\n */\nexport const ExtensionRangeOptions_VerificationStateSchema = /*@__PURE__*/ enumDesc(file_google_protobuf_descriptor, 3, 0);\n/**\n * Describes the message google.protobuf.FieldDescriptorProto.\n * Use `create(FieldDescriptorProtoSchema)` to create a new message.\n */\nexport const FieldDescriptorProtoSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 4);\n/**\n * @generated from enum google.protobuf.FieldDescriptorProto.Type\n */\nexport var FieldDescriptorProto_Type;\n(function (FieldDescriptorProto_Type) {\n /**\n * 0 is reserved for errors.\n * Order is weird for historical reasons.\n *\n * @generated from enum value: TYPE_DOUBLE = 1;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"DOUBLE\"] = 1] = \"DOUBLE\";\n /**\n * @generated from enum value: TYPE_FLOAT = 2;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"FLOAT\"] = 2] = \"FLOAT\";\n /**\n * Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if\n * negative values are likely.\n *\n * @generated from enum value: TYPE_INT64 = 3;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"INT64\"] = 3] = \"INT64\";\n /**\n * @generated from enum value: TYPE_UINT64 = 4;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"UINT64\"] = 4] = \"UINT64\";\n /**\n * Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if\n * negative values are likely.\n *\n * @generated from enum value: TYPE_INT32 = 5;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"INT32\"] = 5] = \"INT32\";\n /**\n * @generated from enum value: TYPE_FIXED64 = 6;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"FIXED64\"] = 6] = \"FIXED64\";\n /**\n * @generated from enum value: TYPE_FIXED32 = 7;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"FIXED32\"] = 7] = \"FIXED32\";\n /**\n * @generated from enum value: TYPE_BOOL = 8;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"BOOL\"] = 8] = \"BOOL\";\n /**\n * @generated from enum value: TYPE_STRING = 9;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"STRING\"] = 9] = \"STRING\";\n /**\n * Tag-delimited aggregate.\n * Group type is deprecated and not supported after google.protobuf. However, Proto3\n * implementations should still be able to parse the group wire format and\n * treat group fields as unknown fields. In Editions, the group wire format\n * can be enabled via the `message_encoding` feature.\n *\n * @generated from enum value: TYPE_GROUP = 10;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"GROUP\"] = 10] = \"GROUP\";\n /**\n * Length-delimited aggregate.\n *\n * @generated from enum value: TYPE_MESSAGE = 11;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"MESSAGE\"] = 11] = \"MESSAGE\";\n /**\n * New in version 2.\n *\n * @generated from enum value: TYPE_BYTES = 12;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"BYTES\"] = 12] = \"BYTES\";\n /**\n * @generated from enum value: TYPE_UINT32 = 13;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"UINT32\"] = 13] = \"UINT32\";\n /**\n * @generated from enum value: TYPE_ENUM = 14;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"ENUM\"] = 14] = \"ENUM\";\n /**\n * @generated from enum value: TYPE_SFIXED32 = 15;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"SFIXED32\"] = 15] = \"SFIXED32\";\n /**\n * @generated from enum value: TYPE_SFIXED64 = 16;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"SFIXED64\"] = 16] = \"SFIXED64\";\n /**\n * Uses ZigZag encoding.\n *\n * @generated from enum value: TYPE_SINT32 = 17;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"SINT32\"] = 17] = \"SINT32\";\n /**\n * Uses ZigZag encoding.\n *\n * @generated from enum value: TYPE_SINT64 = 18;\n */\n FieldDescriptorProto_Type[FieldDescriptorProto_Type[\"SINT64\"] = 18] = \"SINT64\";\n})(FieldDescriptorProto_Type || (FieldDescriptorProto_Type = {}));\n/**\n * Describes the enum google.protobuf.FieldDescriptorProto.Type.\n */\nexport const FieldDescriptorProto_TypeSchema = /*@__PURE__*/ enumDesc(file_google_protobuf_descriptor, 4, 0);\n/**\n * @generated from enum google.protobuf.FieldDescriptorProto.Label\n */\nexport var FieldDescriptorProto_Label;\n(function (FieldDescriptorProto_Label) {\n /**\n * 0 is reserved for errors\n *\n * @generated from enum value: LABEL_OPTIONAL = 1;\n */\n FieldDescriptorProto_Label[FieldDescriptorProto_Label[\"OPTIONAL\"] = 1] = \"OPTIONAL\";\n /**\n * @generated from enum value: LABEL_REPEATED = 3;\n */\n FieldDescriptorProto_Label[FieldDescriptorProto_Label[\"REPEATED\"] = 3] = \"REPEATED\";\n /**\n * The required label is only allowed in google.protobuf. In proto3 and Editions\n * it's explicitly prohibited. In Editions, the `field_presence` feature\n * can be used to get this behavior.\n *\n * @generated from enum value: LABEL_REQUIRED = 2;\n */\n FieldDescriptorProto_Label[FieldDescriptorProto_Label[\"REQUIRED\"] = 2] = \"REQUIRED\";\n})(FieldDescriptorProto_Label || (FieldDescriptorProto_Label = {}));\n/**\n * Describes the enum google.protobuf.FieldDescriptorProto.Label.\n */\nexport const FieldDescriptorProto_LabelSchema = /*@__PURE__*/ enumDesc(file_google_protobuf_descriptor, 4, 1);\n/**\n * Describes the message google.protobuf.OneofDescriptorProto.\n * Use `create(OneofDescriptorProtoSchema)` to create a new message.\n */\nexport const OneofDescriptorProtoSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 5);\n/**\n * Describes the message google.protobuf.EnumDescriptorProto.\n * Use `create(EnumDescriptorProtoSchema)` to create a new message.\n */\nexport const EnumDescriptorProtoSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 6);\n/**\n * Describes the message google.protobuf.EnumDescriptorProto.EnumReservedRange.\n * Use `create(EnumDescriptorProto_EnumReservedRangeSchema)` to create a new message.\n */\nexport const EnumDescriptorProto_EnumReservedRangeSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 6, 0);\n/**\n * Describes the message google.protobuf.EnumValueDescriptorProto.\n * Use `create(EnumValueDescriptorProtoSchema)` to create a new message.\n */\nexport const EnumValueDescriptorProtoSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 7);\n/**\n * Describes the message google.protobuf.ServiceDescriptorProto.\n * Use `create(ServiceDescriptorProtoSchema)` to create a new message.\n */\nexport const ServiceDescriptorProtoSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 8);\n/**\n * Describes the message google.protobuf.MethodDescriptorProto.\n * Use `create(MethodDescriptorProtoSchema)` to create a new message.\n */\nexport const MethodDescriptorProtoSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 9);\n/**\n * Describes the message google.protobuf.FileOptions.\n * Use `create(FileOptionsSchema)` to create a new message.\n */\nexport const FileOptionsSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 10);\n/**\n * Generated classes can be optimized for speed or code size.\n *\n * @generated from enum google.protobuf.FileOptions.OptimizeMode\n */\nexport var FileOptions_OptimizeMode;\n(function (FileOptions_OptimizeMode) {\n /**\n * Generate complete code for parsing, serialization,\n *\n * @generated from enum value: SPEED = 1;\n */\n FileOptions_OptimizeMode[FileOptions_OptimizeMode[\"SPEED\"] = 1] = \"SPEED\";\n /**\n * etc.\n *\n * Use ReflectionOps to implement these methods.\n *\n * @generated from enum value: CODE_SIZE = 2;\n */\n FileOptions_OptimizeMode[FileOptions_OptimizeMode[\"CODE_SIZE\"] = 2] = \"CODE_SIZE\";\n /**\n * Generate code using MessageLite and the lite runtime.\n *\n * @generated from enum value: LITE_RUNTIME = 3;\n */\n FileOptions_OptimizeMode[FileOptions_OptimizeMode[\"LITE_RUNTIME\"] = 3] = \"LITE_RUNTIME\";\n})(FileOptions_OptimizeMode || (FileOptions_OptimizeMode = {}));\n/**\n * Describes the enum google.protobuf.FileOptions.OptimizeMode.\n */\nexport const FileOptions_OptimizeModeSchema = /*@__PURE__*/ enumDesc(file_google_protobuf_descriptor, 10, 0);\n/**\n * Describes the message google.protobuf.MessageOptions.\n * Use `create(MessageOptionsSchema)` to create a new message.\n */\nexport const MessageOptionsSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 11);\n/**\n * Describes the message google.protobuf.FieldOptions.\n * Use `create(FieldOptionsSchema)` to create a new message.\n */\nexport const FieldOptionsSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 12);\n/**\n * Describes the message google.protobuf.FieldOptions.EditionDefault.\n * Use `create(FieldOptions_EditionDefaultSchema)` to create a new message.\n */\nexport const FieldOptions_EditionDefaultSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 12, 0);\n/**\n * Describes the message google.protobuf.FieldOptions.FeatureSupport.\n * Use `create(FieldOptions_FeatureSupportSchema)` to create a new message.\n */\nexport const FieldOptions_FeatureSupportSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 12, 1);\n/**\n * @generated from enum google.protobuf.FieldOptions.CType\n */\nexport var FieldOptions_CType;\n(function (FieldOptions_CType) {\n /**\n * Default mode.\n *\n * @generated from enum value: STRING = 0;\n */\n FieldOptions_CType[FieldOptions_CType[\"STRING\"] = 0] = \"STRING\";\n /**\n * The option [ctype=CORD] may be applied to a non-repeated field of type\n * \"bytes\". It indicates that in C++, the data should be stored in a Cord\n * instead of a string. For very large strings, this may reduce memory\n * fragmentation. It may also allow better performance when parsing from a\n * Cord, or when parsing with aliasing enabled, as the parsed Cord may then\n * alias the original buffer.\n *\n * @generated from enum value: CORD = 1;\n */\n FieldOptions_CType[FieldOptions_CType[\"CORD\"] = 1] = \"CORD\";\n /**\n * @generated from enum value: STRING_PIECE = 2;\n */\n FieldOptions_CType[FieldOptions_CType[\"STRING_PIECE\"] = 2] = \"STRING_PIECE\";\n})(FieldOptions_CType || (FieldOptions_CType = {}));\n/**\n * Describes the enum google.protobuf.FieldOptions.CType.\n */\nexport const FieldOptions_CTypeSchema = /*@__PURE__*/ enumDesc(file_google_protobuf_descriptor, 12, 0);\n/**\n * @generated from enum google.protobuf.FieldOptions.JSType\n */\nexport var FieldOptions_JSType;\n(function (FieldOptions_JSType) {\n /**\n * Use the default type.\n *\n * @generated from enum value: JS_NORMAL = 0;\n */\n FieldOptions_JSType[FieldOptions_JSType[\"JS_NORMAL\"] = 0] = \"JS_NORMAL\";\n /**\n * Use JavaScript strings.\n *\n * @generated from enum value: JS_STRING = 1;\n */\n FieldOptions_JSType[FieldOptions_JSType[\"JS_STRING\"] = 1] = \"JS_STRING\";\n /**\n * Use JavaScript numbers.\n *\n * @generated from enum value: JS_NUMBER = 2;\n */\n FieldOptions_JSType[FieldOptions_JSType[\"JS_NUMBER\"] = 2] = \"JS_NUMBER\";\n})(FieldOptions_JSType || (FieldOptions_JSType = {}));\n/**\n * Describes the enum google.protobuf.FieldOptions.JSType.\n */\nexport const FieldOptions_JSTypeSchema = /*@__PURE__*/ enumDesc(file_google_protobuf_descriptor, 12, 1);\n/**\n * If set to RETENTION_SOURCE, the option will be omitted from the binary.\n *\n * @generated from enum google.protobuf.FieldOptions.OptionRetention\n */\nexport var FieldOptions_OptionRetention;\n(function (FieldOptions_OptionRetention) {\n /**\n * @generated from enum value: RETENTION_UNKNOWN = 0;\n */\n FieldOptions_OptionRetention[FieldOptions_OptionRetention[\"RETENTION_UNKNOWN\"] = 0] = \"RETENTION_UNKNOWN\";\n /**\n * @generated from enum value: RETENTION_RUNTIME = 1;\n */\n FieldOptions_OptionRetention[FieldOptions_OptionRetention[\"RETENTION_RUNTIME\"] = 1] = \"RETENTION_RUNTIME\";\n /**\n * @generated from enum value: RETENTION_SOURCE = 2;\n */\n FieldOptions_OptionRetention[FieldOptions_OptionRetention[\"RETENTION_SOURCE\"] = 2] = \"RETENTION_SOURCE\";\n})(FieldOptions_OptionRetention || (FieldOptions_OptionRetention = {}));\n/**\n * Describes the enum google.protobuf.FieldOptions.OptionRetention.\n */\nexport const FieldOptions_OptionRetentionSchema = /*@__PURE__*/ enumDesc(file_google_protobuf_descriptor, 12, 2);\n/**\n * This indicates the types of entities that the field may apply to when used\n * as an option. If it is unset, then the field may be freely used as an\n * option on any kind of entity.\n *\n * @generated from enum google.protobuf.FieldOptions.OptionTargetType\n */\nexport var FieldOptions_OptionTargetType;\n(function (FieldOptions_OptionTargetType) {\n /**\n * @generated from enum value: TARGET_TYPE_UNKNOWN = 0;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_UNKNOWN\"] = 0] = \"TARGET_TYPE_UNKNOWN\";\n /**\n * @generated from enum value: TARGET_TYPE_FILE = 1;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_FILE\"] = 1] = \"TARGET_TYPE_FILE\";\n /**\n * @generated from enum value: TARGET_TYPE_EXTENSION_RANGE = 2;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_EXTENSION_RANGE\"] = 2] = \"TARGET_TYPE_EXTENSION_RANGE\";\n /**\n * @generated from enum value: TARGET_TYPE_MESSAGE = 3;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_MESSAGE\"] = 3] = \"TARGET_TYPE_MESSAGE\";\n /**\n * @generated from enum value: TARGET_TYPE_FIELD = 4;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_FIELD\"] = 4] = \"TARGET_TYPE_FIELD\";\n /**\n * @generated from enum value: TARGET_TYPE_ONEOF = 5;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_ONEOF\"] = 5] = \"TARGET_TYPE_ONEOF\";\n /**\n * @generated from enum value: TARGET_TYPE_ENUM = 6;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_ENUM\"] = 6] = \"TARGET_TYPE_ENUM\";\n /**\n * @generated from enum value: TARGET_TYPE_ENUM_ENTRY = 7;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_ENUM_ENTRY\"] = 7] = \"TARGET_TYPE_ENUM_ENTRY\";\n /**\n * @generated from enum value: TARGET_TYPE_SERVICE = 8;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_SERVICE\"] = 8] = \"TARGET_TYPE_SERVICE\";\n /**\n * @generated from enum value: TARGET_TYPE_METHOD = 9;\n */\n FieldOptions_OptionTargetType[FieldOptions_OptionTargetType[\"TARGET_TYPE_METHOD\"] = 9] = \"TARGET_TYPE_METHOD\";\n})(FieldOptions_OptionTargetType || (FieldOptions_OptionTargetType = {}));\n/**\n * Describes the enum google.protobuf.FieldOptions.OptionTargetType.\n */\nexport const FieldOptions_OptionTargetTypeSchema = /*@__PURE__*/ enumDesc(file_google_protobuf_descriptor, 12, 3);\n/**\n * Describes the message google.protobuf.OneofOptions.\n * Use `create(OneofOptionsSchema)` to create a new message.\n */\nexport const OneofOptionsSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 13);\n/**\n * Describes the message google.protobuf.EnumOptions.\n * Use `create(EnumOptionsSchema)` to create a new message.\n */\nexport const EnumOptionsSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 14);\n/**\n * Describes the message google.protobuf.EnumValueOptions.\n * Use `create(EnumValueOptionsSchema)` to create a new message.\n */\nexport const EnumValueOptionsSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 15);\n/**\n * Describes the message google.protobuf.ServiceOptions.\n * Use `create(ServiceOptionsSchema)` to create a new message.\n */\nexport const ServiceOptionsSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 16);\n/**\n * Describes the message google.protobuf.MethodOptions.\n * Use `create(MethodOptionsSchema)` to create a new message.\n */\nexport const MethodOptionsSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 17);\n/**\n * Is this method side-effect-free (or safe in HTTP parlance), or idempotent,\n * or neither? HTTP based RPC implementation may choose GET verb for safe\n * methods, and PUT verb for idempotent methods instead of the default POST.\n *\n * @generated from enum google.protobuf.MethodOptions.IdempotencyLevel\n */\nexport var MethodOptions_IdempotencyLevel;\n(function (MethodOptions_IdempotencyLevel) {\n /**\n * @generated from enum value: IDEMPOTENCY_UNKNOWN = 0;\n */\n MethodOptions_IdempotencyLevel[MethodOptions_IdempotencyLevel[\"IDEMPOTENCY_UNKNOWN\"] = 0] = \"IDEMPOTENCY_UNKNOWN\";\n /**\n * implies idempotent\n *\n * @generated from enum value: NO_SIDE_EFFECTS = 1;\n */\n MethodOptions_IdempotencyLevel[MethodOptions_IdempotencyLevel[\"NO_SIDE_EFFECTS\"] = 1] = \"NO_SIDE_EFFECTS\";\n /**\n * idempotent, but may have side effects\n *\n * @generated from enum value: IDEMPOTENT = 2;\n */\n MethodOptions_IdempotencyLevel[MethodOptions_IdempotencyLevel[\"IDEMPOTENT\"] = 2] = \"IDEMPOTENT\";\n})(MethodOptions_IdempotencyLevel || (MethodOptions_IdempotencyLevel = {}));\n/**\n * Describes the enum google.protobuf.MethodOptions.IdempotencyLevel.\n */\nexport const MethodOptions_IdempotencyLevelSchema = /*@__PURE__*/ enumDesc(file_google_protobuf_descriptor, 17, 0);\n/**\n * Describes the message google.protobuf.UninterpretedOption.\n * Use `create(UninterpretedOptionSchema)` to create a new message.\n */\nexport const UninterpretedOptionSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 18);\n/**\n * Describes the message google.protobuf.UninterpretedOption.NamePart.\n * Use `create(UninterpretedOption_NamePartSchema)` to create a new message.\n */\nexport const UninterpretedOption_NamePartSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 18, 0);\n/**\n * Describes the message google.protobuf.FeatureSet.\n * Use `create(FeatureSetSchema)` to create a new message.\n */\nexport const FeatureSetSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 19);\n/**\n * Describes the message google.protobuf.FeatureSet.VisibilityFeature.\n * Use `create(FeatureSet_VisibilityFeatureSchema)` to create a new message.\n */\nexport const FeatureSet_VisibilityFeatureSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 19, 0);\n/**\n * @generated from enum google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility\n */\nexport var FeatureSet_VisibilityFeature_DefaultSymbolVisibility;\n(function (FeatureSet_VisibilityFeature_DefaultSymbolVisibility) {\n /**\n * @generated from enum value: DEFAULT_SYMBOL_VISIBILITY_UNKNOWN = 0;\n */\n FeatureSet_VisibilityFeature_DefaultSymbolVisibility[FeatureSet_VisibilityFeature_DefaultSymbolVisibility[\"DEFAULT_SYMBOL_VISIBILITY_UNKNOWN\"] = 0] = \"DEFAULT_SYMBOL_VISIBILITY_UNKNOWN\";\n /**\n * Default pre-EDITION_2024, all UNSET visibility are export.\n *\n * @generated from enum value: EXPORT_ALL = 1;\n */\n FeatureSet_VisibilityFeature_DefaultSymbolVisibility[FeatureSet_VisibilityFeature_DefaultSymbolVisibility[\"EXPORT_ALL\"] = 1] = \"EXPORT_ALL\";\n /**\n * All top-level symbols default to export, nested default to local.\n *\n * @generated from enum value: EXPORT_TOP_LEVEL = 2;\n */\n FeatureSet_VisibilityFeature_DefaultSymbolVisibility[FeatureSet_VisibilityFeature_DefaultSymbolVisibility[\"EXPORT_TOP_LEVEL\"] = 2] = \"EXPORT_TOP_LEVEL\";\n /**\n * All symbols default to local.\n *\n * @generated from enum value: LOCAL_ALL = 3;\n */\n FeatureSet_VisibilityFeature_DefaultSymbolVisibility[FeatureSet_VisibilityFeature_DefaultSymbolVisibility[\"LOCAL_ALL\"] = 3] = \"LOCAL_ALL\";\n /**\n * All symbols local by default. Nested types cannot be exported.\n * With special case caveat for message { enum {} reserved 1 to max; }\n * This is the recommended setting for new protos.\n *\n * @generated from enum value: STRICT = 4;\n */\n FeatureSet_VisibilityFeature_DefaultSymbolVisibility[FeatureSet_VisibilityFeature_DefaultSymbolVisibility[\"STRICT\"] = 4] = \"STRICT\";\n})(FeatureSet_VisibilityFeature_DefaultSymbolVisibility || (FeatureSet_VisibilityFeature_DefaultSymbolVisibility = {}));\n/**\n * Describes the enum google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility.\n */\nexport const FeatureSet_VisibilityFeature_DefaultSymbolVisibilitySchema = /*@__PURE__*/ enumDesc(file_google_protobuf_descriptor, 19, 0, 0);\n/**\n * @generated from enum google.protobuf.FeatureSet.FieldPresence\n */\nexport var FeatureSet_FieldPresence;\n(function (FeatureSet_FieldPresence) {\n /**\n * @generated from enum value: FIELD_PRESENCE_UNKNOWN = 0;\n */\n FeatureSet_FieldPresence[FeatureSet_FieldPresence[\"FIELD_PRESENCE_UNKNOWN\"] = 0] = \"FIELD_PRESENCE_UNKNOWN\";\n /**\n * @generated from enum value: EXPLICIT = 1;\n */\n FeatureSet_FieldPresence[FeatureSet_FieldPresence[\"EXPLICIT\"] = 1] = \"EXPLICIT\";\n /**\n * @generated from enum value: IMPLICIT = 2;\n */\n FeatureSet_FieldPresence[FeatureSet_FieldPresence[\"IMPLICIT\"] = 2] = \"IMPLICIT\";\n /**\n * @generated from enum value: LEGACY_REQUIRED = 3;\n */\n FeatureSet_FieldPresence[FeatureSet_FieldPresence[\"LEGACY_REQUIRED\"] = 3] = \"LEGACY_REQUIRED\";\n})(FeatureSet_FieldPresence || (FeatureSet_FieldPresence = {}));\n/**\n * Describes the enum google.protobuf.FeatureSet.FieldPresence.\n */\nexport const FeatureSet_FieldPresenceSchema = /*@__PURE__*/ enumDesc(file_google_protobuf_descriptor, 19, 0);\n/**\n * @generated from enum google.protobuf.FeatureSet.EnumType\n */\nexport var FeatureSet_EnumType;\n(function (FeatureSet_EnumType) {\n /**\n * @generated from enum value: ENUM_TYPE_UNKNOWN = 0;\n */\n FeatureSet_EnumType[FeatureSet_EnumType[\"ENUM_TYPE_UNKNOWN\"] = 0] = \"ENUM_TYPE_UNKNOWN\";\n /**\n * @generated from enum value: OPEN = 1;\n */\n FeatureSet_EnumType[FeatureSet_EnumType[\"OPEN\"] = 1] = \"OPEN\";\n /**\n * @generated from enum value: CLOSED = 2;\n */\n FeatureSet_EnumType[FeatureSet_EnumType[\"CLOSED\"] = 2] = \"CLOSED\";\n})(FeatureSet_EnumType || (FeatureSet_EnumType = {}));\n/**\n * Describes the enum google.protobuf.FeatureSet.EnumType.\n */\nexport const FeatureSet_EnumTypeSchema = /*@__PURE__*/ enumDesc(file_google_protobuf_descriptor, 19, 1);\n/**\n * @generated from enum google.protobuf.FeatureSet.RepeatedFieldEncoding\n */\nexport var FeatureSet_RepeatedFieldEncoding;\n(function (FeatureSet_RepeatedFieldEncoding) {\n /**\n * @generated from enum value: REPEATED_FIELD_ENCODING_UNKNOWN = 0;\n */\n FeatureSet_RepeatedFieldEncoding[FeatureSet_RepeatedFieldEncoding[\"REPEATED_FIELD_ENCODING_UNKNOWN\"] = 0] = \"REPEATED_FIELD_ENCODING_UNKNOWN\";\n /**\n * @generated from enum value: PACKED = 1;\n */\n FeatureSet_RepeatedFieldEncoding[FeatureSet_RepeatedFieldEncoding[\"PACKED\"] = 1] = \"PACKED\";\n /**\n * @generated from enum value: EXPANDED = 2;\n */\n FeatureSet_RepeatedFieldEncoding[FeatureSet_RepeatedFieldEncoding[\"EXPANDED\"] = 2] = \"EXPANDED\";\n})(FeatureSet_RepeatedFieldEncoding || (FeatureSet_RepeatedFieldEncoding = {}));\n/**\n * Describes the enum google.protobuf.FeatureSet.RepeatedFieldEncoding.\n */\nexport const FeatureSet_RepeatedFieldEncodingSchema = /*@__PURE__*/ enumDesc(file_google_protobuf_descriptor, 19, 2);\n/**\n * @generated from enum google.protobuf.FeatureSet.Utf8Validation\n */\nexport var FeatureSet_Utf8Validation;\n(function (FeatureSet_Utf8Validation) {\n /**\n * @generated from enum value: UTF8_VALIDATION_UNKNOWN = 0;\n */\n FeatureSet_Utf8Validation[FeatureSet_Utf8Validation[\"UTF8_VALIDATION_UNKNOWN\"] = 0] = \"UTF8_VALIDATION_UNKNOWN\";\n /**\n * @generated from enum value: VERIFY = 2;\n */\n FeatureSet_Utf8Validation[FeatureSet_Utf8Validation[\"VERIFY\"] = 2] = \"VERIFY\";\n /**\n * @generated from enum value: NONE = 3;\n */\n FeatureSet_Utf8Validation[FeatureSet_Utf8Validation[\"NONE\"] = 3] = \"NONE\";\n})(FeatureSet_Utf8Validation || (FeatureSet_Utf8Validation = {}));\n/**\n * Describes the enum google.protobuf.FeatureSet.Utf8Validation.\n */\nexport const FeatureSet_Utf8ValidationSchema = /*@__PURE__*/ enumDesc(file_google_protobuf_descriptor, 19, 3);\n/**\n * @generated from enum google.protobuf.FeatureSet.MessageEncoding\n */\nexport var FeatureSet_MessageEncoding;\n(function (FeatureSet_MessageEncoding) {\n /**\n * @generated from enum value: MESSAGE_ENCODING_UNKNOWN = 0;\n */\n FeatureSet_MessageEncoding[FeatureSet_MessageEncoding[\"MESSAGE_ENCODING_UNKNOWN\"] = 0] = \"MESSAGE_ENCODING_UNKNOWN\";\n /**\n * @generated from enum value: LENGTH_PREFIXED = 1;\n */\n FeatureSet_MessageEncoding[FeatureSet_MessageEncoding[\"LENGTH_PREFIXED\"] = 1] = \"LENGTH_PREFIXED\";\n /**\n * @generated from enum value: DELIMITED = 2;\n */\n FeatureSet_MessageEncoding[FeatureSet_MessageEncoding[\"DELIMITED\"] = 2] = \"DELIMITED\";\n})(FeatureSet_MessageEncoding || (FeatureSet_MessageEncoding = {}));\n/**\n * Describes the enum google.protobuf.FeatureSet.MessageEncoding.\n */\nexport const FeatureSet_MessageEncodingSchema = /*@__PURE__*/ enumDesc(file_google_protobuf_descriptor, 19, 4);\n/**\n * @generated from enum google.protobuf.FeatureSet.JsonFormat\n */\nexport var FeatureSet_JsonFormat;\n(function (FeatureSet_JsonFormat) {\n /**\n * @generated from enum value: JSON_FORMAT_UNKNOWN = 0;\n */\n FeatureSet_JsonFormat[FeatureSet_JsonFormat[\"JSON_FORMAT_UNKNOWN\"] = 0] = \"JSON_FORMAT_UNKNOWN\";\n /**\n * @generated from enum value: ALLOW = 1;\n */\n FeatureSet_JsonFormat[FeatureSet_JsonFormat[\"ALLOW\"] = 1] = \"ALLOW\";\n /**\n * @generated from enum value: LEGACY_BEST_EFFORT = 2;\n */\n FeatureSet_JsonFormat[FeatureSet_JsonFormat[\"LEGACY_BEST_EFFORT\"] = 2] = \"LEGACY_BEST_EFFORT\";\n})(FeatureSet_JsonFormat || (FeatureSet_JsonFormat = {}));\n/**\n * Describes the enum google.protobuf.FeatureSet.JsonFormat.\n */\nexport const FeatureSet_JsonFormatSchema = /*@__PURE__*/ enumDesc(file_google_protobuf_descriptor, 19, 5);\n/**\n * @generated from enum google.protobuf.FeatureSet.EnforceNamingStyle\n */\nexport var FeatureSet_EnforceNamingStyle;\n(function (FeatureSet_EnforceNamingStyle) {\n /**\n * @generated from enum value: ENFORCE_NAMING_STYLE_UNKNOWN = 0;\n */\n FeatureSet_EnforceNamingStyle[FeatureSet_EnforceNamingStyle[\"ENFORCE_NAMING_STYLE_UNKNOWN\"] = 0] = \"ENFORCE_NAMING_STYLE_UNKNOWN\";\n /**\n * @generated from enum value: STYLE2024 = 1;\n */\n FeatureSet_EnforceNamingStyle[FeatureSet_EnforceNamingStyle[\"STYLE2024\"] = 1] = \"STYLE2024\";\n /**\n * @generated from enum value: STYLE_LEGACY = 2;\n */\n FeatureSet_EnforceNamingStyle[FeatureSet_EnforceNamingStyle[\"STYLE_LEGACY\"] = 2] = \"STYLE_LEGACY\";\n})(FeatureSet_EnforceNamingStyle || (FeatureSet_EnforceNamingStyle = {}));\n/**\n * Describes the enum google.protobuf.FeatureSet.EnforceNamingStyle.\n */\nexport const FeatureSet_EnforceNamingStyleSchema = /*@__PURE__*/ enumDesc(file_google_protobuf_descriptor, 19, 6);\n/**\n * Describes the message google.protobuf.FeatureSetDefaults.\n * Use `create(FeatureSetDefaultsSchema)` to create a new message.\n */\nexport const FeatureSetDefaultsSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 20);\n/**\n * Describes the message google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.\n * Use `create(FeatureSetDefaults_FeatureSetEditionDefaultSchema)` to create a new message.\n */\nexport const FeatureSetDefaults_FeatureSetEditionDefaultSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 20, 0);\n/**\n * Describes the message google.protobuf.SourceCodeInfo.\n * Use `create(SourceCodeInfoSchema)` to create a new message.\n */\nexport const SourceCodeInfoSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 21);\n/**\n * Describes the message google.protobuf.SourceCodeInfo.Location.\n * Use `create(SourceCodeInfo_LocationSchema)` to create a new message.\n */\nexport const SourceCodeInfo_LocationSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 21, 0);\n/**\n * Describes the message google.protobuf.GeneratedCodeInfo.\n * Use `create(GeneratedCodeInfoSchema)` to create a new message.\n */\nexport const GeneratedCodeInfoSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 22);\n/**\n * Describes the message google.protobuf.GeneratedCodeInfo.Annotation.\n * Use `create(GeneratedCodeInfo_AnnotationSchema)` to create a new message.\n */\nexport const GeneratedCodeInfo_AnnotationSchema = /*@__PURE__*/ messageDesc(file_google_protobuf_descriptor, 22, 0);\n/**\n * Represents the identified object's effect on the element in the original\n * .proto file.\n *\n * @generated from enum google.protobuf.GeneratedCodeInfo.Annotation.Semantic\n */\nexport var GeneratedCodeInfo_Annotation_Semantic;\n(function (GeneratedCodeInfo_Annotation_Semantic) {\n /**\n * There is no effect or the effect is indescribable.\n *\n * @generated from enum value: NONE = 0;\n */\n GeneratedCodeInfo_Annotation_Semantic[GeneratedCodeInfo_Annotation_Semantic[\"NONE\"] = 0] = \"NONE\";\n /**\n * The element is set or otherwise mutated.\n *\n * @generated from enum value: SET = 1;\n */\n GeneratedCodeInfo_Annotation_Semantic[GeneratedCodeInfo_Annotation_Semantic[\"SET\"] = 1] = \"SET\";\n /**\n * An alias to the element is returned.\n *\n * @generated from enum value: ALIAS = 2;\n */\n GeneratedCodeInfo_Annotation_Semantic[GeneratedCodeInfo_Annotation_Semantic[\"ALIAS\"] = 2] = \"ALIAS\";\n})(GeneratedCodeInfo_Annotation_Semantic || (GeneratedCodeInfo_Annotation_Semantic = {}));\n/**\n * Describes the enum google.protobuf.GeneratedCodeInfo.Annotation.Semantic.\n */\nexport const GeneratedCodeInfo_Annotation_SemanticSchema = /*@__PURE__*/ enumDesc(file_google_protobuf_descriptor, 22, 0, 0);\n/**\n * The full set of known editions.\n *\n * @generated from enum google.protobuf.Edition\n */\nexport var Edition;\n(function (Edition) {\n /**\n * A placeholder for an unknown edition value.\n *\n * @generated from enum value: EDITION_UNKNOWN = 0;\n */\n Edition[Edition[\"EDITION_UNKNOWN\"] = 0] = \"EDITION_UNKNOWN\";\n /**\n * A placeholder edition for specifying default behaviors *before* a feature\n * was first introduced. This is effectively an \"infinite past\".\n *\n * @generated from enum value: EDITION_LEGACY = 900;\n */\n Edition[Edition[\"EDITION_LEGACY\"] = 900] = \"EDITION_LEGACY\";\n /**\n * Legacy syntax \"editions\". These pre-date editions, but behave much like\n * distinct editions. These can't be used to specify the edition of proto\n * files, but feature definitions must supply proto2/proto3 defaults for\n * backwards compatibility.\n *\n * @generated from enum value: EDITION_PROTO2 = 998;\n */\n Edition[Edition[\"EDITION_PROTO2\"] = 998] = \"EDITION_PROTO2\";\n /**\n * @generated from enum value: EDITION_PROTO3 = 999;\n */\n Edition[Edition[\"EDITION_PROTO3\"] = 999] = \"EDITION_PROTO3\";\n /**\n * Editions that have been released. The specific values are arbitrary and\n * should not be depended on, but they will always be time-ordered for easy\n * comparison.\n *\n * @generated from enum value: EDITION_2023 = 1000;\n */\n Edition[Edition[\"EDITION_2023\"] = 1000] = \"EDITION_2023\";\n /**\n * @generated from enum value: EDITION_2024 = 1001;\n */\n Edition[Edition[\"EDITION_2024\"] = 1001] = \"EDITION_2024\";\n /**\n * Placeholder editions for testing feature resolution. These should not be\n * used or relied on outside of tests.\n *\n * @generated from enum value: EDITION_1_TEST_ONLY = 1;\n */\n Edition[Edition[\"EDITION_1_TEST_ONLY\"] = 1] = \"EDITION_1_TEST_ONLY\";\n /**\n * @generated from enum value: EDITION_2_TEST_ONLY = 2;\n */\n Edition[Edition[\"EDITION_2_TEST_ONLY\"] = 2] = \"EDITION_2_TEST_ONLY\";\n /**\n * @generated from enum value: EDITION_99997_TEST_ONLY = 99997;\n */\n Edition[Edition[\"EDITION_99997_TEST_ONLY\"] = 99997] = \"EDITION_99997_TEST_ONLY\";\n /**\n * @generated from enum value: EDITION_99998_TEST_ONLY = 99998;\n */\n Edition[Edition[\"EDITION_99998_TEST_ONLY\"] = 99998] = \"EDITION_99998_TEST_ONLY\";\n /**\n * @generated from enum value: EDITION_99999_TEST_ONLY = 99999;\n */\n Edition[Edition[\"EDITION_99999_TEST_ONLY\"] = 99999] = \"EDITION_99999_TEST_ONLY\";\n /**\n * Placeholder for specifying unbounded edition support. This should only\n * ever be used by plugins that can expect to never require any changes to\n * support a new edition.\n *\n * @generated from enum value: EDITION_MAX = 2147483647;\n */\n Edition[Edition[\"EDITION_MAX\"] = 2147483647] = \"EDITION_MAX\";\n})(Edition || (Edition = {}));\n/**\n * Describes the enum google.protobuf.Edition.\n */\nexport const EditionSchema = /*@__PURE__*/ enumDesc(file_google_protobuf_descriptor, 0);\n/**\n * Describes the 'visibility' of a symbol with respect to the proto import\n * system. Symbols can only be imported when the visibility rules do not prevent\n * it (ex: local symbols cannot be imported). Visibility modifiers can only set\n * on `message` and `enum` as they are the only types available to be referenced\n * from other files.\n *\n * @generated from enum google.protobuf.SymbolVisibility\n */\nexport var SymbolVisibility;\n(function (SymbolVisibility) {\n /**\n * @generated from enum value: VISIBILITY_UNSET = 0;\n */\n SymbolVisibility[SymbolVisibility[\"VISIBILITY_UNSET\"] = 0] = \"VISIBILITY_UNSET\";\n /**\n * @generated from enum value: VISIBILITY_LOCAL = 1;\n */\n SymbolVisibility[SymbolVisibility[\"VISIBILITY_LOCAL\"] = 1] = \"VISIBILITY_LOCAL\";\n /**\n * @generated from enum value: VISIBILITY_EXPORT = 2;\n */\n SymbolVisibility[SymbolVisibility[\"VISIBILITY_EXPORT\"] = 2] = \"VISIBILITY_EXPORT\";\n})(SymbolVisibility || (SymbolVisibility = {}));\n/**\n * Describes the enum google.protobuf.SymbolVisibility.\n */\nexport const SymbolVisibilitySchema = /*@__PURE__*/ enumDesc(file_google_protobuf_descriptor, 1);\n",
|
|
31
|
+
"// Copyright 2021-2025 Buf Technologies, Inc.\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.\nimport { ScalarType } from \"./descriptors.js\";\nimport { scalarZeroValue } from \"./reflect/scalar.js\";\nimport { reflect } from \"./reflect/reflect.js\";\nimport { BinaryReader, WireType } from \"./wire/binary-encoding.js\";\nimport { varint32write } from \"./wire/varint.js\";\n// Default options for parsing binary data.\nconst readDefaults = {\n readUnknownFields: true,\n};\nfunction makeReadOptions(options) {\n return options ? Object.assign(Object.assign({}, readDefaults), options) : readDefaults;\n}\n/**\n * Parse serialized binary data.\n */\nexport function fromBinary(schema, bytes, options) {\n const msg = reflect(schema, undefined, false);\n readMessage(msg, new BinaryReader(bytes), makeReadOptions(options), false, bytes.byteLength);\n return msg.message;\n}\n/**\n * Parse from binary data, merging fields.\n *\n * Repeated fields are appended. Map entries are added, overwriting\n * existing keys.\n *\n * If a message field is already present, it will be merged with the\n * new data.\n */\nexport function mergeFromBinary(schema, target, bytes, options) {\n readMessage(reflect(schema, target, false), new BinaryReader(bytes), makeReadOptions(options), false, bytes.byteLength);\n return target;\n}\n/**\n * If `delimited` is false, read the length given in `lengthOrDelimitedFieldNo`.\n *\n * If `delimited` is true, read until an EndGroup tag. `lengthOrDelimitedFieldNo`\n * is the expected field number.\n *\n * @private\n */\nfunction readMessage(message, reader, options, delimited, lengthOrDelimitedFieldNo) {\n var _a;\n const end = delimited ? reader.len : reader.pos + lengthOrDelimitedFieldNo;\n let fieldNo;\n let wireType;\n const unknownFields = (_a = message.getUnknown()) !== null && _a !== void 0 ? _a : [];\n while (reader.pos < end) {\n [fieldNo, wireType] = reader.tag();\n if (delimited && wireType == WireType.EndGroup) {\n break;\n }\n const field = message.findNumber(fieldNo);\n if (!field) {\n const data = reader.skip(wireType, fieldNo);\n if (options.readUnknownFields) {\n unknownFields.push({ no: fieldNo, wireType, data });\n }\n continue;\n }\n readField(message, reader, field, wireType, options);\n }\n if (delimited) {\n if (wireType != WireType.EndGroup || fieldNo !== lengthOrDelimitedFieldNo) {\n throw new Error(\"invalid end group tag\");\n }\n }\n if (unknownFields.length > 0) {\n message.setUnknown(unknownFields);\n }\n}\n/**\n * @private\n */\nexport function readField(message, reader, field, wireType, options) {\n var _a;\n switch (field.fieldKind) {\n case \"scalar\":\n message.set(field, readScalar(reader, field.scalar));\n break;\n case \"enum\":\n const val = readScalar(reader, ScalarType.INT32);\n if (field.enum.open) {\n message.set(field, val);\n }\n else {\n const ok = field.enum.values.some((v) => v.number === val);\n if (ok) {\n message.set(field, val);\n }\n else if (options.readUnknownFields) {\n const bytes = [];\n varint32write(val, bytes);\n const unknownFields = (_a = message.getUnknown()) !== null && _a !== void 0 ? _a : [];\n unknownFields.push({\n no: field.number,\n wireType,\n data: new Uint8Array(bytes),\n });\n message.setUnknown(unknownFields);\n }\n }\n break;\n case \"message\":\n message.set(field, readMessageField(reader, options, field, message.get(field)));\n break;\n case \"list\":\n readListField(reader, wireType, message.get(field), options);\n break;\n case \"map\":\n readMapEntry(reader, message.get(field), options);\n break;\n }\n}\n// Read a map field, expecting key field = 1, value field = 2\nfunction readMapEntry(reader, map, options) {\n const field = map.field();\n let key;\n let val;\n // Read the length of the map entry, which is a varint.\n const len = reader.uint32();\n // WARNING: Calculate end AFTER advancing reader.pos (above), so that\n // reader.pos is at the start of the map entry.\n const end = reader.pos + len;\n while (reader.pos < end) {\n const [fieldNo] = reader.tag();\n switch (fieldNo) {\n case 1:\n key = readScalar(reader, field.mapKey);\n break;\n case 2:\n switch (field.mapKind) {\n case \"scalar\":\n val = readScalar(reader, field.scalar);\n break;\n case \"enum\":\n val = reader.int32();\n break;\n case \"message\":\n val = readMessageField(reader, options, field);\n break;\n }\n break;\n }\n }\n if (key === undefined) {\n key = scalarZeroValue(field.mapKey, false);\n }\n if (val === undefined) {\n switch (field.mapKind) {\n case \"scalar\":\n val = scalarZeroValue(field.scalar, false);\n break;\n case \"enum\":\n val = field.enum.values[0].number;\n break;\n case \"message\":\n val = reflect(field.message, undefined, false);\n break;\n }\n }\n map.set(key, val);\n}\nfunction readListField(reader, wireType, list, options) {\n var _a;\n const field = list.field();\n if (field.listKind === \"message\") {\n list.add(readMessageField(reader, options, field));\n return;\n }\n const scalarType = (_a = field.scalar) !== null && _a !== void 0 ? _a : ScalarType.INT32;\n const packed = wireType == WireType.LengthDelimited &&\n scalarType != ScalarType.STRING &&\n scalarType != ScalarType.BYTES;\n if (!packed) {\n list.add(readScalar(reader, scalarType));\n return;\n }\n const e = reader.uint32() + reader.pos;\n while (reader.pos < e) {\n list.add(readScalar(reader, scalarType));\n }\n}\nfunction readMessageField(reader, options, field, mergeMessage) {\n const delimited = field.delimitedEncoding;\n const message = mergeMessage !== null && mergeMessage !== void 0 ? mergeMessage : reflect(field.message, undefined, false);\n readMessage(message, reader, options, delimited, delimited ? field.number : reader.uint32());\n return message;\n}\nfunction readScalar(reader, type) {\n switch (type) {\n case ScalarType.STRING:\n return reader.string();\n case ScalarType.BOOL:\n return reader.bool();\n case ScalarType.DOUBLE:\n return reader.double();\n case ScalarType.FLOAT:\n return reader.float();\n case ScalarType.INT32:\n return reader.int32();\n case ScalarType.INT64:\n return reader.int64();\n case ScalarType.UINT64:\n return reader.uint64();\n case ScalarType.FIXED64:\n return reader.fixed64();\n case ScalarType.BYTES:\n return reader.bytes();\n case ScalarType.FIXED32:\n return reader.fixed32();\n case ScalarType.SFIXED32:\n return reader.sfixed32();\n case ScalarType.SFIXED64:\n return reader.sfixed64();\n case ScalarType.SINT64:\n return reader.sint64();\n case ScalarType.UINT32:\n return reader.uint32();\n case ScalarType.SINT32:\n return reader.sint32();\n }\n}\n",
|
|
32
|
+
"// Copyright 2021-2025 Buf Technologies, Inc.\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.\nimport { base64Decode } from \"../wire/base64-encoding.js\";\nimport { FileDescriptorProtoSchema } from \"../wkt/gen/google/protobuf/descriptor_pb.js\";\nimport { createFileRegistry } from \"../registry.js\";\nimport { restoreJsonNames } from \"./restore-json-names.js\";\nimport { fromBinary } from \"../from-binary.js\";\n/**\n * Hydrate a file descriptor.\n *\n * @private\n */\nexport function fileDesc(b64, imports) {\n var _a;\n const root = fromBinary(FileDescriptorProtoSchema, base64Decode(b64));\n root.messageType.forEach(restoreJsonNames);\n root.dependency = (_a = imports === null || imports === void 0 ? void 0 : imports.map((f) => f.proto.name)) !== null && _a !== void 0 ? _a : [];\n const reg = createFileRegistry(root, (protoFileName) => imports === null || imports === void 0 ? void 0 : imports.find((f) => f.proto.name === protoFileName));\n // biome-ignore lint/style/noNonNullAssertion: non-null assertion because we just created the registry from the file we look up\n return reg.getFile(root.name);\n}\n",
|
|
33
|
+
"// Copyright 2021-2025 Buf Technologies, Inc.\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.\nimport { reflect } from \"./reflect/reflect.js\";\nimport { BinaryWriter, WireType } from \"./wire/binary-encoding.js\";\nimport { ScalarType } from \"./descriptors.js\";\n// bootstrap-inject google.protobuf.FeatureSet.FieldPresence.LEGACY_REQUIRED: const $name: FeatureSet_FieldPresence.$localName = $number;\nconst LEGACY_REQUIRED = 3;\n// Default options for serializing binary data.\nconst writeDefaults = {\n writeUnknownFields: true,\n};\nfunction makeWriteOptions(options) {\n return options ? Object.assign(Object.assign({}, writeDefaults), options) : writeDefaults;\n}\nexport function toBinary(schema, message, options) {\n return writeFields(new BinaryWriter(), makeWriteOptions(options), reflect(schema, message)).finish();\n}\nfunction writeFields(writer, opts, msg) {\n var _a;\n for (const f of msg.sortedFields) {\n if (!msg.isSet(f)) {\n if (f.presence == LEGACY_REQUIRED) {\n throw new Error(`cannot encode ${f} to binary: required field not set`);\n }\n continue;\n }\n writeField(writer, opts, msg, f);\n }\n if (opts.writeUnknownFields) {\n for (const { no, wireType, data } of (_a = msg.getUnknown()) !== null && _a !== void 0 ? _a : []) {\n writer.tag(no, wireType).raw(data);\n }\n }\n return writer;\n}\n/**\n * @private\n */\nexport function writeField(writer, opts, msg, field) {\n var _a;\n switch (field.fieldKind) {\n case \"scalar\":\n case \"enum\":\n writeScalar(writer, msg.desc.typeName, field.name, (_a = field.scalar) !== null && _a !== void 0 ? _a : ScalarType.INT32, field.number, msg.get(field));\n break;\n case \"list\":\n writeListField(writer, opts, field, msg.get(field));\n break;\n case \"message\":\n writeMessageField(writer, opts, field, msg.get(field));\n break;\n case \"map\":\n for (const [key, val] of msg.get(field)) {\n writeMapEntry(writer, opts, field, key, val);\n }\n break;\n }\n}\nfunction writeScalar(writer, msgName, fieldName, scalarType, fieldNo, value) {\n writeScalarValue(writer.tag(fieldNo, writeTypeOfScalar(scalarType)), msgName, fieldName, scalarType, value);\n}\nfunction writeMessageField(writer, opts, field, message) {\n if (field.delimitedEncoding) {\n writeFields(writer.tag(field.number, WireType.StartGroup), opts, message).tag(field.number, WireType.EndGroup);\n }\n else {\n writeFields(writer.tag(field.number, WireType.LengthDelimited).fork(), opts, message).join();\n }\n}\nfunction writeListField(writer, opts, field, list) {\n var _a;\n if (field.listKind == \"message\") {\n for (const item of list) {\n writeMessageField(writer, opts, field, item);\n }\n return;\n }\n const scalarType = (_a = field.scalar) !== null && _a !== void 0 ? _a : ScalarType.INT32;\n if (field.packed) {\n if (!list.size) {\n return;\n }\n writer.tag(field.number, WireType.LengthDelimited).fork();\n for (const item of list) {\n writeScalarValue(writer, field.parent.typeName, field.name, scalarType, item);\n }\n writer.join();\n return;\n }\n for (const item of list) {\n writeScalar(writer, field.parent.typeName, field.name, scalarType, field.number, item);\n }\n}\nfunction writeMapEntry(writer, opts, field, key, value) {\n var _a;\n writer.tag(field.number, WireType.LengthDelimited).fork();\n // write key, expecting key field number = 1\n writeScalar(writer, field.parent.typeName, field.name, field.mapKey, 1, key);\n // write value, expecting value field number = 2\n switch (field.mapKind) {\n case \"scalar\":\n case \"enum\":\n writeScalar(writer, field.parent.typeName, field.name, (_a = field.scalar) !== null && _a !== void 0 ? _a : ScalarType.INT32, 2, value);\n break;\n case \"message\":\n writeFields(writer.tag(2, WireType.LengthDelimited).fork(), opts, value).join();\n break;\n }\n writer.join();\n}\nfunction writeScalarValue(writer, msgName, fieldName, type, value) {\n try {\n switch (type) {\n case ScalarType.STRING:\n writer.string(value);\n break;\n case ScalarType.BOOL:\n writer.bool(value);\n break;\n case ScalarType.DOUBLE:\n writer.double(value);\n break;\n case ScalarType.FLOAT:\n writer.float(value);\n break;\n case ScalarType.INT32:\n writer.int32(value);\n break;\n case ScalarType.INT64:\n writer.int64(value);\n break;\n case ScalarType.UINT64:\n writer.uint64(value);\n break;\n case ScalarType.FIXED64:\n writer.fixed64(value);\n break;\n case ScalarType.BYTES:\n writer.bytes(value);\n break;\n case ScalarType.FIXED32:\n writer.fixed32(value);\n break;\n case ScalarType.SFIXED32:\n writer.sfixed32(value);\n break;\n case ScalarType.SFIXED64:\n writer.sfixed64(value);\n break;\n case ScalarType.SINT64:\n writer.sint64(value);\n break;\n case ScalarType.UINT32:\n writer.uint32(value);\n break;\n case ScalarType.SINT32:\n writer.sint32(value);\n break;\n }\n }\n catch (e) {\n if (e instanceof Error) {\n throw new Error(`cannot encode field ${msgName}.${fieldName} to binary: ${e.message}`);\n }\n throw e;\n }\n}\nfunction writeTypeOfScalar(type) {\n switch (type) {\n case ScalarType.BYTES:\n case ScalarType.STRING:\n return WireType.LengthDelimited;\n case ScalarType.DOUBLE:\n case ScalarType.FIXED64:\n case ScalarType.SFIXED64:\n return WireType.Bit64;\n case ScalarType.FIXED32:\n case ScalarType.SFIXED32:\n case ScalarType.FLOAT:\n return WireType.Bit32;\n default:\n return WireType.Varint;\n }\n}\n",
|
|
34
|
+
"// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Hydrate an extension descriptor.\n *\n * @private\n */\nexport function extDesc(file, path, ...paths) {\n if (paths.length == 0) {\n return file.extensions[path];\n }\n const e = paths.pop(); // we checked length above\n return paths.reduce((acc, cur) => acc.nestedMessages[cur], file.messages[path]).nestedExtensions[e];\n}\n",
|
|
35
|
+
"// Copyright 2021-2025 Buf Technologies, Inc.\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.\nimport { create } from \"./create.js\";\nimport { readField } from \"./from-binary.js\";\nimport { reflect } from \"./reflect/reflect.js\";\nimport { scalarZeroValue } from \"./reflect/scalar.js\";\nimport { writeField } from \"./to-binary.js\";\nimport { BinaryReader, BinaryWriter } from \"./wire/binary-encoding.js\";\nimport { isWrapperDesc } from \"./wkt/wrappers.js\";\n/**\n * Retrieve an extension value from a message.\n *\n * The function never returns undefined. Use hasExtension() to check whether an\n * extension is set. If the extension is not set, this function returns the\n * default value (if one was specified in the protobuf source), or the zero value\n * (for example `0` for numeric types, `[]` for repeated extension fields, and\n * an empty message instance for message fields).\n *\n * Extensions are stored as unknown fields on a message. To mutate an extension\n * value, make sure to store the new value with setExtension() after mutating.\n *\n * If the extension does not extend the given message, an error is raised.\n */\nexport function getExtension(message, extension) {\n assertExtendee(extension, message);\n const ufs = filterUnknownFields(message.$unknown, extension);\n const [container, field, get] = createExtensionContainer(extension);\n for (const uf of ufs) {\n readField(container, new BinaryReader(uf.data), field, uf.wireType, {\n readUnknownFields: true,\n });\n }\n return get();\n}\n/**\n * Set an extension value on a message. If the message already has a value for\n * this extension, the value is replaced.\n *\n * If the extension does not extend the given message, an error is raised.\n */\nexport function setExtension(message, extension, value) {\n var _a;\n assertExtendee(extension, message);\n const ufs = ((_a = message.$unknown) !== null && _a !== void 0 ? _a : []).filter((uf) => uf.no !== extension.number);\n const [container, field] = createExtensionContainer(extension, value);\n const writer = new BinaryWriter();\n writeField(writer, { writeUnknownFields: true }, container, field);\n const reader = new BinaryReader(writer.finish());\n while (reader.pos < reader.len) {\n const [no, wireType] = reader.tag();\n const data = reader.skip(wireType, no);\n ufs.push({ no, wireType, data });\n }\n message.$unknown = ufs;\n}\n/**\n * Remove an extension value from a message.\n *\n * If the extension does not extend the given message, an error is raised.\n */\nexport function clearExtension(message, extension) {\n assertExtendee(extension, message);\n if (message.$unknown === undefined) {\n return;\n }\n message.$unknown = message.$unknown.filter((uf) => uf.no !== extension.number);\n}\n/**\n * Check whether an extension is set on a message.\n */\nexport function hasExtension(message, extension) {\n var _a;\n return (extension.extendee.typeName === message.$typeName &&\n !!((_a = message.$unknown) === null || _a === void 0 ? void 0 : _a.find((uf) => uf.no === extension.number)));\n}\n/**\n * Check whether an option is set on a descriptor.\n *\n * Options are extensions to the `google.protobuf.*Options` messages defined in\n * google/protobuf/descriptor.proto. This function gets the option message from\n * the descriptor, and calls hasExtension().\n */\nexport function hasOption(element, option) {\n const message = element.proto.options;\n if (!message) {\n return false;\n }\n return hasExtension(message, option);\n}\n/**\n * Retrieve an option value from a descriptor.\n *\n * Options are extensions to the `google.protobuf.*Options` messages defined in\n * google/protobuf/descriptor.proto. This function gets the option message from\n * the descriptor, and calls getExtension(). Same as getExtension(), this\n * function never returns undefined.\n */\nexport function getOption(element, option) {\n const message = element.proto.options;\n if (!message) {\n const [, , get] = createExtensionContainer(option);\n return get();\n }\n return getExtension(message, option);\n}\nfunction filterUnknownFields(unknownFields, extension) {\n if (unknownFields === undefined)\n return [];\n if (extension.fieldKind === \"enum\" || extension.fieldKind === \"scalar\") {\n // singular scalar fields do not merge, we pick the last\n for (let i = unknownFields.length - 1; i >= 0; --i) {\n if (unknownFields[i].no == extension.number) {\n return [unknownFields[i]];\n }\n }\n return [];\n }\n return unknownFields.filter((uf) => uf.no === extension.number);\n}\n/**\n * @private\n */\nexport function createExtensionContainer(extension, value) {\n const localName = extension.typeName;\n const field = Object.assign(Object.assign({}, extension), { kind: \"field\", parent: extension.extendee, localName });\n const desc = Object.assign(Object.assign({}, extension.extendee), { fields: [field], members: [field], oneofs: [] });\n const container = create(desc, value !== undefined ? { [localName]: value } : undefined);\n return [\n reflect(desc, container),\n field,\n () => {\n const value = container[localName];\n if (value === undefined) {\n // biome-ignore lint/style/noNonNullAssertion: Only message fields are undefined, rest will have a zero value.\n const desc = extension.message;\n if (isWrapperDesc(desc)) {\n return scalarZeroValue(desc.fields[0].scalar, desc.fields[0].longAsString);\n }\n return create(desc);\n }\n return value;\n },\n ];\n}\nfunction assertExtendee(extension, message) {\n if (extension.extendee.typeName != message.$typeName) {\n throw new Error(`extension ${extension.typeName} can only be applied to message ${extension.extendee.typeName}`);\n }\n}\n",
|
|
36
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file ProtocolMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenEnum, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file ProtocolMessage.proto.\n */\nexport const file_ProtocolMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChVQcm90b2NvbE1lc3NhZ2UucHJvdG8i4RQKCUVycm9yQ29kZSLTFAoERW51bRILCgdOb0Vycm9yEAASEAoMVW5rbm93bkVycm9yEAESFAoQSW52YWxpZE9wZXJhdGlvbhACEhkKFU9wZXJhdGlvbk5vdFBlcm1pdHRlZBADEhYKEkNsaWVudERvZXNOb3RFeGlzdBAEEhYKEk9yaWdpbkRvZXNOb3RFeGlzdBAFEhgKFFVuc3VwcG9ydGVkT3BlcmF0aW9uEAYSGgoWRmFpbGVkVG9TZXRQaWNrZWRSb3V0ZRAHEiAKHEZhaWxlZFRvUmVnaXN0ZXJDdXN0b21PcmlnaW4QCBIeChpGYWlsZWRUb1JlbW92ZUN1c3RvbU9yaWdpbhAJEiYKIlRoZUFwcGxpY2F0aW9uQWN0aXZpdHlEb2VzTm90RXhpc3QQChIuCipUaGVBcHBIYXNOb3RTZXR1cEFCcm93c2FibGVDb250ZW50RW5kcG9pbnQQCxJBCj1UaGVSZXF1ZXN0ZWRCcm93c2FibGVDb250ZW50QXBpSXNOb3RTdXBwb3J0ZWRCeVRoZUFwcGxpY2F0aW9uEAwSMgouVGhlTm90ZmljYXRpb25IYXNOb3RCZWVuV2hpdGVsaXN0ZWRCeVRoZVNlcnZlchANEjgKNE9wZXJhdGlvblJlcXVpcmVzQUNsaWVudENhbGxiYWNrVG9IYXZlQmVlblJlZ2lzdGVyZWQQDhI6CjZPcGVyYXRpb25SZXF1aXJlc0FDbGllbnREYXRhU291cmNlVG9IYXZlQmVlblJlZ2lzdGVyZWQQDxI1CjFSZXF1ZXN0ZWREYXRhSXNPdXRPZkRhdGVBbmRTaG91bGRCZVJlcXVlc3RlZEFnYWluEBASMAosVGhlRGV2aWNlc0VuZm9yY2VkVm9sdW1lTGltaXRIYXNCZWVuRXhjZWVkZWQQERIbChdWb2x1bWVWYWx1ZUlzT3V0T2ZSYW5nZRASEiQKIFZvbHVtZUlzQWxyZWFkeUF0VGhlTWF4aW11bVZhbHVlEBMSGAoUVm9sdW1lSXNBbHJlYWR5TXV0ZWQQFBIiCh5Wb2ljZUlucHV0RW5kcG9pbnREb2VzTm90RXhpc3QQFRI0CjBUaGVWb2ljZUlucHV0RGV2aWNlSXNOb3RSZWdpc3RlcmVkT3JEb2VzTm90RXhpc3QQFhIVChFFbmNyeXB0aW9uRmFpbHVyZRAXEhgKFEVuZHBvaW50RG9lc05vdEV4aXN0EBgSLgoqVGhlQ2xpZW50c0FwcGxpY2F0aW9uQ2FuY2VsbGVkVGhlT3BlcmF0aW9uEBkSGAoUVGhlT3BlcmF0aW9uVGltZWRPdXQQGhIqCiZUaGVTcGVjaWZpZWRQbGF5ZXJQYXRoT2JqZWN0V2FzSW52YWxpZBAbEjoKNkFkZGluZ09yUmVtb3ZpbmdEZXZpY2VzRnJvbVRoZUF2T3V0cHV0Q29udGV4dEhhc0ZhaWxlZBAcEiwKKENvdWxkTm90RmluZFRoZVNwZWNpZmllZE5vd1BsYXlpbmdQbGF5ZXIQHRInCiNUaGVTcGVjaWZpZWRDb250ZW50SXRlbURvZXNOb3RFeGlzdBAeEh8KG1RoZVNwZWNpZmllZE9mZnNldElzSW52YWxpZBAfEiYKIlRoZVNwZWNpZmllZE91dHB1dENvbnRleHRJc0ludmFsaWQQIBIyCi5PbmVPck1vcmVTcGVjaWZpZWRPdXRwdXREZXZpY2VzQXJlTm90R3JvdXBhYmxlECESSApEVGhlU3BlY2lmaWVkT3V0cHV0Q29udGV4dERvZXNOb3RTdXBwb3J0QWRkaW5nTW9yZVRoYW5PbmVPdXRwdXREZXZpY2UQIhIsCihDb3VsZE5vdEZpbmRUaGVTcGVjaWZpZWROb3dQbGF5aW5nQ2xpZW50ECMSUApMRW5kcG9pbnRWb2x1bWVDb250cm9sSXNPbmx5UG9zc2libGVJZlRoZUVuZHBvaW50SXNQaWNrZWRPclJlbW90ZUNvbnRyb2xsYWJsZRAkElQKUE91dHB1dERldmljZVZvbHVtZUNvbnRyb2xJc09ubHlQb3NzaWJsZUlmVGhlRW5kcG9pbnRJc1BpY2tlZE9yUmVtb3RlQ29udHJvbGxhYmxlECUSIgoeQ29kZXJNdXN0U3VwcG9ydEtleVZhbHVlQ29kaW5nECYSJAogQ291bGROb3RGaW5kVGhlR2l2ZW5PdXRwdXRkZXZpY2UQJxIhCh1GYWlsZWRUb0Nvbm5lY3RUb1JlbW90ZURldmljZRBkEiAKHEF1dGhlbnRpY2F0aW9uVG9rZW5Jc0ludmFsaWQQZRIzCi9SZWNvcmRpbmdTZXNzaW9uSXNBbHJlYWR5SW5Qcm9ncmVzc09uVGhpc0RldmljZRBmEiQKIFRoZURldmljZUlzTm90Q3VycmVudGx5UmVjb3JkaW5nEGcSHAoYVGhlQ2xpZW50SGFzRGlzY29ubmVjdGVkEGgSHAoYVGhlU2VydmVySGFzRGlzY29ubmVjdGVkEGkSLAooVGhlQ29ubmVjdGlvbkhhc0JlZW5DYW5jZWxsZWRCeVRoZUNsaWVudBBqEjQKMFBhaXJpbmdGdW5jdGlvbmFsaXR5SXNMb2NrZWREdWVUb1NlY3VyaXR5UmVhc29ucxBrEiwKKFRoZUNsaWVudHNPcGVyYXRpbmdTeXN0ZW1WZXJzaW9uSXNUb29PbGQQbBIoCiRUaGVDbGllbnRzQXBwbGljYXRpb25WZXJzaW9uSXNUb29PbGQQbRIYChRUaGVEZXZpY2VJc05vdFBhaXJlZBBuEj8KO1RoZVBpblBhaXJpbmdEaWFsb2dXYXNSZW1vdmVkQnlUaGVVc2VyQmVmb3JlUGFpcmluZ09jY291cmVkEG8SQAo8VGhlUGluUGFpcmluZ0RpYWxvZ1dhc1JlbW92ZWRCeUFUaW1lb3V0QmVmb3JlUGFpcmluZ09jY291cmVkEHASGQoVVGhlQ29ubmVjdGlvblRpbWVkb3V0EHESIgoeUGFpcmluZ1dpdGhUaGlzRGV2aWNlSXNCbG9ja2VkEHISGwoXVGhlRGV2aWNlSXNHb2luZ1RvU2xlZXAQcxIdChlDb25uZWN0aW9uQmxvY2tlZEJ5U2VydmVyEHQSPAo4TXJhdmVuZHBvaW50V2FzRGVhbGxvY2F0ZWRXaGlsZVdhaXRpbmdGb3JEZXZpY2VUb0Nvbm5lY3QQdRJICkNPdXRwdXRDb250ZXh0TW9kaWZpY2F0aW9uQ2F1c2VkQURldmljZVRvTm9Mb25nZXJCZUFQcm94eUdyb3VwUGxheWVyEMgBEkQKP091dHB1dENvbnRleHRNb2RpZmljYXRpb25DYXVzZWRBRGV2aWNlVG9CZWNvbWVBUHJveHlHcm91cFBsYXllchDJARI3CjJPdXRwdXRDb250ZXh0TW9kaWZpY2F0aW9uUmVxdWVzdGVkTm9Ub3BvbG9neUNoYW5nZRDKARIWChFPdGhlclVua25vd25FcnJvchCrAiLAGAoPUHJvdG9jb2xNZXNzYWdlEiMKBHR5cGUYASABKA4yFS5Qcm90b2NvbE1lc3NhZ2UuVHlwZRISCgppZGVudGlmaWVyGAIgASgJEhsKE2F1dGhlbnRpY2F0aW9uVG9rZW4YAyABKAkSIgoJZXJyb3JDb2RlGAQgASgOMg8uRXJyb3JDb2RlLkVudW0SEQoJdGltZXN0YW1wGAUgASgEEhgKEGVycm9yRGVzY3JpcHRpb24YTiABKAkSGAoQdW5pcXVlSWRlbnRpZmllchhVIAEoCSLVFgoEVHlwZRITCg9VTktOT1dOX01FU1NBR0UQABIYChRTRU5EX0NPTU1BTkRfTUVTU0FHRRABEh8KG1NFTkRfQ09NTUFORF9SRVNVTFRfTUVTU0FHRRACEhUKEUdFVF9TVEFURV9NRVNTQUdFEAMSFQoRU0VUX1NUQVRFX01FU1NBR0UQBBIXChNTRVRfQVJUV09SS19NRVNTQUdFEAUSHwobUkVHSVNURVJfSElEX0RFVklDRV9NRVNTQUdFEAYSJgoiUkVHSVNURVJfSElEX0RFVklDRV9SRVNVTFRfTUVTU0FHRRAHEhoKFlNFTkRfSElEX0VWRU5UX01FU1NBR0UQCBIbChdTRU5EX0hJRF9SRVBPUlRfTUVTU0FHRRAJEiQKIFNFTkRfVklSVFVBTF9UT1VDSF9FVkVOVF9NRVNTQUdFEAoSGAoUTk9USUZJQ0FUSU9OX01FU1NBR0UQCxIuCipDT05URU5UX0lURU1TX0NIQU5HRURfTk9USUZJQ0FUSU9OX01FU1NBR0UQDBIXChNERVZJQ0VfSU5GT19NRVNTQUdFEA8SIQodQ0xJRU5UX1VQREFURVNfQ09ORklHX01FU1NBR0UQEBInCiNWT0xVTUVfQ09OVFJPTF9BVkFJTEFCSUxJVFlfTUVTU0FHRRAREhsKF0dBTUVfQ09OVFJPTExFUl9NRVNTQUdFEBISJAogUkVHSVNURVJfR0FNRV9DT05UUk9MTEVSX01FU1NBR0UQExItCilSRUdJU1RFUl9HQU1FX0NPTlRST0xMRVJfUkVTUE9OU0VfTUVTU0FHRRAUEiYKIlVOUkVHSVNURVJfR0FNRV9DT05UUk9MTEVSX01FU1NBR0UQFRIvCitSRUdJU1RFUl9GT1JfR0FNRV9DT05UUk9MTEVSX0VWRU5UU19NRVNTQUdFEBYSFAoQS0VZQk9BUkRfTUVTU0FHRRAXEiAKHEdFVF9LRVlCT0FSRF9TRVNTSU9OX01FU1NBR0UQGBIWChJURVhUX0lOUFVUX01FU1NBR0UQGRIjCh9HRVRfVk9JQ0VfSU5QVVRfREVWSUNFU19NRVNTQUdFEBoSLAooR0VUX1ZPSUNFX0lOUFVUX0RFVklDRVNfUkVTUE9OU0VfTUVTU0FHRRAbEicKI1JFR0lTVEVSX1ZPSUNFX0lOUFVUX0RFVklDRV9NRVNTQUdFEBwSMAosUkVHSVNURVJfVk9JQ0VfSU5QVVRfREVWSUNFX1JFU1BPTlNFX01FU1NBR0UQHRIfChtTRVRfUkVDT1JESU5HX1NUQVRFX01FU1NBR0UQHhIcChhTRU5EX1ZPSUNFX0lOUFVUX01FU1NBR0UQHxIiCh5QTEFZQkFDS19RVUVVRV9SRVFVRVNUX01FU1NBR0UQIBIXChNUUkFOU0FDVElPTl9NRVNTQUdFECESGgoWQ1JZUFRPX1BBSVJJTkdfTUVTU0FHRRAiEiYKIkdBTUVfQ09OVFJPTExFUl9QUk9QRVJUSUVTX01FU1NBR0UQIxIbChdTRVRfUkVBRFlfU1RBVEVfTUVTU0FHRRAkEh4KGkRFVklDRV9JTkZPX1VQREFURV9NRVNTQUdFECUSIAocU0VUX0NPTk5FQ1RJT05fU1RBVEVfTUVTU0FHRRAmEh0KGVNFTkRfQlVUVE9OX0VWRU5UX01FU1NBR0UQJxIbChdTRVRfSElMSVRFX01PREVfTUVTU0FHRRAoEhcKE1dBS0VfREVWSUNFX01FU1NBR0UQKRITCg9HRU5FUklDX01FU1NBR0UQKhIrCidTRU5EX1BBQ0tFRF9WSVJUVUFMX1RPVUNIX0VWRU5UX01FU1NBR0UQKxIVChFTRU5EX0xZUklDU19FVkVOVBAsEiIKHlNFVF9OT1dfUExBWUlOR19DTElFTlRfTUVTU0FHRRAuEiIKHlNFVF9OT1dfUExBWUlOR19QTEFZRVJfTUVTU0FHRRAvEikKJU1PRElGWV9PVVRQVVRfQ09OVEVYVF9SRVFVRVNUX01FU1NBR0UQMBIWChJHRVRfVk9MVU1FX01FU1NBR0UQMRIdChlHRVRfVk9MVU1FX1JFU1VMVF9NRVNTQUdFEDISFgoSU0VUX1ZPTFVNRV9NRVNTQUdFEDMSHQoZVk9MVU1FX0RJRF9DSEFOR0VfTUVTU0FHRRA0EhkKFVJFTU9WRV9DTElFTlRfTUVTU0FHRRA1EhkKFVJFTU9WRV9QTEFZRVJfTUVTU0FHRRA2EhkKFVVQREFURV9DTElFTlRfTUVTU0FHRRA3Eh8KG1VQREFURV9DT05URU5UX0lURU1fTUVTU0FHRRA4EicKI1VQREFURV9DT05URU5UX0lURU1fQVJUV09SS19NRVNTQUdFEDkSGQoVVVBEQVRFX1BMQVlFUl9NRVNTQUdFEDoSKgomUFJPTVBUX0ZPUl9ST1VURV9BVVRIT1JJWkFUSU9OX01FU1NBR0UQOxIzCi9QUk9NUFRfRk9SX1JPVVRFX0FVVEhPUklaQVRJT05fUkVTUE9OU0VfTUVTU0FHRRA8Ei4KKlBSRVNFTlRfUk9VVEVfQVVUSE9SSVpBVElPTl9TVEFUVVNfTUVTU0FHRRA9EisKJ0dFVF9WT0xVTUVfQ09OVFJPTF9DQVBBQklMSVRJRVNfTUVTU0FHRRA+EjIKLkdFVF9WT0xVTUVfQ09OVFJPTF9DQVBBQklMSVRJRVNfUkVTVUxUX01FU1NBR0UQPxIyCi5WT0xVTUVfQ09OVFJPTF9DQVBBQklMSVRJRVNfRElEX0NIQU5HRV9NRVNTQUdFEEASIAocVVBEQVRFX09VVFBVVF9ERVZJQ0VfTUVTU0FHRRBBEiEKHVJFTU9WRV9PVVRQVVRfREVWSUNFU19NRVNTQUdFEEISHQoZUkVNT1RFX1RFWFRfSU5QVVRfTUVTU0FHRRBDEikKJUdFVF9SRU1PVEVfVEVYVF9JTlBVVF9TRVNTSU9OX01FU1NBR0UQRBIiCh5SRU1PVkVfT1VUUFVUX0RFVklDRVNfTUVTU0FHRTIQRRIkCiBQTEFZQkFDS19TRVNTSU9OX1JFUVVFU1RfTUVTU0FHRRBGEiUKIVBMQVlCQUNLX1NFU1NJT05fUkVTUE9OU0VfTUVTU0FHRRBHEioKJlNFVF9ERUZBVUxUX1NVUFBPUlRFRF9DT01NQU5EU19NRVNTQUdFEEgSLAooUExBWUJBQ0tfU0VTU0lPTl9NSUdSQVRFX1JFUVVFU1RfTUVTU0FHRRBJEi0KKVBMQVlCQUNLX1NFU1NJT05fTUlHUkFURV9SRVNQT05TRV9NRVNTQUdFEEoSKgomUExBWUJBQ0tfU0VTU0lPTl9NSUdSQVRFX0JFR0lOX01FU1NBR0UQSxIoCiRQTEFZQkFDS19TRVNTSU9OX01JR1JBVEVfRU5EX01FU1NBR0UQTBIpCiVVUERBVEVfQUNUSVZFX1NZU1RFTV9FTkRQT0lOVF9NRVNTQUdFEE0SHgoaU0VUX0RJU0NPVkVSWV9NT0RFX01FU1NBR0UQZRIdChlVUERBVEVfRU5EX1BPSU5UU19NRVNTQUdFEGYSHAoYUkVNT1ZFX0VORFBPSU5UU19NRVNTQUdFEGcSJAogUExBWUVSX0NMSUVOVF9QUk9QRVJUSUVTX01FU1NBR0UQaBIkCiBPUklHSU5fQ0xJRU5UX1BST1BFUlRJRVNfTUVTU0FHRRBpEhYKEkFVRElPX0ZBREVfTUVTU0FHRRBqEh8KG0FVRElPX0ZBREVfUkVTUE9OU0VfTUVTU0FHRRBrEiAKHENPTkZJR1VSRV9DT05ORUNUSU9OX01FU1NBR0UQeCoECAYQTioECE8QVSoICFYQgICAgAI\");\n\n/**\n * @generated from message ErrorCode\n */\nexport type ErrorCode = Message<\"ErrorCode\"> & {\n};\n\n/**\n * Describes the message ErrorCode.\n * Use `create(ErrorCodeSchema)` to create a new message.\n */\nexport const ErrorCodeSchema: GenMessage<ErrorCode> = /*@__PURE__*/\n messageDesc(file_ProtocolMessage, 0);\n\n/**\n * @generated from enum ErrorCode.Enum\n */\nexport enum ErrorCode_Enum {\n /**\n * @generated from enum value: NoError = 0;\n */\n NoError = 0,\n\n /**\n * @generated from enum value: UnknownError = 1;\n */\n UnknownError = 1,\n\n /**\n * @generated from enum value: InvalidOperation = 2;\n */\n InvalidOperation = 2,\n\n /**\n * @generated from enum value: OperationNotPermitted = 3;\n */\n OperationNotPermitted = 3,\n\n /**\n * @generated from enum value: ClientDoesNotExist = 4;\n */\n ClientDoesNotExist = 4,\n\n /**\n * @generated from enum value: OriginDoesNotExist = 5;\n */\n OriginDoesNotExist = 5,\n\n /**\n * @generated from enum value: UnsupportedOperation = 6;\n */\n UnsupportedOperation = 6,\n\n /**\n * @generated from enum value: FailedToSetPickedRoute = 7;\n */\n FailedToSetPickedRoute = 7,\n\n /**\n * @generated from enum value: FailedToRegisterCustomOrigin = 8;\n */\n FailedToRegisterCustomOrigin = 8,\n\n /**\n * @generated from enum value: FailedToRemoveCustomOrigin = 9;\n */\n FailedToRemoveCustomOrigin = 9,\n\n /**\n * @generated from enum value: TheApplicationActivityDoesNotExist = 10;\n */\n TheApplicationActivityDoesNotExist = 10,\n\n /**\n * @generated from enum value: TheAppHasNotSetupABrowsableContentEndpoint = 11;\n */\n TheAppHasNotSetupABrowsableContentEndpoint = 11,\n\n /**\n * @generated from enum value: TheRequestedBrowsableContentApiIsNotSupportedByTheApplication = 12;\n */\n TheRequestedBrowsableContentApiIsNotSupportedByTheApplication = 12,\n\n /**\n * @generated from enum value: TheNotficationHasNotBeenWhitelistedByTheServer = 13;\n */\n TheNotficationHasNotBeenWhitelistedByTheServer = 13,\n\n /**\n * @generated from enum value: OperationRequiresAClientCallbackToHaveBeenRegistered = 14;\n */\n OperationRequiresAClientCallbackToHaveBeenRegistered = 14,\n\n /**\n * @generated from enum value: OperationRequiresAClientDataSourceToHaveBeenRegistered = 15;\n */\n OperationRequiresAClientDataSourceToHaveBeenRegistered = 15,\n\n /**\n * @generated from enum value: RequestedDataIsOutOfDateAndShouldBeRequestedAgain = 16;\n */\n RequestedDataIsOutOfDateAndShouldBeRequestedAgain = 16,\n\n /**\n * The system will ignore the volume adjustment until overridden.\n *\n * @generated from enum value: TheDevicesEnforcedVolumeLimitHasBeenExceeded = 17;\n */\n TheDevicesEnforcedVolumeLimitHasBeenExceeded = 17,\n\n /**\n * between 0.0 and 1.0, where 1.0 is the loudest\n *\n * @generated from enum value: VolumeValueIsOutOfRange = 18;\n */\n VolumeValueIsOutOfRange = 18,\n\n /**\n * @generated from enum value: VolumeIsAlreadyAtTheMaximumValue = 19;\n */\n VolumeIsAlreadyAtTheMaximumValue = 19,\n\n /**\n * @generated from enum value: VolumeIsAlreadyMuted = 20;\n */\n VolumeIsAlreadyMuted = 20,\n\n /**\n * @generated from enum value: VoiceInputEndpointDoesNotExist = 21;\n */\n VoiceInputEndpointDoesNotExist = 21,\n\n /**\n * @generated from enum value: TheVoiceInputDeviceIsNotRegisteredOrDoesNotExist = 22;\n */\n TheVoiceInputDeviceIsNotRegisteredOrDoesNotExist = 22,\n\n /**\n * @generated from enum value: EncryptionFailure = 23;\n */\n EncryptionFailure = 23,\n\n /**\n * @generated from enum value: EndpointDoesNotExist = 24;\n */\n EndpointDoesNotExist = 24,\n\n /**\n * @generated from enum value: TheClientsApplicationCancelledTheOperation = 25;\n */\n TheClientsApplicationCancelledTheOperation = 25,\n\n /**\n * @generated from enum value: TheOperationTimedOut = 26;\n */\n TheOperationTimedOut = 26,\n\n /**\n * @generated from enum value: TheSpecifiedPlayerPathObjectWasInvalid = 27;\n */\n TheSpecifiedPlayerPathObjectWasInvalid = 27,\n\n /**\n * @generated from enum value: AddingOrRemovingDevicesFromTheAvOutputContextHasFailed = 28;\n */\n AddingOrRemovingDevicesFromTheAvOutputContextHasFailed = 28,\n\n /**\n * @generated from enum value: CouldNotFindTheSpecifiedNowPlayingPlayer = 29;\n */\n CouldNotFindTheSpecifiedNowPlayingPlayer = 29,\n\n /**\n * @generated from enum value: TheSpecifiedContentItemDoesNotExist = 30;\n */\n TheSpecifiedContentItemDoesNotExist = 30,\n\n /**\n * @generated from enum value: TheSpecifiedOffsetIsInvalid = 31;\n */\n TheSpecifiedOffsetIsInvalid = 31,\n\n /**\n * @generated from enum value: TheSpecifiedOutputContextIsInvalid = 32;\n */\n TheSpecifiedOutputContextIsInvalid = 32,\n\n /**\n * @generated from enum value: OneOrMoreSpecifiedOutputDevicesAreNotGroupable = 33;\n */\n OneOrMoreSpecifiedOutputDevicesAreNotGroupable = 33,\n\n /**\n * @generated from enum value: TheSpecifiedOutputContextDoesNotSupportAddingMoreThanOneOutputDevice = 34;\n */\n TheSpecifiedOutputContextDoesNotSupportAddingMoreThanOneOutputDevice = 34,\n\n /**\n * @generated from enum value: CouldNotFindTheSpecifiedNowPlayingClient = 35;\n */\n CouldNotFindTheSpecifiedNowPlayingClient = 35,\n\n /**\n * @generated from enum value: EndpointVolumeControlIsOnlyPossibleIfTheEndpointIsPickedOrRemoteControllable = 36;\n */\n EndpointVolumeControlIsOnlyPossibleIfTheEndpointIsPickedOrRemoteControllable = 36,\n\n /**\n * @generated from enum value: OutputDeviceVolumeControlIsOnlyPossibleIfTheEndpointIsPickedOrRemoteControllable = 37;\n */\n OutputDeviceVolumeControlIsOnlyPossibleIfTheEndpointIsPickedOrRemoteControllable = 37,\n\n /**\n * @generated from enum value: CoderMustSupportKeyValueCoding = 38;\n */\n CoderMustSupportKeyValueCoding = 38,\n\n /**\n * @generated from enum value: CouldNotFindTheGivenOutputdevice = 39;\n */\n CouldNotFindTheGivenOutputdevice = 39,\n\n /**\n * @generated from enum value: FailedToConnectToRemoteDevice = 100;\n */\n FailedToConnectToRemoteDevice = 100,\n\n /**\n * @generated from enum value: AuthenticationTokenIsInvalid = 101;\n */\n AuthenticationTokenIsInvalid = 101,\n\n /**\n * @generated from enum value: RecordingSessionIsAlreadyInProgressOnThisDevice = 102;\n */\n RecordingSessionIsAlreadyInProgressOnThisDevice = 102,\n\n /**\n * @generated from enum value: TheDeviceIsNotCurrentlyRecording = 103;\n */\n TheDeviceIsNotCurrentlyRecording = 103,\n\n /**\n * @generated from enum value: TheClientHasDisconnected = 104;\n */\n TheClientHasDisconnected = 104,\n\n /**\n * @generated from enum value: TheServerHasDisconnected = 105;\n */\n TheServerHasDisconnected = 105,\n\n /**\n * @generated from enum value: TheConnectionHasBeenCancelledByTheClient = 106;\n */\n TheConnectionHasBeenCancelledByTheClient = 106,\n\n /**\n * @generated from enum value: PairingFunctionalityIsLockedDueToSecurityReasons = 107;\n */\n PairingFunctionalityIsLockedDueToSecurityReasons = 107,\n\n /**\n * @generated from enum value: TheClientsOperatingSystemVersionIsTooOld = 108;\n */\n TheClientsOperatingSystemVersionIsTooOld = 108,\n\n /**\n * @generated from enum value: TheClientsApplicationVersionIsTooOld = 109;\n */\n TheClientsApplicationVersionIsTooOld = 109,\n\n /**\n * @generated from enum value: TheDeviceIsNotPaired = 110;\n */\n TheDeviceIsNotPaired = 110,\n\n /**\n * @generated from enum value: ThePinPairingDialogWasRemovedByTheUserBeforePairingOccoured = 111;\n */\n ThePinPairingDialogWasRemovedByTheUserBeforePairingOccoured = 111,\n\n /**\n * @generated from enum value: ThePinPairingDialogWasRemovedByATimeoutBeforePairingOccoured = 112;\n */\n ThePinPairingDialogWasRemovedByATimeoutBeforePairingOccoured = 112,\n\n /**\n * @generated from enum value: TheConnectionTimedout = 113;\n */\n TheConnectionTimedout = 113,\n\n /**\n * @generated from enum value: PairingWithThisDeviceIsBlocked = 114;\n */\n PairingWithThisDeviceIsBlocked = 114,\n\n /**\n * @generated from enum value: TheDeviceIsGoingToSleep = 115;\n */\n TheDeviceIsGoingToSleep = 115,\n\n /**\n * @generated from enum value: ConnectionBlockedByServer = 116;\n */\n ConnectionBlockedByServer = 116,\n\n /**\n * @generated from enum value: MravendpointWasDeallocatedWhileWaitingForDeviceToConnect = 117;\n */\n MravendpointWasDeallocatedWhileWaitingForDeviceToConnect = 117,\n\n /**\n * @generated from enum value: OutputContextModificationCausedADeviceToNoLongerBeAProxyGroupPlayer = 200;\n */\n OutputContextModificationCausedADeviceToNoLongerBeAProxyGroupPlayer = 200,\n\n /**\n * @generated from enum value: OutputContextModificationCausedADeviceToBecomeAProxyGroupPlayer = 201;\n */\n OutputContextModificationCausedADeviceToBecomeAProxyGroupPlayer = 201,\n\n /**\n * @generated from enum value: OutputContextModificationRequestedNoTopologyChange = 202;\n */\n OutputContextModificationRequestedNoTopologyChange = 202,\n\n /**\n * @generated from enum value: OtherUnknownError = 299;\n */\n OtherUnknownError = 299,\n}\n\n/**\n * Describes the enum ErrorCode.Enum.\n */\nexport const ErrorCode_EnumSchema: GenEnum<ErrorCode_Enum> = /*@__PURE__*/\n enumDesc(file_ProtocolMessage, 0, 0);\n\n/**\n * @generated from message ProtocolMessage\n */\nexport type ProtocolMessage = Message<\"ProtocolMessage\"> & {\n /**\n * Identifies which underlying message is filled in.\n *\n * @generated from field: optional ProtocolMessage.Type type = 1;\n */\n type: ProtocolMessage_Type;\n\n /**\n * @generated from field: optional string identifier = 2;\n */\n identifier: string;\n\n /**\n * @generated from field: optional string authenticationToken = 3;\n */\n authenticationToken: string;\n\n /**\n * @generated from field: optional ErrorCode.Enum errorCode = 4;\n */\n errorCode: ErrorCode_Enum;\n\n /**\n * @generated from field: optional uint64 timestamp = 5;\n */\n timestamp: bigint;\n\n /**\n * @generated from field: optional string errorDescription = 78;\n */\n errorDescription: string;\n\n /**\n * @generated from field: optional string uniqueIdentifier = 85;\n */\n uniqueIdentifier: string;\n};\n\n/**\n * Describes the message ProtocolMessage.\n * Use `create(ProtocolMessageSchema)` to create a new message.\n */\nexport const ProtocolMessageSchema: GenMessage<ProtocolMessage> = /*@__PURE__*/\n messageDesc(file_ProtocolMessage, 1);\n\n/**\n * @generated from enum ProtocolMessage.Type\n */\nexport enum ProtocolMessage_Type {\n /**\n * @generated from enum value: UNKNOWN_MESSAGE = 0;\n */\n UNKNOWN_MESSAGE = 0,\n\n /**\n * @generated from enum value: SEND_COMMAND_MESSAGE = 1;\n */\n SEND_COMMAND_MESSAGE = 1,\n\n /**\n * @generated from enum value: SEND_COMMAND_RESULT_MESSAGE = 2;\n */\n SEND_COMMAND_RESULT_MESSAGE = 2,\n\n /**\n * @generated from enum value: GET_STATE_MESSAGE = 3;\n */\n GET_STATE_MESSAGE = 3,\n\n /**\n * @generated from enum value: SET_STATE_MESSAGE = 4;\n */\n SET_STATE_MESSAGE = 4,\n\n /**\n * @generated from enum value: SET_ARTWORK_MESSAGE = 5;\n */\n SET_ARTWORK_MESSAGE = 5,\n\n /**\n * @generated from enum value: REGISTER_HID_DEVICE_MESSAGE = 6;\n */\n REGISTER_HID_DEVICE_MESSAGE = 6,\n\n /**\n * @generated from enum value: REGISTER_HID_DEVICE_RESULT_MESSAGE = 7;\n */\n REGISTER_HID_DEVICE_RESULT_MESSAGE = 7,\n\n /**\n * @generated from enum value: SEND_HID_EVENT_MESSAGE = 8;\n */\n SEND_HID_EVENT_MESSAGE = 8,\n\n /**\n * @generated from enum value: SEND_HID_REPORT_MESSAGE = 9;\n */\n SEND_HID_REPORT_MESSAGE = 9,\n\n /**\n * @generated from enum value: SEND_VIRTUAL_TOUCH_EVENT_MESSAGE = 10;\n */\n SEND_VIRTUAL_TOUCH_EVENT_MESSAGE = 10,\n\n /**\n * @generated from enum value: NOTIFICATION_MESSAGE = 11;\n */\n NOTIFICATION_MESSAGE = 11,\n\n /**\n * @generated from enum value: CONTENT_ITEMS_CHANGED_NOTIFICATION_MESSAGE = 12;\n */\n CONTENT_ITEMS_CHANGED_NOTIFICATION_MESSAGE = 12,\n\n /**\n * @generated from enum value: DEVICE_INFO_MESSAGE = 15;\n */\n DEVICE_INFO_MESSAGE = 15,\n\n /**\n * @generated from enum value: CLIENT_UPDATES_CONFIG_MESSAGE = 16;\n */\n CLIENT_UPDATES_CONFIG_MESSAGE = 16,\n\n /**\n * @generated from enum value: VOLUME_CONTROL_AVAILABILITY_MESSAGE = 17;\n */\n VOLUME_CONTROL_AVAILABILITY_MESSAGE = 17,\n\n /**\n * @generated from enum value: GAME_CONTROLLER_MESSAGE = 18;\n */\n GAME_CONTROLLER_MESSAGE = 18,\n\n /**\n * @generated from enum value: REGISTER_GAME_CONTROLLER_MESSAGE = 19;\n */\n REGISTER_GAME_CONTROLLER_MESSAGE = 19,\n\n /**\n * @generated from enum value: REGISTER_GAME_CONTROLLER_RESPONSE_MESSAGE = 20;\n */\n REGISTER_GAME_CONTROLLER_RESPONSE_MESSAGE = 20,\n\n /**\n * @generated from enum value: UNREGISTER_GAME_CONTROLLER_MESSAGE = 21;\n */\n UNREGISTER_GAME_CONTROLLER_MESSAGE = 21,\n\n /**\n * @generated from enum value: REGISTER_FOR_GAME_CONTROLLER_EVENTS_MESSAGE = 22;\n */\n REGISTER_FOR_GAME_CONTROLLER_EVENTS_MESSAGE = 22,\n\n /**\n * @generated from enum value: KEYBOARD_MESSAGE = 23;\n */\n KEYBOARD_MESSAGE = 23,\n\n /**\n * @generated from enum value: GET_KEYBOARD_SESSION_MESSAGE = 24;\n */\n GET_KEYBOARD_SESSION_MESSAGE = 24,\n\n /**\n * @generated from enum value: TEXT_INPUT_MESSAGE = 25;\n */\n TEXT_INPUT_MESSAGE = 25,\n\n /**\n * @generated from enum value: GET_VOICE_INPUT_DEVICES_MESSAGE = 26;\n */\n GET_VOICE_INPUT_DEVICES_MESSAGE = 26,\n\n /**\n * @generated from enum value: GET_VOICE_INPUT_DEVICES_RESPONSE_MESSAGE = 27;\n */\n GET_VOICE_INPUT_DEVICES_RESPONSE_MESSAGE = 27,\n\n /**\n * @generated from enum value: REGISTER_VOICE_INPUT_DEVICE_MESSAGE = 28;\n */\n REGISTER_VOICE_INPUT_DEVICE_MESSAGE = 28,\n\n /**\n * @generated from enum value: REGISTER_VOICE_INPUT_DEVICE_RESPONSE_MESSAGE = 29;\n */\n REGISTER_VOICE_INPUT_DEVICE_RESPONSE_MESSAGE = 29,\n\n /**\n * @generated from enum value: SET_RECORDING_STATE_MESSAGE = 30;\n */\n SET_RECORDING_STATE_MESSAGE = 30,\n\n /**\n * @generated from enum value: SEND_VOICE_INPUT_MESSAGE = 31;\n */\n SEND_VOICE_INPUT_MESSAGE = 31,\n\n /**\n * @generated from enum value: PLAYBACK_QUEUE_REQUEST_MESSAGE = 32;\n */\n PLAYBACK_QUEUE_REQUEST_MESSAGE = 32,\n\n /**\n * @generated from enum value: TRANSACTION_MESSAGE = 33;\n */\n TRANSACTION_MESSAGE = 33,\n\n /**\n * @generated from enum value: CRYPTO_PAIRING_MESSAGE = 34;\n */\n CRYPTO_PAIRING_MESSAGE = 34,\n\n /**\n * @generated from enum value: GAME_CONTROLLER_PROPERTIES_MESSAGE = 35;\n */\n GAME_CONTROLLER_PROPERTIES_MESSAGE = 35,\n\n /**\n * @generated from enum value: SET_READY_STATE_MESSAGE = 36;\n */\n SET_READY_STATE_MESSAGE = 36,\n\n /**\n * @generated from enum value: DEVICE_INFO_UPDATE_MESSAGE = 37;\n */\n DEVICE_INFO_UPDATE_MESSAGE = 37,\n\n /**\n * @generated from enum value: SET_CONNECTION_STATE_MESSAGE = 38;\n */\n SET_CONNECTION_STATE_MESSAGE = 38,\n\n /**\n * @generated from enum value: SEND_BUTTON_EVENT_MESSAGE = 39;\n */\n SEND_BUTTON_EVENT_MESSAGE = 39,\n\n /**\n * @generated from enum value: SET_HILITE_MODE_MESSAGE = 40;\n */\n SET_HILITE_MODE_MESSAGE = 40,\n\n /**\n * @generated from enum value: WAKE_DEVICE_MESSAGE = 41;\n */\n WAKE_DEVICE_MESSAGE = 41,\n\n /**\n * @generated from enum value: GENERIC_MESSAGE = 42;\n */\n GENERIC_MESSAGE = 42,\n\n /**\n * @generated from enum value: SEND_PACKED_VIRTUAL_TOUCH_EVENT_MESSAGE = 43;\n */\n SEND_PACKED_VIRTUAL_TOUCH_EVENT_MESSAGE = 43,\n\n /**\n * @generated from enum value: SEND_LYRICS_EVENT = 44;\n */\n SEND_LYRICS_EVENT = 44,\n\n /**\n * @generated from enum value: SET_NOW_PLAYING_CLIENT_MESSAGE = 46;\n */\n SET_NOW_PLAYING_CLIENT_MESSAGE = 46,\n\n /**\n * @generated from enum value: SET_NOW_PLAYING_PLAYER_MESSAGE = 47;\n */\n SET_NOW_PLAYING_PLAYER_MESSAGE = 47,\n\n /**\n * @generated from enum value: MODIFY_OUTPUT_CONTEXT_REQUEST_MESSAGE = 48;\n */\n MODIFY_OUTPUT_CONTEXT_REQUEST_MESSAGE = 48,\n\n /**\n * @generated from enum value: GET_VOLUME_MESSAGE = 49;\n */\n GET_VOLUME_MESSAGE = 49,\n\n /**\n * @generated from enum value: GET_VOLUME_RESULT_MESSAGE = 50;\n */\n GET_VOLUME_RESULT_MESSAGE = 50,\n\n /**\n * @generated from enum value: SET_VOLUME_MESSAGE = 51;\n */\n SET_VOLUME_MESSAGE = 51,\n\n /**\n * @generated from enum value: VOLUME_DID_CHANGE_MESSAGE = 52;\n */\n VOLUME_DID_CHANGE_MESSAGE = 52,\n\n /**\n * @generated from enum value: REMOVE_CLIENT_MESSAGE = 53;\n */\n REMOVE_CLIENT_MESSAGE = 53,\n\n /**\n * @generated from enum value: REMOVE_PLAYER_MESSAGE = 54;\n */\n REMOVE_PLAYER_MESSAGE = 54,\n\n /**\n * @generated from enum value: UPDATE_CLIENT_MESSAGE = 55;\n */\n UPDATE_CLIENT_MESSAGE = 55,\n\n /**\n * @generated from enum value: UPDATE_CONTENT_ITEM_MESSAGE = 56;\n */\n UPDATE_CONTENT_ITEM_MESSAGE = 56,\n\n /**\n * @generated from enum value: UPDATE_CONTENT_ITEM_ARTWORK_MESSAGE = 57;\n */\n UPDATE_CONTENT_ITEM_ARTWORK_MESSAGE = 57,\n\n /**\n * @generated from enum value: UPDATE_PLAYER_MESSAGE = 58;\n */\n UPDATE_PLAYER_MESSAGE = 58,\n\n /**\n * @generated from enum value: PROMPT_FOR_ROUTE_AUTHORIZATION_MESSAGE = 59;\n */\n PROMPT_FOR_ROUTE_AUTHORIZATION_MESSAGE = 59,\n\n /**\n * @generated from enum value: PROMPT_FOR_ROUTE_AUTHORIZATION_RESPONSE_MESSAGE = 60;\n */\n PROMPT_FOR_ROUTE_AUTHORIZATION_RESPONSE_MESSAGE = 60,\n\n /**\n * @generated from enum value: PRESENT_ROUTE_AUTHORIZATION_STATUS_MESSAGE = 61;\n */\n PRESENT_ROUTE_AUTHORIZATION_STATUS_MESSAGE = 61,\n\n /**\n * @generated from enum value: GET_VOLUME_CONTROL_CAPABILITIES_MESSAGE = 62;\n */\n GET_VOLUME_CONTROL_CAPABILITIES_MESSAGE = 62,\n\n /**\n * @generated from enum value: GET_VOLUME_CONTROL_CAPABILITIES_RESULT_MESSAGE = 63;\n */\n GET_VOLUME_CONTROL_CAPABILITIES_RESULT_MESSAGE = 63,\n\n /**\n * @generated from enum value: VOLUME_CONTROL_CAPABILITIES_DID_CHANGE_MESSAGE = 64;\n */\n VOLUME_CONTROL_CAPABILITIES_DID_CHANGE_MESSAGE = 64,\n\n /**\n * @generated from enum value: UPDATE_OUTPUT_DEVICE_MESSAGE = 65;\n */\n UPDATE_OUTPUT_DEVICE_MESSAGE = 65,\n\n /**\n * @generated from enum value: REMOVE_OUTPUT_DEVICES_MESSAGE = 66;\n */\n REMOVE_OUTPUT_DEVICES_MESSAGE = 66,\n\n /**\n * @generated from enum value: REMOTE_TEXT_INPUT_MESSAGE = 67;\n */\n REMOTE_TEXT_INPUT_MESSAGE = 67,\n\n /**\n * @generated from enum value: GET_REMOTE_TEXT_INPUT_SESSION_MESSAGE = 68;\n */\n GET_REMOTE_TEXT_INPUT_SESSION_MESSAGE = 68,\n\n /**\n * Same as 66?\n *\n * @generated from enum value: REMOVE_OUTPUT_DEVICES_MESSAGE2 = 69;\n */\n REMOVE_OUTPUT_DEVICES_MESSAGE2 = 69,\n\n /**\n * @generated from enum value: PLAYBACK_SESSION_REQUEST_MESSAGE = 70;\n */\n PLAYBACK_SESSION_REQUEST_MESSAGE = 70,\n\n /**\n * @generated from enum value: PLAYBACK_SESSION_RESPONSE_MESSAGE = 71;\n */\n PLAYBACK_SESSION_RESPONSE_MESSAGE = 71,\n\n /**\n * @generated from enum value: SET_DEFAULT_SUPPORTED_COMMANDS_MESSAGE = 72;\n */\n SET_DEFAULT_SUPPORTED_COMMANDS_MESSAGE = 72,\n\n /**\n * @generated from enum value: PLAYBACK_SESSION_MIGRATE_REQUEST_MESSAGE = 73;\n */\n PLAYBACK_SESSION_MIGRATE_REQUEST_MESSAGE = 73,\n\n /**\n * @generated from enum value: PLAYBACK_SESSION_MIGRATE_RESPONSE_MESSAGE = 74;\n */\n PLAYBACK_SESSION_MIGRATE_RESPONSE_MESSAGE = 74,\n\n /**\n * @generated from enum value: PLAYBACK_SESSION_MIGRATE_BEGIN_MESSAGE = 75;\n */\n PLAYBACK_SESSION_MIGRATE_BEGIN_MESSAGE = 75,\n\n /**\n * @generated from enum value: PLAYBACK_SESSION_MIGRATE_END_MESSAGE = 76;\n */\n PLAYBACK_SESSION_MIGRATE_END_MESSAGE = 76,\n\n /**\n * @generated from enum value: UPDATE_ACTIVE_SYSTEM_ENDPOINT_MESSAGE = 77;\n */\n UPDATE_ACTIVE_SYSTEM_ENDPOINT_MESSAGE = 77,\n\n /**\n * @generated from enum value: SET_DISCOVERY_MODE_MESSAGE = 101;\n */\n SET_DISCOVERY_MODE_MESSAGE = 101,\n\n /**\n * @generated from enum value: UPDATE_END_POINTS_MESSAGE = 102;\n */\n UPDATE_END_POINTS_MESSAGE = 102,\n\n /**\n * @generated from enum value: REMOVE_ENDPOINTS_MESSAGE = 103;\n */\n REMOVE_ENDPOINTS_MESSAGE = 103,\n\n /**\n * @generated from enum value: PLAYER_CLIENT_PROPERTIES_MESSAGE = 104;\n */\n PLAYER_CLIENT_PROPERTIES_MESSAGE = 104,\n\n /**\n * @generated from enum value: ORIGIN_CLIENT_PROPERTIES_MESSAGE = 105;\n */\n ORIGIN_CLIENT_PROPERTIES_MESSAGE = 105,\n\n /**\n * @generated from enum value: AUDIO_FADE_MESSAGE = 106;\n */\n AUDIO_FADE_MESSAGE = 106,\n\n /**\n * @generated from enum value: AUDIO_FADE_RESPONSE_MESSAGE = 107;\n */\n AUDIO_FADE_RESPONSE_MESSAGE = 107,\n\n /**\n * @generated from enum value: CONFIGURE_CONNECTION_MESSAGE = 120;\n */\n CONFIGURE_CONNECTION_MESSAGE = 120,\n}\n\n/**\n * Describes the enum ProtocolMessage.Type.\n */\nexport const ProtocolMessage_TypeSchema: GenEnum<ProtocolMessage_Type> = /*@__PURE__*/\n enumDesc(file_ProtocolMessage, 1, 0);\n\n",
|
|
37
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file Common.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenEnum, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file Common.proto.\n */\nexport const file_Common: GenFile = /*@__PURE__*/\n fileDesc(\"CgxDb21tb24ucHJvdG8iPAoKUmVwZWF0TW9kZSIuCgRFbnVtEgsKB1Vua25vd24QABIHCgNPZmYQARIHCgNPbmUQAhIHCgNBbGwQAyJCCgtTaHVmZmxlTW9kZSIzCgRFbnVtEgsKB1Vua25vd24QABIHCgNPZmYQARIKCgZBbGJ1bXMQAhIJCgVTb25ncxADIokBCgtEZXZpY2VDbGFzcyJ6CgRFbnVtEgsKB0ludmFsaWQQABIKCgZpUGhvbmUQARIICgRpUG9kEAISCAoEaVBhZBADEgsKB0FwcGxlVFYQBBIJCgVpRlBHQRAFEgkKBVdhdGNoEAYSDQoJQWNjZXNzb3J5EAcSCgoGQnJpZGdlEAgSBwoDTWFjEAkiYgoKRGV2aWNlVHlwZSJUCgRFbnVtEgsKB1Vua25vd24QABILCgdBaXJQbGF5EAESDQoJQmx1ZXRvb3RoEAISCwoHQ2FyUGxheRADEgsKB0J1aWx0SW4QBBIJCgVXaXJlZBAFIoACCg1EZXZpY2VTdWJUeXBlIu4BCgRFbnVtEgsKB0RlZmF1bHQQABILCgdTcGVha2VyEAESDgoKSGVhZHBob25lcxACEgsKB0hlYWRzZXQQAxIMCghSZWNlaXZlchAEEgsKB0xpbmVPdXQQBRIHCgNVU0IQBhIPCgtEaXNwbGF5UG9ydBAHEggKBEhETUkQCBINCglMb3dFbmVyZ3kQCRIJCgVTUERJRhAKEgYKAlRWEAsSCwoHSG9tZVBvZBAMEgsKB0FwcGxlVFYQDRILCgdWZWhpY2xlEA4SCwoHQ2x1c3RlchAPEg0KCVNldFRvcEJveBAQEgsKB1RWU3RpY2sQESJoCg1QbGF5YmFja1N0YXRlIlcKBEVudW0SCwoHVW5rbm93bhAAEgsKB1BsYXlpbmcQARIKCgZQYXVzZWQQAhILCgdTdG9wcGVkEAMSDwoLSW50ZXJydXB0ZWQQBBILCgdTZWVraW5nEAU\");\n\n/**\n * @generated from message RepeatMode\n */\nexport type RepeatMode = Message<\"RepeatMode\"> & {\n};\n\n/**\n * Describes the message RepeatMode.\n * Use `create(RepeatModeSchema)` to create a new message.\n */\nexport const RepeatModeSchema: GenMessage<RepeatMode> = /*@__PURE__*/\n messageDesc(file_Common, 0);\n\n/**\n * @generated from enum RepeatMode.Enum\n */\nexport enum RepeatMode_Enum {\n /**\n * @generated from enum value: Unknown = 0;\n */\n Unknown = 0,\n\n /**\n * @generated from enum value: Off = 1;\n */\n Off = 1,\n\n /**\n * @generated from enum value: One = 2;\n */\n One = 2,\n\n /**\n * @generated from enum value: All = 3;\n */\n All = 3,\n}\n\n/**\n * Describes the enum RepeatMode.Enum.\n */\nexport const RepeatMode_EnumSchema: GenEnum<RepeatMode_Enum> = /*@__PURE__*/\n enumDesc(file_Common, 0, 0);\n\n/**\n * @generated from message ShuffleMode\n */\nexport type ShuffleMode = Message<\"ShuffleMode\"> & {\n};\n\n/**\n * Describes the message ShuffleMode.\n * Use `create(ShuffleModeSchema)` to create a new message.\n */\nexport const ShuffleModeSchema: GenMessage<ShuffleMode> = /*@__PURE__*/\n messageDesc(file_Common, 1);\n\n/**\n * @generated from enum ShuffleMode.Enum\n */\nexport enum ShuffleMode_Enum {\n /**\n * @generated from enum value: Unknown = 0;\n */\n Unknown = 0,\n\n /**\n * @generated from enum value: Off = 1;\n */\n Off = 1,\n\n /**\n * @generated from enum value: Albums = 2;\n */\n Albums = 2,\n\n /**\n * @generated from enum value: Songs = 3;\n */\n Songs = 3,\n}\n\n/**\n * Describes the enum ShuffleMode.Enum.\n */\nexport const ShuffleMode_EnumSchema: GenEnum<ShuffleMode_Enum> = /*@__PURE__*/\n enumDesc(file_Common, 1, 0);\n\n/**\n * @generated from message DeviceClass\n */\nexport type DeviceClass = Message<\"DeviceClass\"> & {\n};\n\n/**\n * Describes the message DeviceClass.\n * Use `create(DeviceClassSchema)` to create a new message.\n */\nexport const DeviceClassSchema: GenMessage<DeviceClass> = /*@__PURE__*/\n messageDesc(file_Common, 2);\n\n/**\n * @generated from enum DeviceClass.Enum\n */\nexport enum DeviceClass_Enum {\n /**\n * @generated from enum value: Invalid = 0;\n */\n Invalid = 0,\n\n /**\n * @generated from enum value: iPhone = 1;\n */\n iPhone = 1,\n\n /**\n * @generated from enum value: iPod = 2;\n */\n iPod = 2,\n\n /**\n * @generated from enum value: iPad = 3;\n */\n iPad = 3,\n\n /**\n * @generated from enum value: AppleTV = 4;\n */\n AppleTV = 4,\n\n /**\n * @generated from enum value: iFPGA = 5;\n */\n iFPGA = 5,\n\n /**\n * @generated from enum value: Watch = 6;\n */\n Watch = 6,\n\n /**\n * @generated from enum value: Accessory = 7;\n */\n Accessory = 7,\n\n /**\n * @generated from enum value: Bridge = 8;\n */\n Bridge = 8,\n\n /**\n * @generated from enum value: Mac = 9;\n */\n Mac = 9,\n}\n\n/**\n * Describes the enum DeviceClass.Enum.\n */\nexport const DeviceClass_EnumSchema: GenEnum<DeviceClass_Enum> = /*@__PURE__*/\n enumDesc(file_Common, 2, 0);\n\n/**\n * @generated from message DeviceType\n */\nexport type DeviceType = Message<\"DeviceType\"> & {\n};\n\n/**\n * Describes the message DeviceType.\n * Use `create(DeviceTypeSchema)` to create a new message.\n */\nexport const DeviceTypeSchema: GenMessage<DeviceType> = /*@__PURE__*/\n messageDesc(file_Common, 3);\n\n/**\n * @generated from enum DeviceType.Enum\n */\nexport enum DeviceType_Enum {\n /**\n * @generated from enum value: Unknown = 0;\n */\n Unknown = 0,\n\n /**\n * @generated from enum value: AirPlay = 1;\n */\n AirPlay = 1,\n\n /**\n * @generated from enum value: Bluetooth = 2;\n */\n Bluetooth = 2,\n\n /**\n * @generated from enum value: CarPlay = 3;\n */\n CarPlay = 3,\n\n /**\n * @generated from enum value: BuiltIn = 4;\n */\n BuiltIn = 4,\n\n /**\n * @generated from enum value: Wired = 5;\n */\n Wired = 5,\n}\n\n/**\n * Describes the enum DeviceType.Enum.\n */\nexport const DeviceType_EnumSchema: GenEnum<DeviceType_Enum> = /*@__PURE__*/\n enumDesc(file_Common, 3, 0);\n\n/**\n * @generated from message DeviceSubType\n */\nexport type DeviceSubType = Message<\"DeviceSubType\"> & {\n};\n\n/**\n * Describes the message DeviceSubType.\n * Use `create(DeviceSubTypeSchema)` to create a new message.\n */\nexport const DeviceSubTypeSchema: GenMessage<DeviceSubType> = /*@__PURE__*/\n messageDesc(file_Common, 4);\n\n/**\n * @generated from enum DeviceSubType.Enum\n */\nexport enum DeviceSubType_Enum {\n /**\n * @generated from enum value: Default = 0;\n */\n Default = 0,\n\n /**\n * @generated from enum value: Speaker = 1;\n */\n Speaker = 1,\n\n /**\n * @generated from enum value: Headphones = 2;\n */\n Headphones = 2,\n\n /**\n * @generated from enum value: Headset = 3;\n */\n Headset = 3,\n\n /**\n * @generated from enum value: Receiver = 4;\n */\n Receiver = 4,\n\n /**\n * @generated from enum value: LineOut = 5;\n */\n LineOut = 5,\n\n /**\n * @generated from enum value: USB = 6;\n */\n USB = 6,\n\n /**\n * @generated from enum value: DisplayPort = 7;\n */\n DisplayPort = 7,\n\n /**\n * @generated from enum value: HDMI = 8;\n */\n HDMI = 8,\n\n /**\n * @generated from enum value: LowEnergy = 9;\n */\n LowEnergy = 9,\n\n /**\n * @generated from enum value: SPDIF = 10;\n */\n SPDIF = 10,\n\n /**\n * @generated from enum value: TV = 11;\n */\n TV = 11,\n\n /**\n * @generated from enum value: HomePod = 12;\n */\n HomePod = 12,\n\n /**\n * @generated from enum value: AppleTV = 13;\n */\n AppleTV = 13,\n\n /**\n * @generated from enum value: Vehicle = 14;\n */\n Vehicle = 14,\n\n /**\n * @generated from enum value: Cluster = 15;\n */\n Cluster = 15,\n\n /**\n * @generated from enum value: SetTopBox = 16;\n */\n SetTopBox = 16,\n\n /**\n * @generated from enum value: TVStick = 17;\n */\n TVStick = 17,\n}\n\n/**\n * Describes the enum DeviceSubType.Enum.\n */\nexport const DeviceSubType_EnumSchema: GenEnum<DeviceSubType_Enum> = /*@__PURE__*/\n enumDesc(file_Common, 4, 0);\n\n/**\n * @generated from message PlaybackState\n */\nexport type PlaybackState = Message<\"PlaybackState\"> & {\n};\n\n/**\n * Describes the message PlaybackState.\n * Use `create(PlaybackStateSchema)` to create a new message.\n */\nexport const PlaybackStateSchema: GenMessage<PlaybackState> = /*@__PURE__*/\n messageDesc(file_Common, 5);\n\n/**\n * @generated from enum PlaybackState.Enum\n */\nexport enum PlaybackState_Enum {\n /**\n * @generated from enum value: Unknown = 0;\n */\n Unknown = 0,\n\n /**\n * @generated from enum value: Playing = 1;\n */\n Playing = 1,\n\n /**\n * @generated from enum value: Paused = 2;\n */\n Paused = 2,\n\n /**\n * @generated from enum value: Stopped = 3;\n */\n Stopped = 3,\n\n /**\n * @generated from enum value: Interrupted = 4;\n */\n Interrupted = 4,\n\n /**\n * @generated from enum value: Seeking = 5;\n */\n Seeking = 5,\n}\n\n/**\n * Describes the enum PlaybackState.Enum.\n */\nexport const PlaybackState_EnumSchema: GenEnum<PlaybackState_Enum> = /*@__PURE__*/\n enumDesc(file_Common, 5, 0);\n\n",
|
|
38
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file DeviceInfoMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenEnum, GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { DeviceClass_Enum } from \"./Common_pb\";\nimport { file_Common } from \"./Common_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file DeviceInfoMessage.proto.\n */\nexport const file_DeviceInfoMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChdEZXZpY2VJbmZvTWVzc2FnZS5wcm90byIyChFQcmVmZXJyZWRFbmNvZGluZyIdCgRFbnVtEgsKB0RlZmF1bHQQABIICgRKU09OEAEirAsKEURldmljZUluZm9NZXNzYWdlEhgKEHVuaXF1ZUlkZW50aWZpZXIYASABKAkSDAoEbmFtZRgCIAIoCRIaChJsb2NhbGl6ZWRNb2RlbE5hbWUYAyABKAkSGgoSc3lzdGVtQnVpbGRWZXJzaW9uGAQgASgJEiMKG2FwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllchgFIAEoCRIgChhhcHBsaWNhdGlvbkJ1bmRsZVZlcnNpb24YBiABKAkSFwoPcHJvdG9jb2xWZXJzaW9uGAcgASgFEiAKGGxhc3RTdXBwb3J0ZWRNZXNzYWdlVHlwZRgIIAEoDRIdChVzdXBwb3J0c1N5c3RlbVBhaXJpbmcYCSABKAgSFQoNYWxsb3dzUGFpcmluZxgKIAEoCBIRCgljb25uZWN0ZWQYCyABKAgSHgoWc3lzdGVtTWVkaWFBcHBsaWNhdGlvbhgMIAEoCRITCgtzdXBwb3J0c0FDTBgNIAEoCBIbChNzdXBwb3J0c1NoYXJlZFF1ZXVlGA4gASgIEh4KFnN1cHBvcnRzRXh0ZW5kZWRNb3Rpb24YDyABKAgSGAoQYmx1ZXRvb3RoQWRkcmVzcxgQIAEoDBIaChJzaGFyZWRRdWV1ZVZlcnNpb24YESABKA0SEQoJZGV2aWNlVUlEGBMgASgJEh0KFW1hbmFnZWRDb25maWdEZXZpY2VJRBgUIAEoCRImCgtkZXZpY2VDbGFzcxgVIAEoDjIRLkRldmljZUNsYXNzLkVudW0SGgoSbG9naWNhbERldmljZUNvdW50GBYgASgNEhoKEnRpZ2h0bHlTeW5jZWRHcm91cBgXIAEoCBIaChJpc1Byb3h5R3JvdXBQbGF5ZXIYGCABKAgSFAoMdGlnaHRTeW5jVUlEGBkgASgJEhAKCGdyb3VwVUlEGBogASgJEhEKCWdyb3VwTmFtZRgbIAEoCRIqCg5ncm91cGVkRGV2aWNlcxgcIAMoCzISLkRldmljZUluZm9NZXNzYWdlEhUKDWlzR3JvdXBMZWFkZXIYHSABKAgSFwoPaXNBaXJwbGF5QWN0aXZlGB4gASgIEiAKGHN5c3RlbVBvZGNhc3RBcHBsaWNhdGlvbhgfIAEoCRIdChVzZW5kZXJEZWZhdWx0R3JvdXBVSUQYICABKAkSGAoQYWlycGxheVJlY2VpdmVycxghIAMoCRIRCglsaW5rQWdlbnQYIiABKAkSEQoJY2x1c3RlcklEGCMgASgJEhcKD2NsdXN0ZXJMZWFkZXJJRBgkIAEoCRITCgtjbHVzdGVyVHlwZRglIAEoDRIWCg5pc0NsdXN0ZXJBd2FyZRgmIAEoCBIPCgdtb2RlbElEGCcgASgJEhsKE3N1cHBvcnRzTXVsdGlwbGF5ZXIYKCABKAgSGAoQcm91dGluZ0NvbnRleHRJRBgpIAEoCRIWCg5haXJQbGF5R3JvdXBJRBgqIAEoCRIeChZzeXN0ZW1Cb29rc0FwcGxpY2F0aW9uGCsgASgJEiwKEGNsdXN0ZXJlZERldmljZXMYLCADKAsyEi5EZXZpY2VJbmZvTWVzc2FnZRIyCipwYXJlbnRHcm91cENvbnRhaW5zRGlzY292ZXJhYmxlR3JvdXBMZWFkZXIYLSABKA0SLAokZ3JvdXBDb250YWluc0Rpc2NvdmVyYWJsZUdyb3VwTGVhZGVyGC4gASgNEhwKFGxhc3RLbm93bkNsdXN0ZXJUeXBlGC8gASgNEiEKGXN1cHBvcnRzT3V0cHV0Q29udGV4dFN5bmMYMSABKAgSFAoMY29tcHV0ZXJOYW1lGDIgASgJEh0KFWNvbmZpZ3VyZWRDbHVzdGVyU2l6ZRgzIAEoDRIyChFwcmVmZXJyZWRFbmNvZGluZxg0IAEoDjIXLlByZWZlcnJlZEVuY29kaW5nLkVudW06UgoRZGV2aWNlSW5mb01lc3NhZ2USEC5Qcm90b2NvbE1lc3NhZ2UYFCABKAsyEi5EZXZpY2VJbmZvTWVzc2FnZVIRZGV2aWNlSW5mb01lc3NhZ2U\", [file_ProtocolMessage, file_Common]);\n\n/**\n * @generated from message PreferredEncoding\n */\nexport type PreferredEncoding = Message<\"PreferredEncoding\"> & {\n};\n\n/**\n * Describes the message PreferredEncoding.\n * Use `create(PreferredEncodingSchema)` to create a new message.\n */\nexport const PreferredEncodingSchema: GenMessage<PreferredEncoding> = /*@__PURE__*/\n messageDesc(file_DeviceInfoMessage, 0);\n\n/**\n * @generated from enum PreferredEncoding.Enum\n */\nexport enum PreferredEncoding_Enum {\n /**\n * @generated from enum value: Default = 0;\n */\n Default = 0,\n\n /**\n * @generated from enum value: JSON = 1;\n */\n JSON = 1,\n}\n\n/**\n * Describes the enum PreferredEncoding.Enum.\n */\nexport const PreferredEncoding_EnumSchema: GenEnum<PreferredEncoding_Enum> = /*@__PURE__*/\n enumDesc(file_DeviceInfoMessage, 0, 0);\n\n/**\n * @generated from message DeviceInfoMessage\n */\nexport type DeviceInfoMessage = Message<\"DeviceInfoMessage\"> & {\n /**\n * Example: B8D8678C-9DA9-4D29-9338-5D6B827B8063\n *\n * @generated from field: optional string uniqueIdentifier = 1;\n */\n uniqueIdentifier: string;\n\n /**\n * Example: Jean's iPhone\n *\n * @generated from field: required string name = 2;\n */\n name: string;\n\n /**\n * Example: iPhone\n *\n * @generated from field: optional string localizedModelName = 3;\n */\n localizedModelName: string;\n\n /**\n * Example: 13F69\n *\n * @generated from field: optional string systemBuildVersion = 4;\n */\n systemBuildVersion: string;\n\n /**\n * Example: com.example.myremote\n *\n * @generated from field: optional string applicationBundleIdentifier = 5;\n */\n applicationBundleIdentifier: string;\n\n /**\n * Example: 107\n *\n * @generated from field: optional string applicationBundleVersion = 6;\n */\n applicationBundleVersion: string;\n\n /**\n * Example: 1\n *\n * @generated from field: optional int32 protocolVersion = 7;\n */\n protocolVersion: number;\n\n /**\n * @generated from field: optional uint32 lastSupportedMessageType = 8;\n */\n lastSupportedMessageType: number;\n\n /**\n * @generated from field: optional bool supportsSystemPairing = 9;\n */\n supportsSystemPairing: boolean;\n\n /**\n * @generated from field: optional bool allowsPairing = 10;\n */\n allowsPairing: boolean;\n\n /**\n * @generated from field: optional bool connected = 11;\n */\n connected: boolean;\n\n /**\n * @generated from field: optional string systemMediaApplication = 12;\n */\n systemMediaApplication: string;\n\n /**\n * @generated from field: optional bool supportsACL = 13;\n */\n supportsACL: boolean;\n\n /**\n * @generated from field: optional bool supportsSharedQueue = 14;\n */\n supportsSharedQueue: boolean;\n\n /**\n * @generated from field: optional bool supportsExtendedMotion = 15;\n */\n supportsExtendedMotion: boolean;\n\n /**\n * @generated from field: optional bytes bluetoothAddress = 16;\n */\n bluetoothAddress: Uint8Array;\n\n /**\n * @generated from field: optional uint32 sharedQueueVersion = 17;\n */\n sharedQueueVersion: number;\n\n /**\n * @generated from field: optional string deviceUID = 19;\n */\n deviceUID: string;\n\n /**\n * @generated from field: optional string managedConfigDeviceID = 20;\n */\n managedConfigDeviceID: string;\n\n /**\n * @generated from field: optional DeviceClass.Enum deviceClass = 21;\n */\n deviceClass: DeviceClass_Enum;\n\n /**\n * @generated from field: optional uint32 logicalDeviceCount = 22;\n */\n logicalDeviceCount: number;\n\n /**\n * @generated from field: optional bool tightlySyncedGroup = 23;\n */\n tightlySyncedGroup: boolean;\n\n /**\n * @generated from field: optional bool isProxyGroupPlayer = 24;\n */\n isProxyGroupPlayer: boolean;\n\n /**\n * @generated from field: optional string tightSyncUID = 25;\n */\n tightSyncUID: string;\n\n /**\n * @generated from field: optional string groupUID = 26;\n */\n groupUID: string;\n\n /**\n * @generated from field: optional string groupName = 27;\n */\n groupName: string;\n\n /**\n * @generated from field: repeated DeviceInfoMessage groupedDevices = 28;\n */\n groupedDevices: DeviceInfoMessage[];\n\n /**\n * @generated from field: optional bool isGroupLeader = 29;\n */\n isGroupLeader: boolean;\n\n /**\n * @generated from field: optional bool isAirplayActive = 30;\n */\n isAirplayActive: boolean;\n\n /**\n * @generated from field: optional string systemPodcastApplication = 31;\n */\n systemPodcastApplication: string;\n\n /**\n * @generated from field: optional string senderDefaultGroupUID = 32;\n */\n senderDefaultGroupUID: string;\n\n /**\n * @generated from field: repeated string airplayReceivers = 33;\n */\n airplayReceivers: string[];\n\n /**\n * @generated from field: optional string linkAgent = 34;\n */\n linkAgent: string;\n\n /**\n * @generated from field: optional string clusterID = 35;\n */\n clusterID: string;\n\n /**\n * @generated from field: optional string clusterLeaderID = 36;\n */\n clusterLeaderID: string;\n\n /**\n * @generated from field: optional uint32 clusterType = 37;\n */\n clusterType: number;\n\n /**\n * @generated from field: optional bool isClusterAware = 38;\n */\n isClusterAware: boolean;\n\n /**\n * @generated from field: optional string modelID = 39;\n */\n modelID: string;\n\n /**\n * @generated from field: optional bool supportsMultiplayer = 40;\n */\n supportsMultiplayer: boolean;\n\n /**\n * Example: 577E1BCA-2D9B-41C2-A8F8-C515CE8072D4\n *\n * @generated from field: optional string routingContextID = 41;\n */\n routingContextID: string;\n\n /**\n * Example: 6E0ED14E-0BA4-4A84-AF30-9EB080E7AA73\n *\n * @generated from field: optional string airPlayGroupID = 42;\n */\n airPlayGroupID: string;\n\n /**\n * Example: com.apple.iBooks\n *\n * @generated from field: optional string systemBooksApplication = 43;\n */\n systemBooksApplication: string;\n\n /**\n * @generated from field: repeated DeviceInfoMessage clusteredDevices = 44;\n */\n clusteredDevices: DeviceInfoMessage[];\n\n /**\n * @generated from field: optional uint32 parentGroupContainsDiscoverableGroupLeader = 45;\n */\n parentGroupContainsDiscoverableGroupLeader: number;\n\n /**\n * @generated from field: optional uint32 groupContainsDiscoverableGroupLeader = 46;\n */\n groupContainsDiscoverableGroupLeader: number;\n\n /**\n * @generated from field: optional uint32 lastKnownClusterType = 47;\n */\n lastKnownClusterType: number;\n\n /**\n * repeated ... allClusteredDevices = 48;\n *\n * @generated from field: optional bool supportsOutputContextSync = 49;\n */\n supportsOutputContextSync: boolean;\n\n /**\n * @generated from field: optional string computerName = 50;\n */\n computerName: string;\n\n /**\n * @generated from field: optional uint32 configuredClusterSize = 51;\n */\n configuredClusterSize: number;\n\n /**\n * @generated from field: optional PreferredEncoding.Enum preferredEncoding = 52;\n */\n preferredEncoding: PreferredEncoding_Enum;\n};\n\n/**\n * Describes the message DeviceInfoMessage.\n * Use `create(DeviceInfoMessageSchema)` to create a new message.\n */\nexport const DeviceInfoMessageSchema: GenMessage<DeviceInfoMessage> = /*@__PURE__*/\n messageDesc(file_DeviceInfoMessage, 1);\n\n/**\n * @generated from extension: optional DeviceInfoMessage deviceInfoMessage = 20;\n */\nexport const deviceInfoMessage: GenExtension<ProtocolMessage, DeviceInfoMessage> = /*@__PURE__*/\n extDesc(file_DeviceInfoMessage, 0);\n\n",
|
|
39
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file Origin.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenEnum, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { DeviceInfoMessage } from \"./DeviceInfoMessage_pb\";\nimport { file_DeviceInfoMessage } from \"./DeviceInfoMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file Origin.proto.\n */\nexport const file_Origin: GenFile = /*@__PURE__*/\n fileDesc(\"CgxPcmlnaW4ucHJvdG8iugEKBk9yaWdpbhIaCgR0eXBlGAEgASgOMgwuT3JpZ2luLlR5cGUSEwoLZGlzcGxheU5hbWUYAiABKAkSEgoKaWRlbnRpZmllchgDIAEoBRImCgpkZXZpY2VJbmZvGAQgASgLMhIuRGV2aWNlSW5mb01lc3NhZ2USFwoPaXNMb2NhbGx5SG9zdGVkGAUgASgIIioKBFR5cGUSCwoHVW5rbm93bhAAEgkKBUxvY2FsEAESCgoGQ3VzdG9tEAI\", [file_DeviceInfoMessage]);\n\n/**\n * @generated from message Origin\n */\nexport type Origin = Message<\"Origin\"> & {\n /**\n * @generated from field: optional Origin.Type type = 1;\n */\n type: Origin_Type;\n\n /**\n * @generated from field: optional string displayName = 2;\n */\n displayName: string;\n\n /**\n * @generated from field: optional int32 identifier = 3;\n */\n identifier: number;\n\n /**\n * @generated from field: optional DeviceInfoMessage deviceInfo = 4;\n */\n deviceInfo?: DeviceInfoMessage;\n\n /**\n * @generated from field: optional bool isLocallyHosted = 5;\n */\n isLocallyHosted: boolean;\n};\n\n/**\n * Describes the message Origin.\n * Use `create(OriginSchema)` to create a new message.\n */\nexport const OriginSchema: GenMessage<Origin> = /*@__PURE__*/\n messageDesc(file_Origin, 0);\n\n/**\n * @generated from enum Origin.Type\n */\nexport enum Origin_Type {\n /**\n * @generated from enum value: Unknown = 0;\n */\n Unknown = 0,\n\n /**\n * @generated from enum value: Local = 1;\n */\n Local = 1,\n\n /**\n * @generated from enum value: Custom = 2;\n */\n Custom = 2,\n}\n\n/**\n * Describes the enum Origin.Type.\n */\nexport const Origin_TypeSchema: GenEnum<Origin_Type> = /*@__PURE__*/\n enumDesc(file_Origin, 0, 0);\n\n",
|
|
40
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file NowPlayingClient.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file NowPlayingClient.proto.\n */\nexport const file_NowPlayingClient: GenFile = /*@__PURE__*/\n fileDesc(\"ChZOb3dQbGF5aW5nQ2xpZW50LnByb3RvIugBChBOb3dQbGF5aW5nQ2xpZW50EhkKEXByb2Nlc3NJZGVudGlmaWVyGAEgASgFEhgKEGJ1bmRsZUlkZW50aWZpZXIYAiABKAkSKQohcGFyZW50QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyGAMgASgJEh0KFXByb2Nlc3NVc2VySWRlbnRpZmllchgEIAEoBRIcChRub3dQbGF5aW5nVmlzaWJpbGl0eRgFIAEoBRITCgtkaXNwbGF5TmFtZRgHIAEoCRIiChpidW5kbGVJZGVudGlmaWVySGllcmFyY2h5cxgIIAMoCQ\");\n\n/**\n * @generated from message NowPlayingClient\n */\nexport type NowPlayingClient = Message<\"NowPlayingClient\"> & {\n /**\n * @generated from field: optional int32 processIdentifier = 1;\n */\n processIdentifier: number;\n\n /**\n * @generated from field: optional string bundleIdentifier = 2;\n */\n bundleIdentifier: string;\n\n /**\n * @generated from field: optional string parentApplicationBundleIdentifier = 3;\n */\n parentApplicationBundleIdentifier: string;\n\n /**\n * @generated from field: optional int32 processUserIdentifier = 4;\n */\n processUserIdentifier: number;\n\n /**\n * @generated from field: optional int32 nowPlayingVisibility = 5;\n */\n nowPlayingVisibility: number;\n\n /**\n * optional TintColor tintColor = 6;\n *\n * @generated from field: optional string displayName = 7;\n */\n displayName: string;\n\n /**\n * @generated from field: repeated string bundleIdentifierHierarchys = 8;\n */\n bundleIdentifierHierarchys: string[];\n};\n\n/**\n * Describes the message NowPlayingClient.\n * Use `create(NowPlayingClientSchema)` to create a new message.\n */\nexport const NowPlayingClientSchema: GenMessage<NowPlayingClient> = /*@__PURE__*/\n messageDesc(file_NowPlayingClient, 0);\n\n",
|
|
41
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file NowPlayingPlayer.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file NowPlayingPlayer.proto.\n */\nexport const file_NowPlayingPlayer: GenFile = /*@__PURE__*/\n fileDesc(\"ChZOb3dQbGF5aW5nUGxheWVyLnByb3RvIq0BChBOb3dQbGF5aW5nUGxheWVyEhIKCmlkZW50aWZpZXIYASABKAkSEwoLZGlzcGxheU5hbWUYAiABKAkSFwoPaXNEZWZhdWx0UGxheWVyGAMgASgIEhgKEGF1ZGlvU2Vzc2lvblR5cGUYBCABKAUSFAoMbXhTZXNzaW9uSURzGAUgASgDEhYKDmF1ZGlvU2Vzc2lvbklEGAYgASgNEg8KB2ljb25VUkwYByABKAk\");\n\n/**\n * @generated from message NowPlayingPlayer\n */\nexport type NowPlayingPlayer = Message<\"NowPlayingPlayer\"> & {\n /**\n * @generated from field: optional string identifier = 1;\n */\n identifier: string;\n\n /**\n * @generated from field: optional string displayName = 2;\n */\n displayName: string;\n\n /**\n * @generated from field: optional bool isDefaultPlayer = 3;\n */\n isDefaultPlayer: boolean;\n\n /**\n * @generated from field: optional int32 audioSessionType = 4;\n */\n audioSessionType: number;\n\n /**\n * @generated from field: optional int64 mxSessionIDs = 5;\n */\n mxSessionIDs: bigint;\n\n /**\n * @generated from field: optional uint32 audioSessionID = 6;\n */\n audioSessionID: number;\n\n /**\n * @generated from field: optional string iconURL = 7;\n */\n iconURL: string;\n};\n\n/**\n * Describes the message NowPlayingPlayer.\n * Use `create(NowPlayingPlayerSchema)` to create a new message.\n */\nexport const NowPlayingPlayerSchema: GenMessage<NowPlayingPlayer> = /*@__PURE__*/\n messageDesc(file_NowPlayingPlayer, 0);\n\n",
|
|
42
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file PlayerPath.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { Origin } from \"./Origin_pb\";\nimport { file_Origin } from \"./Origin_pb\";\nimport type { NowPlayingClient } from \"./NowPlayingClient_pb\";\nimport { file_NowPlayingClient } from \"./NowPlayingClient_pb\";\nimport type { NowPlayingPlayer } from \"./NowPlayingPlayer_pb\";\nimport { file_NowPlayingPlayer } from \"./NowPlayingPlayer_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file PlayerPath.proto.\n */\nexport const file_PlayerPath: GenFile = /*@__PURE__*/\n fileDesc(\"ChBQbGF5ZXJQYXRoLnByb3RvImsKClBsYXllclBhdGgSFwoGb3JpZ2luGAEgASgLMgcuT3JpZ2luEiEKBmNsaWVudBgCIAEoCzIRLk5vd1BsYXlpbmdDbGllbnQSIQoGcGxheWVyGAMgASgLMhEuTm93UGxheWluZ1BsYXllcg\", [file_Origin, file_NowPlayingClient, file_NowPlayingPlayer]);\n\n/**\n * @generated from message PlayerPath\n */\nexport type PlayerPath = Message<\"PlayerPath\"> & {\n /**\n * @generated from field: optional Origin origin = 1;\n */\n origin?: Origin;\n\n /**\n * @generated from field: optional NowPlayingClient client = 2;\n */\n client?: NowPlayingClient;\n\n /**\n * @generated from field: optional NowPlayingPlayer player = 3;\n */\n player?: NowPlayingPlayer;\n};\n\n/**\n * Describes the message PlayerPath.\n * Use `create(PlayerPathSchema)` to create a new message.\n */\nexport const PlayerPathSchema: GenMessage<PlayerPath> = /*@__PURE__*/\n messageDesc(file_PlayerPath, 0);\n\n",
|
|
43
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file AudioFadeMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { PlayerPath } from \"./PlayerPath_pb\";\nimport { file_PlayerPath } from \"./PlayerPath_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file AudioFadeMessage.proto.\n */\nexport const file_AudioFadeMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChZBdWRpb0ZhZGVNZXNzYWdlLnByb3RvIkUKEEF1ZGlvRmFkZU1lc3NhZ2USHwoKcGxheWVyUGF0aBgBIAEoCzILLlBsYXllclBhdGgSEAoIZmFkZVR5cGUYAiABKAU6TwoQYXVkaW9GYWRlTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRhYIAEoCzIRLkF1ZGlvRmFkZU1lc3NhZ2VSEGF1ZGlvRmFkZU1lc3NhZ2U\", [file_ProtocolMessage, file_PlayerPath]);\n\n/**\n * @generated from message AudioFadeMessage\n */\nexport type AudioFadeMessage = Message<\"AudioFadeMessage\"> & {\n /**\n * @generated from field: optional PlayerPath playerPath = 1;\n */\n playerPath?: PlayerPath;\n\n /**\n * @generated from field: optional int32 fadeType = 2;\n */\n fadeType: number;\n};\n\n/**\n * Describes the message AudioFadeMessage.\n * Use `create(AudioFadeMessageSchema)` to create a new message.\n */\nexport const AudioFadeMessageSchema: GenMessage<AudioFadeMessage> = /*@__PURE__*/\n messageDesc(file_AudioFadeMessage, 0);\n\n/**\n * @generated from extension: optional AudioFadeMessage audioFadeMessage = 88;\n */\nexport const audioFadeMessage: GenExtension<ProtocolMessage, AudioFadeMessage> = /*@__PURE__*/\n extDesc(file_AudioFadeMessage, 0);\n\n",
|
|
44
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file AudioFadeResponseMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file AudioFadeResponseMessage.proto.\n */\nexport const file_AudioFadeResponseMessage: GenFile = /*@__PURE__*/\n fileDesc(\"Ch5BdWRpb0ZhZGVSZXNwb25zZU1lc3NhZ2UucHJvdG8iMAoYQXVkaW9GYWRlUmVzcG9uc2VNZXNzYWdlEhQKDGZhZGVEdXJhdGlvbhgBIAEoAzpnChhhdWRpb0ZhZGVSZXNwb25zZU1lc3NhZ2USEC5Qcm90b2NvbE1lc3NhZ2UYWSABKAsyGS5BdWRpb0ZhZGVSZXNwb25zZU1lc3NhZ2VSGGF1ZGlvRmFkZVJlc3BvbnNlTWVzc2FnZQ\", [file_ProtocolMessage]);\n\n/**\n * @generated from message AudioFadeResponseMessage\n */\nexport type AudioFadeResponseMessage = Message<\"AudioFadeResponseMessage\"> & {\n /**\n * @generated from field: optional int64 fadeDuration = 1;\n */\n fadeDuration: bigint;\n};\n\n/**\n * Describes the message AudioFadeResponseMessage.\n * Use `create(AudioFadeResponseMessageSchema)` to create a new message.\n */\nexport const AudioFadeResponseMessageSchema: GenMessage<AudioFadeResponseMessage> = /*@__PURE__*/\n messageDesc(file_AudioFadeResponseMessage, 0);\n\n/**\n * @generated from extension: optional AudioFadeResponseMessage audioFadeResponseMessage = 89;\n */\nexport const audioFadeResponseMessage: GenExtension<ProtocolMessage, AudioFadeResponseMessage> = /*@__PURE__*/\n extDesc(file_AudioFadeResponseMessage, 0);\n\n",
|
|
45
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file AudioFormatSettingsMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file AudioFormatSettingsMessage.proto.\n */\nexport const file_AudioFormatSettingsMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CiBBdWRpb0Zvcm1hdFNldHRpbmdzTWVzc2FnZS5wcm90byI2ChNBdWRpb0Zvcm1hdFNldHRpbmdzEh8KF2Zvcm1hdFNldHRpbmdzUGxpc3REYXRhGAEgASgM\");\n\n/**\n * @generated from message AudioFormatSettings\n */\nexport type AudioFormatSettings = Message<\"AudioFormatSettings\"> & {\n /**\n * @generated from field: optional bytes formatSettingsPlistData = 1;\n */\n formatSettingsPlistData: Uint8Array;\n};\n\n/**\n * Describes the message AudioFormatSettings.\n * Use `create(AudioFormatSettingsSchema)` to create a new message.\n */\nexport const AudioFormatSettingsSchema: GenMessage<AudioFormatSettings> = /*@__PURE__*/\n messageDesc(file_AudioFormatSettingsMessage, 0);\n\n",
|
|
46
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file ClientUpdatesConfigMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file ClientUpdatesConfigMessage.proto.\n */\nexport const file_ClientUpdatesConfigMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CiBDbGllbnRVcGRhdGVzQ29uZmlnTWVzc2FnZS5wcm90byKcAQoaQ2xpZW50VXBkYXRlc0NvbmZpZ01lc3NhZ2USFgoOYXJ0d29ya1VwZGF0ZXMYASABKAgSGQoRbm93UGxheWluZ1VwZGF0ZXMYAiABKAgSFQoNdm9sdW1lVXBkYXRlcxgDIAEoCBIXCg9rZXlib2FyZFVwZGF0ZXMYBCABKAgSGwoTb3V0cHV0RGV2aWNlVXBkYXRlcxgFIAEoCDptChpjbGllbnRVcGRhdGVzQ29uZmlnTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRgVIAEoCzIbLkNsaWVudFVwZGF0ZXNDb25maWdNZXNzYWdlUhpjbGllbnRVcGRhdGVzQ29uZmlnTWVzc2FnZQ\", [file_ProtocolMessage]);\n\n/**\n * @generated from message ClientUpdatesConfigMessage\n */\nexport type ClientUpdatesConfigMessage = Message<\"ClientUpdatesConfigMessage\"> & {\n /**\n * @generated from field: optional bool artworkUpdates = 1;\n */\n artworkUpdates: boolean;\n\n /**\n * @generated from field: optional bool nowPlayingUpdates = 2;\n */\n nowPlayingUpdates: boolean;\n\n /**\n * @generated from field: optional bool volumeUpdates = 3;\n */\n volumeUpdates: boolean;\n\n /**\n * @generated from field: optional bool keyboardUpdates = 4;\n */\n keyboardUpdates: boolean;\n\n /**\n * @generated from field: optional bool outputDeviceUpdates = 5;\n */\n outputDeviceUpdates: boolean;\n};\n\n/**\n * Describes the message ClientUpdatesConfigMessage.\n * Use `create(ClientUpdatesConfigMessageSchema)` to create a new message.\n */\nexport const ClientUpdatesConfigMessageSchema: GenMessage<ClientUpdatesConfigMessage> = /*@__PURE__*/\n messageDesc(file_ClientUpdatesConfigMessage, 0);\n\n/**\n * @generated from extension: optional ClientUpdatesConfigMessage clientUpdatesConfigMessage = 21;\n */\nexport const clientUpdatesConfigMessage: GenExtension<ProtocolMessage, ClientUpdatesConfigMessage> = /*@__PURE__*/\n extDesc(file_ClientUpdatesConfigMessage, 0);\n\n",
|
|
47
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file CommandInfo.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenEnum, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { RepeatMode_Enum, ShuffleMode_Enum } from \"./Common_pb\";\nimport { file_Common } from \"./Common_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file CommandInfo.proto.\n */\nexport const file_CommandInfo: GenFile = /*@__PURE__*/\n fileDesc(\"ChFDb21tYW5kSW5mby5wcm90byJMCg5RdWV1ZUVuZEFjdGlvbiI6CgRFbnVtEg8KC0NsZWFyQWN0aW9uEAASCAoETm9uZRABEgkKBVJlc2V0EAISDAoIQXV0b1BsYXkQAyJKCg1EaXNhYmxlUmVhc29uIjkKBEVudW0SCwoHVW5rbm93bhAAEg4KCkFkUGxheWJhY2sQARIUChBTa2lwTGltaXRSZWFjaGVkEAIigwEKHFByZWxvYWRlZFBsYXliYWNrU2Vzc2lvbkluZm8SIQoZcGxheWJhY2tTZXNzaW9uSWRlbnRpZmllchgBIAEoCRIfChdwbGF5YmFja1Nlc3Npb25SZXZpc2lvbhgCIAEoCRIfChdwbGF5YmFja1Nlc3Npb25Qcmlvcml0eRgDIAEoBSK/BwoLQ29tbWFuZEluZm8SGQoHY29tbWFuZBgBIAEoDjIILkNvbW1hbmQSDwoHZW5hYmxlZBgCIAEoCBIOCgZhY3RpdmUYAyABKAgSGgoScHJlZmVycmVkSW50ZXJ2YWxzGAQgAygBEhYKDmxvY2FsaXplZFRpdGxlGAUgASgJEhUKDW1pbmltdW1SYXRpbmcYBiABKAISFQoNbWF4aW11bVJhdGluZxgHIAEoAhIWCg5zdXBwb3J0ZWRSYXRlcxgIIAMoAhIbChNsb2NhbGl6ZWRTaG9ydFRpdGxlGAkgASgJEiQKCnJlcGVhdE1vZGUYCiABKA4yEC5SZXBlYXRNb2RlLkVudW0SJgoLc2h1ZmZsZU1vZGUYCyABKA4yES5TaHVmZmxlTW9kZS5FbnVtEhkKEXByZXNlbnRhdGlvblN0eWxlGAwgASgFEhQKDHNraXBJbnRlcnZhbBgNIAEoBRIZChFudW1BdmFpbGFibGVTa2lwcxgOIAEoBRIVCg1za2lwRnJlcXVlbmN5GA8gASgFEhAKCGNhblNjcnViGBAgASgFEiMKG3N1cHBvcnRlZFBsYXliYWNrUXVldWVUeXBlcxgRIAMoBRInCh9zdXBwb3J0ZWRDdXN0b21RdWV1ZUlkZW50aWZpZXJzGBIgAygJEiMKG3N1cHBvcnRlZEluc2VydGlvblBvc2l0aW9ucxgTIAMoBRIbChNzdXBwb3J0c1NoYXJlZFF1ZXVlGBQgASgIEhcKD3VwTmV4dEl0ZW1Db3VudBgVIAEoBRIdChVwcmVmZXJyZWRQbGF5YmFja1JhdGUYFiABKAISJQodc3VwcG9ydGVkUGxheWJhY2tTZXNzaW9uVHlwZXMYFyADKAkSIwobY3VycmVudFBsYXliYWNrU2Vzc2lvblR5cGVzGBggAygJEiEKGXBsYXliYWNrU2Vzc2lvbklkZW50aWZpZXIYGSABKAkSMwoVY3VycmVudFF1ZXVlRW5kQWN0aW9uGBogASgOMhQuUXVldWVFbmRBY3Rpb24uRW51bRI2ChhzdXBwb3J0ZWRFbmRRdWV1ZUFjdGlvbnMYGyADKA4yFC5RdWV1ZUVuZEFjdGlvbi5FbnVtEioKDWRpc2FibGVSZWFzb24YHCABKA4yEy5EaXNhYmxlUmVhc29uLkVudW0SSgojc3VwcG9ydGVkUGxheWJhY2tTZXNzaW9uSWRlbnRpZmllcnMYHSADKAsyHS5QcmVsb2FkZWRQbGF5YmFja1Nlc3Npb25JbmZvKsIJCgdDb21tYW5kEgsKB1Vua25vd24QABIICgRQbGF5EAESCQoFUGF1c2UQAhITCg9Ub2dnbGVQbGF5UGF1c2UQAxIICgRTdG9wEAQSDQoJTmV4dFRyYWNrEAUSEQoNUHJldmlvdXNUcmFjaxAGEhYKEkFkdmFuY2VTaHVmZmxlTW9kZRAHEhUKEUFkdmFuY2VSZXBlYXRNb2RlEAgSFAoQQmVnaW5GYXN0Rm9yd2FyZBAJEhIKDkVuZEZhc3RGb3J3YXJkEAoSDwoLQmVnaW5SZXdpbmQQCxINCglFbmRSZXdpbmQQDBITCg9SZXdpbmQxNVNlY29uZHMQDRIYChRGYXN0Rm9yd2FyZDE1U2Vjb25kcxAOEhMKD1Jld2luZDMwU2Vjb25kcxAPEhgKFEZhc3RGb3J3YXJkMzBTZWNvbmRzEBASDwoLU2tpcEZvcndhcmQQEhIQCgxTa2lwQmFja3dhcmQQExIWChJDaGFuZ2VQbGF5YmFja1JhdGUQFBINCglSYXRlVHJhY2sQFRINCglMaWtlVHJhY2sQFhIQCgxEaXNsaWtlVHJhY2sQFxIRCg1Cb29rbWFya1RyYWNrEBgSGgoWU2Vla1RvUGxheWJhY2tQb3NpdGlvbhAtEhQKEENoYW5nZVJlcGVhdE1vZGUQLhIVChFDaGFuZ2VTaHVmZmxlTW9kZRAvEhgKFEVuYWJsZUxhbmd1YWdlT3B0aW9uEDUSGQoVRGlzYWJsZUxhbmd1YWdlT3B0aW9uEDYSDwoLTmV4dENoYXB0ZXIQGRITCg9QcmV2aW91c0NoYXB0ZXIQGhINCglOZXh0QWxidW0QGxIRCg1QcmV2aW91c0FsYnVtEBwSEAoMTmV4dFBsYXlsaXN0EB0SFAoQUHJldmlvdXNQbGF5bGlzdBAeEgwKCEJhblRyYWNrEB8SFgoSQWRkVHJhY2tUb1dpc2hMaXN0ECASGwoXUmVtb3ZlVHJhY2tGcm9tV2lzaExpc3QQIRIRCg1OZXh0SW5Db250ZXh0ECISFQoRUHJldmlvdXNJbkNvbnRleHQQIxIYChRSZXNldFBsYXliYWNrVGltZW91dBApEhQKEFNldFBsYXliYWNrUXVldWUQMBIeChpBZGROb3dQbGF5aW5nSXRlbVRvTGlicmFyeRAxEhYKEkNyZWF0ZVJhZGlvU3RhdGlvbhAyEhQKEEFkZEl0ZW1Ub0xpYnJhcnkQMxIbChdJbnNlcnRJbnRvUGxheWJhY2tRdWV1ZRA0EhgKFFJlb3JkZXJQbGF5YmFja1F1ZXVlEDcSGwoXUmVtb3ZlRnJvbVBsYXliYWNrUXVldWUQOBIbChdQbGF5SXRlbUluUGxheWJhY2tRdWV1ZRA5EhYKElByZXBhcmVGb3JTZXRRdWV1ZRA6EhYKElNldFBsYXliYWNrU2Vzc2lvbhA7EhwKGFByZWxvYWRlZFBsYXliYWNrU2Vzc2lvbhA8EiEKHVNldFByaW9yaXR5Rm9yUGxheWJhY2tTZXNzaW9uED0SGgoWRGlzY2FyZFBsYXliYWNrU2Vzc2lvbhA+Eg0KCVJlc2h1ZmZsZRA/EhkKFENoYW5nZVF1ZXVlRW5kQWN0aW9uEIcB\", [file_Common]);\n\n/**\n * @generated from message QueueEndAction\n */\nexport type QueueEndAction = Message<\"QueueEndAction\"> & {\n};\n\n/**\n * Describes the message QueueEndAction.\n * Use `create(QueueEndActionSchema)` to create a new message.\n */\nexport const QueueEndActionSchema: GenMessage<QueueEndAction> = /*@__PURE__*/\n messageDesc(file_CommandInfo, 0);\n\n/**\n * @generated from enum QueueEndAction.Enum\n */\nexport enum QueueEndAction_Enum {\n /**\n * @generated from enum value: ClearAction = 0;\n */\n ClearAction = 0,\n\n /**\n * @generated from enum value: None = 1;\n */\n None = 1,\n\n /**\n * @generated from enum value: Reset = 2;\n */\n Reset = 2,\n\n /**\n * @generated from enum value: AutoPlay = 3;\n */\n AutoPlay = 3,\n}\n\n/**\n * Describes the enum QueueEndAction.Enum.\n */\nexport const QueueEndAction_EnumSchema: GenEnum<QueueEndAction_Enum> = /*@__PURE__*/\n enumDesc(file_CommandInfo, 0, 0);\n\n/**\n * @generated from message DisableReason\n */\nexport type DisableReason = Message<\"DisableReason\"> & {\n};\n\n/**\n * Describes the message DisableReason.\n * Use `create(DisableReasonSchema)` to create a new message.\n */\nexport const DisableReasonSchema: GenMessage<DisableReason> = /*@__PURE__*/\n messageDesc(file_CommandInfo, 1);\n\n/**\n * @generated from enum DisableReason.Enum\n */\nexport enum DisableReason_Enum {\n /**\n * @generated from enum value: Unknown = 0;\n */\n Unknown = 0,\n\n /**\n * @generated from enum value: AdPlayback = 1;\n */\n AdPlayback = 1,\n\n /**\n * @generated from enum value: SkipLimitReached = 2;\n */\n SkipLimitReached = 2,\n}\n\n/**\n * Describes the enum DisableReason.Enum.\n */\nexport const DisableReason_EnumSchema: GenEnum<DisableReason_Enum> = /*@__PURE__*/\n enumDesc(file_CommandInfo, 1, 0);\n\n/**\n * @generated from message PreloadedPlaybackSessionInfo\n */\nexport type PreloadedPlaybackSessionInfo = Message<\"PreloadedPlaybackSessionInfo\"> & {\n /**\n * @generated from field: optional string playbackSessionIdentifier = 1;\n */\n playbackSessionIdentifier: string;\n\n /**\n * @generated from field: optional string playbackSessionRevision = 2;\n */\n playbackSessionRevision: string;\n\n /**\n * @generated from field: optional int32 playbackSessionPriority = 3;\n */\n playbackSessionPriority: number;\n};\n\n/**\n * Describes the message PreloadedPlaybackSessionInfo.\n * Use `create(PreloadedPlaybackSessionInfoSchema)` to create a new message.\n */\nexport const PreloadedPlaybackSessionInfoSchema: GenMessage<PreloadedPlaybackSessionInfo> = /*@__PURE__*/\n messageDesc(file_CommandInfo, 2);\n\n/**\n * @generated from message CommandInfo\n */\nexport type CommandInfo = Message<\"CommandInfo\"> & {\n /**\n * @generated from field: optional Command command = 1;\n */\n command: Command;\n\n /**\n * @generated from field: optional bool enabled = 2;\n */\n enabled: boolean;\n\n /**\n * @generated from field: optional bool active = 3;\n */\n active: boolean;\n\n /**\n * @generated from field: repeated double preferredIntervals = 4;\n */\n preferredIntervals: number[];\n\n /**\n * @generated from field: optional string localizedTitle = 5;\n */\n localizedTitle: string;\n\n /**\n * @generated from field: optional float minimumRating = 6;\n */\n minimumRating: number;\n\n /**\n * @generated from field: optional float maximumRating = 7;\n */\n maximumRating: number;\n\n /**\n * @generated from field: repeated float supportedRates = 8;\n */\n supportedRates: number[];\n\n /**\n * @generated from field: optional string localizedShortTitle = 9;\n */\n localizedShortTitle: string;\n\n /**\n * @generated from field: optional RepeatMode.Enum repeatMode = 10;\n */\n repeatMode: RepeatMode_Enum;\n\n /**\n * @generated from field: optional ShuffleMode.Enum shuffleMode = 11;\n */\n shuffleMode: ShuffleMode_Enum;\n\n /**\n * @generated from field: optional int32 presentationStyle = 12;\n */\n presentationStyle: number;\n\n /**\n * @generated from field: optional int32 skipInterval = 13;\n */\n skipInterval: number;\n\n /**\n * @generated from field: optional int32 numAvailableSkips = 14;\n */\n numAvailableSkips: number;\n\n /**\n * @generated from field: optional int32 skipFrequency = 15;\n */\n skipFrequency: number;\n\n /**\n * @generated from field: optional int32 canScrub = 16;\n */\n canScrub: number;\n\n /**\n * @generated from field: repeated int32 supportedPlaybackQueueTypes = 17;\n */\n supportedPlaybackQueueTypes: number[];\n\n /**\n * @generated from field: repeated string supportedCustomQueueIdentifiers = 18;\n */\n supportedCustomQueueIdentifiers: string[];\n\n /**\n * @generated from field: repeated int32 supportedInsertionPositions = 19;\n */\n supportedInsertionPositions: number[];\n\n /**\n * @generated from field: optional bool supportsSharedQueue = 20;\n */\n supportsSharedQueue: boolean;\n\n /**\n * @generated from field: optional int32 upNextItemCount = 21;\n */\n upNextItemCount: number;\n\n /**\n * @generated from field: optional float preferredPlaybackRate = 22;\n */\n preferredPlaybackRate: number;\n\n /**\n * @generated from field: repeated string supportedPlaybackSessionTypes = 23;\n */\n supportedPlaybackSessionTypes: string[];\n\n /**\n * @generated from field: repeated string currentPlaybackSessionTypes = 24;\n */\n currentPlaybackSessionTypes: string[];\n\n /**\n * @generated from field: optional string playbackSessionIdentifier = 25;\n */\n playbackSessionIdentifier: string;\n\n /**\n * @generated from field: optional QueueEndAction.Enum currentQueueEndAction = 26;\n */\n currentQueueEndAction: QueueEndAction_Enum;\n\n /**\n * @generated from field: repeated QueueEndAction.Enum supportedEndQueueActions = 27;\n */\n supportedEndQueueActions: QueueEndAction_Enum[];\n\n /**\n * @generated from field: optional DisableReason.Enum disableReason = 28;\n */\n disableReason: DisableReason_Enum;\n\n /**\n * @generated from field: repeated PreloadedPlaybackSessionInfo supportedPlaybackSessionIdentifiers = 29;\n */\n supportedPlaybackSessionIdentifiers: PreloadedPlaybackSessionInfo[];\n};\n\n/**\n * Describes the message CommandInfo.\n * Use `create(CommandInfoSchema)` to create a new message.\n */\nexport const CommandInfoSchema: GenMessage<CommandInfo> = /*@__PURE__*/\n messageDesc(file_CommandInfo, 3);\n\n/**\n * @generated from enum Command\n */\nexport enum Command {\n /**\n * @generated from enum value: Unknown = 0;\n */\n Unknown = 0,\n\n /**\n * @generated from enum value: Play = 1;\n */\n Play = 1,\n\n /**\n * @generated from enum value: Pause = 2;\n */\n Pause = 2,\n\n /**\n * @generated from enum value: TogglePlayPause = 3;\n */\n TogglePlayPause = 3,\n\n /**\n * @generated from enum value: Stop = 4;\n */\n Stop = 4,\n\n /**\n * @generated from enum value: NextTrack = 5;\n */\n NextTrack = 5,\n\n /**\n * @generated from enum value: PreviousTrack = 6;\n */\n PreviousTrack = 6,\n\n /**\n * @generated from enum value: AdvanceShuffleMode = 7;\n */\n AdvanceShuffleMode = 7,\n\n /**\n * @generated from enum value: AdvanceRepeatMode = 8;\n */\n AdvanceRepeatMode = 8,\n\n /**\n * @generated from enum value: BeginFastForward = 9;\n */\n BeginFastForward = 9,\n\n /**\n * @generated from enum value: EndFastForward = 10;\n */\n EndFastForward = 10,\n\n /**\n * @generated from enum value: BeginRewind = 11;\n */\n BeginRewind = 11,\n\n /**\n * @generated from enum value: EndRewind = 12;\n */\n EndRewind = 12,\n\n /**\n * @generated from enum value: Rewind15Seconds = 13;\n */\n Rewind15Seconds = 13,\n\n /**\n * @generated from enum value: FastForward15Seconds = 14;\n */\n FastForward15Seconds = 14,\n\n /**\n * @generated from enum value: Rewind30Seconds = 15;\n */\n Rewind30Seconds = 15,\n\n /**\n * @generated from enum value: FastForward30Seconds = 16;\n */\n FastForward30Seconds = 16,\n\n /**\n * @generated from enum value: SkipForward = 18;\n */\n SkipForward = 18,\n\n /**\n * @generated from enum value: SkipBackward = 19;\n */\n SkipBackward = 19,\n\n /**\n * @generated from enum value: ChangePlaybackRate = 20;\n */\n ChangePlaybackRate = 20,\n\n /**\n * @generated from enum value: RateTrack = 21;\n */\n RateTrack = 21,\n\n /**\n * @generated from enum value: LikeTrack = 22;\n */\n LikeTrack = 22,\n\n /**\n * @generated from enum value: DislikeTrack = 23;\n */\n DislikeTrack = 23,\n\n /**\n * @generated from enum value: BookmarkTrack = 24;\n */\n BookmarkTrack = 24,\n\n /**\n * @generated from enum value: SeekToPlaybackPosition = 45;\n */\n SeekToPlaybackPosition = 45,\n\n /**\n * @generated from enum value: ChangeRepeatMode = 46;\n */\n ChangeRepeatMode = 46,\n\n /**\n * @generated from enum value: ChangeShuffleMode = 47;\n */\n ChangeShuffleMode = 47,\n\n /**\n * @generated from enum value: EnableLanguageOption = 53;\n */\n EnableLanguageOption = 53,\n\n /**\n * @generated from enum value: DisableLanguageOption = 54;\n */\n DisableLanguageOption = 54,\n\n /**\n * @generated from enum value: NextChapter = 25;\n */\n NextChapter = 25,\n\n /**\n * @generated from enum value: PreviousChapter = 26;\n */\n PreviousChapter = 26,\n\n /**\n * @generated from enum value: NextAlbum = 27;\n */\n NextAlbum = 27,\n\n /**\n * @generated from enum value: PreviousAlbum = 28;\n */\n PreviousAlbum = 28,\n\n /**\n * @generated from enum value: NextPlaylist = 29;\n */\n NextPlaylist = 29,\n\n /**\n * @generated from enum value: PreviousPlaylist = 30;\n */\n PreviousPlaylist = 30,\n\n /**\n * @generated from enum value: BanTrack = 31;\n */\n BanTrack = 31,\n\n /**\n * @generated from enum value: AddTrackToWishList = 32;\n */\n AddTrackToWishList = 32,\n\n /**\n * @generated from enum value: RemoveTrackFromWishList = 33;\n */\n RemoveTrackFromWishList = 33,\n\n /**\n * @generated from enum value: NextInContext = 34;\n */\n NextInContext = 34,\n\n /**\n * @generated from enum value: PreviousInContext = 35;\n */\n PreviousInContext = 35,\n\n /**\n * @generated from enum value: ResetPlaybackTimeout = 41;\n */\n ResetPlaybackTimeout = 41,\n\n /**\n * @generated from enum value: SetPlaybackQueue = 48;\n */\n SetPlaybackQueue = 48,\n\n /**\n * @generated from enum value: AddNowPlayingItemToLibrary = 49;\n */\n AddNowPlayingItemToLibrary = 49,\n\n /**\n * @generated from enum value: CreateRadioStation = 50;\n */\n CreateRadioStation = 50,\n\n /**\n * @generated from enum value: AddItemToLibrary = 51;\n */\n AddItemToLibrary = 51,\n\n /**\n * @generated from enum value: InsertIntoPlaybackQueue = 52;\n */\n InsertIntoPlaybackQueue = 52,\n\n /**\n * @generated from enum value: ReorderPlaybackQueue = 55;\n */\n ReorderPlaybackQueue = 55,\n\n /**\n * @generated from enum value: RemoveFromPlaybackQueue = 56;\n */\n RemoveFromPlaybackQueue = 56,\n\n /**\n * @generated from enum value: PlayItemInPlaybackQueue = 57;\n */\n PlayItemInPlaybackQueue = 57,\n\n /**\n * @generated from enum value: PrepareForSetQueue = 58;\n */\n PrepareForSetQueue = 58,\n\n /**\n * @generated from enum value: SetPlaybackSession = 59;\n */\n SetPlaybackSession = 59,\n\n /**\n * @generated from enum value: PreloadedPlaybackSession = 60;\n */\n PreloadedPlaybackSession = 60,\n\n /**\n * @generated from enum value: SetPriorityForPlaybackSession = 61;\n */\n SetPriorityForPlaybackSession = 61,\n\n /**\n * @generated from enum value: DiscardPlaybackSession = 62;\n */\n DiscardPlaybackSession = 62,\n\n /**\n * @generated from enum value: Reshuffle = 63;\n */\n Reshuffle = 63,\n\n /**\n * @generated from enum value: ChangeQueueEndAction = 135;\n */\n ChangeQueueEndAction = 135,\n}\n\n/**\n * Describes the enum Command.\n */\nexport const CommandSchema: GenEnum<Command> = /*@__PURE__*/\n enumDesc(file_CommandInfo, 0);\n\n",
|
|
48
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file CommandOptions.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { RepeatMode_Enum, ShuffleMode_Enum } from \"./Common_pb\";\nimport { file_Common } from \"./Common_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file CommandOptions.proto.\n */\nexport const file_CommandOptions: GenFile = /*@__PURE__*/\n fileDesc(\"ChRDb21tYW5kT3B0aW9ucy5wcm90byLhBgoOQ29tbWFuZE9wdGlvbnMSEAoIc291cmNlSWQYAiABKAkSEQoJbWVkaWFUeXBlGAMgASgJEh0KFWV4dGVybmFsUGxheWVyQ29tbWFuZBgEIAEoCBIUCgxza2lwSW50ZXJ2YWwYBSABKAISFAoMcGxheWJhY2tSYXRlGAYgASgCEg4KBnJhdGluZxgHIAEoAhIQCghuZWdhdGl2ZRgIIAEoCBIYChBwbGF5YmFja1Bvc2l0aW9uGAkgASgBEiQKCnJlcGVhdE1vZGUYCiABKA4yEC5SZXBlYXRNb2RlLkVudW0SJgoLc2h1ZmZsZU1vZGUYCyABKA4yES5TaHVmZmxlTW9kZS5FbnVtEg8KB3RyYWNrSUQYDCABKAQSFgoOcmFkaW9TdGF0aW9uSUQYDSABKAMSGAoQcmFkaW9TdGF0aW9uSGFzaBgOIAEoCRIiChpzeXN0ZW1BcHBQbGF5YmFja1F1ZXVlRGF0YRgPIAEoDBIfChdkZXN0aW5hdGlvbkFwcERpc3BsYXlJRBgQIAEoCRITCgtzZW5kT3B0aW9ucxgRIAEoDRIvCidyZXF1ZXN0RGVmZXJtZW50VG9QbGF5YmFja1F1ZXVlUG9zaXRpb24YEiABKAgSEQoJY29udGV4dElEGBMgASgJEioKInNob3VsZE92ZXJyaWRlTWFudWFsbHlDdXJhdGVkUXVldWUYFCABKAgSEgoKc3RhdGlvblVSTBgVIAEoCRIgChhzaG91bGRCZWdpblJhZGlvUGxheWJhY2sYFiABKAgSJgoecGxheWJhY2tRdWV1ZUluc2VydGlvblBvc2l0aW9uGBcgASgFEhUKDWNvbnRlbnRJdGVtSUQYGCABKAkSGwoTcGxheWJhY2tRdWV1ZU9mZnNldBgZIAEoBRImCh5wbGF5YmFja1F1ZXVlRGVzdGluYXRpb25PZmZzZXQYGiABKAUSFgoObGFuZ3VhZ2VPcHRpb24YGyABKAwSHAoUcGxheWJhY2tRdWV1ZUNvbnRleHQYHCABKAwSIAoYaW5zZXJ0QWZ0ZXJDb250ZW50SXRlbUlEGB0gASgJEh8KF25vd1BsYXlpbmdDb250ZW50SXRlbUlEGB4gASgJEhUKDXJlcGxhY2VJbnRlbnQYHyABKAU\", [file_Common]);\n\n/**\n * @generated from message CommandOptions\n */\nexport type CommandOptions = Message<\"CommandOptions\"> & {\n /**\n * @generated from field: optional string sourceId = 2;\n */\n sourceId: string;\n\n /**\n * @generated from field: optional string mediaType = 3;\n */\n mediaType: string;\n\n /**\n * @generated from field: optional bool externalPlayerCommand = 4;\n */\n externalPlayerCommand: boolean;\n\n /**\n * @generated from field: optional float skipInterval = 5;\n */\n skipInterval: number;\n\n /**\n * @generated from field: optional float playbackRate = 6;\n */\n playbackRate: number;\n\n /**\n * @generated from field: optional float rating = 7;\n */\n rating: number;\n\n /**\n * @generated from field: optional bool negative = 8;\n */\n negative: boolean;\n\n /**\n * @generated from field: optional double playbackPosition = 9;\n */\n playbackPosition: number;\n\n /**\n * @generated from field: optional RepeatMode.Enum repeatMode = 10;\n */\n repeatMode: RepeatMode_Enum;\n\n /**\n * @generated from field: optional ShuffleMode.Enum shuffleMode = 11;\n */\n shuffleMode: ShuffleMode_Enum;\n\n /**\n * @generated from field: optional uint64 trackID = 12;\n */\n trackID: bigint;\n\n /**\n * @generated from field: optional int64 radioStationID = 13;\n */\n radioStationID: bigint;\n\n /**\n * @generated from field: optional string radioStationHash = 14;\n */\n radioStationHash: string;\n\n /**\n * @generated from field: optional bytes systemAppPlaybackQueueData = 15;\n */\n systemAppPlaybackQueueData: Uint8Array;\n\n /**\n * @generated from field: optional string destinationAppDisplayID = 16;\n */\n destinationAppDisplayID: string;\n\n /**\n * @generated from field: optional uint32 sendOptions = 17;\n */\n sendOptions: number;\n\n /**\n * @generated from field: optional bool requestDefermentToPlaybackQueuePosition = 18;\n */\n requestDefermentToPlaybackQueuePosition: boolean;\n\n /**\n * @generated from field: optional string contextID = 19;\n */\n contextID: string;\n\n /**\n * @generated from field: optional bool shouldOverrideManuallyCuratedQueue = 20;\n */\n shouldOverrideManuallyCuratedQueue: boolean;\n\n /**\n * @generated from field: optional string stationURL = 21;\n */\n stationURL: string;\n\n /**\n * @generated from field: optional bool shouldBeginRadioPlayback = 22;\n */\n shouldBeginRadioPlayback: boolean;\n\n /**\n * @generated from field: optional int32 playbackQueueInsertionPosition = 23;\n */\n playbackQueueInsertionPosition: number;\n\n /**\n * @generated from field: optional string contentItemID = 24;\n */\n contentItemID: string;\n\n /**\n * @generated from field: optional int32 playbackQueueOffset = 25;\n */\n playbackQueueOffset: number;\n\n /**\n * @generated from field: optional int32 playbackQueueDestinationOffset = 26;\n */\n playbackQueueDestinationOffset: number;\n\n /**\n * @generated from field: optional bytes languageOption = 27;\n */\n languageOption: Uint8Array;\n\n /**\n * @generated from field: optional bytes playbackQueueContext = 28;\n */\n playbackQueueContext: Uint8Array;\n\n /**\n * @generated from field: optional string insertAfterContentItemID = 29;\n */\n insertAfterContentItemID: string;\n\n /**\n * @generated from field: optional string nowPlayingContentItemID = 30;\n */\n nowPlayingContentItemID: string;\n\n /**\n * @generated from field: optional int32 replaceIntent = 31;\n */\n replaceIntent: number;\n};\n\n/**\n * Describes the message CommandOptions.\n * Use `create(CommandOptionsSchema)` to create a new message.\n */\nexport const CommandOptionsSchema: GenMessage<CommandOptions> = /*@__PURE__*/\n messageDesc(file_CommandOptions, 0);\n\n",
|
|
49
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file ConfigureConnectionMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file ConfigureConnectionMessage.proto.\n */\nexport const file_ConfigureConnectionMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CiBDb25maWd1cmVDb25uZWN0aW9uTWVzc2FnZS5wcm90byItChpDb25maWd1cmVDb25uZWN0aW9uTWVzc2FnZRIPCgdncm91cElEGAEgASgJOm0KGmNvbmZpZ3VyZUNvbm5lY3Rpb25NZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGF4gASgLMhsuQ29uZmlndXJlQ29ubmVjdGlvbk1lc3NhZ2VSGmNvbmZpZ3VyZUNvbm5lY3Rpb25NZXNzYWdl\", [file_ProtocolMessage]);\n\n/**\n * @generated from message ConfigureConnectionMessage\n */\nexport type ConfigureConnectionMessage = Message<\"ConfigureConnectionMessage\"> & {\n /**\n * @generated from field: optional string groupID = 1;\n */\n groupID: string;\n};\n\n/**\n * Describes the message ConfigureConnectionMessage.\n * Use `create(ConfigureConnectionMessageSchema)` to create a new message.\n */\nexport const ConfigureConnectionMessageSchema: GenMessage<ConfigureConnectionMessage> = /*@__PURE__*/\n messageDesc(file_ConfigureConnectionMessage, 0);\n\n/**\n * @generated from extension: optional ConfigureConnectionMessage configureConnectionMessage = 94;\n */\nexport const configureConnectionMessage: GenExtension<ProtocolMessage, ConfigureConnectionMessage> = /*@__PURE__*/\n extDesc(file_ConfigureConnectionMessage, 0);\n\n",
|
|
50
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file ContentItemMetadata.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenEnum, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file ContentItemMetadata.proto.\n */\nexport const file_ContentItemMetadata: GenFile = /*@__PURE__*/\n fileDesc(\"ChlDb250ZW50SXRlbU1ldGFkYXRhLnByb3RvIrkBCg5BdWRpb1JvdXRlVHlwZSKmAQoERW51bRILCgdVbmtub3duEAASEgoORGV2aWNlc1NwZWFrZXIQARILCgdMaW5lT3V0EAISDgoKSGVhZHBob25lcxADEhcKE0JsdWV0b290aEhlYWRwaG9uZXMQBBIUChBCbHVldG9vdGhTcGVha2VyEAUSDAoIVVNCQXVkaW8QBhIMCghDYXJBdWRpbxAHEggKBEhETUkQCBILCgdBaXJQbGF5EAkiWQoKQXVkaW9Sb3V0ZRIdCgR0eXBlGAEgASgLMg8uQXVkaW9Sb3V0ZVR5cGUSDAoEbmFtZRgCIAEoCRIeChZzdXBwb3J0c1NwYXRpYWxpemF0aW9uGAMgASgIInkKCUF1ZGlvVGllciJsCgRFbnVtEhYKEkxvd0JhbmR3aWR0aFN0ZXJlbxABEhUKEUhpZ2hRdWFsaXR5U3RlcmVvEAISDAoITG9zc2xlc3MQAxIaChZIaWdoUmVzb2x1dGlvbkxvc3NsZXNzEAQSCwoHU3BhdGlhbBAFIocBCgpTb25nVHJhaXRzInkKBEVudW0SCAoETm9uZRAAEhcKE0FwcGxlRGlnaXRpYWxNYXN0ZXIQARIMCghMb3NzbGVzcxACEhoKFkhpZ2hSZXNvbHV0aW9uTG9zc2xlc3MQBBILCgdTcGF0aWFsEAgSCQoFQXRtb3MQEBIMCghTdXJyb3VuZBAgIogBCgtBbGJ1bVRyYWl0cyJ5CgRFbnVtEggKBE5vbmUQABIXChNBcHBsZURpZ2l0aWFsTWFzdGVyEAESDAoITG9zc2xlc3MQAhIaChZIaWdoUmVzb2x1dGlvbkxvc3NsZXNzEAQSCwoHU3BhdGlhbBAIEgkKBUF0bW9zEBASDAoIU3Vycm91bmQQICJICg5QbGF5bGlzdFRyYWl0cyI2CgRFbnVtEggKBE5vbmUQABILCgdTcGF0aWFsEAgSCQoFQXRtb3MQEBIMCghTdXJyb3VuZBAgIrwBChlBY3RpdmVGb3JtYXRKdXN0aWZpY2F0aW9uIp4BCgRFbnVtEgsKB1Vua25vd24QABIPCgtVbmF2YWlsYWJsZRABEhIKDlVzZXJQcmVmZXJlbmNlEGQSEAoMVXNlckRvd25sb2FkEGUSFgoRUm91dGVJbmNvbXBhdGlibGUQ9AMSHgoZUm91dGVVbmtub3duQ29tcGF0aWJpbGl0eRD1AxIaChVCYW5kd2lkdGhJbnN1ZmZpY2llbnQQ6AciegoKRm9ybWF0VGllciJsCgRFbnVtEhYKEkxvd0JhbmR3aWR0aFN0ZXJlbxABEhUKEUhpZ2hRdWFsaXR5U3RlcmVvEAISDAoITG9zc2xlc3MQBBIaChZIaWdoUmVzb2x1dGlvbkxvc3NsZXNzEAgSCwoHU3BhdGlhbBAQIoUCCgtBdWRpb0Zvcm1hdBIdCgR0aWVyGAEgASgOMg8uQXVkaW9UaWVyLkVudW0SDwoHYml0cmF0ZRgCIAEoAxISCgpzYW1wbGVSYXRlGAMgASgDEhAKCGJpdERlcHRoGAQgASgDEg0KBWNvZGVjGAUgASgNEhMKC3NwYXRpYWxpemVkGAYgASgIEhQKDG11bHRpQ2hhbm5lbBgHIAEoCBIVCg1jaGFubmVsTGF5b3V0GAggASgNEiUKHWF1ZGlvQ2hhbm5lbExheW91dERlc2NyaXB0aW9uGAkgASgJEg8KB2dyb3VwSUQYCiABKAkSFwoPc3RhYmxlVmFyaWFudElEGAsgASgJIucUChNDb250ZW50SXRlbU1ldGFkYXRhEg0KBXRpdGxlGAEgASgJEhAKCHN1YnRpdGxlGAIgASgJEhMKC2lzQ29udGFpbmVyGAMgASgIEhIKCmlzUGxheWFibGUYBCABKAgSGAoQcGxheWJhY2tQcm9ncmVzcxgFIAEoAhIRCglhbGJ1bU5hbWUYBiABKAkSFwoPdHJhY2tBcnRpc3ROYW1lGAcgASgJEhcKD2FsYnVtQXJ0aXN0TmFtZRgIIAEoCRIUCgxkaXJlY3Rvck5hbWUYCSABKAkSFAoMc2Vhc29uTnVtYmVyGAogASgFEhUKDWVwaXNvZGVOdW1iZXIYCyABKAUSEwoLcmVsZWFzZURhdGUYDCABKAESEQoJcGxheUNvdW50GA0gASgFEhAKCGR1cmF0aW9uGA4gASgBEh4KFmxvY2FsaXplZENvbnRlbnRSYXRpbmcYDyABKAkSFgoOaXNFeHBsaWNpdEl0ZW0YECABKAgSFAoMcGxheWxpc3RUeXBlGBEgASgFEhgKEHJhZGlvU3RhdGlvblR5cGUYEiABKAUSGAoQYXJ0d29ya0F2YWlsYWJsZRgTIAEoCBIVCg1pbmZvQXZhaWxhYmxlGBUgASgIEiAKGGxhbmd1YWdlT3B0aW9uc0F2YWlsYWJsZRgWIAEoCBIYChBudW1iZXJPZlNlY3Rpb25zGBcgASgFEhcKD2x5cmljc0F2YWlsYWJsZRgYIAEoCBIZChFlZGl0aW5nU3R5bGVGbGFncxgZIAEoBRIaChJpc1N0cmVhbWluZ0NvbnRlbnQYGiABKAgSGgoSaXNDdXJyZW50bHlQbGF5aW5nGBsgASgIEhwKFGNvbGxlY3Rpb25JZGVudGlmaWVyGBwgASgJEhkKEXByb2ZpbGVJZGVudGlmaWVyGB0gASgJEhEKCXN0YXJ0VGltZRgeIAEoARIXCg9hcnR3b3JrTUlNRVR5cGUYHyABKAkSFgoOYXNzZXRVUkxTdHJpbmcYICABKAkSEAoIY29tcG9zZXIYISABKAkSEgoKZGlzY051bWJlchgiIAEoBRITCgtlbGFwc2VkVGltZRgjIAEoARINCgVnZW5yZRgkIAEoCRIUCgxpc0Fsd2F5c0xpdmUYJSABKAgSFAoMcGxheWJhY2tSYXRlGCcgASgCEhQKDGNoYXB0ZXJDb3VudBgoIAEoBRIWCg50b3RhbERpc2NDb3VudBgpIAEoBRIXCg90b3RhbFRyYWNrQ291bnQYKiABKAUSEwoLdHJhY2tOdW1iZXIYKyABKAUSGQoRY29udGVudElkZW50aWZpZXIYLCABKAkSEgoKaXNTaGFyYWJsZRguIAEoCBIPCgdpc0xpa2VkGDAgASgIEhQKDGlzSW5XaXNoTGlzdBgxIAEoCBIeChZyYWRpb1N0YXRpb25JZGVudGlmaWVyGDIgASgDEhgKEHJhZGlvU3RhdGlvbk5hbWUYNCABKAkSGgoScmFkaW9TdGF0aW9uU3RyaW5nGDUgASgJEh0KFWlUdW5lc1N0b3JlSWRlbnRpZmllchg2IAEoAxIpCiFpVHVuZXNTdG9yZVN1YnNjcmlwdGlvbklkZW50aWZpZXIYNyABKAMSIwobaVR1bmVzU3RvcmVBcnRpc3RJZGVudGlmaWVyGDggASgDEiIKGmlUdW5lc1N0b3JlQWxidW1JZGVudGlmaWVyGDkgASgDEhgKEHB1cmNoYXNlSW5mb0RhdGEYOiABKAwSGwoTZGVmYXVsdFBsYXliYWNrUmF0ZRg7IAEoAhIVCg1kb3dubG9hZFN0YXRlGDwgASgFEhgKEGRvd25sb2FkUHJvZ3Jlc3MYPSABKAISFgoOYXBwTWV0cmljc0RhdGEYPiABKAwSEgoKc2VyaWVzTmFtZRg/IAEoCRIxCgltZWRpYVR5cGUYQCABKA4yHi5Db250ZW50SXRlbU1ldGFkYXRhLk1lZGlhVHlwZRI3CgxtZWRpYVN1YlR5cGUYQSABKA4yIS5Db250ZW50SXRlbU1ldGFkYXRhLk1lZGlhU3ViVHlwZRIaChJub3dQbGF5aW5nSW5mb0RhdGEYQyABKAwSFAoMdXNlckluZm9EYXRhGEQgASgMEhMKC2lzU3RlZXJhYmxlGEUgASgIEhIKCmFydHdvcmtVUkwYRiABKAkSEQoJbHlyaWNzVVJMGEcgASgJEiIKGmRldmljZVNwZWNpZmljVXNlckluZm9EYXRhGEggASgMEhoKEmNvbGxlY3Rpb25JbmZvRGF0YRhJIAEoDBIcChRlbGFwc2VkVGltZVRpbWVzdGFtcBhKIAEoARIZChFpbmZlcnJlZFRpbWVzdGFtcBhLIAEoARIZChFzZXJ2aWNlSWRlbnRpZmllchhMIAEoCRIYChBhcnR3b3JrRGF0YVdpZHRoGE0gASgFEhkKEWFydHdvcmtEYXRhSGVpZ2h0GE4gASgFEh8KF2N1cnJlbnRQbGF5YmFja0RhdGVEYXRhGE8gASgMEhkKEWFydHdvcmtJZGVudGlmaWVyGFAgASgJEhEKCWlzTG9hZGluZxhRIAEoCBIfChdhcnR3b3JrVVJMVGVtcGxhdGVzRGF0YRhSIAEoDBIeChZsZWdhY3lVbmlxdWVJZGVudGlmaWVyGFMgASgDEhMKC2VwaXNvZGVUeXBlGFQgASgFEhYKDmFydHdvcmtGaWxlVVJMGFUgASgJEhcKD2JyYW5kSWRlbnRpZmllchhWIAEoCRIfChdsb2NhbGl6ZWREdXJhdGlvblN0cmluZxhXIAEoCRIRCglhbGJ1bVllYXIYWCABKAkSJAoKc29uZ1RyYWl0cxhZIAEoDjIQLlNvbmdUcmFpdHMuRW51bRImCgthbGJ1bVRyYWl0cxhaIAEoDjIRLkFsYnVtVHJhaXRzLkVudW0SLAoOcGxheWxpc3RUcmFpdHMYWyABKA4yFC5QbGF5bGlzdFRyYWl0cy5FbnVtEiUKD3ByZWZlcnJlZEZvcm1hdBhcIAEoCzIMLkF1ZGlvRm9ybWF0EiIKDGFjdGl2ZUZvcm1hdBhdIAEoCzIMLkF1ZGlvRm9ybWF0EkIKGWFjdGl2ZUZvcm1hdEp1c3RpZmljYXRpb24YXiABKA4yHy5BY3RpdmVGb3JtYXRKdXN0aWZpY2F0aW9uLkVudW0SLgoUZm9ybWF0VGllclByZWZlcmVuY2UYXyABKA4yEC5Gb3JtYXRUaWVyLkVudW0SHwoKYXVkaW9Sb3V0ZRhgIAEoCzILLkF1ZGlvUm91dGUSKAoSYWx0ZXJuYXRpdmVGb3JtYXRzGGEgAygLMgwuQXVkaW9Gb3JtYXQiNwoJTWVkaWFUeXBlEhQKEFVua25vd25NZWRpYVR5cGUQABIJCgVBdWRpbxABEgkKBVZpZGVvEAIiWwoMTWVkaWFTdWJUeXBlEhcKE1Vua25vd25NZWRpYVN1YlR5cGUQABIJCgVNdXNpYxABEgsKB1BvZGNhc3QQBBINCglBdWRpb0Jvb2sQBRILCgdJVHVuZXNVEAY\");\n\n/**\n * @generated from message AudioRouteType\n */\nexport type AudioRouteType = Message<\"AudioRouteType\"> & {\n};\n\n/**\n * Describes the message AudioRouteType.\n * Use `create(AudioRouteTypeSchema)` to create a new message.\n */\nexport const AudioRouteTypeSchema: GenMessage<AudioRouteType> = /*@__PURE__*/\n messageDesc(file_ContentItemMetadata, 0);\n\n/**\n * @generated from enum AudioRouteType.Enum\n */\nexport enum AudioRouteType_Enum {\n /**\n * @generated from enum value: Unknown = 0;\n */\n Unknown = 0,\n\n /**\n * @generated from enum value: DevicesSpeaker = 1;\n */\n DevicesSpeaker = 1,\n\n /**\n * @generated from enum value: LineOut = 2;\n */\n LineOut = 2,\n\n /**\n * @generated from enum value: Headphones = 3;\n */\n Headphones = 3,\n\n /**\n * @generated from enum value: BluetoothHeadphones = 4;\n */\n BluetoothHeadphones = 4,\n\n /**\n * @generated from enum value: BluetoothSpeaker = 5;\n */\n BluetoothSpeaker = 5,\n\n /**\n * @generated from enum value: USBAudio = 6;\n */\n USBAudio = 6,\n\n /**\n * @generated from enum value: CarAudio = 7;\n */\n CarAudio = 7,\n\n /**\n * @generated from enum value: HDMI = 8;\n */\n HDMI = 8,\n\n /**\n * @generated from enum value: AirPlay = 9;\n */\n AirPlay = 9,\n}\n\n/**\n * Describes the enum AudioRouteType.Enum.\n */\nexport const AudioRouteType_EnumSchema: GenEnum<AudioRouteType_Enum> = /*@__PURE__*/\n enumDesc(file_ContentItemMetadata, 0, 0);\n\n/**\n * @generated from message AudioRoute\n */\nexport type AudioRoute = Message<\"AudioRoute\"> & {\n /**\n * @generated from field: optional AudioRouteType type = 1;\n */\n type?: AudioRouteType;\n\n /**\n * @generated from field: optional string name = 2;\n */\n name: string;\n\n /**\n * @generated from field: optional bool supportsSpatialization = 3;\n */\n supportsSpatialization: boolean;\n};\n\n/**\n * Describes the message AudioRoute.\n * Use `create(AudioRouteSchema)` to create a new message.\n */\nexport const AudioRouteSchema: GenMessage<AudioRoute> = /*@__PURE__*/\n messageDesc(file_ContentItemMetadata, 1);\n\n/**\n * @generated from message AudioTier\n */\nexport type AudioTier = Message<\"AudioTier\"> & {\n};\n\n/**\n * Describes the message AudioTier.\n * Use `create(AudioTierSchema)` to create a new message.\n */\nexport const AudioTierSchema: GenMessage<AudioTier> = /*@__PURE__*/\n messageDesc(file_ContentItemMetadata, 2);\n\n/**\n * @generated from enum AudioTier.Enum\n */\nexport enum AudioTier_Enum {\n /**\n * @generated from enum value: LowBandwidthStereo = 1;\n */\n LowBandwidthStereo = 1,\n\n /**\n * @generated from enum value: HighQualityStereo = 2;\n */\n HighQualityStereo = 2,\n\n /**\n * @generated from enum value: Lossless = 3;\n */\n Lossless = 3,\n\n /**\n * @generated from enum value: HighResolutionLossless = 4;\n */\n HighResolutionLossless = 4,\n\n /**\n * @generated from enum value: Spatial = 5;\n */\n Spatial = 5,\n}\n\n/**\n * Describes the enum AudioTier.Enum.\n */\nexport const AudioTier_EnumSchema: GenEnum<AudioTier_Enum> = /*@__PURE__*/\n enumDesc(file_ContentItemMetadata, 2, 0);\n\n/**\n * @generated from message SongTraits\n */\nexport type SongTraits = Message<\"SongTraits\"> & {\n};\n\n/**\n * Describes the message SongTraits.\n * Use `create(SongTraitsSchema)` to create a new message.\n */\nexport const SongTraitsSchema: GenMessage<SongTraits> = /*@__PURE__*/\n messageDesc(file_ContentItemMetadata, 3);\n\n/**\n * @generated from enum SongTraits.Enum\n */\nexport enum SongTraits_Enum {\n /**\n * @generated from enum value: None = 0;\n */\n None = 0,\n\n /**\n * @generated from enum value: AppleDigitialMaster = 1;\n */\n AppleDigitialMaster = 1,\n\n /**\n * @generated from enum value: Lossless = 2;\n */\n Lossless = 2,\n\n /**\n * @generated from enum value: HighResolutionLossless = 4;\n */\n HighResolutionLossless = 4,\n\n /**\n * @generated from enum value: Spatial = 8;\n */\n Spatial = 8,\n\n /**\n * @generated from enum value: Atmos = 16;\n */\n Atmos = 16,\n\n /**\n * @generated from enum value: Surround = 32;\n */\n Surround = 32,\n}\n\n/**\n * Describes the enum SongTraits.Enum.\n */\nexport const SongTraits_EnumSchema: GenEnum<SongTraits_Enum> = /*@__PURE__*/\n enumDesc(file_ContentItemMetadata, 3, 0);\n\n/**\n * @generated from message AlbumTraits\n */\nexport type AlbumTraits = Message<\"AlbumTraits\"> & {\n};\n\n/**\n * Describes the message AlbumTraits.\n * Use `create(AlbumTraitsSchema)` to create a new message.\n */\nexport const AlbumTraitsSchema: GenMessage<AlbumTraits> = /*@__PURE__*/\n messageDesc(file_ContentItemMetadata, 4);\n\n/**\n * @generated from enum AlbumTraits.Enum\n */\nexport enum AlbumTraits_Enum {\n /**\n * @generated from enum value: None = 0;\n */\n None = 0,\n\n /**\n * @generated from enum value: AppleDigitialMaster = 1;\n */\n AppleDigitialMaster = 1,\n\n /**\n * @generated from enum value: Lossless = 2;\n */\n Lossless = 2,\n\n /**\n * @generated from enum value: HighResolutionLossless = 4;\n */\n HighResolutionLossless = 4,\n\n /**\n * @generated from enum value: Spatial = 8;\n */\n Spatial = 8,\n\n /**\n * @generated from enum value: Atmos = 16;\n */\n Atmos = 16,\n\n /**\n * @generated from enum value: Surround = 32;\n */\n Surround = 32,\n}\n\n/**\n * Describes the enum AlbumTraits.Enum.\n */\nexport const AlbumTraits_EnumSchema: GenEnum<AlbumTraits_Enum> = /*@__PURE__*/\n enumDesc(file_ContentItemMetadata, 4, 0);\n\n/**\n * @generated from message PlaylistTraits\n */\nexport type PlaylistTraits = Message<\"PlaylistTraits\"> & {\n};\n\n/**\n * Describes the message PlaylistTraits.\n * Use `create(PlaylistTraitsSchema)` to create a new message.\n */\nexport const PlaylistTraitsSchema: GenMessage<PlaylistTraits> = /*@__PURE__*/\n messageDesc(file_ContentItemMetadata, 5);\n\n/**\n * @generated from enum PlaylistTraits.Enum\n */\nexport enum PlaylistTraits_Enum {\n /**\n * @generated from enum value: None = 0;\n */\n None = 0,\n\n /**\n * @generated from enum value: Spatial = 8;\n */\n Spatial = 8,\n\n /**\n * @generated from enum value: Atmos = 16;\n */\n Atmos = 16,\n\n /**\n * @generated from enum value: Surround = 32;\n */\n Surround = 32,\n}\n\n/**\n * Describes the enum PlaylistTraits.Enum.\n */\nexport const PlaylistTraits_EnumSchema: GenEnum<PlaylistTraits_Enum> = /*@__PURE__*/\n enumDesc(file_ContentItemMetadata, 5, 0);\n\n/**\n * @generated from message ActiveFormatJustification\n */\nexport type ActiveFormatJustification = Message<\"ActiveFormatJustification\"> & {\n};\n\n/**\n * Describes the message ActiveFormatJustification.\n * Use `create(ActiveFormatJustificationSchema)` to create a new message.\n */\nexport const ActiveFormatJustificationSchema: GenMessage<ActiveFormatJustification> = /*@__PURE__*/\n messageDesc(file_ContentItemMetadata, 6);\n\n/**\n * @generated from enum ActiveFormatJustification.Enum\n */\nexport enum ActiveFormatJustification_Enum {\n /**\n * @generated from enum value: Unknown = 0;\n */\n Unknown = 0,\n\n /**\n * @generated from enum value: Unavailable = 1;\n */\n Unavailable = 1,\n\n /**\n * @generated from enum value: UserPreference = 100;\n */\n UserPreference = 100,\n\n /**\n * @generated from enum value: UserDownload = 101;\n */\n UserDownload = 101,\n\n /**\n * @generated from enum value: RouteIncompatible = 500;\n */\n RouteIncompatible = 500,\n\n /**\n * @generated from enum value: RouteUnknownCompatibility = 501;\n */\n RouteUnknownCompatibility = 501,\n\n /**\n * @generated from enum value: BandwidthInsufficient = 1000;\n */\n BandwidthInsufficient = 1000,\n}\n\n/**\n * Describes the enum ActiveFormatJustification.Enum.\n */\nexport const ActiveFormatJustification_EnumSchema: GenEnum<ActiveFormatJustification_Enum> = /*@__PURE__*/\n enumDesc(file_ContentItemMetadata, 6, 0);\n\n/**\n * @generated from message FormatTier\n */\nexport type FormatTier = Message<\"FormatTier\"> & {\n};\n\n/**\n * Describes the message FormatTier.\n * Use `create(FormatTierSchema)` to create a new message.\n */\nexport const FormatTierSchema: GenMessage<FormatTier> = /*@__PURE__*/\n messageDesc(file_ContentItemMetadata, 7);\n\n/**\n * @generated from enum FormatTier.Enum\n */\nexport enum FormatTier_Enum {\n /**\n * @generated from enum value: LowBandwidthStereo = 1;\n */\n LowBandwidthStereo = 1,\n\n /**\n * @generated from enum value: HighQualityStereo = 2;\n */\n HighQualityStereo = 2,\n\n /**\n * @generated from enum value: Lossless = 4;\n */\n Lossless = 4,\n\n /**\n * @generated from enum value: HighResolutionLossless = 8;\n */\n HighResolutionLossless = 8,\n\n /**\n * @generated from enum value: Spatial = 16;\n */\n Spatial = 16,\n}\n\n/**\n * Describes the enum FormatTier.Enum.\n */\nexport const FormatTier_EnumSchema: GenEnum<FormatTier_Enum> = /*@__PURE__*/\n enumDesc(file_ContentItemMetadata, 7, 0);\n\n/**\n * @generated from message AudioFormat\n */\nexport type AudioFormat = Message<\"AudioFormat\"> & {\n /**\n * @generated from field: optional AudioTier.Enum tier = 1;\n */\n tier: AudioTier_Enum;\n\n /**\n * @generated from field: optional int64 bitrate = 2;\n */\n bitrate: bigint;\n\n /**\n * @generated from field: optional int64 sampleRate = 3;\n */\n sampleRate: bigint;\n\n /**\n * @generated from field: optional int64 bitDepth = 4;\n */\n bitDepth: bigint;\n\n /**\n * @generated from field: optional uint32 codec = 5;\n */\n codec: number;\n\n /**\n * @generated from field: optional bool spatialized = 6;\n */\n spatialized: boolean;\n\n /**\n * @generated from field: optional bool multiChannel = 7;\n */\n multiChannel: boolean;\n\n /**\n * @generated from field: optional uint32 channelLayout = 8;\n */\n channelLayout: number;\n\n /**\n * @generated from field: optional string audioChannelLayoutDescription = 9;\n */\n audioChannelLayoutDescription: string;\n\n /**\n * @generated from field: optional string groupID = 10;\n */\n groupID: string;\n\n /**\n * @generated from field: optional string stableVariantID = 11;\n */\n stableVariantID: string;\n};\n\n/**\n * Describes the message AudioFormat.\n * Use `create(AudioFormatSchema)` to create a new message.\n */\nexport const AudioFormatSchema: GenMessage<AudioFormat> = /*@__PURE__*/\n messageDesc(file_ContentItemMetadata, 8);\n\n/**\n * @generated from message ContentItemMetadata\n */\nexport type ContentItemMetadata = Message<\"ContentItemMetadata\"> & {\n /**\n * @generated from field: optional string title = 1;\n */\n title: string;\n\n /**\n * @generated from field: optional string subtitle = 2;\n */\n subtitle: string;\n\n /**\n * @generated from field: optional bool isContainer = 3;\n */\n isContainer: boolean;\n\n /**\n * @generated from field: optional bool isPlayable = 4;\n */\n isPlayable: boolean;\n\n /**\n * @generated from field: optional float playbackProgress = 5;\n */\n playbackProgress: number;\n\n /**\n * @generated from field: optional string albumName = 6;\n */\n albumName: string;\n\n /**\n * @generated from field: optional string trackArtistName = 7;\n */\n trackArtistName: string;\n\n /**\n * @generated from field: optional string albumArtistName = 8;\n */\n albumArtistName: string;\n\n /**\n * @generated from field: optional string directorName = 9;\n */\n directorName: string;\n\n /**\n * @generated from field: optional int32 seasonNumber = 10;\n */\n seasonNumber: number;\n\n /**\n * @generated from field: optional int32 episodeNumber = 11;\n */\n episodeNumber: number;\n\n /**\n * @generated from field: optional double releaseDate = 12;\n */\n releaseDate: number;\n\n /**\n * @generated from field: optional int32 playCount = 13;\n */\n playCount: number;\n\n /**\n * @generated from field: optional double duration = 14;\n */\n duration: number;\n\n /**\n * @generated from field: optional string localizedContentRating = 15;\n */\n localizedContentRating: string;\n\n /**\n * @generated from field: optional bool isExplicitItem = 16;\n */\n isExplicitItem: boolean;\n\n /**\n * @generated from field: optional int32 playlistType = 17;\n */\n playlistType: number;\n\n /**\n * @generated from field: optional int32 radioStationType = 18;\n */\n radioStationType: number;\n\n /**\n * @generated from field: optional bool artworkAvailable = 19;\n */\n artworkAvailable: boolean;\n\n /**\n * @generated from field: optional bool infoAvailable = 21;\n */\n infoAvailable: boolean;\n\n /**\n * @generated from field: optional bool languageOptionsAvailable = 22;\n */\n languageOptionsAvailable: boolean;\n\n /**\n * @generated from field: optional int32 numberOfSections = 23;\n */\n numberOfSections: number;\n\n /**\n * @generated from field: optional bool lyricsAvailable = 24;\n */\n lyricsAvailable: boolean;\n\n /**\n * @generated from field: optional int32 editingStyleFlags = 25;\n */\n editingStyleFlags: number;\n\n /**\n * @generated from field: optional bool isStreamingContent = 26;\n */\n isStreamingContent: boolean;\n\n /**\n * @generated from field: optional bool isCurrentlyPlaying = 27;\n */\n isCurrentlyPlaying: boolean;\n\n /**\n * @generated from field: optional string collectionIdentifier = 28;\n */\n collectionIdentifier: string;\n\n /**\n * @generated from field: optional string profileIdentifier = 29;\n */\n profileIdentifier: string;\n\n /**\n * @generated from field: optional double startTime = 30;\n */\n startTime: number;\n\n /**\n * @generated from field: optional string artworkMIMEType = 31;\n */\n artworkMIMEType: string;\n\n /**\n * @generated from field: optional string assetURLString = 32;\n */\n assetURLString: string;\n\n /**\n * @generated from field: optional string composer = 33;\n */\n composer: string;\n\n /**\n * @generated from field: optional int32 discNumber = 34;\n */\n discNumber: number;\n\n /**\n * @generated from field: optional double elapsedTime = 35;\n */\n elapsedTime: number;\n\n /**\n * @generated from field: optional string genre = 36;\n */\n genre: string;\n\n /**\n * @generated from field: optional bool isAlwaysLive = 37;\n */\n isAlwaysLive: boolean;\n\n /**\n * @generated from field: optional float playbackRate = 39;\n */\n playbackRate: number;\n\n /**\n * @generated from field: optional int32 chapterCount = 40;\n */\n chapterCount: number;\n\n /**\n * @generated from field: optional int32 totalDiscCount = 41;\n */\n totalDiscCount: number;\n\n /**\n * @generated from field: optional int32 totalTrackCount = 42;\n */\n totalTrackCount: number;\n\n /**\n * @generated from field: optional int32 trackNumber = 43;\n */\n trackNumber: number;\n\n /**\n * @generated from field: optional string contentIdentifier = 44;\n */\n contentIdentifier: string;\n\n /**\n * @generated from field: optional bool isSharable = 46;\n */\n isSharable: boolean;\n\n /**\n * @generated from field: optional bool isLiked = 48;\n */\n isLiked: boolean;\n\n /**\n * @generated from field: optional bool isInWishList = 49;\n */\n isInWishList: boolean;\n\n /**\n * @generated from field: optional int64 radioStationIdentifier = 50;\n */\n radioStationIdentifier: bigint;\n\n /**\n * @generated from field: optional string radioStationName = 52;\n */\n radioStationName: string;\n\n /**\n * @generated from field: optional string radioStationString = 53;\n */\n radioStationString: string;\n\n /**\n * @generated from field: optional int64 iTunesStoreIdentifier = 54;\n */\n iTunesStoreIdentifier: bigint;\n\n /**\n * @generated from field: optional int64 iTunesStoreSubscriptionIdentifier = 55;\n */\n iTunesStoreSubscriptionIdentifier: bigint;\n\n /**\n * @generated from field: optional int64 iTunesStoreArtistIdentifier = 56;\n */\n iTunesStoreArtistIdentifier: bigint;\n\n /**\n * @generated from field: optional int64 iTunesStoreAlbumIdentifier = 57;\n */\n iTunesStoreAlbumIdentifier: bigint;\n\n /**\n * @generated from field: optional bytes purchaseInfoData = 58;\n */\n purchaseInfoData: Uint8Array;\n\n /**\n * @generated from field: optional float defaultPlaybackRate = 59;\n */\n defaultPlaybackRate: number;\n\n /**\n * @generated from field: optional int32 downloadState = 60;\n */\n downloadState: number;\n\n /**\n * @generated from field: optional float downloadProgress = 61;\n */\n downloadProgress: number;\n\n /**\n * @generated from field: optional bytes appMetricsData = 62;\n */\n appMetricsData: Uint8Array;\n\n /**\n * @generated from field: optional string seriesName = 63;\n */\n seriesName: string;\n\n /**\n * @generated from field: optional ContentItemMetadata.MediaType mediaType = 64;\n */\n mediaType: ContentItemMetadata_MediaType;\n\n /**\n * @generated from field: optional ContentItemMetadata.MediaSubType mediaSubType = 65;\n */\n mediaSubType: ContentItemMetadata_MediaSubType;\n\n /**\n * @generated from field: optional bytes nowPlayingInfoData = 67;\n */\n nowPlayingInfoData: Uint8Array;\n\n /**\n * @generated from field: optional bytes userInfoData = 68;\n */\n userInfoData: Uint8Array;\n\n /**\n * @generated from field: optional bool isSteerable = 69;\n */\n isSteerable: boolean;\n\n /**\n * @generated from field: optional string artworkURL = 70;\n */\n artworkURL: string;\n\n /**\n * @generated from field: optional string lyricsURL = 71;\n */\n lyricsURL: string;\n\n /**\n * @generated from field: optional bytes deviceSpecificUserInfoData = 72;\n */\n deviceSpecificUserInfoData: Uint8Array;\n\n /**\n * @generated from field: optional bytes collectionInfoData = 73;\n */\n collectionInfoData: Uint8Array;\n\n /**\n * @generated from field: optional double elapsedTimeTimestamp = 74;\n */\n elapsedTimeTimestamp: number;\n\n /**\n * @generated from field: optional double inferredTimestamp = 75;\n */\n inferredTimestamp: number;\n\n /**\n * @generated from field: optional string serviceIdentifier = 76;\n */\n serviceIdentifier: string;\n\n /**\n * @generated from field: optional int32 artworkDataWidth = 77;\n */\n artworkDataWidth: number;\n\n /**\n * @generated from field: optional int32 artworkDataHeight = 78;\n */\n artworkDataHeight: number;\n\n /**\n * @generated from field: optional bytes currentPlaybackDateData = 79;\n */\n currentPlaybackDateData: Uint8Array;\n\n /**\n * @generated from field: optional string artworkIdentifier = 80;\n */\n artworkIdentifier: string;\n\n /**\n * @generated from field: optional bool isLoading = 81;\n */\n isLoading: boolean;\n\n /**\n * @generated from field: optional bytes artworkURLTemplatesData = 82;\n */\n artworkURLTemplatesData: Uint8Array;\n\n /**\n * @generated from field: optional int64 legacyUniqueIdentifier = 83;\n */\n legacyUniqueIdentifier: bigint;\n\n /**\n * @generated from field: optional int32 episodeType = 84;\n */\n episodeType: number;\n\n /**\n * @generated from field: optional string artworkFileURL = 85;\n */\n artworkFileURL: string;\n\n /**\n * @generated from field: optional string brandIdentifier = 86;\n */\n brandIdentifier: string;\n\n /**\n * @generated from field: optional string localizedDurationString = 87;\n */\n localizedDurationString: string;\n\n /**\n * @generated from field: optional string albumYear = 88;\n */\n albumYear: string;\n\n /**\n * @generated from field: optional SongTraits.Enum songTraits = 89;\n */\n songTraits: SongTraits_Enum;\n\n /**\n * @generated from field: optional AlbumTraits.Enum albumTraits = 90;\n */\n albumTraits: AlbumTraits_Enum;\n\n /**\n * @generated from field: optional PlaylistTraits.Enum playlistTraits = 91;\n */\n playlistTraits: PlaylistTraits_Enum;\n\n /**\n * @generated from field: optional AudioFormat preferredFormat = 92;\n */\n preferredFormat?: AudioFormat;\n\n /**\n * @generated from field: optional AudioFormat activeFormat = 93;\n */\n activeFormat?: AudioFormat;\n\n /**\n * @generated from field: optional ActiveFormatJustification.Enum activeFormatJustification = 94;\n */\n activeFormatJustification: ActiveFormatJustification_Enum;\n\n /**\n * @generated from field: optional FormatTier.Enum formatTierPreference = 95;\n */\n formatTierPreference: FormatTier_Enum;\n\n /**\n * @generated from field: optional AudioRoute audioRoute = 96;\n */\n audioRoute?: AudioRoute;\n\n /**\n * @generated from field: repeated AudioFormat alternativeFormats = 97;\n */\n alternativeFormats: AudioFormat[];\n};\n\n/**\n * Describes the message ContentItemMetadata.\n * Use `create(ContentItemMetadataSchema)` to create a new message.\n */\nexport const ContentItemMetadataSchema: GenMessage<ContentItemMetadata> = /*@__PURE__*/\n messageDesc(file_ContentItemMetadata, 9);\n\n/**\n * @generated from enum ContentItemMetadata.MediaType\n */\nexport enum ContentItemMetadata_MediaType {\n /**\n * @generated from enum value: UnknownMediaType = 0;\n */\n UnknownMediaType = 0,\n\n /**\n * @generated from enum value: Audio = 1;\n */\n Audio = 1,\n\n /**\n * @generated from enum value: Video = 2;\n */\n Video = 2,\n}\n\n/**\n * Describes the enum ContentItemMetadata.MediaType.\n */\nexport const ContentItemMetadata_MediaTypeSchema: GenEnum<ContentItemMetadata_MediaType> = /*@__PURE__*/\n enumDesc(file_ContentItemMetadata, 9, 0);\n\n/**\n * @generated from enum ContentItemMetadata.MediaSubType\n */\nexport enum ContentItemMetadata_MediaSubType {\n /**\n * @generated from enum value: UnknownMediaSubType = 0;\n */\n UnknownMediaSubType = 0,\n\n /**\n * @generated from enum value: Music = 1;\n */\n Music = 1,\n\n /**\n * @generated from enum value: Podcast = 4;\n */\n Podcast = 4,\n\n /**\n * @generated from enum value: AudioBook = 5;\n */\n AudioBook = 5,\n\n /**\n * @generated from enum value: ITunesU = 6;\n */\n ITunesU = 6,\n}\n\n/**\n * Describes the enum ContentItemMetadata.MediaSubType.\n */\nexport const ContentItemMetadata_MediaSubTypeSchema: GenEnum<ContentItemMetadata_MediaSubType> = /*@__PURE__*/\n enumDesc(file_ContentItemMetadata, 9, 1);\n\n",
|
|
51
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file LanguageOption.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file LanguageOption.proto.\n */\nexport const file_LanguageOption: GenFile = /*@__PURE__*/\n fileDesc(\"ChRMYW5ndWFnZU9wdGlvbi5wcm90byJ1Cg5MYW5ndWFnZU9wdGlvbhIMCgR0eXBlGAEgASgFEhMKC2xhbmd1YWdlVGFnGAIgASgJEhcKD2NoYXJhY3RlcmlzdGljcxgDIAMoCRITCgtkaXNwbGF5TmFtZRgEIAEoCRISCgppZGVudGlmaWVyGAUgASgJ\");\n\n/**\n * @generated from message LanguageOption\n */\nexport type LanguageOption = Message<\"LanguageOption\"> & {\n /**\n * @generated from field: optional int32 type = 1;\n */\n type: number;\n\n /**\n * @generated from field: optional string languageTag = 2;\n */\n languageTag: string;\n\n /**\n * @generated from field: repeated string characteristics = 3;\n */\n characteristics: string[];\n\n /**\n * @generated from field: optional string displayName = 4;\n */\n displayName: string;\n\n /**\n * @generated from field: optional string identifier = 5;\n */\n identifier: string;\n};\n\n/**\n * Describes the message LanguageOption.\n * Use `create(LanguageOptionSchema)` to create a new message.\n */\nexport const LanguageOptionSchema: GenMessage<LanguageOption> = /*@__PURE__*/\n messageDesc(file_LanguageOption, 0);\n\n",
|
|
52
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file ContentItem.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ContentItemMetadata } from \"./ContentItemMetadata_pb\";\nimport { file_ContentItemMetadata } from \"./ContentItemMetadata_pb\";\nimport type { LanguageOption } from \"./LanguageOption_pb\";\nimport { file_LanguageOption } from \"./LanguageOption_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file ContentItem.proto.\n */\nexport const file_ContentItem: GenFile = /*@__PURE__*/\n fileDesc(\"ChFDb250ZW50SXRlbS5wcm90byKMAQoTTGFuZ3VhZ2VPcHRpb25Hcm91cBIbChNhbGxvd0VtcHR5U2VsZWN0aW9uGAEgASgIEi4KFWRlZmF1bHRMYW5ndWFnZU9wdGlvbhgCIAEoCzIPLkxhbmd1YWdlT3B0aW9uEigKD2xhbmd1YWdlT3B0aW9ucxgDIAMoCzIPLkxhbmd1YWdlT3B0aW9uIvQCCgtDb250ZW50SXRlbRISCgppZGVudGlmaWVyGAEgASgJEiYKCG1ldGFkYXRhGAIgASgLMhQuQ29udGVudEl0ZW1NZXRhZGF0YRITCgthcnR3b3JrRGF0YRgDIAEoDBIMCgRpbmZvGAQgASgJEjYKGGF2YWlsYWJsZUxhbmd1YWdlT3B0aW9ucxgFIAMoCzIULkxhbmd1YWdlT3B0aW9uR3JvdXASLwoWY3VycmVudExhbmd1YWdlT3B0aW9ucxgGIAMoCzIPLkxhbmd1YWdlT3B0aW9uEhgKEHBhcmVudElkZW50aWZpZXIYCSABKAkSGgoSYW5jZXN0b3JJZGVudGlmaWVyGAogASgJEhcKD3F1ZXVlSWRlbnRpZmllchgLIAEoCRIZChFyZXF1ZXN0SWRlbnRpZmllchgMIAEoCRIYChBhcnR3b3JrRGF0YVdpZHRoGA0gASgFEhkKEWFydHdvcmtEYXRhSGVpZ2h0GA4gASgF\", [file_ContentItemMetadata, file_LanguageOption]);\n\n/**\n * @generated from message LanguageOptionGroup\n */\nexport type LanguageOptionGroup = Message<\"LanguageOptionGroup\"> & {\n /**\n * @generated from field: optional bool allowEmptySelection = 1;\n */\n allowEmptySelection: boolean;\n\n /**\n * @generated from field: optional LanguageOption defaultLanguageOption = 2;\n */\n defaultLanguageOption?: LanguageOption;\n\n /**\n * @generated from field: repeated LanguageOption languageOptions = 3;\n */\n languageOptions: LanguageOption[];\n};\n\n/**\n * Describes the message LanguageOptionGroup.\n * Use `create(LanguageOptionGroupSchema)` to create a new message.\n */\nexport const LanguageOptionGroupSchema: GenMessage<LanguageOptionGroup> = /*@__PURE__*/\n messageDesc(file_ContentItem, 0);\n\n/**\n * @generated from message ContentItem\n */\nexport type ContentItem = Message<\"ContentItem\"> & {\n /**\n * @generated from field: optional string identifier = 1;\n */\n identifier: string;\n\n /**\n * @generated from field: optional ContentItemMetadata metadata = 2;\n */\n metadata?: ContentItemMetadata;\n\n /**\n * @generated from field: optional bytes artworkData = 3;\n */\n artworkData: Uint8Array;\n\n /**\n * @generated from field: optional string info = 4;\n */\n info: string;\n\n /**\n * @generated from field: repeated LanguageOptionGroup availableLanguageOptions = 5;\n */\n availableLanguageOptions: LanguageOptionGroup[];\n\n /**\n * @generated from field: repeated LanguageOption currentLanguageOptions = 6;\n */\n currentLanguageOptions: LanguageOption[];\n\n /**\n * optional Lyrics lyrics = 7;\n * repeated Sections sections = 8;\n *\n * @generated from field: optional string parentIdentifier = 9;\n */\n parentIdentifier: string;\n\n /**\n * @generated from field: optional string ancestorIdentifier = 10;\n */\n ancestorIdentifier: string;\n\n /**\n * @generated from field: optional string queueIdentifier = 11;\n */\n queueIdentifier: string;\n\n /**\n * @generated from field: optional string requestIdentifier = 12;\n */\n requestIdentifier: string;\n\n /**\n * @generated from field: optional int32 artworkDataWidth = 13;\n */\n artworkDataWidth: number;\n\n /**\n * @generated from field: optional int32 artworkDataHeight = 14;\n */\n artworkDataHeight: number;\n};\n\n/**\n * Describes the message ContentItem.\n * Use `create(ContentItemSchema)` to create a new message.\n */\nexport const ContentItemSchema: GenMessage<ContentItem> = /*@__PURE__*/\n messageDesc(file_ContentItem, 1);\n\n",
|
|
53
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file CryptoPairingMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file CryptoPairingMessage.proto.\n */\nexport const file_CryptoPairingMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChpDcnlwdG9QYWlyaW5nTWVzc2FnZS5wcm90byJ8ChRDcnlwdG9QYWlyaW5nTWVzc2FnZRITCgtwYWlyaW5nRGF0YRgBIAEoDBIOCgZzdGF0dXMYAiABKAUSEgoKaXNSZXRyeWluZxgDIAEoCBIcChRpc1VzaW5nU3lzdGVtUGFpcmluZxgEIAEoCBINCgVzdGF0ZRgFIAEoBTpbChRjcnlwdG9QYWlyaW5nTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRgnIAEoCzIVLkNyeXB0b1BhaXJpbmdNZXNzYWdlUhRjcnlwdG9QYWlyaW5nTWVzc2FnZQ\", [file_ProtocolMessage]);\n\n/**\n * @generated from message CryptoPairingMessage\n */\nexport type CryptoPairingMessage = Message<\"CryptoPairingMessage\"> & {\n /**\n * Example: <00010006 0101>\n *\n * @generated from field: optional bytes pairingData = 1;\n */\n pairingData: Uint8Array;\n\n /**\n * Example: 0\n *\n * @generated from field: optional int32 status = 2;\n */\n status: number;\n\n /**\n * @generated from field: optional bool isRetrying = 3;\n */\n isRetrying: boolean;\n\n /**\n * @generated from field: optional bool isUsingSystemPairing = 4;\n */\n isUsingSystemPairing: boolean;\n\n /**\n * @generated from field: optional int32 state = 5;\n */\n state: number;\n};\n\n/**\n * Describes the message CryptoPairingMessage.\n * Use `create(CryptoPairingMessageSchema)` to create a new message.\n */\nexport const CryptoPairingMessageSchema: GenMessage<CryptoPairingMessage> = /*@__PURE__*/\n messageDesc(file_CryptoPairingMessage, 0);\n\n/**\n * @generated from extension: optional CryptoPairingMessage cryptoPairingMessage = 39;\n */\nexport const cryptoPairingMessage: GenExtension<ProtocolMessage, CryptoPairingMessage> = /*@__PURE__*/\n extDesc(file_CryptoPairingMessage, 0);\n\n",
|
|
54
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file GenericMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file GenericMessage.proto.\n */\nexport const file_GenericMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChRHZW5lcmljTWVzc2FnZS5wcm90byIsCg5HZW5lcmljTWVzc2FnZRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAw6SQoOZ2VuZXJpY01lc3NhZ2USEC5Qcm90b2NvbE1lc3NhZ2UYLiABKAsyDy5HZW5lcmljTWVzc2FnZVIOZ2VuZXJpY01lc3NhZ2U\", [file_ProtocolMessage]);\n\n/**\n * @generated from message GenericMessage\n */\nexport type GenericMessage = Message<\"GenericMessage\"> & {\n /**\n * @generated from field: optional string key = 1;\n */\n key: string;\n\n /**\n * @generated from field: optional bytes value = 2;\n */\n value: Uint8Array;\n};\n\n/**\n * Describes the message GenericMessage.\n * Use `create(GenericMessageSchema)` to create a new message.\n */\nexport const GenericMessageSchema: GenMessage<GenericMessage> = /*@__PURE__*/\n messageDesc(file_GenericMessage, 0);\n\n/**\n * @generated from extension: optional GenericMessage genericMessage = 46;\n */\nexport const genericMessage: GenExtension<ProtocolMessage, GenericMessage> = /*@__PURE__*/\n extDesc(file_GenericMessage, 0);\n\n",
|
|
55
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file GetKeyboardSessionMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file GetKeyboardSessionMessage.proto.\n */\nexport const file_GetKeyboardSessionMessage: GenFile = /*@__PURE__*/\n fileDesc(\"Ch9HZXRLZXlib2FyZFNlc3Npb25NZXNzYWdlLnByb3RvIhsKGUdldEtleWJvYXJkU2Vzc2lvbk1lc3NhZ2U6TgoZZ2V0S2V5Ym9hcmRTZXNzaW9uTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRgdIAEoCVIZZ2V0S2V5Ym9hcmRTZXNzaW9uTWVzc2FnZQ\", [file_ProtocolMessage]);\n\n/**\n * @generated from message GetKeyboardSessionMessage\n */\nexport type GetKeyboardSessionMessage = Message<\"GetKeyboardSessionMessage\"> & {\n};\n\n/**\n * Describes the message GetKeyboardSessionMessage.\n * Use `create(GetKeyboardSessionMessageSchema)` to create a new message.\n */\nexport const GetKeyboardSessionMessageSchema: GenMessage<GetKeyboardSessionMessage> = /*@__PURE__*/\n messageDesc(file_GetKeyboardSessionMessage, 0);\n\n/**\n * @generated from extension: optional string getKeyboardSessionMessage = 29;\n */\nexport const getKeyboardSessionMessage: GenExtension<ProtocolMessage, string> = /*@__PURE__*/\n extDesc(file_GetKeyboardSessionMessage, 0);\n\n",
|
|
56
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file GetRemoteTextInputSessionMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file GetRemoteTextInputSessionMessage.proto.\n */\nexport const file_GetRemoteTextInputSessionMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CiZHZXRSZW1vdGVUZXh0SW5wdXRTZXNzaW9uTWVzc2FnZS5wcm90byIiCiBHZXRSZW1vdGVUZXh0SW5wdXRTZXNzaW9uTWVzc2FnZTp/CiBnZXRSZW1vdGVUZXh0SW5wdXRTZXNzaW9uTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRhIIAEoCzIhLkdldFJlbW90ZVRleHRJbnB1dFNlc3Npb25NZXNzYWdlUiBnZXRSZW1vdGVUZXh0SW5wdXRTZXNzaW9uTWVzc2FnZQ\", [file_ProtocolMessage]);\n\n/**\n * @generated from message GetRemoteTextInputSessionMessage\n */\nexport type GetRemoteTextInputSessionMessage = Message<\"GetRemoteTextInputSessionMessage\"> & {\n};\n\n/**\n * Describes the message GetRemoteTextInputSessionMessage.\n * Use `create(GetRemoteTextInputSessionMessageSchema)` to create a new message.\n */\nexport const GetRemoteTextInputSessionMessageSchema: GenMessage<GetRemoteTextInputSessionMessage> = /*@__PURE__*/\n messageDesc(file_GetRemoteTextInputSessionMessage, 0);\n\n/**\n * @generated from extension: optional GetRemoteTextInputSessionMessage getRemoteTextInputSessionMessage = 72;\n */\nexport const getRemoteTextInputSessionMessage: GenExtension<ProtocolMessage, GetRemoteTextInputSessionMessage> = /*@__PURE__*/\n extDesc(file_GetRemoteTextInputSessionMessage, 0);\n\n",
|
|
57
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file GetVolumeMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file GetVolumeMessage.proto.\n */\nexport const file_GetVolumeMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChZHZXRWb2x1bWVNZXNzYWdlLnByb3RvIisKEEdldFZvbHVtZU1lc3NhZ2USFwoPb3V0cHV0RGV2aWNlVUlEGAEgASgJOk8KEGdldFZvbHVtZU1lc3NhZ2USEC5Qcm90b2NvbE1lc3NhZ2UYNSABKAsyES5HZXRWb2x1bWVNZXNzYWdlUhBnZXRWb2x1bWVNZXNzYWdl\", [file_ProtocolMessage]);\n\n/**\n * @generated from message GetVolumeMessage\n */\nexport type GetVolumeMessage = Message<\"GetVolumeMessage\"> & {\n /**\n * @generated from field: optional string outputDeviceUID = 1;\n */\n outputDeviceUID: string;\n};\n\n/**\n * Describes the message GetVolumeMessage.\n * Use `create(GetVolumeMessageSchema)` to create a new message.\n */\nexport const GetVolumeMessageSchema: GenMessage<GetVolumeMessage> = /*@__PURE__*/\n messageDesc(file_GetVolumeMessage, 0);\n\n/**\n * @generated from extension: optional GetVolumeMessage getVolumeMessage = 53;\n */\nexport const getVolumeMessage: GenExtension<ProtocolMessage, GetVolumeMessage> = /*@__PURE__*/\n extDesc(file_GetVolumeMessage, 0);\n\n",
|
|
58
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file GetVolumeResultMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file GetVolumeResultMessage.proto.\n */\nexport const file_GetVolumeResultMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChxHZXRWb2x1bWVSZXN1bHRNZXNzYWdlLnByb3RvIigKFkdldFZvbHVtZVJlc3VsdE1lc3NhZ2USDgoGdm9sdW1lGAEgASgCOmEKFmdldFZvbHVtZVJlc3VsdE1lc3NhZ2USEC5Qcm90b2NvbE1lc3NhZ2UYNiABKAsyFy5HZXRWb2x1bWVSZXN1bHRNZXNzYWdlUhZnZXRWb2x1bWVSZXN1bHRNZXNzYWdl\", [file_ProtocolMessage]);\n\n/**\n * @generated from message GetVolumeResultMessage\n */\nexport type GetVolumeResultMessage = Message<\"GetVolumeResultMessage\"> & {\n /**\n * @generated from field: optional float volume = 1;\n */\n volume: number;\n};\n\n/**\n * Describes the message GetVolumeResultMessage.\n * Use `create(GetVolumeResultMessageSchema)` to create a new message.\n */\nexport const GetVolumeResultMessageSchema: GenMessage<GetVolumeResultMessage> = /*@__PURE__*/\n messageDesc(file_GetVolumeResultMessage, 0);\n\n/**\n * @generated from extension: optional GetVolumeResultMessage getVolumeResultMessage = 54;\n */\nexport const getVolumeResultMessage: GenExtension<ProtocolMessage, GetVolumeResultMessage> = /*@__PURE__*/\n extDesc(file_GetVolumeResultMessage, 0);\n\n",
|
|
59
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file KeyboardMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenEnum, GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file KeyboardMessage.proto.\n */\nexport const file_KeyboardMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChVLZXlib2FyZE1lc3NhZ2UucHJvdG8iigEKDUtleWJvYXJkU3RhdGUieQoERW51bRILCgdVbmtub3duEAASDgoKTm90RWRpdGluZxABEhMKD0RpZEJlZ2luRWRpdGluZxACEgsKB0VkaXRpbmcQAxIRCg1UZXh0RGlkQ2hhbmdlEAQSEQoNRGlkRW5kRWRpdGluZxAFEgwKCFJlc3BvbnNlEAYiVwoWQXV0b2NhcGl0YWxpemF0aW9uVHlwZSI9CgRFbnVtEggKBE5vbmUQABIJCgVXb3JkcxABEg0KCVNlbnRlbmNlcxACEhEKDUFsbENoYXJhY3RlcnMQAyLnAQoMS2V5Ym9hcmRUeXBlItYBCgRFbnVtEgsKB0RlZmF1bHQQABIRCg1BU0NJSV9DYXBhYmxlEAESGQoVTnVtYmVyc0FuZFB1bmN0dWF0aW9uEAISBwoDVVJMEAMSDQoJTnVtYmVyUGFkEAQSDAoIUGhvbmVQYWQQBRIQCgxOYW1lUGhvbmVQYWQQBhIQCgxFbWFpbEFkZHJlc3MQBxIOCgpEZWNpbWFsUGFkEAgSCwoHVHdpdHRlchAJEg0KCVdlYlNlYXJjaBAKEgwKCEFscGhhbmV0EAsSDwoLUGFzc2NvZGVQYWQQDCKkAQoNUmV0dXJuS2V5VHlwZSKSAQoERW51bRILCgdEZWZhdWx0EAASBgoCR28QARIKCgZHb29nbGUQAhIICgRKb2luEAMSCAoETmV4dBAEEgkKBVJvdXRlEAUSCgoGU2VhcmNoEAYSCAoEU2VuZBAHEgkKBVlhaG9vEAgSCAoERG9uZRAJEhEKDUVtZXJnZW5jeUNhbGwQChIMCghDb250aW51ZRALIvQCCg9UZXh0SW5wdXRUcmFpdHMSPAoWYXV0b2NhcGl0YWxpemF0aW9uVHlwZRgBIAEoDjIcLkF1dG9jYXBpdGFsaXphdGlvblR5cGUuRW51bRIoCgxrZXlib2FyZFR5cGUYAiABKA4yEi5LZXlib2FyZFR5cGUuRW51bRIqCg1yZXR1cm5LZXlUeXBlGAMgASgOMhMuUmV0dXJuS2V5VHlwZS5FbnVtEhYKDmF1dG9jb3JyZWN0aW9uGAQgASgIEhUKDXNwZWxsY2hlY2tpbmcYBSABKAgSJQodZW5hYmxlc1JldHVybktleUF1dG9tYXRpY2FsbHkYBiABKAgSFwoPc2VjdXJlVGV4dEVudHJ5GAcgASgIEh4KFnZhbGlkVGV4dFJhbmdlTG9jYXRpb24YCCABKAQSHAoUdmFsaWRUZXh0UmFuZ2VMZW5ndGgYCSABKAQSIAoYcElORW50cnlTZXBhcmF0b3JJbmRleGVzGAogAygEIl0KFVRleHRFZGl0aW5nQXR0cmlidXRlcxINCgV0aXRsZRgBIAEoCRIOCgZwcm9tcHQYAiABKAkSJQoLaW5wdXRUcmFpdHMYAyABKAsyEC5UZXh0SW5wdXRUcmFpdHMiggEKD0tleWJvYXJkTWVzc2FnZRIiCgVzdGF0ZRgBIAEoDjITLktleWJvYXJkU3RhdGUuRW51bRIqCgphdHRyaWJ1dGVzGAMgASgLMhYuVGV4dEVkaXRpbmdBdHRyaWJ1dGVzEh8KF2VuY3J5cHRlZFRleHRDeXBoZXJ0ZXh0GAQgASgMOkwKD2tleWJvYXJkTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRgcIAEoCzIQLktleWJvYXJkTWVzc2FnZVIPa2V5Ym9hcmRNZXNzYWdl\", [file_ProtocolMessage]);\n\n/**\n * @generated from message KeyboardState\n */\nexport type KeyboardState = Message<\"KeyboardState\"> & {\n};\n\n/**\n * Describes the message KeyboardState.\n * Use `create(KeyboardStateSchema)` to create a new message.\n */\nexport const KeyboardStateSchema: GenMessage<KeyboardState> = /*@__PURE__*/\n messageDesc(file_KeyboardMessage, 0);\n\n/**\n * @generated from enum KeyboardState.Enum\n */\nexport enum KeyboardState_Enum {\n /**\n * @generated from enum value: Unknown = 0;\n */\n Unknown = 0,\n\n /**\n * @generated from enum value: NotEditing = 1;\n */\n NotEditing = 1,\n\n /**\n * @generated from enum value: DidBeginEditing = 2;\n */\n DidBeginEditing = 2,\n\n /**\n * @generated from enum value: Editing = 3;\n */\n Editing = 3,\n\n /**\n * @generated from enum value: TextDidChange = 4;\n */\n TextDidChange = 4,\n\n /**\n * @generated from enum value: DidEndEditing = 5;\n */\n DidEndEditing = 5,\n\n /**\n * @generated from enum value: Response = 6;\n */\n Response = 6,\n}\n\n/**\n * Describes the enum KeyboardState.Enum.\n */\nexport const KeyboardState_EnumSchema: GenEnum<KeyboardState_Enum> = /*@__PURE__*/\n enumDesc(file_KeyboardMessage, 0, 0);\n\n/**\n * @generated from message AutocapitalizationType\n */\nexport type AutocapitalizationType = Message<\"AutocapitalizationType\"> & {\n};\n\n/**\n * Describes the message AutocapitalizationType.\n * Use `create(AutocapitalizationTypeSchema)` to create a new message.\n */\nexport const AutocapitalizationTypeSchema: GenMessage<AutocapitalizationType> = /*@__PURE__*/\n messageDesc(file_KeyboardMessage, 1);\n\n/**\n * @generated from enum AutocapitalizationType.Enum\n */\nexport enum AutocapitalizationType_Enum {\n /**\n * @generated from enum value: None = 0;\n */\n None = 0,\n\n /**\n * @generated from enum value: Words = 1;\n */\n Words = 1,\n\n /**\n * @generated from enum value: Sentences = 2;\n */\n Sentences = 2,\n\n /**\n * @generated from enum value: AllCharacters = 3;\n */\n AllCharacters = 3,\n}\n\n/**\n * Describes the enum AutocapitalizationType.Enum.\n */\nexport const AutocapitalizationType_EnumSchema: GenEnum<AutocapitalizationType_Enum> = /*@__PURE__*/\n enumDesc(file_KeyboardMessage, 1, 0);\n\n/**\n * @generated from message KeyboardType\n */\nexport type KeyboardType = Message<\"KeyboardType\"> & {\n};\n\n/**\n * Describes the message KeyboardType.\n * Use `create(KeyboardTypeSchema)` to create a new message.\n */\nexport const KeyboardTypeSchema: GenMessage<KeyboardType> = /*@__PURE__*/\n messageDesc(file_KeyboardMessage, 2);\n\n/**\n * @generated from enum KeyboardType.Enum\n */\nexport enum KeyboardType_Enum {\n /**\n * @generated from enum value: Default = 0;\n */\n Default = 0,\n\n /**\n * @generated from enum value: ASCII_Capable = 1;\n */\n ASCII_Capable = 1,\n\n /**\n * @generated from enum value: NumbersAndPunctuation = 2;\n */\n NumbersAndPunctuation = 2,\n\n /**\n * @generated from enum value: URL = 3;\n */\n URL = 3,\n\n /**\n * @generated from enum value: NumberPad = 4;\n */\n NumberPad = 4,\n\n /**\n * @generated from enum value: PhonePad = 5;\n */\n PhonePad = 5,\n\n /**\n * @generated from enum value: NamePhonePad = 6;\n */\n NamePhonePad = 6,\n\n /**\n * @generated from enum value: EmailAddress = 7;\n */\n EmailAddress = 7,\n\n /**\n * @generated from enum value: DecimalPad = 8;\n */\n DecimalPad = 8,\n\n /**\n * @generated from enum value: Twitter = 9;\n */\n Twitter = 9,\n\n /**\n * @generated from enum value: WebSearch = 10;\n */\n WebSearch = 10,\n\n /**\n * @generated from enum value: Alphanet = 11;\n */\n Alphanet = 11,\n\n /**\n * @generated from enum value: PasscodePad = 12;\n */\n PasscodePad = 12,\n}\n\n/**\n * Describes the enum KeyboardType.Enum.\n */\nexport const KeyboardType_EnumSchema: GenEnum<KeyboardType_Enum> = /*@__PURE__*/\n enumDesc(file_KeyboardMessage, 2, 0);\n\n/**\n * @generated from message ReturnKeyType\n */\nexport type ReturnKeyType = Message<\"ReturnKeyType\"> & {\n};\n\n/**\n * Describes the message ReturnKeyType.\n * Use `create(ReturnKeyTypeSchema)` to create a new message.\n */\nexport const ReturnKeyTypeSchema: GenMessage<ReturnKeyType> = /*@__PURE__*/\n messageDesc(file_KeyboardMessage, 3);\n\n/**\n * @generated from enum ReturnKeyType.Enum\n */\nexport enum ReturnKeyType_Enum {\n /**\n * @generated from enum value: Default = 0;\n */\n Default = 0,\n\n /**\n * @generated from enum value: Go = 1;\n */\n Go = 1,\n\n /**\n * @generated from enum value: Google = 2;\n */\n Google = 2,\n\n /**\n * @generated from enum value: Join = 3;\n */\n Join = 3,\n\n /**\n * @generated from enum value: Next = 4;\n */\n Next = 4,\n\n /**\n * @generated from enum value: Route = 5;\n */\n Route = 5,\n\n /**\n * @generated from enum value: Search = 6;\n */\n Search = 6,\n\n /**\n * @generated from enum value: Send = 7;\n */\n Send = 7,\n\n /**\n * @generated from enum value: Yahoo = 8;\n */\n Yahoo = 8,\n\n /**\n * @generated from enum value: Done = 9;\n */\n Done = 9,\n\n /**\n * @generated from enum value: EmergencyCall = 10;\n */\n EmergencyCall = 10,\n\n /**\n * @generated from enum value: Continue = 11;\n */\n Continue = 11,\n}\n\n/**\n * Describes the enum ReturnKeyType.Enum.\n */\nexport const ReturnKeyType_EnumSchema: GenEnum<ReturnKeyType_Enum> = /*@__PURE__*/\n enumDesc(file_KeyboardMessage, 3, 0);\n\n/**\n * @generated from message TextInputTraits\n */\nexport type TextInputTraits = Message<\"TextInputTraits\"> & {\n /**\n * @generated from field: optional AutocapitalizationType.Enum autocapitalizationType = 1;\n */\n autocapitalizationType: AutocapitalizationType_Enum;\n\n /**\n * @generated from field: optional KeyboardType.Enum keyboardType = 2;\n */\n keyboardType: KeyboardType_Enum;\n\n /**\n * @generated from field: optional ReturnKeyType.Enum returnKeyType = 3;\n */\n returnKeyType: ReturnKeyType_Enum;\n\n /**\n * @generated from field: optional bool autocorrection = 4;\n */\n autocorrection: boolean;\n\n /**\n * @generated from field: optional bool spellchecking = 5;\n */\n spellchecking: boolean;\n\n /**\n * @generated from field: optional bool enablesReturnKeyAutomatically = 6;\n */\n enablesReturnKeyAutomatically: boolean;\n\n /**\n * @generated from field: optional bool secureTextEntry = 7;\n */\n secureTextEntry: boolean;\n\n /**\n * @generated from field: optional uint64 validTextRangeLocation = 8;\n */\n validTextRangeLocation: bigint;\n\n /**\n * @generated from field: optional uint64 validTextRangeLength = 9;\n */\n validTextRangeLength: bigint;\n\n /**\n * @generated from field: repeated uint64 pINEntrySeparatorIndexes = 10;\n */\n pINEntrySeparatorIndexes: bigint[];\n};\n\n/**\n * Describes the message TextInputTraits.\n * Use `create(TextInputTraitsSchema)` to create a new message.\n */\nexport const TextInputTraitsSchema: GenMessage<TextInputTraits> = /*@__PURE__*/\n messageDesc(file_KeyboardMessage, 4);\n\n/**\n * @generated from message TextEditingAttributes\n */\nexport type TextEditingAttributes = Message<\"TextEditingAttributes\"> & {\n /**\n * @generated from field: optional string title = 1;\n */\n title: string;\n\n /**\n * @generated from field: optional string prompt = 2;\n */\n prompt: string;\n\n /**\n * @generated from field: optional TextInputTraits inputTraits = 3;\n */\n inputTraits?: TextInputTraits;\n};\n\n/**\n * Describes the message TextEditingAttributes.\n * Use `create(TextEditingAttributesSchema)` to create a new message.\n */\nexport const TextEditingAttributesSchema: GenMessage<TextEditingAttributes> = /*@__PURE__*/\n messageDesc(file_KeyboardMessage, 5);\n\n/**\n * @generated from message KeyboardMessage\n */\nexport type KeyboardMessage = Message<\"KeyboardMessage\"> & {\n /**\n * @generated from field: optional KeyboardState.Enum state = 1;\n */\n state: KeyboardState_Enum;\n\n /**\n * @generated from field: optional TextEditingAttributes attributes = 3;\n */\n attributes?: TextEditingAttributes;\n\n /**\n * @generated from field: optional bytes encryptedTextCyphertext = 4;\n */\n encryptedTextCyphertext: Uint8Array;\n};\n\n/**\n * Describes the message KeyboardMessage.\n * Use `create(KeyboardMessageSchema)` to create a new message.\n */\nexport const KeyboardMessageSchema: GenMessage<KeyboardMessage> = /*@__PURE__*/\n messageDesc(file_KeyboardMessage, 6);\n\n/**\n * @generated from extension: optional KeyboardMessage keyboardMessage = 28;\n */\nexport const keyboardMessage: GenExtension<ProtocolMessage, KeyboardMessage> = /*@__PURE__*/\n extDesc(file_KeyboardMessage, 0);\n\n",
|
|
60
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file ModifyOutputContextRequestMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenEnum, GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file ModifyOutputContextRequestMessage.proto.\n */\nexport const file_ModifyOutputContextRequestMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CidNb2RpZnlPdXRwdXRDb250ZXh0UmVxdWVzdE1lc3NhZ2UucHJvdG8iRQoeTW9kaWZ5T3V0cHV0Q29udGV4dFJlcXVlc3RUeXBlIiMKBEVudW0SGwoXU2hhcmVkQXVkaW9QcmVzZW50YXRpb24QASKLAgohTW9kaWZ5T3V0cHV0Q29udGV4dFJlcXVlc3RNZXNzYWdlEjIKBHR5cGUYASABKA4yJC5Nb2RpZnlPdXRwdXRDb250ZXh0UmVxdWVzdFR5cGUuRW51bRIVCg1hZGRpbmdEZXZpY2VzGAIgAygJEhcKD3JlbW92aW5nRGV2aWNlcxgDIAMoCRIWCg5zZXR0aW5nRGV2aWNlcxgEIAMoCRIhChljbHVzdGVyQXdhcmVBZGRpbmdEZXZpY2VzGAUgAygJEiMKG2NsdXN0ZXJBd2FyZVJlbW92aW5nRGV2aWNlcxgGIAMoCRIiChpjbHVzdGVyQXdhcmVTZXR0aW5nRGV2aWNlcxgHIAMoCTqCAQohbW9kaWZ5T3V0cHV0Q29udGV4dFJlcXVlc3RNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGDQgASgLMiIuTW9kaWZ5T3V0cHV0Q29udGV4dFJlcXVlc3RNZXNzYWdlUiFtb2RpZnlPdXRwdXRDb250ZXh0UmVxdWVzdE1lc3NhZ2U\", [file_ProtocolMessage]);\n\n/**\n * @generated from message ModifyOutputContextRequestType\n */\nexport type ModifyOutputContextRequestType = Message<\"ModifyOutputContextRequestType\"> & {\n};\n\n/**\n * Describes the message ModifyOutputContextRequestType.\n * Use `create(ModifyOutputContextRequestTypeSchema)` to create a new message.\n */\nexport const ModifyOutputContextRequestTypeSchema: GenMessage<ModifyOutputContextRequestType> = /*@__PURE__*/\n messageDesc(file_ModifyOutputContextRequestMessage, 0);\n\n/**\n * @generated from enum ModifyOutputContextRequestType.Enum\n */\nexport enum ModifyOutputContextRequestType_Enum {\n /**\n * @generated from enum value: SharedAudioPresentation = 1;\n */\n SharedAudioPresentation = 1,\n}\n\n/**\n * Describes the enum ModifyOutputContextRequestType.Enum.\n */\nexport const ModifyOutputContextRequestType_EnumSchema: GenEnum<ModifyOutputContextRequestType_Enum> = /*@__PURE__*/\n enumDesc(file_ModifyOutputContextRequestMessage, 0, 0);\n\n/**\n * @generated from message ModifyOutputContextRequestMessage\n */\nexport type ModifyOutputContextRequestMessage = Message<\"ModifyOutputContextRequestMessage\"> & {\n /**\n * @generated from field: optional ModifyOutputContextRequestType.Enum type = 1;\n */\n type: ModifyOutputContextRequestType_Enum;\n\n /**\n * @generated from field: repeated string addingDevices = 2;\n */\n addingDevices: string[];\n\n /**\n * @generated from field: repeated string removingDevices = 3;\n */\n removingDevices: string[];\n\n /**\n * @generated from field: repeated string settingDevices = 4;\n */\n settingDevices: string[];\n\n /**\n * @generated from field: repeated string clusterAwareAddingDevices = 5;\n */\n clusterAwareAddingDevices: string[];\n\n /**\n * @generated from field: repeated string clusterAwareRemovingDevices = 6;\n */\n clusterAwareRemovingDevices: string[];\n\n /**\n * @generated from field: repeated string clusterAwareSettingDevices = 7;\n */\n clusterAwareSettingDevices: string[];\n};\n\n/**\n * Describes the message ModifyOutputContextRequestMessage.\n * Use `create(ModifyOutputContextRequestMessageSchema)` to create a new message.\n */\nexport const ModifyOutputContextRequestMessageSchema: GenMessage<ModifyOutputContextRequestMessage> = /*@__PURE__*/\n messageDesc(file_ModifyOutputContextRequestMessage, 1);\n\n/**\n * @generated from extension: optional ModifyOutputContextRequestMessage modifyOutputContextRequestMessage = 52;\n */\nexport const modifyOutputContextRequestMessage: GenExtension<ProtocolMessage, ModifyOutputContextRequestMessage> = /*@__PURE__*/\n extDesc(file_ModifyOutputContextRequestMessage, 0);\n\n",
|
|
61
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file NotificationMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file NotificationMessage.proto.\n */\nexport const file_NotificationMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChlOb3RpZmljYXRpb25NZXNzYWdlLnByb3RvIj0KE05vdGlmaWNhdGlvbk1lc3NhZ2USFAoMbm90aWZpY2F0aW9uGAEgAygJEhAKCHVzZXJJbmZvGAIgAygMOlgKE25vdGlmaWNhdGlvbk1lc3NhZ2USEC5Qcm90b2NvbE1lc3NhZ2UYECABKAsyFC5Ob3RpZmljYXRpb25NZXNzYWdlUhNub3RpZmljYXRpb25NZXNzYWdl\", [file_ProtocolMessage]);\n\n/**\n * @generated from message NotificationMessage\n */\nexport type NotificationMessage = Message<\"NotificationMessage\"> & {\n /**\n * @generated from field: repeated string notification = 1;\n */\n notification: string[];\n\n /**\n * @generated from field: repeated bytes userInfo = 2;\n */\n userInfo: Uint8Array[];\n};\n\n/**\n * Describes the message NotificationMessage.\n * Use `create(NotificationMessageSchema)` to create a new message.\n */\nexport const NotificationMessageSchema: GenMessage<NotificationMessage> = /*@__PURE__*/\n messageDesc(file_NotificationMessage, 0);\n\n/**\n * @generated from extension: optional NotificationMessage notificationMessage = 16;\n */\nexport const notificationMessage: GenExtension<ProtocolMessage, NotificationMessage> = /*@__PURE__*/\n extDesc(file_NotificationMessage, 0);\n\n",
|
|
62
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file NowPlayingInfo.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { RepeatMode_Enum, ShuffleMode_Enum } from \"./Common_pb\";\nimport { file_Common } from \"./Common_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file NowPlayingInfo.proto.\n */\nexport const file_NowPlayingInfo: GenFile = /*@__PURE__*/\n fileDesc(\"ChROb3dQbGF5aW5nSW5mby5wcm90byLBAwoOTm93UGxheWluZ0luZm8SDQoFYWxidW0YASABKAkSDgoGYXJ0aXN0GAIgASgJEhAKCGR1cmF0aW9uGAMgASgBEhMKC2VsYXBzZWRUaW1lGAQgASgBEhQKDHBsYXliYWNrUmF0ZRgFIAEoAhIkCgpyZXBlYXRNb2RlGAYgASgOMhAuUmVwZWF0TW9kZS5FbnVtEiYKC3NodWZmbGVNb2RlGAcgASgOMhEuU2h1ZmZsZU1vZGUuRW51bRIRCgl0aW1lc3RhbXAYCCABKAESDQoFdGl0bGUYCSABKAkSGAoQdW5pcXVlSWRlbnRpZmllchgKIAEoBBIXCg9pc0V4cGxpY2l0VHJhY2sYCyABKAgSEgoKaXNNdXNpY0FwcBgMIAEoCBIeChZyYWRpb1N0YXRpb25JZGVudGlmaWVyGA0gASgDEhgKEHJhZGlvU3RhdGlvbkhhc2gYDiABKAkSGAoQcmFkaW9TdGF0aW9uTmFtZRgPIAEoCRIZChFhcnR3b3JrRGF0YURpZ2VzdBgQIAEoDBIUCgxpc0Fsd2F5c0xpdmUYESABKAgSFwoPaXNBZHZlcnRpc2VtZW50GBIgASgI\", [file_Common]);\n\n/**\n * @generated from message NowPlayingInfo\n */\nexport type NowPlayingInfo = Message<\"NowPlayingInfo\"> & {\n /**\n * @generated from field: optional string album = 1;\n */\n album: string;\n\n /**\n * @generated from field: optional string artist = 2;\n */\n artist: string;\n\n /**\n * @generated from field: optional double duration = 3;\n */\n duration: number;\n\n /**\n * @generated from field: optional double elapsedTime = 4;\n */\n elapsedTime: number;\n\n /**\n * @generated from field: optional float playbackRate = 5;\n */\n playbackRate: number;\n\n /**\n * @generated from field: optional RepeatMode.Enum repeatMode = 6;\n */\n repeatMode: RepeatMode_Enum;\n\n /**\n * @generated from field: optional ShuffleMode.Enum shuffleMode = 7;\n */\n shuffleMode: ShuffleMode_Enum;\n\n /**\n * @generated from field: optional double timestamp = 8;\n */\n timestamp: number;\n\n /**\n * @generated from field: optional string title = 9;\n */\n title: string;\n\n /**\n * @generated from field: optional uint64 uniqueIdentifier = 10;\n */\n uniqueIdentifier: bigint;\n\n /**\n * @generated from field: optional bool isExplicitTrack = 11;\n */\n isExplicitTrack: boolean;\n\n /**\n * @generated from field: optional bool isMusicApp = 12;\n */\n isMusicApp: boolean;\n\n /**\n * @generated from field: optional int64 radioStationIdentifier = 13;\n */\n radioStationIdentifier: bigint;\n\n /**\n * @generated from field: optional string radioStationHash = 14;\n */\n radioStationHash: string;\n\n /**\n * @generated from field: optional string radioStationName = 15;\n */\n radioStationName: string;\n\n /**\n * @generated from field: optional bytes artworkDataDigest = 16;\n */\n artworkDataDigest: Uint8Array;\n\n /**\n * @generated from field: optional bool isAlwaysLive = 17;\n */\n isAlwaysLive: boolean;\n\n /**\n * @generated from field: optional bool isAdvertisement = 18;\n */\n isAdvertisement: boolean;\n};\n\n/**\n * Describes the message NowPlayingInfo.\n * Use `create(NowPlayingInfoSchema)` to create a new message.\n */\nexport const NowPlayingInfoSchema: GenMessage<NowPlayingInfo> = /*@__PURE__*/\n messageDesc(file_NowPlayingInfo, 0);\n\n",
|
|
63
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file OriginClientPropertiesMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file OriginClientPropertiesMessage.proto.\n */\nexport const file_OriginClientPropertiesMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CiNPcmlnaW5DbGllbnRQcm9wZXJ0aWVzTWVzc2FnZS5wcm90byI9Ch1PcmlnaW5DbGllbnRQcm9wZXJ0aWVzTWVzc2FnZRIcChRsYXN0UGxheWluZ1RpbWVzdGFtcBgBIAEoATp2Ch1vcmlnaW5DbGllbnRQcm9wZXJ0aWVzTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRhXIAEoCzIeLk9yaWdpbkNsaWVudFByb3BlcnRpZXNNZXNzYWdlUh1vcmlnaW5DbGllbnRQcm9wZXJ0aWVzTWVzc2FnZQ\", [file_ProtocolMessage]);\n\n/**\n * @generated from message OriginClientPropertiesMessage\n */\nexport type OriginClientPropertiesMessage = Message<\"OriginClientPropertiesMessage\"> & {\n /**\n * @generated from field: optional double lastPlayingTimestamp = 1;\n */\n lastPlayingTimestamp: number;\n};\n\n/**\n * Describes the message OriginClientPropertiesMessage.\n * Use `create(OriginClientPropertiesMessageSchema)` to create a new message.\n */\nexport const OriginClientPropertiesMessageSchema: GenMessage<OriginClientPropertiesMessage> = /*@__PURE__*/\n messageDesc(file_OriginClientPropertiesMessage, 0);\n\n/**\n * @generated from extension: optional OriginClientPropertiesMessage originClientPropertiesMessage = 87;\n */\nexport const originClientPropertiesMessage: GenExtension<ProtocolMessage, OriginClientPropertiesMessage> = /*@__PURE__*/\n extDesc(file_OriginClientPropertiesMessage, 0);\n\n",
|
|
64
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file PlaybackQueueContext.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file PlaybackQueueContext.proto.\n */\nexport const file_PlaybackQueueContext: GenFile = /*@__PURE__*/\n fileDesc(\"ChpQbGF5YmFja1F1ZXVlQ29udGV4dC5wcm90byIoChRQbGF5YmFja1F1ZXVlQ29udGV4dBIQCghyZXZpc2lvbhgBIAEoCQ\");\n\n/**\n * @generated from message PlaybackQueueContext\n */\nexport type PlaybackQueueContext = Message<\"PlaybackQueueContext\"> & {\n /**\n * @generated from field: optional string revision = 1;\n */\n revision: string;\n};\n\n/**\n * Describes the message PlaybackQueueContext.\n * Use `create(PlaybackQueueContextSchema)` to create a new message.\n */\nexport const PlaybackQueueContextSchema: GenMessage<PlaybackQueueContext> = /*@__PURE__*/\n messageDesc(file_PlaybackQueueContext, 0);\n\n",
|
|
65
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file PlaybackQueue.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ContentItem } from \"./ContentItem_pb\";\nimport { file_ContentItem } from \"./ContentItem_pb\";\nimport type { PlaybackQueueContext } from \"./PlaybackQueueContext_pb\";\nimport { file_PlaybackQueueContext } from \"./PlaybackQueueContext_pb\";\nimport type { PlayerPath } from \"./PlayerPath_pb\";\nimport { file_PlayerPath } from \"./PlayerPath_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file PlaybackQueue.proto.\n */\nexport const file_PlaybackQueue: GenFile = /*@__PURE__*/\n fileDesc(\"ChNQbGF5YmFja1F1ZXVlLnByb3RvIusBCg1QbGF5YmFja1F1ZXVlEhAKCGxvY2F0aW9uGAEgASgFEiIKDGNvbnRlbnRJdGVtcxgCIAMoCzIMLkNvbnRlbnRJdGVtEiYKB2NvbnRleHQYAyABKAsyFS5QbGF5YmFja1F1ZXVlQ29udGV4dBIRCglyZXF1ZXN0SWQYBCABKAkSJwoScmVzb2x2ZWRQbGF5ZXJQYXRoGAUgASgLMgsuUGxheWVyUGF0aBInCh9zZW5kaW5nUGxheWJhY2tRdWV1ZVRyYW5zYWN0aW9uGAYgASgIEhcKD3F1ZXVlSWRlbnRpZmllchgHIAEoCQ\", [file_ContentItem, file_PlaybackQueueContext, file_PlayerPath]);\n\n/**\n * @generated from message PlaybackQueue\n */\nexport type PlaybackQueue = Message<\"PlaybackQueue\"> & {\n /**\n * @generated from field: optional int32 location = 1;\n */\n location: number;\n\n /**\n * @generated from field: repeated ContentItem contentItems = 2;\n */\n contentItems: ContentItem[];\n\n /**\n * @generated from field: optional PlaybackQueueContext context = 3;\n */\n context?: PlaybackQueueContext;\n\n /**\n * @generated from field: optional string requestId = 4;\n */\n requestId: string;\n\n /**\n * @generated from field: optional PlayerPath resolvedPlayerPath = 5;\n */\n resolvedPlayerPath?: PlayerPath;\n\n /**\n * @generated from field: optional bool sendingPlaybackQueueTransaction = 6;\n */\n sendingPlaybackQueueTransaction: boolean;\n\n /**\n * @generated from field: optional string queueIdentifier = 7;\n */\n queueIdentifier: string;\n};\n\n/**\n * Describes the message PlaybackQueue.\n * Use `create(PlaybackQueueSchema)` to create a new message.\n */\nexport const PlaybackQueueSchema: GenMessage<PlaybackQueue> = /*@__PURE__*/\n messageDesc(file_PlaybackQueue, 0);\n\n",
|
|
66
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file PlaybackQueueCapabilities.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file PlaybackQueueCapabilities.proto.\n */\nexport const file_PlaybackQueueCapabilities: GenFile = /*@__PURE__*/\n fileDesc(\"Ch9QbGF5YmFja1F1ZXVlQ2FwYWJpbGl0aWVzLnByb3RvImsKGVBsYXliYWNrUXVldWVDYXBhYmlsaXRpZXMSFgoOcmVxdWVzdEJ5UmFuZ2UYASABKAgSHAoUcmVxdWVzdEJ5SWRlbnRpZmllcnMYAiABKAgSGAoQcmVxdWVzdEJ5UmVxdWVzdBgDIAEoCA\");\n\n/**\n * @generated from message PlaybackQueueCapabilities\n */\nexport type PlaybackQueueCapabilities = Message<\"PlaybackQueueCapabilities\"> & {\n /**\n * @generated from field: optional bool requestByRange = 1;\n */\n requestByRange: boolean;\n\n /**\n * @generated from field: optional bool requestByIdentifiers = 2;\n */\n requestByIdentifiers: boolean;\n\n /**\n * @generated from field: optional bool requestByRequest = 3;\n */\n requestByRequest: boolean;\n};\n\n/**\n * Describes the message PlaybackQueueCapabilities.\n * Use `create(PlaybackQueueCapabilitiesSchema)` to create a new message.\n */\nexport const PlaybackQueueCapabilitiesSchema: GenMessage<PlaybackQueueCapabilities> = /*@__PURE__*/\n messageDesc(file_PlaybackQueueCapabilities, 0);\n\n",
|
|
67
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file PlaybackQueueRequestMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { PlaybackQueueContext } from \"./PlaybackQueueContext_pb\";\nimport { file_PlaybackQueueContext } from \"./PlaybackQueueContext_pb\";\nimport type { PlayerPath } from \"./PlayerPath_pb\";\nimport { file_PlayerPath } from \"./PlayerPath_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file PlaybackQueueRequestMessage.proto.\n */\nexport const file_PlaybackQueueRequestMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CiFQbGF5YmFja1F1ZXVlUmVxdWVzdE1lc3NhZ2UucHJvdG8i5AMKG1BsYXliYWNrUXVldWVSZXF1ZXN0TWVzc2FnZRIQCghsb2NhdGlvbhgBIAEoBRIOCgZsZW5ndGgYAiABKAUSFwoPaW5jbHVkZU1ldGFkYXRhGAMgASgIEhQKDGFydHdvcmtXaWR0aBgEIAEoARIVCg1hcnR3b3JrSGVpZ2h0GAUgASgBEhUKDWluY2x1ZGVMeXJpY3MYBiABKAgSFwoPaW5jbHVkZVNlY3Rpb25zGAcgASgIEhMKC2luY2x1ZGVJbmZvGAggASgIEh4KFmluY2x1ZGVMYW5ndWFnZU9wdGlvbnMYCSABKAgSJgoHY29udGV4dBgKIAEoCzIVLlBsYXliYWNrUXVldWVDb250ZXh0EhEKCXJlcXVlc3RJRBgLIAEoCRIeChZjb250ZW50SXRlbUlkZW50aWZpZXJzGAwgAygJEi8KJ3JldHVybkNvbnRlbnRJdGVtQXNzZXRzSW5Vc2VyQ29tcGxldGlvbhgNIAEoCBIfCgpwbGF5ZXJQYXRoGA4gASgLMgsuUGxheWVyUGF0aBIVCg1jYWNoaW5nUG9saWN5GA8gASgFEg0KBWxhYmVsGBAgASgJEiUKHWlzTGVnYWN5Tm93UGxheWluZ0luZm9SZXF1ZXN0GBEgASgIOnAKG3BsYXliYWNrUXVldWVSZXF1ZXN0TWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRglIAEoCzIcLlBsYXliYWNrUXVldWVSZXF1ZXN0TWVzc2FnZVIbcGxheWJhY2tRdWV1ZVJlcXVlc3RNZXNzYWdl\", [file_ProtocolMessage, file_PlaybackQueueContext, file_PlayerPath]);\n\n/**\n * @generated from message PlaybackQueueRequestMessage\n */\nexport type PlaybackQueueRequestMessage = Message<\"PlaybackQueueRequestMessage\"> & {\n /**\n * @generated from field: optional int32 location = 1;\n */\n location: number;\n\n /**\n * @generated from field: optional int32 length = 2;\n */\n length: number;\n\n /**\n * @generated from field: optional bool includeMetadata = 3;\n */\n includeMetadata: boolean;\n\n /**\n * @generated from field: optional double artworkWidth = 4;\n */\n artworkWidth: number;\n\n /**\n * @generated from field: optional double artworkHeight = 5;\n */\n artworkHeight: number;\n\n /**\n * @generated from field: optional bool includeLyrics = 6;\n */\n includeLyrics: boolean;\n\n /**\n * @generated from field: optional bool includeSections = 7;\n */\n includeSections: boolean;\n\n /**\n * @generated from field: optional bool includeInfo = 8;\n */\n includeInfo: boolean;\n\n /**\n * @generated from field: optional bool includeLanguageOptions = 9;\n */\n includeLanguageOptions: boolean;\n\n /**\n * @generated from field: optional PlaybackQueueContext context = 10;\n */\n context?: PlaybackQueueContext;\n\n /**\n * @generated from field: optional string requestID = 11;\n */\n requestID: string;\n\n /**\n * @generated from field: repeated string contentItemIdentifiers = 12;\n */\n contentItemIdentifiers: string[];\n\n /**\n * @generated from field: optional bool returnContentItemAssetsInUserCompletion = 13;\n */\n returnContentItemAssetsInUserCompletion: boolean;\n\n /**\n * @generated from field: optional PlayerPath playerPath = 14;\n */\n playerPath?: PlayerPath;\n\n /**\n * @generated from field: optional int32 cachingPolicy = 15;\n */\n cachingPolicy: number;\n\n /**\n * @generated from field: optional string label = 16;\n */\n label: string;\n\n /**\n * @generated from field: optional bool isLegacyNowPlayingInfoRequest = 17;\n */\n isLegacyNowPlayingInfoRequest: boolean;\n};\n\n/**\n * Describes the message PlaybackQueueRequestMessage.\n * Use `create(PlaybackQueueRequestMessageSchema)` to create a new message.\n */\nexport const PlaybackQueueRequestMessageSchema: GenMessage<PlaybackQueueRequestMessage> = /*@__PURE__*/\n messageDesc(file_PlaybackQueueRequestMessage, 0);\n\n/**\n * @generated from extension: optional PlaybackQueueRequestMessage playbackQueueRequestMessage = 37;\n */\nexport const playbackQueueRequestMessage: GenExtension<ProtocolMessage, PlaybackQueueRequestMessage> = /*@__PURE__*/\n extDesc(file_PlaybackQueueRequestMessage, 0);\n\n",
|
|
68
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file PlayerClientPropertiesMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { PlayerPath } from \"./PlayerPath_pb\";\nimport { file_PlayerPath } from \"./PlayerPath_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file PlayerClientPropertiesMessage.proto.\n */\nexport const file_PlayerClientPropertiesMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CiNQbGF5ZXJDbGllbnRQcm9wZXJ0aWVzTWVzc2FnZS5wcm90byJeCh1QbGF5ZXJDbGllbnRQcm9wZXJ0aWVzTWVzc2FnZRIfCgpwbGF5ZXJQYXRoGAEgASgLMgsuUGxheWVyUGF0aBIcChRsYXN0UGxheWluZ1RpbWVzdGFtcBgCIAEoATp2Ch1wbGF5ZXJDbGllbnRQcm9wZXJ0aWVzTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRhWIAEoCzIeLlBsYXllckNsaWVudFByb3BlcnRpZXNNZXNzYWdlUh1wbGF5ZXJDbGllbnRQcm9wZXJ0aWVzTWVzc2FnZQ\", [file_ProtocolMessage, file_PlayerPath]);\n\n/**\n * @generated from message PlayerClientPropertiesMessage\n */\nexport type PlayerClientPropertiesMessage = Message<\"PlayerClientPropertiesMessage\"> & {\n /**\n * @generated from field: optional PlayerPath playerPath = 1;\n */\n playerPath?: PlayerPath;\n\n /**\n * @generated from field: optional double lastPlayingTimestamp = 2;\n */\n lastPlayingTimestamp: number;\n};\n\n/**\n * Describes the message PlayerClientPropertiesMessage.\n * Use `create(PlayerClientPropertiesMessageSchema)` to create a new message.\n */\nexport const PlayerClientPropertiesMessageSchema: GenMessage<PlayerClientPropertiesMessage> = /*@__PURE__*/\n messageDesc(file_PlayerClientPropertiesMessage, 0);\n\n/**\n * @generated from extension: optional PlayerClientPropertiesMessage playerClientPropertiesMessage = 86;\n */\nexport const playerClientPropertiesMessage: GenExtension<ProtocolMessage, PlayerClientPropertiesMessage> = /*@__PURE__*/\n extDesc(file_PlayerClientPropertiesMessage, 0);\n\n",
|
|
69
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file RegisterForGameControllerEventsMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenEnum, GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file RegisterForGameControllerEventsMessage.proto.\n */\nexport const file_RegisterForGameControllerEventsMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CixSZWdpc3RlckZvckdhbWVDb250cm9sbGVyRXZlbnRzTWVzc2FnZS5wcm90byK8AQomUmVnaXN0ZXJGb3JHYW1lQ29udHJvbGxlckV2ZW50c01lc3NhZ2USTgoOaW5wdXRNb2RlRmxhZ3MYASABKA4yNi5SZWdpc3RlckZvckdhbWVDb250cm9sbGVyRXZlbnRzTWVzc2FnZS5JbnB1dE1vZGVGbGFncyJCCg5JbnB1dE1vZGVGbGFncxIICgROb25lEAASCgoGTW90aW9uEAESCwoHQnV0dG9ucxACEg0KCURpZ2l0aXplchADOpEBCiZyZWdpc3RlckZvckdhbWVDb250cm9sbGVyRXZlbnRzTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRgbIAEoCzInLlJlZ2lzdGVyRm9yR2FtZUNvbnRyb2xsZXJFdmVudHNNZXNzYWdlUiZyZWdpc3RlckZvckdhbWVDb250cm9sbGVyRXZlbnRzTWVzc2FnZQ\", [file_ProtocolMessage]);\n\n/**\n * @generated from message RegisterForGameControllerEventsMessage\n */\nexport type RegisterForGameControllerEventsMessage = Message<\"RegisterForGameControllerEventsMessage\"> & {\n /**\n * @generated from field: optional RegisterForGameControllerEventsMessage.InputModeFlags inputModeFlags = 1;\n */\n inputModeFlags: RegisterForGameControllerEventsMessage_InputModeFlags;\n};\n\n/**\n * Describes the message RegisterForGameControllerEventsMessage.\n * Use `create(RegisterForGameControllerEventsMessageSchema)` to create a new message.\n */\nexport const RegisterForGameControllerEventsMessageSchema: GenMessage<RegisterForGameControllerEventsMessage> = /*@__PURE__*/\n messageDesc(file_RegisterForGameControllerEventsMessage, 0);\n\n/**\n * @generated from enum RegisterForGameControllerEventsMessage.InputModeFlags\n */\nexport enum RegisterForGameControllerEventsMessage_InputModeFlags {\n /**\n * @generated from enum value: None = 0;\n */\n None = 0,\n\n /**\n * @generated from enum value: Motion = 1;\n */\n Motion = 1,\n\n /**\n * @generated from enum value: Buttons = 2;\n */\n Buttons = 2,\n\n /**\n * @generated from enum value: Digitizer = 3;\n */\n Digitizer = 3,\n}\n\n/**\n * Describes the enum RegisterForGameControllerEventsMessage.InputModeFlags.\n */\nexport const RegisterForGameControllerEventsMessage_InputModeFlagsSchema: GenEnum<RegisterForGameControllerEventsMessage_InputModeFlags> = /*@__PURE__*/\n enumDesc(file_RegisterForGameControllerEventsMessage, 0, 0);\n\n/**\n * @generated from extension: optional RegisterForGameControllerEventsMessage registerForGameControllerEventsMessage = 27;\n */\nexport const registerForGameControllerEventsMessage: GenExtension<ProtocolMessage, RegisterForGameControllerEventsMessage> = /*@__PURE__*/\n extDesc(file_RegisterForGameControllerEventsMessage, 0);\n\n",
|
|
70
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file VirtualTouchDeviceDescriptorMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file VirtualTouchDeviceDescriptorMessage.proto.\n */\nexport const file_VirtualTouchDeviceDescriptorMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CilWaXJ0dWFsVG91Y2hEZXZpY2VEZXNjcmlwdG9yTWVzc2FnZS5wcm90byJ+ChxWaXJ0dWFsVG91Y2hEZXZpY2VEZXNjcmlwdG9yEhAKCGFic29sdXRlGAEgASgIEhkKEWludGVncmF0ZWREaXNwbGF5GAIgASgIEhcKD3NjcmVlblNpemVXaWR0aBgDIAEoAhIYChBzY3JlZW5TaXplSGVpZ2h0GAQgASgC\");\n\n/**\n * @generated from message VirtualTouchDeviceDescriptor\n */\nexport type VirtualTouchDeviceDescriptor = Message<\"VirtualTouchDeviceDescriptor\"> & {\n /**\n * @generated from field: optional bool absolute = 1;\n */\n absolute: boolean;\n\n /**\n * @generated from field: optional bool integratedDisplay = 2;\n */\n integratedDisplay: boolean;\n\n /**\n * @generated from field: optional float screenSizeWidth = 3;\n */\n screenSizeWidth: number;\n\n /**\n * @generated from field: optional float screenSizeHeight = 4;\n */\n screenSizeHeight: number;\n};\n\n/**\n * Describes the message VirtualTouchDeviceDescriptor.\n * Use `create(VirtualTouchDeviceDescriptorSchema)` to create a new message.\n */\nexport const VirtualTouchDeviceDescriptorSchema: GenMessage<VirtualTouchDeviceDescriptor> = /*@__PURE__*/\n messageDesc(file_VirtualTouchDeviceDescriptorMessage, 0);\n\n",
|
|
71
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file RegisterHIDDeviceMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { VirtualTouchDeviceDescriptor } from \"./VirtualTouchDeviceDescriptorMessage_pb\";\nimport { file_VirtualTouchDeviceDescriptorMessage } from \"./VirtualTouchDeviceDescriptorMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file RegisterHIDDeviceMessage.proto.\n */\nexport const file_RegisterHIDDeviceMessage: GenFile = /*@__PURE__*/\n fileDesc(\"Ch5SZWdpc3RlckhJRERldmljZU1lc3NhZ2UucHJvdG8iUwoYUmVnaXN0ZXJISUREZXZpY2VNZXNzYWdlEjcKEGRldmljZURlc2NyaXB0b3IYASABKAsyHS5WaXJ0dWFsVG91Y2hEZXZpY2VEZXNjcmlwdG9yOmcKGHJlZ2lzdGVySElERGV2aWNlTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRgLIAEoCzIZLlJlZ2lzdGVySElERGV2aWNlTWVzc2FnZVIYcmVnaXN0ZXJISUREZXZpY2VNZXNzYWdl\", [file_ProtocolMessage, file_VirtualTouchDeviceDescriptorMessage]);\n\n/**\n * @generated from message RegisterHIDDeviceMessage\n */\nexport type RegisterHIDDeviceMessage = Message<\"RegisterHIDDeviceMessage\"> & {\n /**\n * @generated from field: optional VirtualTouchDeviceDescriptor deviceDescriptor = 1;\n */\n deviceDescriptor?: VirtualTouchDeviceDescriptor;\n};\n\n/**\n * Describes the message RegisterHIDDeviceMessage.\n * Use `create(RegisterHIDDeviceMessageSchema)` to create a new message.\n */\nexport const RegisterHIDDeviceMessageSchema: GenMessage<RegisterHIDDeviceMessage> = /*@__PURE__*/\n messageDesc(file_RegisterHIDDeviceMessage, 0);\n\n/**\n * @generated from extension: optional RegisterHIDDeviceMessage registerHIDDeviceMessage = 11;\n */\nexport const registerHIDDeviceMessage: GenExtension<ProtocolMessage, RegisterHIDDeviceMessage> = /*@__PURE__*/\n extDesc(file_RegisterHIDDeviceMessage, 0);\n\n",
|
|
72
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file RegisterHIDDeviceResultMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file RegisterHIDDeviceResultMessage.proto.\n */\nexport const file_RegisterHIDDeviceResultMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CiRSZWdpc3RlckhJRERldmljZVJlc3VsdE1lc3NhZ2UucHJvdG8iTQoeUmVnaXN0ZXJISUREZXZpY2VSZXN1bHRNZXNzYWdlEhEKCWVycm9yQ29kZRgBIAEoBRIYChBkZXZpY2VJZGVudGlmaWVyGAIgASgFOnkKHnJlZ2lzdGVySElERGV2aWNlUmVzdWx0TWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRgMIAEoCzIfLlJlZ2lzdGVySElERGV2aWNlUmVzdWx0TWVzc2FnZVIecmVnaXN0ZXJISUREZXZpY2VSZXN1bHRNZXNzYWdl\", [file_ProtocolMessage]);\n\n/**\n * @generated from message RegisterHIDDeviceResultMessage\n */\nexport type RegisterHIDDeviceResultMessage = Message<\"RegisterHIDDeviceResultMessage\"> & {\n /**\n * @generated from field: optional int32 errorCode = 1;\n */\n errorCode: number;\n\n /**\n * @generated from field: optional int32 deviceIdentifier = 2;\n */\n deviceIdentifier: number;\n};\n\n/**\n * Describes the message RegisterHIDDeviceResultMessage.\n * Use `create(RegisterHIDDeviceResultMessageSchema)` to create a new message.\n */\nexport const RegisterHIDDeviceResultMessageSchema: GenMessage<RegisterHIDDeviceResultMessage> = /*@__PURE__*/\n messageDesc(file_RegisterHIDDeviceResultMessage, 0);\n\n/**\n * @generated from extension: optional RegisterHIDDeviceResultMessage registerHIDDeviceResultMessage = 12;\n */\nexport const registerHIDDeviceResultMessage: GenExtension<ProtocolMessage, RegisterHIDDeviceResultMessage> = /*@__PURE__*/\n extDesc(file_RegisterHIDDeviceResultMessage, 0);\n\n",
|
|
73
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file VoiceInputDeviceDescriptorMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { AudioFormatSettings } from \"./AudioFormatSettingsMessage_pb\";\nimport { file_AudioFormatSettingsMessage } from \"./AudioFormatSettingsMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file VoiceInputDeviceDescriptorMessage.proto.\n */\nexport const file_VoiceInputDeviceDescriptorMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CidWb2ljZUlucHV0RGV2aWNlRGVzY3JpcHRvck1lc3NhZ2UucHJvdG8ieQoaVm9pY2VJbnB1dERldmljZURlc2NyaXB0b3ISKwoNZGVmYXVsdEZvcm1hdBgBIAEoCzIULkF1ZGlvRm9ybWF0U2V0dGluZ3MSLgoQc3VwcG9ydGVkRm9ybWF0cxgCIAMoCzIULkF1ZGlvRm9ybWF0U2V0dGluZ3M\", [file_AudioFormatSettingsMessage]);\n\n/**\n * @generated from message VoiceInputDeviceDescriptor\n */\nexport type VoiceInputDeviceDescriptor = Message<\"VoiceInputDeviceDescriptor\"> & {\n /**\n * @generated from field: optional AudioFormatSettings defaultFormat = 1;\n */\n defaultFormat?: AudioFormatSettings;\n\n /**\n * @generated from field: repeated AudioFormatSettings supportedFormats = 2;\n */\n supportedFormats: AudioFormatSettings[];\n};\n\n/**\n * Describes the message VoiceInputDeviceDescriptor.\n * Use `create(VoiceInputDeviceDescriptorSchema)` to create a new message.\n */\nexport const VoiceInputDeviceDescriptorSchema: GenMessage<VoiceInputDeviceDescriptor> = /*@__PURE__*/\n messageDesc(file_VoiceInputDeviceDescriptorMessage, 0);\n\n",
|
|
74
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file RegisterVoiceInputDeviceMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { VoiceInputDeviceDescriptor } from \"./VoiceInputDeviceDescriptorMessage_pb\";\nimport { file_VoiceInputDeviceDescriptorMessage } from \"./VoiceInputDeviceDescriptorMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file RegisterVoiceInputDeviceMessage.proto.\n */\nexport const file_RegisterVoiceInputDeviceMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CiVSZWdpc3RlclZvaWNlSW5wdXREZXZpY2VNZXNzYWdlLnByb3RvIlgKH1JlZ2lzdGVyVm9pY2VJbnB1dERldmljZU1lc3NhZ2USNQoQZGV2aWNlRGVzY3JpcHRvchgBIAEoCzIbLlZvaWNlSW5wdXREZXZpY2VEZXNjcmlwdG9yOnwKH3JlZ2lzdGVyVm9pY2VJbnB1dERldmljZU1lc3NhZ2USEC5Qcm90b2NvbE1lc3NhZ2UYISABKAsyIC5SZWdpc3RlclZvaWNlSW5wdXREZXZpY2VNZXNzYWdlUh9yZWdpc3RlclZvaWNlSW5wdXREZXZpY2VNZXNzYWdl\", [file_ProtocolMessage, file_VoiceInputDeviceDescriptorMessage]);\n\n/**\n * @generated from message RegisterVoiceInputDeviceMessage\n */\nexport type RegisterVoiceInputDeviceMessage = Message<\"RegisterVoiceInputDeviceMessage\"> & {\n /**\n * @generated from field: optional VoiceInputDeviceDescriptor deviceDescriptor = 1;\n */\n deviceDescriptor?: VoiceInputDeviceDescriptor;\n};\n\n/**\n * Describes the message RegisterVoiceInputDeviceMessage.\n * Use `create(RegisterVoiceInputDeviceMessageSchema)` to create a new message.\n */\nexport const RegisterVoiceInputDeviceMessageSchema: GenMessage<RegisterVoiceInputDeviceMessage> = /*@__PURE__*/\n messageDesc(file_RegisterVoiceInputDeviceMessage, 0);\n\n/**\n * @generated from extension: optional RegisterVoiceInputDeviceMessage registerVoiceInputDeviceMessage = 33;\n */\nexport const registerVoiceInputDeviceMessage: GenExtension<ProtocolMessage, RegisterVoiceInputDeviceMessage> = /*@__PURE__*/\n extDesc(file_RegisterVoiceInputDeviceMessage, 0);\n\n",
|
|
75
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file RegisterVoiceInputDeviceResponseMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file RegisterVoiceInputDeviceResponseMessage.proto.\n */\nexport const file_RegisterVoiceInputDeviceResponseMessage: GenFile = /*@__PURE__*/\n fileDesc(\"Ci1SZWdpc3RlclZvaWNlSW5wdXREZXZpY2VSZXNwb25zZU1lc3NhZ2UucHJvdG8iTgonUmVnaXN0ZXJWb2ljZUlucHV0RGV2aWNlUmVzcG9uc2VNZXNzYWdlEhAKCGRldmljZUlEGAEgASgFEhEKCWVycm9yQ29kZRgCIAEoBTqUAQoncmVnaXN0ZXJWb2ljZUlucHV0RGV2aWNlUmVzcG9uc2VNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGCIgASgLMiguUmVnaXN0ZXJWb2ljZUlucHV0RGV2aWNlUmVzcG9uc2VNZXNzYWdlUidyZWdpc3RlclZvaWNlSW5wdXREZXZpY2VSZXNwb25zZU1lc3NhZ2U\", [file_ProtocolMessage]);\n\n/**\n * @generated from message RegisterVoiceInputDeviceResponseMessage\n */\nexport type RegisterVoiceInputDeviceResponseMessage = Message<\"RegisterVoiceInputDeviceResponseMessage\"> & {\n /**\n * @generated from field: optional int32 deviceID = 1;\n */\n deviceID: number;\n\n /**\n * @generated from field: optional int32 errorCode = 2;\n */\n errorCode: number;\n};\n\n/**\n * Describes the message RegisterVoiceInputDeviceResponseMessage.\n * Use `create(RegisterVoiceInputDeviceResponseMessageSchema)` to create a new message.\n */\nexport const RegisterVoiceInputDeviceResponseMessageSchema: GenMessage<RegisterVoiceInputDeviceResponseMessage> = /*@__PURE__*/\n messageDesc(file_RegisterVoiceInputDeviceResponseMessage, 0);\n\n/**\n * @generated from extension: optional RegisterVoiceInputDeviceResponseMessage registerVoiceInputDeviceResponseMessage = 34;\n */\nexport const registerVoiceInputDeviceResponseMessage: GenExtension<ProtocolMessage, RegisterVoiceInputDeviceResponseMessage> = /*@__PURE__*/\n extDesc(file_RegisterVoiceInputDeviceResponseMessage, 0);\n\n",
|
|
76
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file RemoteTextInputMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file RemoteTextInputMessage.proto.\n */\nexport const file_RemoteTextInputMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChxSZW1vdGVUZXh0SW5wdXRNZXNzYWdlLnByb3RvIkoKFlJlbW90ZVRleHRJbnB1dE1lc3NhZ2USEQoJdGltZXN0YW1wGAEgASgBEg8KB3ZlcnNpb24YAiABKAQSDAoEZGF0YRgDIAEoDDphChZyZW1vdGVUZXh0SW5wdXRNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGEcgASgLMhcuUmVtb3RlVGV4dElucHV0TWVzc2FnZVIWcmVtb3RlVGV4dElucHV0TWVzc2FnZQ\", [file_ProtocolMessage]);\n\n/**\n * @generated from message RemoteTextInputMessage\n */\nexport type RemoteTextInputMessage = Message<\"RemoteTextInputMessage\"> & {\n /**\n * @generated from field: optional double timestamp = 1;\n */\n timestamp: number;\n\n /**\n * @generated from field: optional uint64 version = 2;\n */\n version: bigint;\n\n /**\n * @generated from field: optional bytes data = 3;\n */\n data: Uint8Array;\n};\n\n/**\n * Describes the message RemoteTextInputMessage.\n * Use `create(RemoteTextInputMessageSchema)` to create a new message.\n */\nexport const RemoteTextInputMessageSchema: GenMessage<RemoteTextInputMessage> = /*@__PURE__*/\n messageDesc(file_RemoteTextInputMessage, 0);\n\n/**\n * @generated from extension: optional RemoteTextInputMessage remoteTextInputMessage = 71;\n */\nexport const remoteTextInputMessage: GenExtension<ProtocolMessage, RemoteTextInputMessage> = /*@__PURE__*/\n extDesc(file_RemoteTextInputMessage, 0);\n\n",
|
|
77
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file RemoveClientMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { NowPlayingClient } from \"./NowPlayingClient_pb\";\nimport { file_NowPlayingClient } from \"./NowPlayingClient_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file RemoveClientMessage.proto.\n */\nexport const file_RemoveClientMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChlSZW1vdmVDbGllbnRNZXNzYWdlLnByb3RvIjgKE1JlbW92ZUNsaWVudE1lc3NhZ2USIQoGY2xpZW50GAEgASgLMhEuTm93UGxheWluZ0NsaWVudDpYChNyZW1vdmVDbGllbnRNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGDkgASgLMhQuUmVtb3ZlQ2xpZW50TWVzc2FnZVITcmVtb3ZlQ2xpZW50TWVzc2FnZQ\", [file_ProtocolMessage, file_NowPlayingClient]);\n\n/**\n * @generated from message RemoveClientMessage\n */\nexport type RemoveClientMessage = Message<\"RemoveClientMessage\"> & {\n /**\n * @generated from field: optional NowPlayingClient client = 1;\n */\n client?: NowPlayingClient;\n};\n\n/**\n * Describes the message RemoveClientMessage.\n * Use `create(RemoveClientMessageSchema)` to create a new message.\n */\nexport const RemoveClientMessageSchema: GenMessage<RemoveClientMessage> = /*@__PURE__*/\n messageDesc(file_RemoveClientMessage, 0);\n\n/**\n * @generated from extension: optional RemoveClientMessage removeClientMessage = 57;\n */\nexport const removeClientMessage: GenExtension<ProtocolMessage, RemoveClientMessage> = /*@__PURE__*/\n extDesc(file_RemoveClientMessage, 0);\n\n",
|
|
78
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file RemoveEndpointsMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file RemoveEndpointsMessage.proto.\n */\nexport const file_RemoveEndpointsMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChxSZW1vdmVFbmRwb2ludHNNZXNzYWdlLnByb3RvIi4KFlJlbW92ZUVuZHBvaW50c01lc3NhZ2USFAoMZW5kcG9pbnRVSURzGAEgAygJOmEKFnJlbW92ZUVuZHBvaW50c01lc3NhZ2USEC5Qcm90b2NvbE1lc3NhZ2UYVCABKAsyFy5SZW1vdmVFbmRwb2ludHNNZXNzYWdlUhZyZW1vdmVFbmRwb2ludHNNZXNzYWdl\", [file_ProtocolMessage]);\n\n/**\n * @generated from message RemoveEndpointsMessage\n */\nexport type RemoveEndpointsMessage = Message<\"RemoveEndpointsMessage\"> & {\n /**\n * @generated from field: repeated string endpointUIDs = 1;\n */\n endpointUIDs: string[];\n};\n\n/**\n * Describes the message RemoveEndpointsMessage.\n * Use `create(RemoveEndpointsMessageSchema)` to create a new message.\n */\nexport const RemoveEndpointsMessageSchema: GenMessage<RemoveEndpointsMessage> = /*@__PURE__*/\n messageDesc(file_RemoveEndpointsMessage, 0);\n\n/**\n * @generated from extension: optional RemoveEndpointsMessage removeEndpointsMessage = 84;\n */\nexport const removeEndpointsMessage: GenExtension<ProtocolMessage, RemoveEndpointsMessage> = /*@__PURE__*/\n extDesc(file_RemoveEndpointsMessage, 0);\n\n",
|
|
79
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file RemoveOutputDevicesMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file RemoveOutputDevicesMessage.proto.\n */\nexport const file_RemoveOutputDevicesMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CiBSZW1vdmVPdXRwdXREZXZpY2VzTWVzc2FnZS5wcm90byJLChpSZW1vdmVPdXRwdXREZXZpY2VzTWVzc2FnZRIYChBvdXRwdXREZXZpY2VVSURzGAEgAygJEhMKC2VuZHBvaW50VUlEGAIgASgJOm0KGnJlbW92ZU91dHB1dERldmljZXNNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGEYgASgLMhsuUmVtb3ZlT3V0cHV0RGV2aWNlc01lc3NhZ2VSGnJlbW92ZU91dHB1dERldmljZXNNZXNzYWdl\", [file_ProtocolMessage]);\n\n/**\n * @generated from message RemoveOutputDevicesMessage\n */\nexport type RemoveOutputDevicesMessage = Message<\"RemoveOutputDevicesMessage\"> & {\n /**\n * @generated from field: repeated string outputDeviceUIDs = 1;\n */\n outputDeviceUIDs: string[];\n\n /**\n * @generated from field: optional string endpointUID = 2;\n */\n endpointUID: string;\n};\n\n/**\n * Describes the message RemoveOutputDevicesMessage.\n * Use `create(RemoveOutputDevicesMessageSchema)` to create a new message.\n */\nexport const RemoveOutputDevicesMessageSchema: GenMessage<RemoveOutputDevicesMessage> = /*@__PURE__*/\n messageDesc(file_RemoveOutputDevicesMessage, 0);\n\n/**\n * @generated from extension: optional RemoveOutputDevicesMessage removeOutputDevicesMessage = 70;\n */\nexport const removeOutputDevicesMessage: GenExtension<ProtocolMessage, RemoveOutputDevicesMessage> = /*@__PURE__*/\n extDesc(file_RemoveOutputDevicesMessage, 0);\n\n",
|
|
80
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file RemovePlayerMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { PlayerPath } from \"./PlayerPath_pb\";\nimport { file_PlayerPath } from \"./PlayerPath_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file RemovePlayerMessage.proto.\n */\nexport const file_RemovePlayerMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChlSZW1vdmVQbGF5ZXJNZXNzYWdlLnByb3RvIjYKE1JlbW92ZVBsYXllck1lc3NhZ2USHwoKcGxheWVyUGF0aBgBIAEoCzILLlBsYXllclBhdGg6WAoTcmVtb3ZlUGxheWVyTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRg6IAEoCzIULlJlbW92ZVBsYXllck1lc3NhZ2VSE3JlbW92ZVBsYXllck1lc3NhZ2U\", [file_ProtocolMessage, file_PlayerPath]);\n\n/**\n * @generated from message RemovePlayerMessage\n */\nexport type RemovePlayerMessage = Message<\"RemovePlayerMessage\"> & {\n /**\n * @generated from field: optional PlayerPath playerPath = 1;\n */\n playerPath?: PlayerPath;\n};\n\n/**\n * Describes the message RemovePlayerMessage.\n * Use `create(RemovePlayerMessageSchema)` to create a new message.\n */\nexport const RemovePlayerMessageSchema: GenMessage<RemovePlayerMessage> = /*@__PURE__*/\n messageDesc(file_RemovePlayerMessage, 0);\n\n/**\n * @generated from extension: optional RemovePlayerMessage removePlayerMessage = 58;\n */\nexport const removePlayerMessage: GenExtension<ProtocolMessage, RemovePlayerMessage> = /*@__PURE__*/\n extDesc(file_RemovePlayerMessage, 0);\n\n",
|
|
81
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SendButtonEventMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SendButtonEventMessage.proto.\n */\nexport const file_SendButtonEventMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChxTZW5kQnV0dG9uRXZlbnRNZXNzYWdlLnByb3RvIk4KFlNlbmRCdXR0b25FdmVudE1lc3NhZ2USEQoJdXNhZ2VQYWdlGAEgASgNEg0KBXVzYWdlGAIgASgNEhIKCmJ1dHRvbkRvd24YAyABKAg6YQoWc2VuZEJ1dHRvbkV2ZW50TWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRgrIAEoCzIXLlNlbmRCdXR0b25FdmVudE1lc3NhZ2VSFnNlbmRCdXR0b25FdmVudE1lc3NhZ2U\", [file_ProtocolMessage]);\n\n/**\n * @generated from message SendButtonEventMessage\n */\nexport type SendButtonEventMessage = Message<\"SendButtonEventMessage\"> & {\n /**\n * @generated from field: optional uint32 usagePage = 1;\n */\n usagePage: number;\n\n /**\n * @generated from field: optional uint32 usage = 2;\n */\n usage: number;\n\n /**\n * @generated from field: optional bool buttonDown = 3;\n */\n buttonDown: boolean;\n};\n\n/**\n * Describes the message SendButtonEventMessage.\n * Use `create(SendButtonEventMessageSchema)` to create a new message.\n */\nexport const SendButtonEventMessageSchema: GenMessage<SendButtonEventMessage> = /*@__PURE__*/\n messageDesc(file_SendButtonEventMessage, 0);\n\n/**\n * @generated from extension: optional SendButtonEventMessage sendButtonEventMessage = 43;\n */\nexport const sendButtonEventMessage: GenExtension<ProtocolMessage, SendButtonEventMessage> = /*@__PURE__*/\n extDesc(file_SendButtonEventMessage, 0);\n\n",
|
|
82
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SendCommandMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Command } from \"./CommandInfo_pb\";\nimport { file_CommandInfo } from \"./CommandInfo_pb\";\nimport type { CommandOptions } from \"./CommandOptions_pb\";\nimport { file_CommandOptions } from \"./CommandOptions_pb\";\nimport type { PlayerPath } from \"./PlayerPath_pb\";\nimport { file_PlayerPath } from \"./PlayerPath_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SendCommandMessage.proto.\n */\nexport const file_SendCommandMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChhTZW5kQ29tbWFuZE1lc3NhZ2UucHJvdG8icgoSU2VuZENvbW1hbmRNZXNzYWdlEhkKB2NvbW1hbmQYASABKA4yCC5Db21tYW5kEiAKB29wdGlvbnMYAiABKAsyDy5Db21tYW5kT3B0aW9ucxIfCgpwbGF5ZXJQYXRoGAMgASgLMgsuUGxheWVyUGF0aDpVChJzZW5kQ29tbWFuZE1lc3NhZ2USEC5Qcm90b2NvbE1lc3NhZ2UYBiABKAsyEy5TZW5kQ29tbWFuZE1lc3NhZ2VSEnNlbmRDb21tYW5kTWVzc2FnZQ\", [file_ProtocolMessage, file_CommandInfo, file_CommandOptions, file_PlayerPath]);\n\n/**\n * @generated from message SendCommandMessage\n */\nexport type SendCommandMessage = Message<\"SendCommandMessage\"> & {\n /**\n * @generated from field: optional Command command = 1;\n */\n command: Command;\n\n /**\n * @generated from field: optional CommandOptions options = 2;\n */\n options?: CommandOptions;\n\n /**\n * @generated from field: optional PlayerPath playerPath = 3;\n */\n playerPath?: PlayerPath;\n};\n\n/**\n * Describes the message SendCommandMessage.\n * Use `create(SendCommandMessageSchema)` to create a new message.\n */\nexport const SendCommandMessageSchema: GenMessage<SendCommandMessage> = /*@__PURE__*/\n messageDesc(file_SendCommandMessage, 0);\n\n/**\n * @generated from extension: optional SendCommandMessage sendCommandMessage = 6;\n */\nexport const sendCommandMessage: GenExtension<ProtocolMessage, SendCommandMessage> = /*@__PURE__*/\n extDesc(file_SendCommandMessage, 0);\n\n",
|
|
83
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SendCommandResultMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenEnum, GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { PlayerPath } from \"./PlayerPath_pb\";\nimport { file_PlayerPath } from \"./PlayerPath_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SendCommandResultMessage.proto.\n */\nexport const file_SendCommandResultMessage: GenFile = /*@__PURE__*/\n fileDesc(\"Ch5TZW5kQ29tbWFuZFJlc3VsdE1lc3NhZ2UucHJvdG8i/AEKCVNlbmRFcnJvciLuAQoERW51bRILCgdOb0Vycm9yEAASFwoTQXBwbGljYXRpb25Ob3RGb3VuZBABEhQKEENvbm5lY3Rpb25GYWlsZWQQAhILCgdJZ25vcmVkEAMSHQoZQ291bGROb3RMYXVuY2hBcHBsaWNhdGlvbhAEEgwKCFRpbWVkT3V0EAUSFgoST3JpZ2luRG9lc05vdEV4aXN0EAYSEgoOSW52YWxpZE9wdGlvbnMQBxIVChFOb0NvbW1hbmRIYW5kbGVycxAIEhsKF0FwcGxpY2F0aW9uTm90SW5zdGFsbGVkEAkSEAoMTm90U3VwcG9ydGVkEAoi8wMKE0hhbmRsZXJSZXR1cm5TdGF0dXMi2wMKBEVudW0SCwoHU3VjY2VzcxAAEhEKDU5vU3VjaENvbnRlbnQQARIRCg1Db21tYW5kRmFpbGVkEAISHgoaTm9BY3Rpb25hYmxlTm93UGxheWluZ0l0ZW0QChISCg5EZXZpY2VOb3RGb3VuZBAUEg8KC1VJS2l0TGVnYWN5EAMSFAoQU2tpcEFkUHJvaGliaXRlZBBkEhYKElF1ZXVlSXNVc2VyQ3VyYXRlZBBlEh0KGVVzZXJNb2RpZmllZFF1ZXVlRGlzYWJsZWQQZhIzCi9Vc2VyUXVldWVNb2RpZmljYXRpb25Ob3RTdXBwb3J0ZWRGb3JDdXJyZW50SXRlbRBnEiYKIlN1YnNjcmlwdGlvblJlcXVpcmVkRm9yU2hhcmVkUXVldWUQaBIhCh1JbnNlcnRpb25Qb3NpdGlvbk5vdFNwZWNpZmllZBBpEhwKGEludmFsaWRJbnNlcnRpb25Qb3NpdGlvbhBqEiAKHFJlcXVlc3RQYXJhbWV0ZXJzT3V0T2ZCb3VuZHMQaxIUChBTa2lwTGltaXRSZWFjaGVkEGwSGgoVQXV0aGVudGljYXRpb25GYWlsdXJlEJEDEhwKF01lZGlhU2VydmljZVVuYXZhaWxhYmxlEPUDIvUDChVTZW5kQ29tbWFuZFN0YXR1c0NvZGUi2wMKBEVudW0SCwoHU3VjY2VzcxAAEhEKDU5vU3VjaENvbnRlbnQQARIRCg1Db21tYW5kRmFpbGVkEAISHgoaTm9BY3Rpb25hYmxlTm93UGxheWluZ0l0ZW0QChISCg5EZXZpY2VOb3RGb3VuZBAUEg8KC1VJS2l0TGVnYWN5EAMSFAoQU2tpcEFkUHJvaGliaXRlZBBkEhYKElF1ZXVlSXNVc2VyQ3VyYXRlZBBlEh0KGVVzZXJNb2RpZmllZFF1ZXVlRGlzYWJsZWQQZhIzCi9Vc2VyUXVldWVNb2RpZmljYXRpb25Ob3RTdXBwb3J0ZWRGb3JDdXJyZW50SXRlbRBnEiYKIlN1YnNjcmlwdGlvblJlcXVpcmVkRm9yU2hhcmVkUXVldWUQaBIhCh1JbnNlcnRpb25Qb3NpdGlvbk5vdFNwZWNpZmllZBBpEhwKGEludmFsaWRJbnNlcnRpb25Qb3NpdGlvbhBqEiAKHFJlcXVlc3RQYXJhbWV0ZXJzT3V0T2ZCb3VuZHMQaxIUChBTa2lwTGltaXRSZWFjaGVkEGwSGgoVQXV0aGVudGljYXRpb25GYWlsdXJlEJEDEhwKF01lZGlhU2VydmljZVVuYXZhaWxhYmxlEPUDIkMKFVNlbmRDb21tYW5kUmVzdWx0VHlwZSIqCgRFbnVtEgoKBkRpYWxvZxABEgkKBUVycm9yEAISCwoGQ3VzdG9tEOcHIqEBChdTZW5kQ29tbWFuZFJlc3VsdFN0YXR1cxIvCgpzdGF0dXNDb2RlGAEgASgOMhsuU2VuZENvbW1hbmRTdGF0dXNDb2RlLkVudW0SKQoEdHlwZRgCIAEoDjIbLlNlbmRDb21tYW5kUmVzdWx0VHlwZS5FbnVtEhIKCmN1c3RvbURhdGEYBSABKAwSFgoOY3VzdG9tRGF0YVR5cGUYBiABKAkihAEKEVNlbmRDb21tYW5kUmVzdWx0Eh8KCnBsYXllclBhdGgYASABKAsyCy5QbGF5ZXJQYXRoEiIKCXNlbmRFcnJvchgCIAEoDjIPLlNlbmRFcnJvci5FbnVtEioKCHN0YXR1c2VzGAMgAygLMhguU2VuZENvbW1hbmRSZXN1bHRTdGF0dXMi9wEKGFNlbmRDb21tYW5kUmVzdWx0TWVzc2FnZRIiCglzZW5kRXJyb3IYASABKA4yDy5TZW5kRXJyb3IuRW51bRI2ChNoYW5kbGVyUmV0dXJuU3RhdHVzGAIgASgOMhkuSGFuZGxlclJldHVyblN0YXR1cy5FbnVtEiAKGGhhbmRsZXJSZXR1cm5TdGF0dXNEYXRhcxgDIAMoDBIRCgljb21tYW5kSUQYBCABKAkSHwoKcGxheWVyUGF0aBgFIAEoCzILLlBsYXllclBhdGgSKQoNY29tbWFuZFJlc3VsdBgGIAEoCzISLlNlbmRDb21tYW5kUmVzdWx0OmcKGHNlbmRDb21tYW5kUmVzdWx0TWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRgHIAEoCzIZLlNlbmRDb21tYW5kUmVzdWx0TWVzc2FnZVIYc2VuZENvbW1hbmRSZXN1bHRNZXNzYWdl\", [file_ProtocolMessage, file_PlayerPath]);\n\n/**\n * @generated from message SendError\n */\nexport type SendError = Message<\"SendError\"> & {\n};\n\n/**\n * Describes the message SendError.\n * Use `create(SendErrorSchema)` to create a new message.\n */\nexport const SendErrorSchema: GenMessage<SendError> = /*@__PURE__*/\n messageDesc(file_SendCommandResultMessage, 0);\n\n/**\n * @generated from enum SendError.Enum\n */\nexport enum SendError_Enum {\n /**\n * This is None in original message definitions (no-go with python)\n *\n * @generated from enum value: NoError = 0;\n */\n NoError = 0,\n\n /**\n * @generated from enum value: ApplicationNotFound = 1;\n */\n ApplicationNotFound = 1,\n\n /**\n * @generated from enum value: ConnectionFailed = 2;\n */\n ConnectionFailed = 2,\n\n /**\n * @generated from enum value: Ignored = 3;\n */\n Ignored = 3,\n\n /**\n * @generated from enum value: CouldNotLaunchApplication = 4;\n */\n CouldNotLaunchApplication = 4,\n\n /**\n * @generated from enum value: TimedOut = 5;\n */\n TimedOut = 5,\n\n /**\n * @generated from enum value: OriginDoesNotExist = 6;\n */\n OriginDoesNotExist = 6,\n\n /**\n * @generated from enum value: InvalidOptions = 7;\n */\n InvalidOptions = 7,\n\n /**\n * @generated from enum value: NoCommandHandlers = 8;\n */\n NoCommandHandlers = 8,\n\n /**\n * @generated from enum value: ApplicationNotInstalled = 9;\n */\n ApplicationNotInstalled = 9,\n\n /**\n * @generated from enum value: NotSupported = 10;\n */\n NotSupported = 10,\n}\n\n/**\n * Describes the enum SendError.Enum.\n */\nexport const SendError_EnumSchema: GenEnum<SendError_Enum> = /*@__PURE__*/\n enumDesc(file_SendCommandResultMessage, 0, 0);\n\n/**\n * @generated from message HandlerReturnStatus\n */\nexport type HandlerReturnStatus = Message<\"HandlerReturnStatus\"> & {\n};\n\n/**\n * Describes the message HandlerReturnStatus.\n * Use `create(HandlerReturnStatusSchema)` to create a new message.\n */\nexport const HandlerReturnStatusSchema: GenMessage<HandlerReturnStatus> = /*@__PURE__*/\n messageDesc(file_SendCommandResultMessage, 1);\n\n/**\n * @generated from enum HandlerReturnStatus.Enum\n */\nexport enum HandlerReturnStatus_Enum {\n /**\n * @generated from enum value: Success = 0;\n */\n Success = 0,\n\n /**\n * @generated from enum value: NoSuchContent = 1;\n */\n NoSuchContent = 1,\n\n /**\n * @generated from enum value: CommandFailed = 2;\n */\n CommandFailed = 2,\n\n /**\n * @generated from enum value: NoActionableNowPlayingItem = 10;\n */\n NoActionableNowPlayingItem = 10,\n\n /**\n * @generated from enum value: DeviceNotFound = 20;\n */\n DeviceNotFound = 20,\n\n /**\n * @generated from enum value: UIKitLegacy = 3;\n */\n UIKitLegacy = 3,\n\n /**\n * @generated from enum value: SkipAdProhibited = 100;\n */\n SkipAdProhibited = 100,\n\n /**\n * @generated from enum value: QueueIsUserCurated = 101;\n */\n QueueIsUserCurated = 101,\n\n /**\n * @generated from enum value: UserModifiedQueueDisabled = 102;\n */\n UserModifiedQueueDisabled = 102,\n\n /**\n * @generated from enum value: UserQueueModificationNotSupportedForCurrentItem = 103;\n */\n UserQueueModificationNotSupportedForCurrentItem = 103,\n\n /**\n * @generated from enum value: SubscriptionRequiredForSharedQueue = 104;\n */\n SubscriptionRequiredForSharedQueue = 104,\n\n /**\n * @generated from enum value: InsertionPositionNotSpecified = 105;\n */\n InsertionPositionNotSpecified = 105,\n\n /**\n * @generated from enum value: InvalidInsertionPosition = 106;\n */\n InvalidInsertionPosition = 106,\n\n /**\n * @generated from enum value: RequestParametersOutOfBounds = 107;\n */\n RequestParametersOutOfBounds = 107,\n\n /**\n * @generated from enum value: SkipLimitReached = 108;\n */\n SkipLimitReached = 108,\n\n /**\n * @generated from enum value: AuthenticationFailure = 401;\n */\n AuthenticationFailure = 401,\n\n /**\n * @generated from enum value: MediaServiceUnavailable = 501;\n */\n MediaServiceUnavailable = 501,\n}\n\n/**\n * Describes the enum HandlerReturnStatus.Enum.\n */\nexport const HandlerReturnStatus_EnumSchema: GenEnum<HandlerReturnStatus_Enum> = /*@__PURE__*/\n enumDesc(file_SendCommandResultMessage, 1, 0);\n\n/**\n * @generated from message SendCommandStatusCode\n */\nexport type SendCommandStatusCode = Message<\"SendCommandStatusCode\"> & {\n};\n\n/**\n * Describes the message SendCommandStatusCode.\n * Use `create(SendCommandStatusCodeSchema)` to create a new message.\n */\nexport const SendCommandStatusCodeSchema: GenMessage<SendCommandStatusCode> = /*@__PURE__*/\n messageDesc(file_SendCommandResultMessage, 2);\n\n/**\n * @generated from enum SendCommandStatusCode.Enum\n */\nexport enum SendCommandStatusCode_Enum {\n /**\n * @generated from enum value: Success = 0;\n */\n Success = 0,\n\n /**\n * @generated from enum value: NoSuchContent = 1;\n */\n NoSuchContent = 1,\n\n /**\n * @generated from enum value: CommandFailed = 2;\n */\n CommandFailed = 2,\n\n /**\n * @generated from enum value: NoActionableNowPlayingItem = 10;\n */\n NoActionableNowPlayingItem = 10,\n\n /**\n * @generated from enum value: DeviceNotFound = 20;\n */\n DeviceNotFound = 20,\n\n /**\n * @generated from enum value: UIKitLegacy = 3;\n */\n UIKitLegacy = 3,\n\n /**\n * @generated from enum value: SkipAdProhibited = 100;\n */\n SkipAdProhibited = 100,\n\n /**\n * @generated from enum value: QueueIsUserCurated = 101;\n */\n QueueIsUserCurated = 101,\n\n /**\n * @generated from enum value: UserModifiedQueueDisabled = 102;\n */\n UserModifiedQueueDisabled = 102,\n\n /**\n * @generated from enum value: UserQueueModificationNotSupportedForCurrentItem = 103;\n */\n UserQueueModificationNotSupportedForCurrentItem = 103,\n\n /**\n * @generated from enum value: SubscriptionRequiredForSharedQueue = 104;\n */\n SubscriptionRequiredForSharedQueue = 104,\n\n /**\n * @generated from enum value: InsertionPositionNotSpecified = 105;\n */\n InsertionPositionNotSpecified = 105,\n\n /**\n * @generated from enum value: InvalidInsertionPosition = 106;\n */\n InvalidInsertionPosition = 106,\n\n /**\n * @generated from enum value: RequestParametersOutOfBounds = 107;\n */\n RequestParametersOutOfBounds = 107,\n\n /**\n * @generated from enum value: SkipLimitReached = 108;\n */\n SkipLimitReached = 108,\n\n /**\n * @generated from enum value: AuthenticationFailure = 401;\n */\n AuthenticationFailure = 401,\n\n /**\n * @generated from enum value: MediaServiceUnavailable = 501;\n */\n MediaServiceUnavailable = 501,\n}\n\n/**\n * Describes the enum SendCommandStatusCode.Enum.\n */\nexport const SendCommandStatusCode_EnumSchema: GenEnum<SendCommandStatusCode_Enum> = /*@__PURE__*/\n enumDesc(file_SendCommandResultMessage, 2, 0);\n\n/**\n * @generated from message SendCommandResultType\n */\nexport type SendCommandResultType = Message<\"SendCommandResultType\"> & {\n};\n\n/**\n * Describes the message SendCommandResultType.\n * Use `create(SendCommandResultTypeSchema)` to create a new message.\n */\nexport const SendCommandResultTypeSchema: GenMessage<SendCommandResultType> = /*@__PURE__*/\n messageDesc(file_SendCommandResultMessage, 3);\n\n/**\n * @generated from enum SendCommandResultType.Enum\n */\nexport enum SendCommandResultType_Enum {\n /**\n * @generated from enum value: Dialog = 1;\n */\n Dialog = 1,\n\n /**\n * @generated from enum value: Error = 2;\n */\n Error = 2,\n\n /**\n * @generated from enum value: Custom = 999;\n */\n Custom = 999,\n}\n\n/**\n * Describes the enum SendCommandResultType.Enum.\n */\nexport const SendCommandResultType_EnumSchema: GenEnum<SendCommandResultType_Enum> = /*@__PURE__*/\n enumDesc(file_SendCommandResultMessage, 3, 0);\n\n/**\n * @generated from message SendCommandResultStatus\n */\nexport type SendCommandResultStatus = Message<\"SendCommandResultStatus\"> & {\n /**\n * @generated from field: optional SendCommandStatusCode.Enum statusCode = 1;\n */\n statusCode: SendCommandStatusCode_Enum;\n\n /**\n * @generated from field: optional SendCommandResultType.Enum type = 2;\n */\n type: SendCommandResultType_Enum;\n\n /**\n * optional ... dialog = 3;\n * optional ... error = 4;\n *\n * @generated from field: optional bytes customData = 5;\n */\n customData: Uint8Array;\n\n /**\n * @generated from field: optional string customDataType = 6;\n */\n customDataType: string;\n};\n\n/**\n * Describes the message SendCommandResultStatus.\n * Use `create(SendCommandResultStatusSchema)` to create a new message.\n */\nexport const SendCommandResultStatusSchema: GenMessage<SendCommandResultStatus> = /*@__PURE__*/\n messageDesc(file_SendCommandResultMessage, 4);\n\n/**\n * @generated from message SendCommandResult\n */\nexport type SendCommandResult = Message<\"SendCommandResult\"> & {\n /**\n * @generated from field: optional PlayerPath playerPath = 1;\n */\n playerPath?: PlayerPath;\n\n /**\n * @generated from field: optional SendError.Enum sendError = 2;\n */\n sendError: SendError_Enum;\n\n /**\n * @generated from field: repeated SendCommandResultStatus statuses = 3;\n */\n statuses: SendCommandResultStatus[];\n};\n\n/**\n * Describes the message SendCommandResult.\n * Use `create(SendCommandResultSchema)` to create a new message.\n */\nexport const SendCommandResultSchema: GenMessage<SendCommandResult> = /*@__PURE__*/\n messageDesc(file_SendCommandResultMessage, 5);\n\n/**\n * @generated from message SendCommandResultMessage\n */\nexport type SendCommandResultMessage = Message<\"SendCommandResultMessage\"> & {\n /**\n * @generated from field: optional SendError.Enum sendError = 1;\n */\n sendError: SendError_Enum;\n\n /**\n * @generated from field: optional HandlerReturnStatus.Enum handlerReturnStatus = 2;\n */\n handlerReturnStatus: HandlerReturnStatus_Enum;\n\n /**\n * @generated from field: repeated bytes handlerReturnStatusDatas = 3;\n */\n handlerReturnStatusDatas: Uint8Array[];\n\n /**\n * @generated from field: optional string commandID = 4;\n */\n commandID: string;\n\n /**\n * @generated from field: optional PlayerPath playerPath = 5;\n */\n playerPath?: PlayerPath;\n\n /**\n * @generated from field: optional SendCommandResult commandResult = 6;\n */\n commandResult?: SendCommandResult;\n};\n\n/**\n * Describes the message SendCommandResultMessage.\n * Use `create(SendCommandResultMessageSchema)` to create a new message.\n */\nexport const SendCommandResultMessageSchema: GenMessage<SendCommandResultMessage> = /*@__PURE__*/\n messageDesc(file_SendCommandResultMessage, 6);\n\n/**\n * @generated from extension: optional SendCommandResultMessage sendCommandResultMessage = 7;\n */\nexport const sendCommandResultMessage: GenExtension<ProtocolMessage, SendCommandResultMessage> = /*@__PURE__*/\n extDesc(file_SendCommandResultMessage, 0);\n\n",
|
|
84
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SendHIDEventMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SendHIDEventMessage.proto.\n */\nexport const file_SendHIDEventMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChlTZW5kSElERXZlbnRNZXNzYWdlLnByb3RvIisKE1NlbmRISURFdmVudE1lc3NhZ2USFAoMaGlkRXZlbnREYXRhGAEgASgMOlgKE3NlbmRISURFdmVudE1lc3NhZ2USEC5Qcm90b2NvbE1lc3NhZ2UYDSABKAsyFC5TZW5kSElERXZlbnRNZXNzYWdlUhNzZW5kSElERXZlbnRNZXNzYWdl\", [file_ProtocolMessage]);\n\n/**\n * @generated from message SendHIDEventMessage\n */\nexport type SendHIDEventMessage = Message<\"SendHIDEventMessage\"> & {\n /**\n * This data corresponds to a \"keyboardEvent\" in IOHIDEvent.h encoded as raw\n * data. Here is one source:\n *\n * https://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-308/IOHIDFamily/IOHIDEvent.h.auto.html\n *\n * The interesting parts are:\n * - usagePage (UInt32)\n * - usage (Uint32)\n * - down (bool)\n *\n * The parameters usagePage and usage corresponds to the key being pressed.\n * It is mapped to the USB HID values, which can be found here:\n *\n * https://github.com/Daij-Djan/DDHidLib/blob/master/usb_hid_usages.txt\n *\n * Pressing left key would for instance map to usagePage=0x01, usage=0x8B. In\n * the hid data, these values are stored as big endian uint16 values in the\n * mentioned order. So the same example would be: 0x0001008B0001, assuming\n * down = true (key being pressed). For each key press, the same usagePage\n * and usage are sent with down=true and down=false (key down + key up).\n *\n * There is a bit of magic in the raw data that's just not decoded yet, but\n * that doesn't matter. Just use this and it will work:\n *\n * 438922cf080200000000000000000000010000000000000002000000200000000300000001000000000000<data>0000000000000001000000\n *\n * <data> corresponds to the values above, e.g. 0001008B0001. The first 8\n * bytes is a timestamp (mach AbsoluteTime). It's a bit tricky to derive but\n * tvOS seems to accept old timestamps here. So it's probably fine to send\n * anything.\n *\n * @generated from field: optional bytes hidEventData = 1;\n */\n hidEventData: Uint8Array;\n};\n\n/**\n * Describes the message SendHIDEventMessage.\n * Use `create(SendHIDEventMessageSchema)` to create a new message.\n */\nexport const SendHIDEventMessageSchema: GenMessage<SendHIDEventMessage> = /*@__PURE__*/\n messageDesc(file_SendHIDEventMessage, 0);\n\n/**\n * @generated from extension: optional SendHIDEventMessage sendHIDEventMessage = 13;\n */\nexport const sendHIDEventMessage: GenExtension<ProtocolMessage, SendHIDEventMessage> = /*@__PURE__*/\n extDesc(file_SendHIDEventMessage, 0);\n\n",
|
|
85
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SendPackedVirtualTouchEventMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenEnum, GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SendPackedVirtualTouchEventMessage.proto.\n */\nexport const file_SendPackedVirtualTouchEventMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CihTZW5kUGFja2VkVmlydHVhbFRvdWNoRXZlbnRNZXNzYWdlLnByb3RvInsKIlNlbmRQYWNrZWRWaXJ0dWFsVG91Y2hFdmVudE1lc3NhZ2USDAoEZGF0YRgBIAEoDCJHCgVQaGFzZRIJCgVCZWdhbhABEgkKBU1vdmVkEAISDgoKU3RhdGlvbmFyeRADEgkKBUVuZGVkEAQSDQoJQ2FuY2VsbGVkEAU6hQEKInNlbmRQYWNrZWRWaXJ0dWFsVG91Y2hFdmVudE1lc3NhZ2USEC5Qcm90b2NvbE1lc3NhZ2UYLyABKAsyIy5TZW5kUGFja2VkVmlydHVhbFRvdWNoRXZlbnRNZXNzYWdlUiJzZW5kUGFja2VkVmlydHVhbFRvdWNoRXZlbnRNZXNzYWdl\", [file_ProtocolMessage]);\n\n/**\n * @generated from message SendPackedVirtualTouchEventMessage\n */\nexport type SendPackedVirtualTouchEventMessage = Message<\"SendPackedVirtualTouchEventMessage\"> & {\n /**\n * The packed version of VirtualTouchEvent contains X, Y, phase, deviceID\n * and finger stored as a byte array. Each value is written as 16bit little\n * endian integers.\n *\n * @generated from field: optional bytes data = 1;\n */\n data: Uint8Array;\n};\n\n/**\n * Describes the message SendPackedVirtualTouchEventMessage.\n * Use `create(SendPackedVirtualTouchEventMessageSchema)` to create a new message.\n */\nexport const SendPackedVirtualTouchEventMessageSchema: GenMessage<SendPackedVirtualTouchEventMessage> = /*@__PURE__*/\n messageDesc(file_SendPackedVirtualTouchEventMessage, 0);\n\n/**\n * Corresponds to \"phase\" in data\n *\n * @generated from enum SendPackedVirtualTouchEventMessage.Phase\n */\nexport enum SendPackedVirtualTouchEventMessage_Phase {\n /**\n * @generated from enum value: Began = 1;\n */\n Began = 1,\n\n /**\n * @generated from enum value: Moved = 2;\n */\n Moved = 2,\n\n /**\n * @generated from enum value: Stationary = 3;\n */\n Stationary = 3,\n\n /**\n * @generated from enum value: Ended = 4;\n */\n Ended = 4,\n\n /**\n * @generated from enum value: Cancelled = 5;\n */\n Cancelled = 5,\n}\n\n/**\n * Describes the enum SendPackedVirtualTouchEventMessage.Phase.\n */\nexport const SendPackedVirtualTouchEventMessage_PhaseSchema: GenEnum<SendPackedVirtualTouchEventMessage_Phase> = /*@__PURE__*/\n enumDesc(file_SendPackedVirtualTouchEventMessage, 0, 0);\n\n/**\n * @generated from extension: optional SendPackedVirtualTouchEventMessage sendPackedVirtualTouchEventMessage = 47;\n */\nexport const sendPackedVirtualTouchEventMessage: GenExtension<ProtocolMessage, SendPackedVirtualTouchEventMessage> = /*@__PURE__*/\n extDesc(file_SendPackedVirtualTouchEventMessage, 0);\n\n",
|
|
86
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SendVoiceInputMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { AudioFormatSettings } from \"./AudioFormatSettingsMessage_pb\";\nimport { file_AudioFormatSettingsMessage } from \"./AudioFormatSettingsMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SendVoiceInputMessage.proto.\n */\nexport const file_SendVoiceInputMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChtTZW5kVm9pY2VJbnB1dE1lc3NhZ2UucHJvdG8iaQocQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbhITCgtzdGFydE9mZnNldBgBIAEoAxIeChZ2YXJpYWJsZUZyYW1lc0luUGFja2V0GAIgASgNEhQKDGRhdGFCeXRlU2l6ZRgDIAEoDSLQAQoLQXVkaW9CdWZmZXISLAoOZm9ybWF0U2V0dGluZ3MYASABKAsyFC5BdWRpb0Zvcm1hdFNldHRpbmdzEhYKDnBhY2tldENhcGFjaXR5GAIgASgDEhkKEW1heGltdW1QYWNrZXRTaXplGAMgASgDEhMKC3BhY2tldENvdW50GAQgASgDEhAKCGNvbnRlbnRzGAUgASgMEjkKEnBhY2tldERlc2NyaXB0aW9ucxgGIAMoCzIdLkF1ZGlvU3RyZWFtUGFja2V0RGVzY3JpcHRpb24iMgoJQXVkaW9UaW1lEhEKCXRpbWVzdGFtcBgBIAEoARISCgpzYW1wbGVSYXRlGAIgASgBIlYKDkF1ZGlvRGF0YUJsb2NrEhwKBmJ1ZmZlchgBIAEoCzIMLkF1ZGlvQnVmZmVyEhgKBHRpbWUYAiABKAsyCi5BdWRpb1RpbWUSDAoEZ2FpbhgDIAEoASI7ChVTZW5kVm9pY2VJbnB1dE1lc3NhZ2USIgoJZGF0YUJsb2NrGAEgASgLMg8uQXVkaW9EYXRhQmxvY2s6XgoVc2VuZFZvaWNlSW5wdXRNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGCQgASgLMhYuU2VuZFZvaWNlSW5wdXRNZXNzYWdlUhVzZW5kVm9pY2VJbnB1dE1lc3NhZ2U\", [file_ProtocolMessage, file_AudioFormatSettingsMessage]);\n\n/**\n * @generated from message AudioStreamPacketDescription\n */\nexport type AudioStreamPacketDescription = Message<\"AudioStreamPacketDescription\"> & {\n /**\n * @generated from field: optional int64 startOffset = 1;\n */\n startOffset: bigint;\n\n /**\n * @generated from field: optional uint32 variableFramesInPacket = 2;\n */\n variableFramesInPacket: number;\n\n /**\n * @generated from field: optional uint32 dataByteSize = 3;\n */\n dataByteSize: number;\n};\n\n/**\n * Describes the message AudioStreamPacketDescription.\n * Use `create(AudioStreamPacketDescriptionSchema)` to create a new message.\n */\nexport const AudioStreamPacketDescriptionSchema: GenMessage<AudioStreamPacketDescription> = /*@__PURE__*/\n messageDesc(file_SendVoiceInputMessage, 0);\n\n/**\n * @generated from message AudioBuffer\n */\nexport type AudioBuffer = Message<\"AudioBuffer\"> & {\n /**\n * @generated from field: optional AudioFormatSettings formatSettings = 1;\n */\n formatSettings?: AudioFormatSettings;\n\n /**\n * @generated from field: optional int64 packetCapacity = 2;\n */\n packetCapacity: bigint;\n\n /**\n * @generated from field: optional int64 maximumPacketSize = 3;\n */\n maximumPacketSize: bigint;\n\n /**\n * @generated from field: optional int64 packetCount = 4;\n */\n packetCount: bigint;\n\n /**\n * @generated from field: optional bytes contents = 5;\n */\n contents: Uint8Array;\n\n /**\n * @generated from field: repeated AudioStreamPacketDescription packetDescriptions = 6;\n */\n packetDescriptions: AudioStreamPacketDescription[];\n};\n\n/**\n * Describes the message AudioBuffer.\n * Use `create(AudioBufferSchema)` to create a new message.\n */\nexport const AudioBufferSchema: GenMessage<AudioBuffer> = /*@__PURE__*/\n messageDesc(file_SendVoiceInputMessage, 1);\n\n/**\n * @generated from message AudioTime\n */\nexport type AudioTime = Message<\"AudioTime\"> & {\n /**\n * @generated from field: optional double timestamp = 1;\n */\n timestamp: number;\n\n /**\n * @generated from field: optional double sampleRate = 2;\n */\n sampleRate: number;\n};\n\n/**\n * Describes the message AudioTime.\n * Use `create(AudioTimeSchema)` to create a new message.\n */\nexport const AudioTimeSchema: GenMessage<AudioTime> = /*@__PURE__*/\n messageDesc(file_SendVoiceInputMessage, 2);\n\n/**\n * @generated from message AudioDataBlock\n */\nexport type AudioDataBlock = Message<\"AudioDataBlock\"> & {\n /**\n * @generated from field: optional AudioBuffer buffer = 1;\n */\n buffer?: AudioBuffer;\n\n /**\n * @generated from field: optional AudioTime time = 2;\n */\n time?: AudioTime;\n\n /**\n * @generated from field: optional double gain = 3;\n */\n gain: number;\n};\n\n/**\n * Describes the message AudioDataBlock.\n * Use `create(AudioDataBlockSchema)` to create a new message.\n */\nexport const AudioDataBlockSchema: GenMessage<AudioDataBlock> = /*@__PURE__*/\n messageDesc(file_SendVoiceInputMessage, 3);\n\n/**\n * @generated from message SendVoiceInputMessage\n */\nexport type SendVoiceInputMessage = Message<\"SendVoiceInputMessage\"> & {\n /**\n * @generated from field: optional AudioDataBlock dataBlock = 1;\n */\n dataBlock?: AudioDataBlock;\n};\n\n/**\n * Describes the message SendVoiceInputMessage.\n * Use `create(SendVoiceInputMessageSchema)` to create a new message.\n */\nexport const SendVoiceInputMessageSchema: GenMessage<SendVoiceInputMessage> = /*@__PURE__*/\n messageDesc(file_SendVoiceInputMessage, 4);\n\n/**\n * @generated from extension: optional SendVoiceInputMessage sendVoiceInputMessage = 36;\n */\nexport const sendVoiceInputMessage: GenExtension<ProtocolMessage, SendVoiceInputMessage> = /*@__PURE__*/\n extDesc(file_SendVoiceInputMessage, 0);\n\n",
|
|
87
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SetArtworkMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SetArtworkMessage.proto.\n */\nexport const file_SetArtworkMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChdTZXRBcnR3b3JrTWVzc2FnZS5wcm90byIlChFTZXRBcnR3b3JrTWVzc2FnZRIQCghqcGVnRGF0YRgBIAEoDDpSChFzZXRBcnR3b3JrTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRgKIAEoCzISLlNldEFydHdvcmtNZXNzYWdlUhFzZXRBcnR3b3JrTWVzc2FnZQ\", [file_ProtocolMessage]);\n\n/**\n * @generated from message SetArtworkMessage\n */\nexport type SetArtworkMessage = Message<\"SetArtworkMessage\"> & {\n /**\n * @generated from field: optional bytes jpegData = 1;\n */\n jpegData: Uint8Array;\n};\n\n/**\n * Describes the message SetArtworkMessage.\n * Use `create(SetArtworkMessageSchema)` to create a new message.\n */\nexport const SetArtworkMessageSchema: GenMessage<SetArtworkMessage> = /*@__PURE__*/\n messageDesc(file_SetArtworkMessage, 0);\n\n/**\n * @generated from extension: optional SetArtworkMessage setArtworkMessage = 10;\n */\nexport const setArtworkMessage: GenExtension<ProtocolMessage, SetArtworkMessage> = /*@__PURE__*/\n extDesc(file_SetArtworkMessage, 0);\n\n",
|
|
88
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SetConnectionStateMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenEnum, GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SetConnectionStateMessage.proto.\n */\nexport const file_SetConnectionStateMessage: GenFile = /*@__PURE__*/\n fileDesc(\"Ch9TZXRDb25uZWN0aW9uU3RhdGVNZXNzYWdlLnByb3RvIqQBChlTZXRDb25uZWN0aW9uU3RhdGVNZXNzYWdlEjkKBXN0YXRlGAEgASgOMiouU2V0Q29ubmVjdGlvblN0YXRlTWVzc2FnZS5Db25uZWN0aW9uU3RhdGUiTAoPQ29ubmVjdGlvblN0YXRlEggKBE5vbmUQABIOCgpDb25uZWN0aW5nEAESDQoJQ29ubmVjdGVkEAISEAoMRGlzY29ubmVjdGVkEAM6agoZc2V0Q29ubmVjdGlvblN0YXRlTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRgqIAEoCzIaLlNldENvbm5lY3Rpb25TdGF0ZU1lc3NhZ2VSGXNldENvbm5lY3Rpb25TdGF0ZU1lc3NhZ2U\", [file_ProtocolMessage]);\n\n/**\n * @generated from message SetConnectionStateMessage\n */\nexport type SetConnectionStateMessage = Message<\"SetConnectionStateMessage\"> & {\n /**\n * @generated from field: optional SetConnectionStateMessage.ConnectionState state = 1;\n */\n state: SetConnectionStateMessage_ConnectionState;\n};\n\n/**\n * Describes the message SetConnectionStateMessage.\n * Use `create(SetConnectionStateMessageSchema)` to create a new message.\n */\nexport const SetConnectionStateMessageSchema: GenMessage<SetConnectionStateMessage> = /*@__PURE__*/\n messageDesc(file_SetConnectionStateMessage, 0);\n\n/**\n * @generated from enum SetConnectionStateMessage.ConnectionState\n */\nexport enum SetConnectionStateMessage_ConnectionState {\n /**\n * @generated from enum value: None = 0;\n */\n None = 0,\n\n /**\n * @generated from enum value: Connecting = 1;\n */\n Connecting = 1,\n\n /**\n * @generated from enum value: Connected = 2;\n */\n Connected = 2,\n\n /**\n * @generated from enum value: Disconnected = 3;\n */\n Disconnected = 3,\n}\n\n/**\n * Describes the enum SetConnectionStateMessage.ConnectionState.\n */\nexport const SetConnectionStateMessage_ConnectionStateSchema: GenEnum<SetConnectionStateMessage_ConnectionState> = /*@__PURE__*/\n enumDesc(file_SetConnectionStateMessage, 0, 0);\n\n/**\n * @generated from extension: optional SetConnectionStateMessage setConnectionStateMessage = 42;\n */\nexport const setConnectionStateMessage: GenExtension<ProtocolMessage, SetConnectionStateMessage> = /*@__PURE__*/\n extDesc(file_SetConnectionStateMessage, 0);\n\n",
|
|
89
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SupportedCommands.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { CommandInfo } from \"./CommandInfo_pb\";\nimport { file_CommandInfo } from \"./CommandInfo_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SupportedCommands.proto.\n */\nexport const file_SupportedCommands: GenFile = /*@__PURE__*/\n fileDesc(\"ChdTdXBwb3J0ZWRDb21tYW5kcy5wcm90byI8ChFTdXBwb3J0ZWRDb21tYW5kcxInChFzdXBwb3J0ZWRDb21tYW5kcxgBIAMoCzIMLkNvbW1hbmRJbmZv\", [file_CommandInfo]);\n\n/**\n * @generated from message SupportedCommands\n */\nexport type SupportedCommands = Message<\"SupportedCommands\"> & {\n /**\n * @generated from field: repeated CommandInfo supportedCommands = 1;\n */\n supportedCommands: CommandInfo[];\n};\n\n/**\n * Describes the message SupportedCommands.\n * Use `create(SupportedCommandsSchema)` to create a new message.\n */\nexport const SupportedCommandsSchema: GenMessage<SupportedCommands> = /*@__PURE__*/\n messageDesc(file_SupportedCommands, 0);\n\n",
|
|
90
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SetDefaultSupportedCommandsMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { NowPlayingInfo } from \"./NowPlayingInfo_pb\";\nimport { file_NowPlayingInfo } from \"./NowPlayingInfo_pb\";\nimport type { PlaybackQueue } from \"./PlaybackQueue_pb\";\nimport { file_PlaybackQueue } from \"./PlaybackQueue_pb\";\nimport type { SupportedCommands } from \"./SupportedCommands_pb\";\nimport { file_SupportedCommands } from \"./SupportedCommands_pb\";\nimport type { PlaybackQueueCapabilities } from \"./PlaybackQueueCapabilities_pb\";\nimport { file_PlaybackQueueCapabilities } from \"./PlaybackQueueCapabilities_pb\";\nimport type { PlayerPath } from \"./PlayerPath_pb\";\nimport { file_PlayerPath } from \"./PlayerPath_pb\";\nimport type { PlaybackQueueRequestMessage } from \"./PlaybackQueueRequestMessage_pb\";\nimport { file_PlaybackQueueRequestMessage } from \"./PlaybackQueueRequestMessage_pb\";\nimport type { PlaybackState_Enum } from \"./Common_pb\";\nimport { file_Common } from \"./Common_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SetDefaultSupportedCommandsMessage.proto.\n */\nexport const file_SetDefaultSupportedCommandsMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CihTZXREZWZhdWx0U3VwcG9ydGVkQ29tbWFuZHNNZXNzYWdlLnByb3RvIqYDCiJTZXREZWZhdWx0U3VwcG9ydGVkQ29tbWFuZHNNZXNzYWdlEicKDm5vd1BsYXlpbmdJbmZvGAEgASgLMg8uTm93UGxheWluZ0luZm8SLQoRc3VwcG9ydGVkQ29tbWFuZHMYAiABKAsyEi5TdXBwb3J0ZWRDb21tYW5kcxIlCg1wbGF5YmFja1F1ZXVlGAMgASgLMg4uUGxheWJhY2tRdWV1ZRIRCglkaXNwbGF5SUQYBCABKAkSEwoLZGlzcGxheU5hbWUYBSABKAkSKgoNcGxheWJhY2tTdGF0ZRgGIAEoDjITLlBsYXliYWNrU3RhdGUuRW51bRI9ChlwbGF5YmFja1F1ZXVlQ2FwYWJpbGl0aWVzGAggASgLMhouUGxheWJhY2tRdWV1ZUNhcGFiaWxpdGllcxIfCgpwbGF5ZXJQYXRoGAkgASgLMgsuUGxheWVyUGF0aBItCgdyZXF1ZXN0GAogASgLMhwuUGxheWJhY2tRdWV1ZVJlcXVlc3RNZXNzYWdlEh4KFnBsYXliYWNrU3RhdGVUaW1lc3RhbXAYCyABKAE6hQEKInNldERlZmF1bHRTdXBwb3J0ZWRDb21tYW5kc01lc3NhZ2USEC5Qcm90b2NvbE1lc3NhZ2UYSyABKAsyIy5TZXREZWZhdWx0U3VwcG9ydGVkQ29tbWFuZHNNZXNzYWdlUiJzZXREZWZhdWx0U3VwcG9ydGVkQ29tbWFuZHNNZXNzYWdl\", [file_ProtocolMessage, file_NowPlayingInfo, file_PlaybackQueue, file_SupportedCommands, file_PlaybackQueueCapabilities, file_PlayerPath, file_PlaybackQueueRequestMessage, file_Common]);\n\n/**\n * Seems to be the same as SetStateMessage\n *\n * @generated from message SetDefaultSupportedCommandsMessage\n */\nexport type SetDefaultSupportedCommandsMessage = Message<\"SetDefaultSupportedCommandsMessage\"> & {\n /**\n * @generated from field: optional NowPlayingInfo nowPlayingInfo = 1;\n */\n nowPlayingInfo?: NowPlayingInfo;\n\n /**\n * @generated from field: optional SupportedCommands supportedCommands = 2;\n */\n supportedCommands?: SupportedCommands;\n\n /**\n * @generated from field: optional PlaybackQueue playbackQueue = 3;\n */\n playbackQueue?: PlaybackQueue;\n\n /**\n * @generated from field: optional string displayID = 4;\n */\n displayID: string;\n\n /**\n * @generated from field: optional string displayName = 5;\n */\n displayName: string;\n\n /**\n * @generated from field: optional PlaybackState.Enum playbackState = 6;\n */\n playbackState: PlaybackState_Enum;\n\n /**\n * @generated from field: optional PlaybackQueueCapabilities playbackQueueCapabilities = 8;\n */\n playbackQueueCapabilities?: PlaybackQueueCapabilities;\n\n /**\n * @generated from field: optional PlayerPath playerPath = 9;\n */\n playerPath?: PlayerPath;\n\n /**\n * @generated from field: optional PlaybackQueueRequestMessage request = 10;\n */\n request?: PlaybackQueueRequestMessage;\n\n /**\n * @generated from field: optional double playbackStateTimestamp = 11;\n */\n playbackStateTimestamp: number;\n};\n\n/**\n * Describes the message SetDefaultSupportedCommandsMessage.\n * Use `create(SetDefaultSupportedCommandsMessageSchema)` to create a new message.\n */\nexport const SetDefaultSupportedCommandsMessageSchema: GenMessage<SetDefaultSupportedCommandsMessage> = /*@__PURE__*/\n messageDesc(file_SetDefaultSupportedCommandsMessage, 0);\n\n/**\n * @generated from extension: optional SetDefaultSupportedCommandsMessage setDefaultSupportedCommandsMessage = 75;\n */\nexport const setDefaultSupportedCommandsMessage: GenExtension<ProtocolMessage, SetDefaultSupportedCommandsMessage> = /*@__PURE__*/\n extDesc(file_SetDefaultSupportedCommandsMessage, 0);\n\n",
|
|
91
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SetDiscoveryModeMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SetDiscoveryModeMessage.proto.\n */\nexport const file_SetDiscoveryModeMessage: GenFile = /*@__PURE__*/\n fileDesc(\"Ch1TZXREaXNjb3ZlcnlNb2RlTWVzc2FnZS5wcm90byI5ChdTZXREaXNjb3ZlcnlNb2RlTWVzc2FnZRIMCgRtb2RlGAEgASgFEhAKCGZlYXR1cmVzGAIgASgFOmQKF3NldERpc2NvdmVyeU1vZGVNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGFIgASgLMhguU2V0RGlzY292ZXJ5TW9kZU1lc3NhZ2VSF3NldERpc2NvdmVyeU1vZGVNZXNzYWdl\", [file_ProtocolMessage]);\n\n/**\n * @generated from message SetDiscoveryModeMessage\n */\nexport type SetDiscoveryModeMessage = Message<\"SetDiscoveryModeMessage\"> & {\n /**\n * @generated from field: optional int32 mode = 1;\n */\n mode: number;\n\n /**\n * @generated from field: optional int32 features = 2;\n */\n features: number;\n};\n\n/**\n * Describes the message SetDiscoveryModeMessage.\n * Use `create(SetDiscoveryModeMessageSchema)` to create a new message.\n */\nexport const SetDiscoveryModeMessageSchema: GenMessage<SetDiscoveryModeMessage> = /*@__PURE__*/\n messageDesc(file_SetDiscoveryModeMessage, 0);\n\n/**\n * @generated from extension: optional SetDiscoveryModeMessage setDiscoveryModeMessage = 82;\n */\nexport const setDiscoveryModeMessage: GenExtension<ProtocolMessage, SetDiscoveryModeMessage> = /*@__PURE__*/\n extDesc(file_SetDiscoveryModeMessage, 0);\n\n",
|
|
92
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SetHiliteModeMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SetHiliteModeMessage.proto.\n */\nexport const file_SetHiliteModeMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChpTZXRIaWxpdGVNb2RlTWVzc2FnZS5wcm90byIqChRTZXRIaWxpdGVNb2RlTWVzc2FnZRISCgpoaWxpdGVNb2RlGAEgASgFOlsKFHNldEhpbGl0ZU1vZGVNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGCwgASgLMhUuU2V0SGlsaXRlTW9kZU1lc3NhZ2VSFHNldEhpbGl0ZU1vZGVNZXNzYWdl\", [file_ProtocolMessage]);\n\n/**\n * @generated from message SetHiliteModeMessage\n */\nexport type SetHiliteModeMessage = Message<\"SetHiliteModeMessage\"> & {\n /**\n * @generated from field: optional int32 hiliteMode = 1;\n */\n hiliteMode: number;\n};\n\n/**\n * Describes the message SetHiliteModeMessage.\n * Use `create(SetHiliteModeMessageSchema)` to create a new message.\n */\nexport const SetHiliteModeMessageSchema: GenMessage<SetHiliteModeMessage> = /*@__PURE__*/\n messageDesc(file_SetHiliteModeMessage, 0);\n\n/**\n * @generated from extension: optional SetHiliteModeMessage setHiliteModeMessage = 44;\n */\nexport const setHiliteModeMessage: GenExtension<ProtocolMessage, SetHiliteModeMessage> = /*@__PURE__*/\n extDesc(file_SetHiliteModeMessage, 0);\n\n",
|
|
93
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SetNowPlayingClientMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { NowPlayingClient } from \"./NowPlayingClient_pb\";\nimport { file_NowPlayingClient } from \"./NowPlayingClient_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SetNowPlayingClientMessage.proto.\n */\nexport const file_SetNowPlayingClientMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CiBTZXROb3dQbGF5aW5nQ2xpZW50TWVzc2FnZS5wcm90byI/ChpTZXROb3dQbGF5aW5nQ2xpZW50TWVzc2FnZRIhCgZjbGllbnQYASABKAsyES5Ob3dQbGF5aW5nQ2xpZW50Om0KGnNldE5vd1BsYXlpbmdDbGllbnRNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGDIgASgLMhsuU2V0Tm93UGxheWluZ0NsaWVudE1lc3NhZ2VSGnNldE5vd1BsYXlpbmdDbGllbnRNZXNzYWdl\", [file_ProtocolMessage, file_NowPlayingClient]);\n\n/**\n * @generated from message SetNowPlayingClientMessage\n */\nexport type SetNowPlayingClientMessage = Message<\"SetNowPlayingClientMessage\"> & {\n /**\n * @generated from field: optional NowPlayingClient client = 1;\n */\n client?: NowPlayingClient;\n};\n\n/**\n * Describes the message SetNowPlayingClientMessage.\n * Use `create(SetNowPlayingClientMessageSchema)` to create a new message.\n */\nexport const SetNowPlayingClientMessageSchema: GenMessage<SetNowPlayingClientMessage> = /*@__PURE__*/\n messageDesc(file_SetNowPlayingClientMessage, 0);\n\n/**\n * @generated from extension: optional SetNowPlayingClientMessage setNowPlayingClientMessage = 50;\n */\nexport const setNowPlayingClientMessage: GenExtension<ProtocolMessage, SetNowPlayingClientMessage> = /*@__PURE__*/\n extDesc(file_SetNowPlayingClientMessage, 0);\n\n",
|
|
94
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SetNowPlayingPlayerMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { PlayerPath } from \"./PlayerPath_pb\";\nimport { file_PlayerPath } from \"./PlayerPath_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SetNowPlayingPlayerMessage.proto.\n */\nexport const file_SetNowPlayingPlayerMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CiBTZXROb3dQbGF5aW5nUGxheWVyTWVzc2FnZS5wcm90byI9ChpTZXROb3dQbGF5aW5nUGxheWVyTWVzc2FnZRIfCgpwbGF5ZXJQYXRoGAEgASgLMgsuUGxheWVyUGF0aDptChpzZXROb3dQbGF5aW5nUGxheWVyTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRgzIAEoCzIbLlNldE5vd1BsYXlpbmdQbGF5ZXJNZXNzYWdlUhpzZXROb3dQbGF5aW5nUGxheWVyTWVzc2FnZQ\", [file_ProtocolMessage, file_PlayerPath]);\n\n/**\n * @generated from message SetNowPlayingPlayerMessage\n */\nexport type SetNowPlayingPlayerMessage = Message<\"SetNowPlayingPlayerMessage\"> & {\n /**\n * @generated from field: optional PlayerPath playerPath = 1;\n */\n playerPath?: PlayerPath;\n};\n\n/**\n * Describes the message SetNowPlayingPlayerMessage.\n * Use `create(SetNowPlayingPlayerMessageSchema)` to create a new message.\n */\nexport const SetNowPlayingPlayerMessageSchema: GenMessage<SetNowPlayingPlayerMessage> = /*@__PURE__*/\n messageDesc(file_SetNowPlayingPlayerMessage, 0);\n\n/**\n * @generated from extension: optional SetNowPlayingPlayerMessage setNowPlayingPlayerMessage = 51;\n */\nexport const setNowPlayingPlayerMessage: GenExtension<ProtocolMessage, SetNowPlayingPlayerMessage> = /*@__PURE__*/\n extDesc(file_SetNowPlayingPlayerMessage, 0);\n\n",
|
|
95
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SetRecordingStateMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenEnum, GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SetRecordingStateMessage.proto.\n */\nexport const file_SetRecordingStateMessage: GenFile = /*@__PURE__*/\n fileDesc(\"Ch5TZXRSZWNvcmRpbmdTdGF0ZU1lc3NhZ2UucHJvdG8ikwEKGFNldFJlY29yZGluZ1N0YXRlTWVzc2FnZRI3CgVzdGF0ZRgBIAEoDjIoLlNldFJlY29yZGluZ1N0YXRlTWVzc2FnZS5SZWNvcmRpbmdTdGF0ZSI+Cg5SZWNvcmRpbmdTdGF0ZRILCgdVbmtub3duEAASDQoJUmVjb3JkaW5nEAESEAoMTm90UmVjb3JkaW5nEAI6ZwoYc2V0UmVjb3JkaW5nU3RhdGVNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGCMgASgLMhkuU2V0UmVjb3JkaW5nU3RhdGVNZXNzYWdlUhhzZXRSZWNvcmRpbmdTdGF0ZU1lc3NhZ2U\", [file_ProtocolMessage]);\n\n/**\n * @generated from message SetRecordingStateMessage\n */\nexport type SetRecordingStateMessage = Message<\"SetRecordingStateMessage\"> & {\n /**\n * @generated from field: optional SetRecordingStateMessage.RecordingState state = 1;\n */\n state: SetRecordingStateMessage_RecordingState;\n};\n\n/**\n * Describes the message SetRecordingStateMessage.\n * Use `create(SetRecordingStateMessageSchema)` to create a new message.\n */\nexport const SetRecordingStateMessageSchema: GenMessage<SetRecordingStateMessage> = /*@__PURE__*/\n messageDesc(file_SetRecordingStateMessage, 0);\n\n/**\n * @generated from enum SetRecordingStateMessage.RecordingState\n */\nexport enum SetRecordingStateMessage_RecordingState {\n /**\n * @generated from enum value: Unknown = 0;\n */\n Unknown = 0,\n\n /**\n * @generated from enum value: Recording = 1;\n */\n Recording = 1,\n\n /**\n * @generated from enum value: NotRecording = 2;\n */\n NotRecording = 2,\n}\n\n/**\n * Describes the enum SetRecordingStateMessage.RecordingState.\n */\nexport const SetRecordingStateMessage_RecordingStateSchema: GenEnum<SetRecordingStateMessage_RecordingState> = /*@__PURE__*/\n enumDesc(file_SetRecordingStateMessage, 0, 0);\n\n/**\n * @generated from extension: optional SetRecordingStateMessage setRecordingStateMessage = 35;\n */\nexport const setRecordingStateMessage: GenExtension<ProtocolMessage, SetRecordingStateMessage> = /*@__PURE__*/\n extDesc(file_SetRecordingStateMessage, 0);\n\n",
|
|
96
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SetStateMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { NowPlayingInfo } from \"./NowPlayingInfo_pb\";\nimport { file_NowPlayingInfo } from \"./NowPlayingInfo_pb\";\nimport type { PlaybackQueue } from \"./PlaybackQueue_pb\";\nimport { file_PlaybackQueue } from \"./PlaybackQueue_pb\";\nimport type { SupportedCommands } from \"./SupportedCommands_pb\";\nimport { file_SupportedCommands } from \"./SupportedCommands_pb\";\nimport type { PlaybackQueueCapabilities } from \"./PlaybackQueueCapabilities_pb\";\nimport { file_PlaybackQueueCapabilities } from \"./PlaybackQueueCapabilities_pb\";\nimport type { PlayerPath } from \"./PlayerPath_pb\";\nimport { file_PlayerPath } from \"./PlayerPath_pb\";\nimport type { PlaybackQueueRequestMessage } from \"./PlaybackQueueRequestMessage_pb\";\nimport { file_PlaybackQueueRequestMessage } from \"./PlaybackQueueRequestMessage_pb\";\nimport type { PlaybackState_Enum } from \"./Common_pb\";\nimport { file_Common } from \"./Common_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SetStateMessage.proto.\n */\nexport const file_SetStateMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChVTZXRTdGF0ZU1lc3NhZ2UucHJvdG8ikwMKD1NldFN0YXRlTWVzc2FnZRInCg5ub3dQbGF5aW5nSW5mbxgBIAEoCzIPLk5vd1BsYXlpbmdJbmZvEi0KEXN1cHBvcnRlZENvbW1hbmRzGAIgASgLMhIuU3VwcG9ydGVkQ29tbWFuZHMSJQoNcGxheWJhY2tRdWV1ZRgDIAEoCzIOLlBsYXliYWNrUXVldWUSEQoJZGlzcGxheUlEGAQgASgJEhMKC2Rpc3BsYXlOYW1lGAUgASgJEioKDXBsYXliYWNrU3RhdGUYBiABKA4yEy5QbGF5YmFja1N0YXRlLkVudW0SPQoZcGxheWJhY2tRdWV1ZUNhcGFiaWxpdGllcxgIIAEoCzIaLlBsYXliYWNrUXVldWVDYXBhYmlsaXRpZXMSHwoKcGxheWVyUGF0aBgJIAEoCzILLlBsYXllclBhdGgSLQoHcmVxdWVzdBgKIAEoCzIcLlBsYXliYWNrUXVldWVSZXF1ZXN0TWVzc2FnZRIeChZwbGF5YmFja1N0YXRlVGltZXN0YW1wGAsgASgBOkwKD3NldFN0YXRlTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRgJIAEoCzIQLlNldFN0YXRlTWVzc2FnZVIPc2V0U3RhdGVNZXNzYWdl\", [file_ProtocolMessage, file_NowPlayingInfo, file_PlaybackQueue, file_SupportedCommands, file_PlaybackQueueCapabilities, file_PlayerPath, file_PlaybackQueueRequestMessage, file_Common]);\n\n/**\n * @generated from message SetStateMessage\n */\nexport type SetStateMessage = Message<\"SetStateMessage\"> & {\n /**\n * @generated from field: optional NowPlayingInfo nowPlayingInfo = 1;\n */\n nowPlayingInfo?: NowPlayingInfo;\n\n /**\n * @generated from field: optional SupportedCommands supportedCommands = 2;\n */\n supportedCommands?: SupportedCommands;\n\n /**\n * @generated from field: optional PlaybackQueue playbackQueue = 3;\n */\n playbackQueue?: PlaybackQueue;\n\n /**\n * @generated from field: optional string displayID = 4;\n */\n displayID: string;\n\n /**\n * @generated from field: optional string displayName = 5;\n */\n displayName: string;\n\n /**\n * @generated from field: optional PlaybackState.Enum playbackState = 6;\n */\n playbackState: PlaybackState_Enum;\n\n /**\n * @generated from field: optional PlaybackQueueCapabilities playbackQueueCapabilities = 8;\n */\n playbackQueueCapabilities?: PlaybackQueueCapabilities;\n\n /**\n * @generated from field: optional PlayerPath playerPath = 9;\n */\n playerPath?: PlayerPath;\n\n /**\n * @generated from field: optional PlaybackQueueRequestMessage request = 10;\n */\n request?: PlaybackQueueRequestMessage;\n\n /**\n * @generated from field: optional double playbackStateTimestamp = 11;\n */\n playbackStateTimestamp: number;\n};\n\n/**\n * Describes the message SetStateMessage.\n * Use `create(SetStateMessageSchema)` to create a new message.\n */\nexport const SetStateMessageSchema: GenMessage<SetStateMessage> = /*@__PURE__*/\n messageDesc(file_SetStateMessage, 0);\n\n/**\n * @generated from extension: optional SetStateMessage setStateMessage = 9;\n */\nexport const setStateMessage: GenExtension<ProtocolMessage, SetStateMessage> = /*@__PURE__*/\n extDesc(file_SetStateMessage, 0);\n\n",
|
|
97
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file SetVolumeMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file SetVolumeMessage.proto.\n */\nexport const file_SetVolumeMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChZTZXRWb2x1bWVNZXNzYWdlLnByb3RvIjsKEFNldFZvbHVtZU1lc3NhZ2USDgoGdm9sdW1lGAEgASgCEhcKD291dHB1dERldmljZVVJRBgCIAEoCTpPChBzZXRWb2x1bWVNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGDcgASgLMhEuU2V0Vm9sdW1lTWVzc2FnZVIQc2V0Vm9sdW1lTWVzc2FnZQ\", [file_ProtocolMessage]);\n\n/**\n * @generated from message SetVolumeMessage\n */\nexport type SetVolumeMessage = Message<\"SetVolumeMessage\"> & {\n /**\n * @generated from field: optional float volume = 1;\n */\n volume: number;\n\n /**\n * @generated from field: optional string outputDeviceUID = 2;\n */\n outputDeviceUID: string;\n};\n\n/**\n * Describes the message SetVolumeMessage.\n * Use `create(SetVolumeMessageSchema)` to create a new message.\n */\nexport const SetVolumeMessageSchema: GenMessage<SetVolumeMessage> = /*@__PURE__*/\n messageDesc(file_SetVolumeMessage, 0);\n\n/**\n * @generated from extension: optional SetVolumeMessage setVolumeMessage = 55;\n */\nexport const setVolumeMessage: GenExtension<ProtocolMessage, SetVolumeMessage> = /*@__PURE__*/\n extDesc(file_SetVolumeMessage, 0);\n\n",
|
|
98
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file TextInputMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenEnum, GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file TextInputMessage.proto.\n */\nexport const file_TextInputMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChZUZXh0SW5wdXRNZXNzYWdlLnByb3RvIlMKCkFjdGlvblR5cGUiRQoERW51bRILCgdVbmtub3duEAASCgoGSW5zZXJ0EAESBwoDU2V0EAISCgoGRGVsZXRlEAMSDwoLQ2xlYXJBY3Rpb24QBCJZChBUZXh0SW5wdXRNZXNzYWdlEhEKCXRpbWVzdGFtcBgBIAEoARIMCgR0ZXh0GAIgASgJEiQKCmFjdGlvblR5cGUYAyABKA4yEC5BY3Rpb25UeXBlLkVudW06TwoQdGV4dElucHV0TWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRgeIAEoCzIRLlRleHRJbnB1dE1lc3NhZ2VSEHRleHRJbnB1dE1lc3NhZ2U\", [file_ProtocolMessage]);\n\n/**\n * @generated from message ActionType\n */\nexport type ActionType = Message<\"ActionType\"> & {\n};\n\n/**\n * Describes the message ActionType.\n * Use `create(ActionTypeSchema)` to create a new message.\n */\nexport const ActionTypeSchema: GenMessage<ActionType> = /*@__PURE__*/\n messageDesc(file_TextInputMessage, 0);\n\n/**\n * @generated from enum ActionType.Enum\n */\nexport enum ActionType_Enum {\n /**\n * @generated from enum value: Unknown = 0;\n */\n Unknown = 0,\n\n /**\n * @generated from enum value: Insert = 1;\n */\n Insert = 1,\n\n /**\n * @generated from enum value: Set = 2;\n */\n Set = 2,\n\n /**\n * @generated from enum value: Delete = 3;\n */\n Delete = 3,\n\n /**\n * \"Clear\" clashes with something, making mypy unhappy \n *\n * @generated from enum value: ClearAction = 4;\n */\n ClearAction = 4,\n}\n\n/**\n * Describes the enum ActionType.Enum.\n */\nexport const ActionType_EnumSchema: GenEnum<ActionType_Enum> = /*@__PURE__*/\n enumDesc(file_TextInputMessage, 0, 0);\n\n/**\n * @generated from message TextInputMessage\n */\nexport type TextInputMessage = Message<\"TextInputMessage\"> & {\n /**\n * @generated from field: optional double timestamp = 1;\n */\n timestamp: number;\n\n /**\n * @generated from field: optional string text = 2;\n */\n text: string;\n\n /**\n * @generated from field: optional ActionType.Enum actionType = 3;\n */\n actionType: ActionType_Enum;\n};\n\n/**\n * Describes the message TextInputMessage.\n * Use `create(TextInputMessageSchema)` to create a new message.\n */\nexport const TextInputMessageSchema: GenMessage<TextInputMessage> = /*@__PURE__*/\n messageDesc(file_TextInputMessage, 1);\n\n/**\n * @generated from extension: optional TextInputMessage textInputMessage = 30;\n */\nexport const textInputMessage: GenExtension<ProtocolMessage, TextInputMessage> = /*@__PURE__*/\n extDesc(file_TextInputMessage, 0);\n\n",
|
|
99
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file TransactionKey.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file TransactionKey.proto.\n */\nexport const file_TransactionKey: GenFile = /*@__PURE__*/\n fileDesc(\"ChRUcmFuc2FjdGlvbktleS5wcm90byI2Cg5UcmFuc2FjdGlvbktleRISCgppZGVudGlmaWVyGAEgASgJEhAKCHVzZXJEYXRhGAIgASgM\");\n\n/**\n * @generated from message TransactionKey\n */\nexport type TransactionKey = Message<\"TransactionKey\"> & {\n /**\n * @generated from field: optional string identifier = 1;\n */\n identifier: string;\n\n /**\n * @generated from field: optional bytes userData = 2;\n */\n userData: Uint8Array;\n};\n\n/**\n * Describes the message TransactionKey.\n * Use `create(TransactionKeySchema)` to create a new message.\n */\nexport const TransactionKeySchema: GenMessage<TransactionKey> = /*@__PURE__*/\n messageDesc(file_TransactionKey, 0);\n\n",
|
|
100
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file TransactionPacket.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { TransactionKey } from \"./TransactionKey_pb\";\nimport { file_TransactionKey } from \"./TransactionKey_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file TransactionPacket.proto.\n */\nexport const file_TransactionPacket: GenFile = /*@__PURE__*/\n fileDesc(\"ChdUcmFuc2FjdGlvblBhY2tldC5wcm90byKKAQoRVHJhbnNhY3Rpb25QYWNrZXQSHAoDa2V5GAEgASgLMg8uVHJhbnNhY3Rpb25LZXkSEgoKcGFja2V0RGF0YRgCIAEoDBISCgppZGVudGlmaWVyGAMgASgJEhMKC3RvdGFsTGVuZ3RoGAQgASgEEhoKEnRvdGFsV3JpdGVQb3NpdGlvbhgFIAEoBA\", [file_TransactionKey]);\n\n/**\n * @generated from message TransactionPacket\n */\nexport type TransactionPacket = Message<\"TransactionPacket\"> & {\n /**\n * @generated from field: optional TransactionKey key = 1;\n */\n key?: TransactionKey;\n\n /**\n * @generated from field: optional bytes packetData = 2;\n */\n packetData: Uint8Array;\n\n /**\n * @generated from field: optional string identifier = 3;\n */\n identifier: string;\n\n /**\n * @generated from field: optional uint64 totalLength = 4;\n */\n totalLength: bigint;\n\n /**\n * @generated from field: optional uint64 totalWritePosition = 5;\n */\n totalWritePosition: bigint;\n};\n\n/**\n * Describes the message TransactionPacket.\n * Use `create(TransactionPacketSchema)` to create a new message.\n */\nexport const TransactionPacketSchema: GenMessage<TransactionPacket> = /*@__PURE__*/\n messageDesc(file_TransactionPacket, 0);\n\n",
|
|
101
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file TransactionPackets.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { TransactionPacket } from \"./TransactionPacket_pb\";\nimport { file_TransactionPacket } from \"./TransactionPacket_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file TransactionPackets.proto.\n */\nexport const file_TransactionPackets: GenFile = /*@__PURE__*/\n fileDesc(\"ChhUcmFuc2FjdGlvblBhY2tldHMucHJvdG8iOQoSVHJhbnNhY3Rpb25QYWNrZXRzEiMKB3BhY2tldHMYASADKAsyEi5UcmFuc2FjdGlvblBhY2tldA\", [file_TransactionPacket]);\n\n/**\n * @generated from message TransactionPackets\n */\nexport type TransactionPackets = Message<\"TransactionPackets\"> & {\n /**\n * @generated from field: repeated TransactionPacket packets = 1;\n */\n packets: TransactionPacket[];\n};\n\n/**\n * Describes the message TransactionPackets.\n * Use `create(TransactionPacketsSchema)` to create a new message.\n */\nexport const TransactionPacketsSchema: GenMessage<TransactionPackets> = /*@__PURE__*/\n messageDesc(file_TransactionPackets, 0);\n\n",
|
|
102
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file TransactionMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { TransactionPackets } from \"./TransactionPackets_pb\";\nimport { file_TransactionPackets } from \"./TransactionPackets_pb\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { PlayerPath } from \"./PlayerPath_pb\";\nimport { file_PlayerPath } from \"./PlayerPath_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file TransactionMessage.proto.\n */\nexport const file_TransactionMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChhUcmFuc2FjdGlvbk1lc3NhZ2UucHJvdG8iaQoSVHJhbnNhY3Rpb25NZXNzYWdlEgwKBG5hbWUYASABKAQSJAoHcGFja2V0cxgCIAEoCzITLlRyYW5zYWN0aW9uUGFja2V0cxIfCgpwbGF5ZXJQYXRoGAMgASgLMgsuUGxheWVyUGF0aDpVChJ0cmFuc2FjdGlvbk1lc3NhZ2USEC5Qcm90b2NvbE1lc3NhZ2UYJiABKAsyEy5UcmFuc2FjdGlvbk1lc3NhZ2VSEnRyYW5zYWN0aW9uTWVzc2FnZQ\", [file_TransactionPackets, file_ProtocolMessage, file_PlayerPath]);\n\n/**\n * @generated from message TransactionMessage\n */\nexport type TransactionMessage = Message<\"TransactionMessage\"> & {\n /**\n * @generated from field: optional uint64 name = 1;\n */\n name: bigint;\n\n /**\n * @generated from field: optional TransactionPackets packets = 2;\n */\n packets?: TransactionPackets;\n\n /**\n * @generated from field: optional PlayerPath playerPath = 3;\n */\n playerPath?: PlayerPath;\n};\n\n/**\n * Describes the message TransactionMessage.\n * Use `create(TransactionMessageSchema)` to create a new message.\n */\nexport const TransactionMessageSchema: GenMessage<TransactionMessage> = /*@__PURE__*/\n messageDesc(file_TransactionMessage, 0);\n\n/**\n * @generated from extension: optional TransactionMessage transactionMessage = 38;\n */\nexport const transactionMessage: GenExtension<ProtocolMessage, TransactionMessage> = /*@__PURE__*/\n extDesc(file_TransactionMessage, 0);\n\n",
|
|
103
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file UpdateClientMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { NowPlayingClient } from \"./NowPlayingClient_pb\";\nimport { file_NowPlayingClient } from \"./NowPlayingClient_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file UpdateClientMessage.proto.\n */\nexport const file_UpdateClientMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChlVcGRhdGVDbGllbnRNZXNzYWdlLnByb3RvIjgKE1VwZGF0ZUNsaWVudE1lc3NhZ2USIQoGY2xpZW50GAEgASgLMhEuTm93UGxheWluZ0NsaWVudDpYChN1cGRhdGVDbGllbnRNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGDsgASgLMhQuVXBkYXRlQ2xpZW50TWVzc2FnZVITdXBkYXRlQ2xpZW50TWVzc2FnZQ\", [file_ProtocolMessage, file_NowPlayingClient]);\n\n/**\n * @generated from message UpdateClientMessage\n */\nexport type UpdateClientMessage = Message<\"UpdateClientMessage\"> & {\n /**\n * @generated from field: optional NowPlayingClient client = 1;\n */\n client?: NowPlayingClient;\n};\n\n/**\n * Describes the message UpdateClientMessage.\n * Use `create(UpdateClientMessageSchema)` to create a new message.\n */\nexport const UpdateClientMessageSchema: GenMessage<UpdateClientMessage> = /*@__PURE__*/\n messageDesc(file_UpdateClientMessage, 0);\n\n/**\n * @generated from extension: optional UpdateClientMessage updateClientMessage = 59;\n */\nexport const updateClientMessage: GenExtension<ProtocolMessage, UpdateClientMessage> = /*@__PURE__*/\n extDesc(file_UpdateClientMessage, 0);\n\n",
|
|
104
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file UpdateContentItemArtworkMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { ContentItem } from \"./ContentItem_pb\";\nimport { file_ContentItem } from \"./ContentItem_pb\";\nimport type { PlayerPath } from \"./PlayerPath_pb\";\nimport { file_PlayerPath } from \"./PlayerPath_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file UpdateContentItemArtworkMessage.proto.\n */\nexport const file_UpdateContentItemArtworkMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CiVVcGRhdGVDb250ZW50SXRlbUFydHdvcmtNZXNzYWdlLnByb3RvImYKH1VwZGF0ZUNvbnRlbnRJdGVtQXJ0d29ya01lc3NhZ2USIgoMY29udGVudEl0ZW1zGAEgAygLMgwuQ29udGVudEl0ZW0SHwoKcGxheWVyUGF0aBgCIAEoCzILLlBsYXllclBhdGg6fAofdXBkYXRlQ29udGVudEl0ZW1BcnR3b3JrTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRg9IAEoCzIgLlVwZGF0ZUNvbnRlbnRJdGVtQXJ0d29ya01lc3NhZ2VSH3VwZGF0ZUNvbnRlbnRJdGVtQXJ0d29ya01lc3NhZ2U\", [file_ProtocolMessage, file_ContentItem, file_PlayerPath]);\n\n/**\n * @generated from message UpdateContentItemArtworkMessage\n */\nexport type UpdateContentItemArtworkMessage = Message<\"UpdateContentItemArtworkMessage\"> & {\n /**\n * @generated from field: repeated ContentItem contentItems = 1;\n */\n contentItems: ContentItem[];\n\n /**\n * @generated from field: optional PlayerPath playerPath = 2;\n */\n playerPath?: PlayerPath;\n};\n\n/**\n * Describes the message UpdateContentItemArtworkMessage.\n * Use `create(UpdateContentItemArtworkMessageSchema)` to create a new message.\n */\nexport const UpdateContentItemArtworkMessageSchema: GenMessage<UpdateContentItemArtworkMessage> = /*@__PURE__*/\n messageDesc(file_UpdateContentItemArtworkMessage, 0);\n\n/**\n * @generated from extension: optional UpdateContentItemArtworkMessage updateContentItemArtworkMessage = 61;\n */\nexport const updateContentItemArtworkMessage: GenExtension<ProtocolMessage, UpdateContentItemArtworkMessage> = /*@__PURE__*/\n extDesc(file_UpdateContentItemArtworkMessage, 0);\n\n",
|
|
105
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file UpdateContentItemMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { ContentItem } from \"./ContentItem_pb\";\nimport { file_ContentItem } from \"./ContentItem_pb\";\nimport type { PlayerPath } from \"./PlayerPath_pb\";\nimport { file_PlayerPath } from \"./PlayerPath_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file UpdateContentItemMessage.proto.\n */\nexport const file_UpdateContentItemMessage: GenFile = /*@__PURE__*/\n fileDesc(\"Ch5VcGRhdGVDb250ZW50SXRlbU1lc3NhZ2UucHJvdG8iXwoYVXBkYXRlQ29udGVudEl0ZW1NZXNzYWdlEiIKDGNvbnRlbnRJdGVtcxgBIAMoCzIMLkNvbnRlbnRJdGVtEh8KCnBsYXllclBhdGgYAiABKAsyCy5QbGF5ZXJQYXRoOmcKGHVwZGF0ZUNvbnRlbnRJdGVtTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRg8IAEoCzIZLlVwZGF0ZUNvbnRlbnRJdGVtTWVzc2FnZVIYdXBkYXRlQ29udGVudEl0ZW1NZXNzYWdl\", [file_ProtocolMessage, file_ContentItem, file_PlayerPath]);\n\n/**\n * @generated from message UpdateContentItemMessage\n */\nexport type UpdateContentItemMessage = Message<\"UpdateContentItemMessage\"> & {\n /**\n * @generated from field: repeated ContentItem contentItems = 1;\n */\n contentItems: ContentItem[];\n\n /**\n * @generated from field: optional PlayerPath playerPath = 2;\n */\n playerPath?: PlayerPath;\n};\n\n/**\n * Describes the message UpdateContentItemMessage.\n * Use `create(UpdateContentItemMessageSchema)` to create a new message.\n */\nexport const UpdateContentItemMessageSchema: GenMessage<UpdateContentItemMessage> = /*@__PURE__*/\n messageDesc(file_UpdateContentItemMessage, 0);\n\n/**\n * @generated from extension: optional UpdateContentItemMessage updateContentItemMessage = 60;\n */\nexport const updateContentItemMessage: GenExtension<ProtocolMessage, UpdateContentItemMessage> = /*@__PURE__*/\n extDesc(file_UpdateContentItemMessage, 0);\n\n",
|
|
106
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file UpdateEndPointsMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file UpdateEndPointsMessage.proto.\n */\nexport const file_UpdateEndPointsMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChxVcGRhdGVFbmRQb2ludHNNZXNzYWdlLnByb3RvIskBChRBVkVuZHBvaW50RGVzY3JpcHRvchIMCgRuYW1lGAEgASgJEhgKEHVuaXF1ZUlkZW50aWZpZXIYAiABKAkSFwoPaXNMb2NhbEVuZHBvaW50GAUgASgIEhoKEmluc3RhbmNlSWRlbnRpZmllchgGIAEoCRIaChJpc1Byb3h5R3JvdXBQbGF5ZXIYByABKAgSFgoOY29ubmVjdGlvblR5cGUYCCABKAUSIAoYY2FuTW9kaWZ5R3JvdXBNZW1iZXJzaGlwGAkgASgIIlwKFlVwZGF0ZUVuZFBvaW50c01lc3NhZ2USKAoJZW5kcG9pbnRzGAEgASgLMhUuQVZFbmRwb2ludERlc2NyaXB0b3ISGAoQZW5kcG9pbnRGZWF0dXJlcxgCIAEoBTphChZ1cGRhdGVFbmRQb2ludHNNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGFMgASgLMhcuVXBkYXRlRW5kUG9pbnRzTWVzc2FnZVIWdXBkYXRlRW5kUG9pbnRzTWVzc2FnZQ\", [file_ProtocolMessage]);\n\n/**\n * @generated from message AVEndpointDescriptor\n */\nexport type AVEndpointDescriptor = Message<\"AVEndpointDescriptor\"> & {\n /**\n * @generated from field: optional string name = 1;\n */\n name: string;\n\n /**\n * @generated from field: optional string uniqueIdentifier = 2;\n */\n uniqueIdentifier: string;\n\n /**\n * repeated ... outputDevices = 3;\n * optional ... designatedGroupLeader = 4;\n *\n * @generated from field: optional bool isLocalEndpoint = 5;\n */\n isLocalEndpoint: boolean;\n\n /**\n * @generated from field: optional string instanceIdentifier = 6;\n */\n instanceIdentifier: string;\n\n /**\n * @generated from field: optional bool isProxyGroupPlayer = 7;\n */\n isProxyGroupPlayer: boolean;\n\n /**\n * @generated from field: optional int32 connectionType = 8;\n */\n connectionType: number;\n\n /**\n * repeated ... _personalOutputDevices = 10;\n *\n * @generated from field: optional bool canModifyGroupMembership = 9;\n */\n canModifyGroupMembership: boolean;\n};\n\n/**\n * Describes the message AVEndpointDescriptor.\n * Use `create(AVEndpointDescriptorSchema)` to create a new message.\n */\nexport const AVEndpointDescriptorSchema: GenMessage<AVEndpointDescriptor> = /*@__PURE__*/\n messageDesc(file_UpdateEndPointsMessage, 0);\n\n/**\n * @generated from message UpdateEndPointsMessage\n */\nexport type UpdateEndPointsMessage = Message<\"UpdateEndPointsMessage\"> & {\n /**\n * @generated from field: optional AVEndpointDescriptor endpoints = 1;\n */\n endpoints?: AVEndpointDescriptor;\n\n /**\n * @generated from field: optional int32 endpointFeatures = 2;\n */\n endpointFeatures: number;\n};\n\n/**\n * Describes the message UpdateEndPointsMessage.\n * Use `create(UpdateEndPointsMessageSchema)` to create a new message.\n */\nexport const UpdateEndPointsMessageSchema: GenMessage<UpdateEndPointsMessage> = /*@__PURE__*/\n messageDesc(file_UpdateEndPointsMessage, 1);\n\n/**\n * @generated from extension: optional UpdateEndPointsMessage updateEndPointsMessage = 83;\n */\nexport const updateEndPointsMessage: GenExtension<ProtocolMessage, UpdateEndPointsMessage> = /*@__PURE__*/\n extDesc(file_UpdateEndPointsMessage, 0);\n\n",
|
|
107
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file UpdateOutputDeviceMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { DeviceSubType_Enum, DeviceType_Enum } from \"./Common_pb\";\nimport { file_Common } from \"./Common_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file UpdateOutputDeviceMessage.proto.\n */\nexport const file_UpdateOutputDeviceMessage: GenFile = /*@__PURE__*/\n fileDesc(\"Ch9VcGRhdGVPdXRwdXREZXZpY2VNZXNzYWdlLnByb3RvIlUKGEFWT3V0cHV0RGV2aWNlU291cmNlSW5mbxIZChFyb3V0aW5nQ29udGV4dFVJRBgBIAEoCRIeChZtdWx0aXBsZUJ1aWx0SW5EZXZpY2VzGAIgASgIIvUPChhBVk91dHB1dERldmljZURlc2NyaXB0b3ISDAoEbmFtZRgBIAEoCRIYChB1bmlxdWVJZGVudGlmaWVyGAIgASgJEg8KB2dyb3VwSUQYAyABKAkSDwoHbW9kZWxJRBgEIAEoCRISCgptYWNBZGRyZXNzGAUgASgMEh0KFWNhbkFjY2Vzc1JlbW90ZUFzc2V0cxgGIAEoCBIcChRpc1JlbW90ZUNvbnRyb2xsYWJsZRgHIAEoCBIVCg1pc0dyb3VwTGVhZGVyGAggASgIEhMKC2lzR3JvdXBhYmxlGAkgASgIEiQKCmRldmljZVR5cGUYCiABKA4yEC5EZXZpY2VUeXBlLkVudW0SKgoNZGV2aWNlU3ViVHlwZRgLIAEoDjITLkRldmljZVN1YlR5cGUuRW51bRIdChVtb2RlbFNwZWNpZmljSW5mb0RhdGEYDCABKAwSFAoMYmF0dGVyeUxldmVsGA0gASgCEhUKDWlzTG9jYWxEZXZpY2UYDiABKAgSHgoWc3VwcG9ydHNFeHRlcm5hbFNjcmVlbhgPIAEoCBIdChVyZXF1aXJlc0F1dGhvcml6YXRpb24YECABKAgSKAogc2hvdWxkRm9yY2VSZW1vdGVDb250cm9sYWJpbGxpdHkYESABKAgSLQoKc291cmNlSW5mbxgSIAEoCzIZLkFWT3V0cHV0RGV2aWNlU291cmNlSW5mbxIZChFpc0RldmljZUdyb3VwYWJsZRgTIAEoCBIkChxjYW5SZWxheUNvbW11bmljYXRpb25DaGFubmVsGBQgASgIEhcKD2xvZ2ljYWxEZXZpY2VJRBgVIAEoCRIaChJpc1Byb3h5R3JvdXBQbGF5ZXIYFiABKAgSFwoPZmlybXdhcmVWZXJzaW9uGBcgASgJEg4KBnZvbHVtZRgYIAEoAhIgChhpc1ZvbHVtZUNvbnRyb2xBdmFpbGFibGUYGSABKAgSGwoTY2FuQWNjZXNzQXBwbGVNdXNpYxgaIAEoCBIjChtjYW5BY2Nlc3NpQ2xvdWRNdXNpY0xpYnJhcnkYGyABKAgSIAoYZ3JvdXBDb250YWluc0dyb3VwTGVhZGVyGBwgASgIEh8KF3N1cHBvcnRzQnVmZmVyZWRBaXJQbGF5GB0gASgIEjEKKWNhblBsYXlFbmNyeXB0ZWRQcm9ncmVzc2l2ZURvd25sb2FkQXNzZXRzGB4gASgIEiMKG2NhbkZldGNoTWVkaWFEYXRhRnJvbVNlbmRlchgfIAEoCBJGCj5yZXNlbnRzT3B0aW1pemVkVXNlckludGVyZmFjZVdoZW5QbGF5aW5nRmV0Y2hlZEF1ZGlvT25seUFzc2V0cxggIAEoCBImCh5pc0FpclBsYXlSZWNlaXZlclNlc3Npb25BY3RpdmUYISABKAgSHQoVcGFyZW50R3JvdXBJZGVudGlmaWVyGCIgASgJEi0KJXBhcmVudEdyb3VwQ29udGFpbnNEaXNjb3ZlcmFibGVMZWFkZXIYIyABKAgSGAoQaXNBZGRlZFRvSG9tZUtpdBgkIAEoCBIaChJ2b2x1bWVDYXBhYmlsaXRpZXMYJSABKAUSEwoLYmx1ZXRvb3RoSUQYJiABKAkSEwoLc3VwcG9ydHNIQVAYJyABKAgSGQoRdXNpbmdKU09OUHJvdG9jb2wYKCABKAgSNgoTY2x1c3RlckNvbXBvc2l0aW9ucxgpIAMoCzIZLkFWT3V0cHV0RGV2aWNlRGVzY3JpcHRvchITCgtjbHVzdGVyVHlwZRgqIAEoDRISCgpwcmltYXJ5VUlEGCsgASgJEh0KFWNvbmZpZ3VyZWRDbHVzdGVyU2l6ZRgsIAEoDRItCiVzdXBwb3J0c1JhcHBvcnRSZW1vdGVDb250cm9sVHJhbnNwb3J0GC0gASgIEiUKHWN1cnJlbnRCbHVldG9vdGhMaXN0ZW5pbmdNb2RlGC4gASgJEigKIGF2YWlsYWJsZUJsdWV0b290aExpc3RlbmluZ01vZGVzGC8gAygJEhsKE3N1cHBvcnRzTXVsdGlwbGF5ZXIYMCADKAgSIAoYcHJvZHVjZXNMb3dGaWRlbGl0eUF1ZGlvGDEgASgIEhcKD2hvc3REZXZpY2VDbGFzcxgyIAEoBRIWCg5haXJQbGF5R3JvdXBJRBgzIAEoCRIgChhzdXBwb3J0c1NoYXJlUGxheUhhbmRvZmYYNCABKAgSEAoIZGlzdGFuY2UYNSABKAISHQoVZGlzY292ZXJlZE9uU2FtZUluZnJhGDYgASgIEjoKF2FjdGl2YXRlZENsdXN0ZXJNZW1iZXJzGDcgAygLMhkuQVZPdXRwdXREZXZpY2VEZXNjcmlwdG9yEhAKCHBpY2thYmxlGDggAygIEhUKDXRyYW5zcG9ydFR5cGUYOSABKAUSEQoJY2x1c3RlcklEGDogASgJEhcKD2lzQ2x1c3RlckxlYWRlchg7IAEoCBIYChBpc0FwcGxlQWNjZXNzb3J5GDwgASgIEh4KFnBhcmVudFVuaXF1ZUlkZW50aWZpZXIYPSABKAkSDgoGcm9vbUlEGD4gASgJEhAKCHJvb21OYW1lGD8gASgJEjQKEWFsbENsdXN0ZXJNZW1iZXJzGEAgAygLMhkuQVZPdXRwdXREZXZpY2VEZXNjcmlwdG9yEh8KF2VuZ2FnZU9uQ2x1c3RlckFjdGl2YXRlGEMgASgIIqABChlVcGRhdGVPdXRwdXREZXZpY2VNZXNzYWdlEjAKDW91dHB1dERldmljZXMYASADKAsyGS5BVk91dHB1dERldmljZURlc2NyaXB0b3ISEwoLZW5kcG9pbnRVSUQYAiABKAkSPAoZY2x1c3RlckF3YXJlT3V0cHV0RGV2aWNlcxgDIAMoCzIZLkFWT3V0cHV0RGV2aWNlRGVzY3JpcHRvcjpqChl1cGRhdGVPdXRwdXREZXZpY2VNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGEUgASgLMhouVXBkYXRlT3V0cHV0RGV2aWNlTWVzc2FnZVIZdXBkYXRlT3V0cHV0RGV2aWNlTWVzc2FnZQ\", [file_ProtocolMessage, file_Common]);\n\n/**\n * @generated from message AVOutputDeviceSourceInfo\n */\nexport type AVOutputDeviceSourceInfo = Message<\"AVOutputDeviceSourceInfo\"> & {\n /**\n * @generated from field: optional string routingContextUID = 1;\n */\n routingContextUID: string;\n\n /**\n * @generated from field: optional bool multipleBuiltInDevices = 2;\n */\n multipleBuiltInDevices: boolean;\n};\n\n/**\n * Describes the message AVOutputDeviceSourceInfo.\n * Use `create(AVOutputDeviceSourceInfoSchema)` to create a new message.\n */\nexport const AVOutputDeviceSourceInfoSchema: GenMessage<AVOutputDeviceSourceInfo> = /*@__PURE__*/\n messageDesc(file_UpdateOutputDeviceMessage, 0);\n\n/**\n * @generated from message AVOutputDeviceDescriptor\n */\nexport type AVOutputDeviceDescriptor = Message<\"AVOutputDeviceDescriptor\"> & {\n /**\n * @generated from field: optional string name = 1;\n */\n name: string;\n\n /**\n * @generated from field: optional string uniqueIdentifier = 2;\n */\n uniqueIdentifier: string;\n\n /**\n * @generated from field: optional string groupID = 3;\n */\n groupID: string;\n\n /**\n * @generated from field: optional string modelID = 4;\n */\n modelID: string;\n\n /**\n * @generated from field: optional bytes macAddress = 5;\n */\n macAddress: Uint8Array;\n\n /**\n * @generated from field: optional bool canAccessRemoteAssets = 6;\n */\n canAccessRemoteAssets: boolean;\n\n /**\n * @generated from field: optional bool isRemoteControllable = 7;\n */\n isRemoteControllable: boolean;\n\n /**\n * @generated from field: optional bool isGroupLeader = 8;\n */\n isGroupLeader: boolean;\n\n /**\n * @generated from field: optional bool isGroupable = 9;\n */\n isGroupable: boolean;\n\n /**\n * @generated from field: optional DeviceType.Enum deviceType = 10;\n */\n deviceType: DeviceType_Enum;\n\n /**\n * @generated from field: optional DeviceSubType.Enum deviceSubType = 11;\n */\n deviceSubType: DeviceSubType_Enum;\n\n /**\n * @generated from field: optional bytes modelSpecificInfoData = 12;\n */\n modelSpecificInfoData: Uint8Array;\n\n /**\n * @generated from field: optional float batteryLevel = 13;\n */\n batteryLevel: number;\n\n /**\n * @generated from field: optional bool isLocalDevice = 14;\n */\n isLocalDevice: boolean;\n\n /**\n * @generated from field: optional bool supportsExternalScreen = 15;\n */\n supportsExternalScreen: boolean;\n\n /**\n * @generated from field: optional bool requiresAuthorization = 16;\n */\n requiresAuthorization: boolean;\n\n /**\n * @generated from field: optional bool shouldForceRemoteControlabillity = 17;\n */\n shouldForceRemoteControlabillity: boolean;\n\n /**\n * @generated from field: optional AVOutputDeviceSourceInfo sourceInfo = 18;\n */\n sourceInfo?: AVOutputDeviceSourceInfo;\n\n /**\n * @generated from field: optional bool isDeviceGroupable = 19;\n */\n isDeviceGroupable: boolean;\n\n /**\n * @generated from field: optional bool canRelayCommunicationChannel = 20;\n */\n canRelayCommunicationChannel: boolean;\n\n /**\n * @generated from field: optional string logicalDeviceID = 21;\n */\n logicalDeviceID: string;\n\n /**\n * @generated from field: optional bool isProxyGroupPlayer = 22;\n */\n isProxyGroupPlayer: boolean;\n\n /**\n * @generated from field: optional string firmwareVersion = 23;\n */\n firmwareVersion: string;\n\n /**\n * @generated from field: optional float volume = 24;\n */\n volume: number;\n\n /**\n * @generated from field: optional bool isVolumeControlAvailable = 25;\n */\n isVolumeControlAvailable: boolean;\n\n /**\n * @generated from field: optional bool canAccessAppleMusic = 26;\n */\n canAccessAppleMusic: boolean;\n\n /**\n * @generated from field: optional bool canAccessiCloudMusicLibrary = 27;\n */\n canAccessiCloudMusicLibrary: boolean;\n\n /**\n * @generated from field: optional bool groupContainsGroupLeader = 28;\n */\n groupContainsGroupLeader: boolean;\n\n /**\n * @generated from field: optional bool supportsBufferedAirPlay = 29;\n */\n supportsBufferedAirPlay: boolean;\n\n /**\n * @generated from field: optional bool canPlayEncryptedProgressiveDownloadAssets = 30;\n */\n canPlayEncryptedProgressiveDownloadAssets: boolean;\n\n /**\n * @generated from field: optional bool canFetchMediaDataFromSender = 31;\n */\n canFetchMediaDataFromSender: boolean;\n\n /**\n * @generated from field: optional bool resentsOptimizedUserInterfaceWhenPlayingFetchedAudioOnlyAssets = 32;\n */\n resentsOptimizedUserInterfaceWhenPlayingFetchedAudioOnlyAssets: boolean;\n\n /**\n * @generated from field: optional bool isAirPlayReceiverSessionActive = 33;\n */\n isAirPlayReceiverSessionActive: boolean;\n\n /**\n * @generated from field: optional string parentGroupIdentifier = 34;\n */\n parentGroupIdentifier: string;\n\n /**\n * @generated from field: optional bool parentGroupContainsDiscoverableLeader = 35;\n */\n parentGroupContainsDiscoverableLeader: boolean;\n\n /**\n * @generated from field: optional bool isAddedToHomeKit = 36;\n */\n isAddedToHomeKit: boolean;\n\n /**\n * @generated from field: optional int32 volumeCapabilities = 37;\n */\n volumeCapabilities: number;\n\n /**\n * @generated from field: optional string bluetoothID = 38;\n */\n bluetoothID: string;\n\n /**\n * @generated from field: optional bool supportsHAP = 39;\n */\n supportsHAP: boolean;\n\n /**\n * @generated from field: optional bool usingJSONProtocol = 40;\n */\n usingJSONProtocol: boolean;\n\n /**\n * @generated from field: repeated AVOutputDeviceDescriptor clusterCompositions = 41;\n */\n clusterCompositions: AVOutputDeviceDescriptor[];\n\n /**\n * @generated from field: optional uint32 clusterType = 42;\n */\n clusterType: number;\n\n /**\n * @generated from field: optional string primaryUID = 43;\n */\n primaryUID: string;\n\n /**\n * @generated from field: optional uint32 configuredClusterSize = 44;\n */\n configuredClusterSize: number;\n\n /**\n * @generated from field: optional bool supportsRapportRemoteControlTransport = 45;\n */\n supportsRapportRemoteControlTransport: boolean;\n\n /**\n * @generated from field: optional string currentBluetoothListeningMode = 46;\n */\n currentBluetoothListeningMode: string;\n\n /**\n * @generated from field: repeated string availableBluetoothListeningModes = 47;\n */\n availableBluetoothListeningModes: string[];\n\n /**\n * @generated from field: repeated bool supportsMultiplayer = 48;\n */\n supportsMultiplayer: boolean[];\n\n /**\n * @generated from field: optional bool producesLowFidelityAudio = 49;\n */\n producesLowFidelityAudio: boolean;\n\n /**\n * @generated from field: optional int32 hostDeviceClass = 50;\n */\n hostDeviceClass: number;\n\n /**\n * @generated from field: optional string airPlayGroupID = 51;\n */\n airPlayGroupID: string;\n\n /**\n * @generated from field: optional bool supportsSharePlayHandoff = 52;\n */\n supportsSharePlayHandoff: boolean;\n\n /**\n * @generated from field: optional float distance = 53;\n */\n distance: number;\n\n /**\n * @generated from field: optional bool discoveredOnSameInfra = 54;\n */\n discoveredOnSameInfra: boolean;\n\n /**\n * @generated from field: repeated AVOutputDeviceDescriptor activatedClusterMembers = 55;\n */\n activatedClusterMembers: AVOutputDeviceDescriptor[];\n\n /**\n * @generated from field: repeated bool pickable = 56;\n */\n pickable: boolean[];\n\n /**\n * @generated from field: optional int32 transportType = 57;\n */\n transportType: number;\n\n /**\n * @generated from field: optional string clusterID = 58;\n */\n clusterID: string;\n\n /**\n * @generated from field: optional bool isClusterLeader = 59;\n */\n isClusterLeader: boolean;\n\n /**\n * @generated from field: optional bool isAppleAccessory = 60;\n */\n isAppleAccessory: boolean;\n\n /**\n * @generated from field: optional string parentUniqueIdentifier = 61;\n */\n parentUniqueIdentifier: string;\n\n /**\n * @generated from field: optional string roomID = 62;\n */\n roomID: string;\n\n /**\n * @generated from field: optional string roomName = 63;\n */\n roomName: string;\n\n /**\n * @generated from field: repeated AVOutputDeviceDescriptor allClusterMembers = 64;\n */\n allClusterMembers: AVOutputDeviceDescriptor[];\n\n /**\n * @generated from field: optional bool engageOnClusterActivate = 67;\n */\n engageOnClusterActivate: boolean;\n};\n\n/**\n * Describes the message AVOutputDeviceDescriptor.\n * Use `create(AVOutputDeviceDescriptorSchema)` to create a new message.\n */\nexport const AVOutputDeviceDescriptorSchema: GenMessage<AVOutputDeviceDescriptor> = /*@__PURE__*/\n messageDesc(file_UpdateOutputDeviceMessage, 1);\n\n/**\n * @generated from message UpdateOutputDeviceMessage\n */\nexport type UpdateOutputDeviceMessage = Message<\"UpdateOutputDeviceMessage\"> & {\n /**\n * @generated from field: repeated AVOutputDeviceDescriptor outputDevices = 1;\n */\n outputDevices: AVOutputDeviceDescriptor[];\n\n /**\n * @generated from field: optional string endpointUID = 2;\n */\n endpointUID: string;\n\n /**\n * @generated from field: repeated AVOutputDeviceDescriptor clusterAwareOutputDevices = 3;\n */\n clusterAwareOutputDevices: AVOutputDeviceDescriptor[];\n};\n\n/**\n * Describes the message UpdateOutputDeviceMessage.\n * Use `create(UpdateOutputDeviceMessageSchema)` to create a new message.\n */\nexport const UpdateOutputDeviceMessageSchema: GenMessage<UpdateOutputDeviceMessage> = /*@__PURE__*/\n messageDesc(file_UpdateOutputDeviceMessage, 2);\n\n/**\n * @generated from extension: optional UpdateOutputDeviceMessage updateOutputDeviceMessage = 69;\n */\nexport const updateOutputDeviceMessage: GenExtension<ProtocolMessage, UpdateOutputDeviceMessage> = /*@__PURE__*/\n extDesc(file_UpdateOutputDeviceMessage, 0);\n\n",
|
|
108
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file UpdatePlayerPath.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { PlayerPath } from \"./PlayerPath_pb\";\nimport { file_PlayerPath } from \"./PlayerPath_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file UpdatePlayerPath.proto.\n */\nexport const file_UpdatePlayerPath: GenFile = /*@__PURE__*/\n fileDesc(\"ChZVcGRhdGVQbGF5ZXJQYXRoLnByb3RvIjYKE1VwZGF0ZVBsYXllck1lc3NhZ2USHwoKcGxheWVyUGF0aBgBIAEoCzILLlBsYXllclBhdGg6WAoTdXBkYXRlUGxheWVyTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRg+IAEoCzIULlVwZGF0ZVBsYXllck1lc3NhZ2VSE3VwZGF0ZVBsYXllck1lc3NhZ2U\", [file_ProtocolMessage, file_PlayerPath]);\n\n/**\n * @generated from message UpdatePlayerMessage\n */\nexport type UpdatePlayerMessage = Message<\"UpdatePlayerMessage\"> & {\n /**\n * @generated from field: optional PlayerPath playerPath = 1;\n */\n playerPath?: PlayerPath;\n};\n\n/**\n * Describes the message UpdatePlayerMessage.\n * Use `create(UpdatePlayerMessageSchema)` to create a new message.\n */\nexport const UpdatePlayerMessageSchema: GenMessage<UpdatePlayerMessage> = /*@__PURE__*/\n messageDesc(file_UpdatePlayerPath, 0);\n\n/**\n * @generated from extension: optional UpdatePlayerMessage updatePlayerMessage = 62;\n */\nexport const updatePlayerMessage: GenExtension<ProtocolMessage, UpdatePlayerMessage> = /*@__PURE__*/\n extDesc(file_UpdatePlayerPath, 0);\n\n",
|
|
109
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file VolumeControlAvailabilityMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenEnum, GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { enumDesc, extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file VolumeControlAvailabilityMessage.proto.\n */\nexport const file_VolumeControlAvailabilityMessage: GenFile = /*@__PURE__*/\n fileDesc(\"CiZWb2x1bWVDb250cm9sQXZhaWxhYmlsaXR5TWVzc2FnZS5wcm90byJMChJWb2x1bWVDYXBhYmlsaXRpZXMiNgoERW51bRIICgROb25lEAASDAoIUmVsYXRpdmUQARIMCghBYnNvbHV0ZRACEggKBEJvdGgQAyJ4CiBWb2x1bWVDb250cm9sQXZhaWxhYmlsaXR5TWVzc2FnZRIeChZ2b2x1bWVDb250cm9sQXZhaWxhYmxlGAEgASgIEjQKEnZvbHVtZUNhcGFiaWxpdGllcxgCIAEoDjIYLlZvbHVtZUNhcGFiaWxpdGllcy5FbnVtOn8KIHZvbHVtZUNvbnRyb2xBdmFpbGFiaWxpdHlNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGBYgASgLMiEuVm9sdW1lQ29udHJvbEF2YWlsYWJpbGl0eU1lc3NhZ2VSIHZvbHVtZUNvbnRyb2xBdmFpbGFiaWxpdHlNZXNzYWdl\", [file_ProtocolMessage]);\n\n/**\n * @generated from message VolumeCapabilities\n */\nexport type VolumeCapabilities = Message<\"VolumeCapabilities\"> & {\n};\n\n/**\n * Describes the message VolumeCapabilities.\n * Use `create(VolumeCapabilitiesSchema)` to create a new message.\n */\nexport const VolumeCapabilitiesSchema: GenMessage<VolumeCapabilities> = /*@__PURE__*/\n messageDesc(file_VolumeControlAvailabilityMessage, 0);\n\n/**\n * This is really a bitmap but protobuf has no type for that, so lets just add a \"Both\"\n * option since only two values exist anyway\n *\n * @generated from enum VolumeCapabilities.Enum\n */\nexport enum VolumeCapabilities_Enum {\n /**\n * @generated from enum value: None = 0;\n */\n None = 0,\n\n /**\n * @generated from enum value: Relative = 1;\n */\n Relative = 1,\n\n /**\n * @generated from enum value: Absolute = 2;\n */\n Absolute = 2,\n\n /**\n * @generated from enum value: Both = 3;\n */\n Both = 3,\n}\n\n/**\n * Describes the enum VolumeCapabilities.Enum.\n */\nexport const VolumeCapabilities_EnumSchema: GenEnum<VolumeCapabilities_Enum> = /*@__PURE__*/\n enumDesc(file_VolumeControlAvailabilityMessage, 0, 0);\n\n/**\n * @generated from message VolumeControlAvailabilityMessage\n */\nexport type VolumeControlAvailabilityMessage = Message<\"VolumeControlAvailabilityMessage\"> & {\n /**\n * @generated from field: optional bool volumeControlAvailable = 1;\n */\n volumeControlAvailable: boolean;\n\n /**\n * @generated from field: optional VolumeCapabilities.Enum volumeCapabilities = 2;\n */\n volumeCapabilities: VolumeCapabilities_Enum;\n};\n\n/**\n * Describes the message VolumeControlAvailabilityMessage.\n * Use `create(VolumeControlAvailabilityMessageSchema)` to create a new message.\n */\nexport const VolumeControlAvailabilityMessageSchema: GenMessage<VolumeControlAvailabilityMessage> = /*@__PURE__*/\n messageDesc(file_VolumeControlAvailabilityMessage, 1);\n\n/**\n * @generated from extension: optional VolumeControlAvailabilityMessage volumeControlAvailabilityMessage = 22;\n */\nexport const volumeControlAvailabilityMessage: GenExtension<ProtocolMessage, VolumeControlAvailabilityMessage> = /*@__PURE__*/\n extDesc(file_VolumeControlAvailabilityMessage, 0);\n\n",
|
|
110
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file VolumeControlCapabilitiesDidChangeMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { VolumeControlAvailabilityMessage } from \"./VolumeControlAvailabilityMessage_pb\";\nimport { file_VolumeControlAvailabilityMessage } from \"./VolumeControlAvailabilityMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file VolumeControlCapabilitiesDidChangeMessage.proto.\n */\nexport const file_VolumeControlCapabilitiesDidChangeMessage: GenFile = /*@__PURE__*/\n fileDesc(\"Ci9Wb2x1bWVDb250cm9sQ2FwYWJpbGl0aWVzRGlkQ2hhbmdlTWVzc2FnZS5wcm90byKSAQopVm9sdW1lQ29udHJvbENhcGFiaWxpdGllc0RpZENoYW5nZU1lc3NhZ2USNwoMY2FwYWJpbGl0aWVzGAEgASgLMiEuVm9sdW1lQ29udHJvbEF2YWlsYWJpbGl0eU1lc3NhZ2USEwoLZW5kcG9pbnRVSUQYAyABKAkSFwoPb3V0cHV0RGV2aWNlVUlEGAQgASgJOpoBCil2b2x1bWVDb250cm9sQ2FwYWJpbGl0aWVzRGlkQ2hhbmdlTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRhEIAEoCzIqLlZvbHVtZUNvbnRyb2xDYXBhYmlsaXRpZXNEaWRDaGFuZ2VNZXNzYWdlUil2b2x1bWVDb250cm9sQ2FwYWJpbGl0aWVzRGlkQ2hhbmdlTWVzc2FnZQ\", [file_ProtocolMessage, file_VolumeControlAvailabilityMessage]);\n\n/**\n * @generated from message VolumeControlCapabilitiesDidChangeMessage\n */\nexport type VolumeControlCapabilitiesDidChangeMessage = Message<\"VolumeControlCapabilitiesDidChangeMessage\"> & {\n /**\n * @generated from field: optional VolumeControlAvailabilityMessage capabilities = 1;\n */\n capabilities?: VolumeControlAvailabilityMessage;\n\n /**\n * @generated from field: optional string endpointUID = 3;\n */\n endpointUID: string;\n\n /**\n * @generated from field: optional string outputDeviceUID = 4;\n */\n outputDeviceUID: string;\n};\n\n/**\n * Describes the message VolumeControlCapabilitiesDidChangeMessage.\n * Use `create(VolumeControlCapabilitiesDidChangeMessageSchema)` to create a new message.\n */\nexport const VolumeControlCapabilitiesDidChangeMessageSchema: GenMessage<VolumeControlCapabilitiesDidChangeMessage> = /*@__PURE__*/\n messageDesc(file_VolumeControlCapabilitiesDidChangeMessage, 0);\n\n/**\n * @generated from extension: optional VolumeControlCapabilitiesDidChangeMessage volumeControlCapabilitiesDidChangeMessage = 68;\n */\nexport const volumeControlCapabilitiesDidChangeMessage: GenExtension<ProtocolMessage, VolumeControlCapabilitiesDidChangeMessage> = /*@__PURE__*/\n extDesc(file_VolumeControlCapabilitiesDidChangeMessage, 0);\n\n",
|
|
111
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file VolumeDidChangeMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file VolumeDidChangeMessage.proto.\n */\nexport const file_VolumeDidChangeMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChxWb2x1bWVEaWRDaGFuZ2VNZXNzYWdlLnByb3RvIlYKFlZvbHVtZURpZENoYW5nZU1lc3NhZ2USDgoGdm9sdW1lGAEgASgCEhMKC2VuZHBvaW50VUlEGAIgASgJEhcKD291dHB1dERldmljZVVJRBgDIAEoCTphChZ2b2x1bWVEaWRDaGFuZ2VNZXNzYWdlEhAuUHJvdG9jb2xNZXNzYWdlGDggASgLMhcuVm9sdW1lRGlkQ2hhbmdlTWVzc2FnZVIWdm9sdW1lRGlkQ2hhbmdlTWVzc2FnZQ\", [file_ProtocolMessage]);\n\n/**\n * @generated from message VolumeDidChangeMessage\n */\nexport type VolumeDidChangeMessage = Message<\"VolumeDidChangeMessage\"> & {\n /**\n * @generated from field: optional float volume = 1;\n */\n volume: number;\n\n /**\n * @generated from field: optional string endpointUID = 2;\n */\n endpointUID: string;\n\n /**\n * @generated from field: optional string outputDeviceUID = 3;\n */\n outputDeviceUID: string;\n};\n\n/**\n * Describes the message VolumeDidChangeMessage.\n * Use `create(VolumeDidChangeMessageSchema)` to create a new message.\n */\nexport const VolumeDidChangeMessageSchema: GenMessage<VolumeDidChangeMessage> = /*@__PURE__*/\n messageDesc(file_VolumeDidChangeMessage, 0);\n\n/**\n * @generated from extension: optional VolumeDidChangeMessage volumeDidChangeMessage = 56;\n */\nexport const volumeDidChangeMessage: GenExtension<ProtocolMessage, VolumeDidChangeMessage> = /*@__PURE__*/\n extDesc(file_VolumeDidChangeMessage, 0);\n\n",
|
|
112
|
+
"// @generated by protoc-gen-es v2.10.0 with parameter \"target=ts\"\n// @generated from file WakeDeviceMessage.proto (syntax proto2)\n/* eslint-disable */\n\nimport type { GenExtension, GenFile, GenMessage } from \"@bufbuild/protobuf/codegenv2\";\nimport { extDesc, fileDesc, messageDesc } from \"@bufbuild/protobuf/codegenv2\";\nimport type { ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport { file_ProtocolMessage } from \"./ProtocolMessage_pb\";\nimport type { Message } from \"@bufbuild/protobuf\";\n\n/**\n * Describes the file WakeDeviceMessage.proto.\n */\nexport const file_WakeDeviceMessage: GenFile = /*@__PURE__*/\n fileDesc(\"ChdXYWtlRGV2aWNlTWVzc2FnZS5wcm90byITChFXYWtlRGV2aWNlTWVzc2FnZTpSChF3YWtlRGV2aWNlTWVzc2FnZRIQLlByb3RvY29sTWVzc2FnZRgtIAEoCzISLldha2VEZXZpY2VNZXNzYWdlUhF3YWtlRGV2aWNlTWVzc2FnZQ\", [file_ProtocolMessage]);\n\n/**\n * @generated from message WakeDeviceMessage\n */\nexport type WakeDeviceMessage = Message<\"WakeDeviceMessage\"> & {\n};\n\n/**\n * Describes the message WakeDeviceMessage.\n * Use `create(WakeDeviceMessageSchema)` to create a new message.\n */\nexport const WakeDeviceMessageSchema: GenMessage<WakeDeviceMessage> = /*@__PURE__*/\n messageDesc(file_WakeDeviceMessage, 0);\n\n/**\n * @generated from extension: optional WakeDeviceMessage wakeDeviceMessage = 45;\n */\nexport const wakeDeviceMessage: GenExtension<ProtocolMessage, WakeDeviceMessage> = /*@__PURE__*/\n extDesc(file_WakeDeviceMessage, 0);\n\n",
|
|
113
|
+
"import { uuid } from '@basmilius/apple-common';\nimport { create, setExtension } from '@bufbuild/protobuf';\nimport * as Proto from '@/proto';\n\nexport default class {\n clientUpdatesConfig(): Proto.ProtocolMessage {\n const protocolMessage = this.protocol(Proto.ProtocolMessage_Type.CLIENT_UPDATES_CONFIG_MESSAGE);\n const message = create(Proto.ClientUpdatesConfigMessageSchema, {\n artworkUpdates: true,\n nowPlayingUpdates: true,\n volumeUpdates: true,\n keyboardUpdates: true,\n outputDeviceUpdates: true\n });\n\n setExtension(protocolMessage, Proto.clientUpdatesConfigMessage, message);\n\n return protocolMessage;\n }\n\n deviceInfo(pairingId: Buffer): Proto.ProtocolMessage {\n const protocolMessage = this.protocol(Proto.ProtocolMessage_Type.DEVICE_INFO_MESSAGE);\n const message = create(Proto.DeviceInfoMessageSchema, {\n uniqueIdentifier: pairingId.toString(),\n name: 'iPhone van Bas',\n localizedModelName: 'iPhone',\n systemBuildVersion: '23B82',\n applicationBundleIdentifier: 'com.apple.TVRemote',\n applicationBundleVersion: '344.28',\n protocolVersion: 1,\n lastSupportedMessageType: 108,\n supportsSystemPairing: true,\n allowsPairing: true,\n systemMediaApplication: 'com.apple.TVMusic',\n supportsACL: true,\n supportsSharedQueue: true,\n supportsExtendedMotion: true,\n sharedQueueVersion: 2,\n deviceClass: 1,\n logicalDeviceCount: 1\n });\n\n setExtension(protocolMessage, Proto.deviceInfoMessage, message);\n\n return protocolMessage;\n }\n\n protocol(type: Proto.ProtocolMessage_Type, errorCode: Proto.ErrorCode_Enum = Proto.ErrorCode_Enum.NoError): Proto.ProtocolMessage {\n return create(Proto.ProtocolMessageSchema, {\n type,\n errorCode,\n identifier: uuid().toUpperCase(),\n uniqueIdentifier: uuid().toUpperCase()\n });\n }\n\n sendButtonEvent(usagePage: number, usage: number, buttonDown: boolean): Proto.ProtocolMessage {\n const protocolMessage = this.protocol(Proto.ProtocolMessage_Type.SEND_BUTTON_EVENT_MESSAGE);\n const message = create(Proto.SendButtonEventMessageSchema, {\n usagePage,\n usage,\n buttonDown\n });\n\n setExtension(protocolMessage, Proto.sendButtonEventMessage, message);\n\n return protocolMessage;\n }\n\n sendCommand(command: Proto.Command, options?: Proto.CommandOptions): Proto.ProtocolMessage {\n const protocolMessage = this.protocol(Proto.ProtocolMessage_Type.SEND_COMMAND_MESSAGE);\n const message = create(Proto.SendCommandMessageSchema, {\n command,\n options\n });\n\n setExtension(protocolMessage, Proto.sendCommandMessage, message);\n\n return protocolMessage;\n }\n\n setConnectionState(state: Proto.SetConnectionStateMessage_ConnectionState = Proto.SetConnectionStateMessage_ConnectionState.Connected): Proto.ProtocolMessage {\n const protocolMessage = this.protocol(Proto.ProtocolMessage_Type.SET_CONNECTION_STATE_MESSAGE);\n const message = create(Proto.SetConnectionStateMessageSchema, {\n state\n });\n\n setExtension(protocolMessage, Proto.setConnectionStateMessage, message);\n\n return protocolMessage;\n }\n}\n",
|
|
114
|
+
"import { Socket } from 'node:net';\nimport { BaseSocket, debug, decryptChacha20, encryptChacha20 } from '@basmilius/apple-common';\n\nexport default class AirPlayStream extends BaseSocket {\n get isEncrypted(): boolean {\n return !!this.#readKey && !!this.#writeKey;\n }\n\n get socket(): Socket {\n return this.#socket;\n }\n\n get readKey(): Buffer {\n return this.#readKey;\n }\n\n get writeKey(): Buffer {\n return this.#writeKey;\n }\n\n readonly #socket: Socket;\n #buffer: Buffer = Buffer.alloc(0);\n #readCount: number;\n #readKey?: Buffer;\n #writeCount: number;\n #writeKey?: Buffer;\n\n constructor(address: string, port: number) {\n super(address, port);\n\n this.onClose = this.onClose.bind(this);\n this.onConnect = this.onConnect.bind(this);\n this.onData = this.onData.bind(this);\n this.onEnd = this.onEnd.bind(this);\n this.onError = this.onError.bind(this);\n\n this.#socket = new Socket();\n this.#socket.on('close', this.onClose);\n this.#socket.on('connect', this.onConnect);\n this.#socket.on('data', this.onData);\n this.#socket.on('end', this.onEnd);\n this.#socket.on('error', this.onError);\n }\n\n async connect(): Promise<void> {\n debug(`Connecting to ${this.address}:${this.port}...`);\n\n return await new Promise(resolve => {\n this.#socket.connect({\n host: this.address,\n port: this.port,\n keepAlive: true\n }, resolve);\n });\n }\n\n async disconnect(): Promise<void> {\n this.#socket.destroy();\n }\n\n async enableEncryption(readKey: Buffer, writeKey: Buffer): Promise<void> {\n this.#readKey = readKey;\n this.#writeKey = writeKey;\n this.#readCount = 0;\n this.#writeCount = 0;\n }\n\n async decrypt(data: Buffer): Promise<Buffer> {\n if (this.#buffer) {\n data = Buffer.concat([this.#buffer, data]);\n this.#buffer = undefined;\n }\n\n let result = Buffer.alloc(0);\n let offset = 0;\n\n while (offset + 2 <= data.length) {\n const length = data.readUInt16LE(offset);\n\n const totalChunkLength = 2 + length + 16;\n\n if (offset + totalChunkLength > data.length) {\n this.#buffer = data.subarray(offset);\n break;\n }\n\n const aad = data.subarray(offset, offset + 2);\n const ciphertext = data.subarray(offset + 2, offset + 2 + length);\n const authTag = data.subarray(offset + 2 + length, offset + 2 + length + 16);\n\n const nonce = Buffer.alloc(12);\n nonce.writeBigUInt64LE(BigInt(this.#readCount++), 4);\n\n const plaintext = decryptChacha20(\n this.#readKey,\n nonce,\n aad,\n ciphertext,\n authTag\n );\n\n result = Buffer.concat([result, plaintext]);\n offset += totalChunkLength;\n }\n\n return result;\n }\n\n async encrypt(data: Buffer): Promise<Buffer> {\n const total = data.length;\n let result = Buffer.alloc(0);\n\n for (let offset = 0; offset < total;) {\n const length = Math.min(total - offset, 0x400);\n const leLength = Buffer.alloc(2);\n leLength.writeUInt16LE(length, 0);\n\n const nonce = Buffer.alloc(12);\n nonce.writeBigUInt64LE(BigInt(this.#writeCount++), 4);\n\n const encrypted = encryptChacha20(\n this.#writeKey,\n nonce,\n leLength,\n data.subarray(offset, offset + length)\n );\n\n offset += length;\n result = Buffer.concat([result, leLength, encrypted.ciphertext, encrypted.authTag]);\n }\n\n return result;\n }\n\n async decryptRaw(data: Buffer): Promise<Buffer> {\n if (this.#buffer) {\n data = Buffer.concat([this.#buffer, data]);\n this.#buffer = undefined;\n }\n\n let result = Buffer.alloc(0);\n let offset = 0;\n\n while (offset + 2 <= data.length) {\n const length = data.readUInt16LE(offset);\n\n const totalChunkLength = 2 + length + 16;\n\n if (offset + totalChunkLength > data.length) {\n this.#buffer = data.subarray(offset);\n break;\n }\n\n const aad = data.subarray(offset, offset + 2);\n const ciphertext = data.subarray(offset + 2, offset + 2 + length);\n const authTag = data.subarray(offset + 2 + length, offset + 2 + length + 16);\n\n const nonce = Buffer.alloc(12);\n nonce.writeBigUInt64LE(BigInt(this.#readCount++), 4);\n\n const plaintext = decryptChacha20(\n this.#readKey,\n nonce,\n aad,\n ciphertext,\n authTag\n );\n\n result = Buffer.concat([result, plaintext]);\n offset += totalChunkLength;\n }\n\n return result;\n }\n\n async encryptRaw(data: Buffer): Promise<Buffer> {\n const FRAME_LENGTH = 1024;\n const parts: Buffer[] = [];\n\n for (let offset = 0; offset < data.length;) {\n const frame = data.subarray(offset, offset + FRAME_LENGTH);\n offset += frame.length;\n\n const leLength = Buffer.alloc(2);\n leLength.writeUInt16LE(frame.length, 0);\n\n const nonce = Buffer.alloc(12);\n nonce.writeBigUInt64LE(BigInt(this.#writeCount++), 4);\n\n const encrypted = encryptChacha20(\n this.#writeKey, // same key for all frames\n nonce, // sequential nonce\n leLength, // 2-byte AAD\n frame // plaintext\n );\n\n parts.push(leLength, encrypted.ciphertext, encrypted.authTag);\n }\n\n return Buffer.concat(parts);\n }\n\n async onClose(): Promise<void> {\n debug(`Connection closed from ${this.address}:${this.port}`);\n }\n\n async onConnect(): Promise<void> {\n debug(`Connected to ${this.address}:${this.port}`);\n }\n\n async onData(buffer: Buffer): Promise<void> {\n debug('Data frame received', buffer.toString());\n }\n\n async onEnd(): Promise<void> {\n debug('Connection ended');\n }\n\n async onError(err: Error): Promise<void> {\n debug('Error received', err);\n }\n}\n",
|
|
115
|
+
"import { debug, decryptChacha20, encryptChacha20, hkdf, parseBinaryPlist, serializeBinaryPlist } from '@basmilius/apple-common';\nimport { fromBinary, getExtension, toBinary } from '@bufbuild/protobuf';\nimport { randomInt32 } from './utils';\nimport AirPlayDataStreamMessages from './dataStreamMessages';\nimport AirPlayStream from './stream';\nimport * as Proto from '@/proto';\nimport { ProtocolMessage_Type } from '@/proto';\n\nconst DATA_HEADER_LENGTH = 32; // 4 + 12 + 4 + 8 + 4\n\nexport default class AirPlayDataStream extends AirPlayStream {\n get messages(): AirPlayDataStreamMessages {\n return this.#messages;\n }\n\n readonly #messages: AirPlayDataStreamMessages;\n #buffer: Buffer = Buffer.alloc(0);\n #seqno: bigint;\n #readCount: number;\n #writeCount: number;\n #handler?: [Function, Function];\n\n constructor(address: string, port: number) {\n super(address, port);\n\n this.#messages = new AirPlayDataStreamMessages();\n this.#seqno = 0x100000000n + BigInt(randomInt32());\n this.#writeCount = 0;\n }\n\n async exchange(message: Proto.ProtocolMessage): Promise<Proto.ProtocolMessage> {\n return new Promise(async (resolve, reject) => {\n this.#handler = [resolve, reject];\n await this.send(message);\n });\n }\n\n async reply(seqno: bigint): Promise<void> {\n const rply = buildReply(seqno);\n\n debug('Sending reply.');\n this.socket.write(await this.#encrypt(rply));\n }\n\n async send(message: Proto.ProtocolMessage): Promise<void> {\n const bytes = toBinary(Proto.ProtocolMessageSchema, message, {writeUnknownFields: true});\n const lenPrefix = Buffer.from(encodeVarint(bytes.length));\n const pbPayload = Buffer.concat([lenPrefix, Buffer.from(bytes)]);\n\n const plistPayload = Buffer.from(\n serializeBinaryPlist({\n params: {\n data: pbPayload.buffer.slice(pbPayload.byteOffset, pbPayload.byteOffset + pbPayload.byteLength)\n }\n } as any)\n );\n\n const header = buildHeader(DATA_HEADER_LENGTH + plistPayload.byteLength, this.#seqno++);\n const frame = Buffer.concat([header, plistPayload]);\n const encrypted = await this.#encrypt(frame);\n\n debug('Sending data stream message', message);\n\n this.socket.write(encrypted);\n }\n\n async setup(sharedSecret: Buffer, seed: bigint): Promise<void> {\n const readKey = hkdf({\n hash: 'sha512',\n key: sharedSecret,\n length: 32,\n salt: Buffer.from(`DataStream-Salt${seed}`),\n info: Buffer.from('DataStream-Input-Encryption-Key')\n });\n\n const writeKey = hkdf({\n hash: 'sha512',\n key: sharedSecret,\n length: 32,\n salt: Buffer.from(`DataStream-Salt${seed}`),\n info: Buffer.from('DataStream-Output-Encryption-Key')\n });\n\n await this.enableEncryption(readKey, writeKey);\n }\n\n async onData(buffer: Buffer): Promise<void> {\n try {\n this.#buffer = Buffer.concat([this.#buffer, buffer]);\n this.#buffer = await this.#decrypt(this.#buffer);\n\n while (this.#buffer.byteLength > DATA_HEADER_LENGTH) {\n const header = this.#buffer.subarray(0, DATA_HEADER_LENGTH);\n const totalLength = header.readUint32BE();\n\n if (this.#buffer.byteLength < totalLength) {\n debug(`Not enough data yet, waiting on the next frame.. needed=${totalLength} available=${this.#buffer.byteLength} receivedLength=${buffer.byteLength}`);\n return;\n }\n\n const frame = this.#buffer.subarray(DATA_HEADER_LENGTH, totalLength);\n const plist = parseBinaryPlist(Buffer.from(frame).buffer) as any;\n const command = header.toString('ascii', 4, 8);\n\n debug('Raw data received', header.toString(), frame.toString());\n debug(`Should read ${totalLength} bytes, ${this.#buffer.byteLength} available.`);\n\n this.#buffer = this.#buffer.subarray(totalLength);\n\n if (!plist || !plist.params || !plist.params.data) {\n if (command === 'rply') {\n debug('Got reply...');\n }\n\n if (command === 'sync') {\n await this.reply(parseHeaderSeqno(header));\n }\n\n if (this.#handler) {\n const [resolve] = this.#handler;\n this.#handler = undefined;\n\n resolve();\n }\n\n continue;\n }\n\n const content = Buffer.from(plist.params.data);\n\n for (const message of await parseMessages(content)) {\n await this.#handleMessage(message);\n }\n\n if (command === 'sync') {\n await this.reply(parseHeaderSeqno(header));\n }\n }\n } catch (err) {\n debug('Error in onData', err);\n }\n }\n\n async #onDeviceInfoMessage(message: Proto.DeviceInfoMessage): Promise<void> {\n debug('Connected to device', message.name);\n\n this.dispatchEvent(new CustomEvent('deviceInfo', {detail: message}));\n }\n\n async #onOriginClientPropertiesMessage(message: Proto.OriginClientPropertiesMessage): Promise<void> {\n debug('Origin client update properties', message);\n\n this.dispatchEvent(new CustomEvent('originClientProperties', {detail: message}));\n }\n\n async #onPlayerClientPropertiesMessage(message: Proto.PlayerClientPropertiesMessage): Promise<void> {\n debug('Player client properties', message);\n\n this.dispatchEvent(new CustomEvent('playerClientProperties', {detail: message}));\n }\n\n async #onSetDefaultSupportedCommandsMessage(message: Proto.SetDefaultSupportedCommandsMessage): Promise<void> {\n debug('Set default supported commands', message);\n\n this.dispatchEvent(new CustomEvent('setDefaultSupportedCommands', {detail: message}));\n }\n\n async #onSetNowPlayingClientMessage(message: Proto.SetNowPlayingClientMessage): Promise<void> {\n debug('Set now playing client', message);\n\n this.dispatchEvent(new CustomEvent('nowPlayingClient', {detail: message}));\n }\n\n async #onSetNowPlayingPlayerMessage(message: Proto.SetNowPlayingPlayerMessage): Promise<void> {\n debug('Set now playing player', message);\n\n this.dispatchEvent(new CustomEvent('nowPlayingPlayer', {detail: message}));\n }\n\n async #onSetStateMessage(message: Proto.SetStateMessage): Promise<void> {\n debug('Set state', message);\n\n this.dispatchEvent(new CustomEvent('setState', {detail: message}));\n }\n\n async #onUpdateClientMessage(message: Proto.UpdateClientMessage): Promise<void> {\n debug('Update client', message);\n\n this.dispatchEvent(new CustomEvent('updateClient', {detail: message}));\n }\n\n async #onUpdatePlayerMessage(message: Proto.UpdatePlayerMessage): Promise<void> {\n debug('Update player', message);\n\n this.dispatchEvent(new CustomEvent('updatePlayer', {detail: message}));\n }\n\n async #onUpdateOutputDeviceMessage(message: Proto.UpdateOutputDeviceMessage): Promise<void> {\n debug('Update output device', message);\n\n this.dispatchEvent(new CustomEvent('updateOutputDevice', {detail: message}));\n }\n\n async #onVolumeControlAvailabilityMessage(message: Proto.VolumeControlAvailabilityMessage): Promise<void> {\n debug('Volume control availability', message);\n\n this.dispatchEvent(new CustomEvent('volumeControlAvailability', {detail: message}));\n }\n\n async #onVolumeControlCapabilitiesDidChangeMessage(message: Proto.VolumeControlCapabilitiesDidChangeMessage): Promise<void> {\n debug('Volume control capabilities did change', message);\n\n this.dispatchEvent(new CustomEvent('volumeControlCapabilitiesDidChange', {detail: message}));\n }\n\n async #onVolumeDidChangeMessage(message: Proto.VolumeDidChangeMessage): Promise<void> {\n debug('VolumeDidChange message', message);\n\n this.dispatchEvent(new CustomEvent('volumeDidChange', {detail: message}));\n }\n\n async #decrypt(data: Buffer): Promise<Buffer> {\n const result: Buffer[] = [];\n let offset = 0;\n let readCount = this.#readCount ?? 0;\n\n while (offset < data.length) {\n if (offset + 2 > data.length) throw new Error('Truncated frame length');\n const frameLength = data.readUInt16LE(offset);\n offset += 2;\n\n const nonce = Buffer.alloc(12);\n nonce.writeBigUInt64LE(BigInt(readCount++), 4);\n\n const end = offset + frameLength + 16;\n if (end > data.length) {\n throw new Error(`Truncated frame end=${end} length=${data.length}`);\n }\n\n const ciphertext = data.subarray(offset, offset + frameLength);\n const authTag = data.subarray(offset + frameLength, end);\n offset = end;\n\n const plaintext = decryptChacha20(\n this.readKey,\n nonce,\n Buffer.from(Uint16Array.of(frameLength).buffer.slice(0, 2)), // same AAD = leLength\n ciphertext,\n authTag\n );\n\n result.push(plaintext);\n }\n\n this.#readCount = readCount;\n\n return Buffer.concat(result);\n }\n\n async #encrypt(data: Buffer): Promise<Buffer> {\n const FRAME_LENGTH = 1024;\n const result: Buffer[] = [];\n\n for (let offset = 0; offset < data.length;) {\n const frame = data.subarray(offset, offset + FRAME_LENGTH);\n offset += frame.length;\n\n const leLength = Buffer.alloc(2);\n leLength.writeUInt16LE(frame.length, 0);\n\n const nonce = Buffer.alloc(12);\n nonce.writeBigUInt64LE(BigInt(this.#writeCount++), 4);\n\n const encrypted = encryptChacha20(\n this.writeKey,\n nonce,\n leLength,\n frame\n );\n\n result.push(leLength, encrypted.ciphertext, encrypted.authTag);\n }\n\n return Buffer.concat(result);\n }\n\n async #handleMessage(message: Proto.ProtocolMessage): Promise<void> {\n if (this.#handler) {\n const [resolve] = this.#handler;\n this.#handler = undefined;\n\n resolve(message);\n }\n\n switch (message.type) {\n case Proto.ProtocolMessage_Type.DEVICE_INFO_MESSAGE:\n await this.#onDeviceInfoMessage(getExtension(message, Proto.deviceInfoMessage));\n break;\n\n case Proto.ProtocolMessage_Type.ORIGIN_CLIENT_PROPERTIES_MESSAGE:\n await this.#onOriginClientPropertiesMessage(getExtension(message, Proto.originClientPropertiesMessage));\n break;\n\n case Proto.ProtocolMessage_Type.PLAYER_CLIENT_PROPERTIES_MESSAGE:\n await this.#onPlayerClientPropertiesMessage(getExtension(message, Proto.playerClientPropertiesMessage));\n break;\n\n case Proto.ProtocolMessage_Type.SET_DEFAULT_SUPPORTED_COMMANDS_MESSAGE:\n await this.#onSetDefaultSupportedCommandsMessage(getExtension(message, Proto.setDefaultSupportedCommandsMessage));\n break;\n\n case Proto.ProtocolMessage_Type.SET_NOW_PLAYING_CLIENT_MESSAGE:\n await this.#onSetNowPlayingClientMessage(getExtension(message, Proto.setNowPlayingClientMessage));\n break;\n\n case Proto.ProtocolMessage_Type.SET_NOW_PLAYING_PLAYER_MESSAGE:\n await this.#onSetNowPlayingPlayerMessage(getExtension(message, Proto.setNowPlayingPlayerMessage));\n break;\n\n case Proto.ProtocolMessage_Type.SET_STATE_MESSAGE:\n await this.#onSetStateMessage(getExtension(message, Proto.setStateMessage));\n break;\n\n case Proto.ProtocolMessage_Type.UPDATE_CLIENT_MESSAGE:\n await this.#onUpdateClientMessage(getExtension(message, Proto.updateClientMessage));\n break;\n\n case Proto.ProtocolMessage_Type.UPDATE_PLAYER_MESSAGE:\n await this.#onUpdatePlayerMessage(getExtension(message, Proto.updatePlayerMessage));\n break;\n\n case Proto.ProtocolMessage_Type.UPDATE_OUTPUT_DEVICE_MESSAGE:\n await this.#onUpdateOutputDeviceMessage(getExtension(message, Proto.updateOutputDeviceMessage));\n break;\n\n case Proto.ProtocolMessage_Type.VOLUME_CONTROL_AVAILABILITY_MESSAGE:\n await this.#onVolumeControlAvailabilityMessage(getExtension(message, Proto.volumeControlAvailabilityMessage));\n break;\n\n case Proto.ProtocolMessage_Type.VOLUME_CONTROL_CAPABILITIES_DID_CHANGE_MESSAGE:\n await this.#onVolumeControlCapabilitiesDidChangeMessage(getExtension(message, Proto.volumeControlCapabilitiesDidChangeMessage));\n break;\n\n case ProtocolMessage_Type.VOLUME_DID_CHANGE_MESSAGE:\n await this.#onVolumeDidChangeMessage(getExtension(message, Proto.volumeDidChangeMessage));\n break;\n\n default:\n debug('Received unknown message.', message);\n break;\n }\n }\n}\n\nfunction buildHeader(totalSize: number, seqno: bigint): Buffer {\n const buf = Buffer.alloc(32);\n\n buf.writeUInt32BE(totalSize, 0);\n buf.write('sync', 4, 'ascii');\n buf.fill(0, 8, 16);\n buf.write('comm', 16, 'ascii');\n buf.writeBigUInt64BE(seqno, 20);\n buf.writeUInt32BE(0, 28);\n\n return buf;\n}\n\nfunction buildReply(seqno: bigint): Buffer {\n const header = Buffer.alloc(32);\n header.writeUInt32BE(0, 0); // placeholder\n header.write('rply', 4, 'ascii');\n header.fill(0, 8, 16);\n header.writeBigUInt64BE(seqno, 20);\n header.writeUInt32BE(0, 28);\n\n const plist = Buffer.from(\n serializeBinaryPlist(Buffer.alloc(0) as any)\n );\n\n const total = header.length + plist.length;\n header.writeUInt32BE(total, 0);\n\n return Buffer.concat([header, plist]);\n}\n\nfunction encodeVarint(value: number): Uint8Array {\n if (value < 0) {\n throw new RangeError('Varint only supports non-negative integers');\n }\n\n const bytes: number[] = [];\n while (value > 127) {\n bytes.push((value & 0x7f) | 0x80);\n value >>>= 7;\n }\n\n bytes.push(value);\n\n return Uint8Array.from(bytes);\n}\n\nfunction parseHeaderSeqno(header: Buffer): bigint {\n if (header.length < 28) {\n throw new Error('Header too short');\n }\n\n return header.readBigUInt64BE(20);\n}\n\nasync function parseMessages(content: Buffer): Promise<Proto.ProtocolMessage[]> {\n const messages: Proto.ProtocolMessage[] = [];\n let offset = 0;\n\n while (offset < content.length) {\n const firstByte = content[offset];\n\n if (firstByte === 0x08) {\n const message = content.subarray(offset);\n const decoded = fromBinary(Proto.ProtocolMessageSchema, message, { readUnknownFields: true });\n messages.push(decoded);\n break;\n }\n\n const [length, variantLen] = readVariant(content, offset);\n offset += variantLen;\n\n if (offset + length > content.length) {\n break;\n }\n\n const message = content.subarray(offset, offset + length);\n offset += length;\n\n const decoded = fromBinary(Proto.ProtocolMessageSchema, message, { readUnknownFields: true });\n messages.push(decoded);\n }\n\n return messages;\n}\n\nfunction readVariant(buf: Buffer, offset = 0): [number, number] {\n let result = 0;\n let shift = 0;\n let bytesRead = 0;\n\n while (true) {\n const byte = buf[offset + bytesRead++];\n result |= (byte & 0x7f) << shift;\n\n if ((byte & 0x80) === 0) {\n break;\n }\n\n shift += 7;\n }\n\n return [result, bytesRead];\n}\n",
|
|
116
|
+
"import { debug, hkdf, parseBinaryPlist } from '@basmilius/apple-common';\nimport AirPlayStream from './stream';\nimport { makeHttpRequest } from '@/protocol/utils';\nimport type { RTSPMethod } from '@/protocol/types';\n\nexport default class AirPlayEventStream extends AirPlayStream {\n #buffer: Buffer = Buffer.alloc(0);\n\n async respond(response: Response): Promise<void> {\n const body = Buffer.from(await response.arrayBuffer());\n\n const header = [];\n header.push(`RTSP/1.0 ${response.status} ${response.statusText}`);\n\n for (const [name, value] of Object.entries(response.headers)) {\n header.push(`${name}: ${value}`);\n }\n\n if (body.byteLength > 0) {\n header.push(`Content-Length: ${body.byteLength}`);\n } else {\n header.push('Content-Length: 0');\n }\n\n header.push('');\n header.push('');\n\n const headers = header.join('\\r\\n');\n let data: Buffer;\n\n if (response.body) {\n data = Buffer.concat([\n Buffer.from(headers),\n body\n ]);\n } else {\n data = Buffer.from(headers);\n }\n\n debug(data.toString());\n\n if (this.isEncrypted) {\n data = await this.encrypt(data);\n }\n\n this.socket.write(data);\n }\n\n async setup(sharedSecret: Buffer): Promise<void> {\n const readKey = hkdf({\n hash: 'sha512',\n key: sharedSecret,\n length: 32,\n salt: Buffer.from('Events-Salt'),\n info: Buffer.from('Events-Read-Encryption-Key')\n });\n\n const writeKey = hkdf({\n hash: 'sha512',\n key: sharedSecret,\n length: 32,\n salt: Buffer.from('Events-Salt'),\n info: Buffer.from('Events-Write-Encryption-Key')\n });\n\n await this.enableEncryption(writeKey, readKey);\n }\n\n async onData(buffer: Buffer): Promise<void> {\n this.#buffer = Buffer.concat([this.#buffer, buffer]);\n\n if (this.isEncrypted) {\n this.#buffer = await this.decrypt(this.#buffer);\n }\n\n // debug('Event stream received data', this.#buffer.toString());\n\n while (this.#buffer.byteLength > 0) {\n const result = makeHttpRequest(this.#buffer);\n\n if (result === null) {\n return;\n }\n\n this.#buffer = this.#buffer.subarray(result.requestLength);\n\n await this.#handle(result.method, result.path, result.headers, result.body);\n }\n }\n\n async #handle(method: RTSPMethod, path: string, headers: Record<string, string>, body: Buffer): Promise<void> {\n const key = `${method} ${path}`;\n\n debug(key);\n\n switch (key) {\n case 'POST /command':\n const data = parseBinaryPlist(Buffer.from(body).buffer) as any;\n\n debug(data);\n\n const response = new Response(null, {\n status: 200,\n statusText: 'OK',\n headers: {\n 'Audio-Latency': '0',\n 'CSeq': (headers['CSeq'] ?? 0).toString()\n }\n });\n\n await this.respond(response);\n break;\n\n default:\n debug('No handler for url', key);\n break;\n }\n }\n}\n",
|
|
117
|
+
"import { type AccessoryCredentials, type AccessoryKeys, AccessoryPair } from '@basmilius/apple-common';\nimport type AirPlay from './protocol';\nimport type AirPlayRTSP from './rtsp';\n\nexport default class AirPlayPairing {\n get internal(): AccessoryPair {\n return this.#internal;\n }\n\n get rtsp(): AirPlayRTSP {\n return this.#protocol.rtsp;\n }\n\n readonly #internal: AccessoryPair;\n readonly #protocol: AirPlay;\n #hkp: 3 | 4;\n\n constructor(protocol: AirPlay) {\n this.#internal = new AccessoryPair(this.#request.bind(this));\n this.#protocol = protocol;\n }\n\n async start(): Promise<void> {\n await this.#internal.start();\n }\n\n async pin(askPin: () => Promise<string>): Promise<AccessoryCredentials> {\n this.#hkp = 3;\n\n await this.#pinStart();\n\n return this.#internal.pin(askPin);\n }\n\n async transient(): Promise<AccessoryKeys> {\n this.#hkp = 4;\n\n await this.#pinStart();\n\n return this.#internal.transient();\n }\n\n async #pinStart(): Promise<void> {\n const response = await this.rtsp.post('/pair-pin-start', null, {\n 'Content-Type': 'application/octet-stream',\n 'X-Apple-HKP': this.#hkp.toString()\n });\n\n if (response.status !== 200) {\n throw new Error('Cannot start pairing session.');\n }\n }\n\n async #request(_: 'm1' | 'm3' | 'm5', data: Buffer): Promise<Buffer> {\n const response = await this.rtsp.post('/pair-setup', data, {\n 'Content-Type': 'application/octet-stream',\n 'X-Apple-HKP': this.#hkp.toString()\n });\n\n return Buffer.from(await response.arrayBuffer());\n }\n}\n",
|
|
118
|
+
"import { debug, HTTP_TIMEOUT } from '@basmilius/apple-common';\nimport type { RTSPMethod } from './types';\nimport { makeHttpHeader, makeHttpResponse } from './utils';\nimport AirPlayStream from './stream';\n\nexport default class AirPlayRTSP extends AirPlayStream {\n get activeRemote(): string {\n return this.#activeRemote;\n }\n\n get dacpId(): string {\n return this.#dacpId;\n }\n\n get sessionId(): string {\n return this.#sessionId;\n }\n\n readonly #activeRemote: string;\n readonly #dacpId: string;\n readonly #sessionId: string;\n #buffer: Buffer = Buffer.alloc(0);\n #cseq: number = 0;\n #requesting: boolean = false;\n #reject: Function;\n #resolve: Function;\n\n constructor(address: string, port: number) {\n super(address, port);\n\n this.#activeRemote = Math.floor(Math.random() * 2 ** 32).toString(10);\n this.#dacpId = Math.floor(Math.random() * 2 ** 64).toString(16).toUpperCase();\n this.#sessionId = Math.floor(Math.random() * 2 ** 32).toString(10);\n }\n\n async get(path: string, headers: HeadersInit = {}): Promise<Response> {\n return await this.#request('GET', path, null, headers);\n }\n\n async post(path: string, body: Buffer | string | null = null, headers: HeadersInit = {}): Promise<Response> {\n return await this.#request('POST', path, body, headers);\n }\n\n async record(path: string, headers: HeadersInit = {}): Promise<Response> {\n return await this.#request('RECORD', path, null, headers);\n }\n\n async setup(path: string, body: Buffer | string | null = null, headers: HeadersInit = {}): Promise<Response> {\n return await this.#request('SETUP', path, body, headers);\n }\n\n async onClose(): Promise<void> {\n await super.onClose();\n await this.#handle(undefined, new Error('Connection closed.'));\n }\n\n async onData(buffer: Buffer): Promise<void> {\n this.#buffer = Buffer.concat([this.#buffer, buffer]);\n\n if (this.isEncrypted) {\n this.#buffer = await this.decrypt(this.#buffer);\n }\n\n while (this.#buffer.byteLength > 0) {\n const result = makeHttpResponse(this.#buffer);\n\n if (result === null) {\n return;\n }\n\n this.#buffer = this.#buffer.subarray(result.responseLength);\n\n await this.#handle(result.response, undefined);\n }\n }\n\n async onError(err: Error): Promise<void> {\n await super.onError(err);\n await this.#handle(undefined, err);\n }\n\n async #handle(data: unknown, err?: Error): Promise<void> {\n if (err) {\n this.#reject?.(err);\n } else {\n this.#resolve?.(data);\n }\n\n this.#reject = undefined;\n this.#resolve = undefined;\n this.#requesting = false;\n }\n\n async #request(method: RTSPMethod, path: string, body: Buffer | string | null, headers: HeadersInit): Promise<Response> {\n if (this.#requesting) {\n throw new Error('Another request is currently being made.');\n }\n\n this.#requesting = true;\n\n headers['Active-Remote'] = this.activeRemote;\n headers['Client-Instance'] = this.dacpId;\n headers['DACP-ID'] = this.dacpId;\n\n let data: Buffer;\n\n if (body) {\n headers['Content-Length'] = Buffer.byteLength(body).toString();\n\n data = Buffer.concat([\n Buffer.from(makeHttpHeader(method, path, headers, this.#cseq++)),\n Buffer.from(body)\n ]);\n } else {\n headers['Content-Length'] = '0';\n\n data = Buffer.from(makeHttpHeader(method, path, headers, this.#cseq++));\n }\n\n debug(method, path);\n\n if (this.isEncrypted) {\n data = await this.encrypt(data);\n }\n\n return new Promise(async (resolve, reject) => {\n let timer: any;\n\n this.#reject = (reason: Error): void => {\n reject(reason);\n clearTimeout(timer);\n };\n\n this.#resolve = (response: Response): void => {\n resolve(response);\n clearTimeout(timer);\n };\n\n timer = setTimeout(() => reject(new Error('Request timed out')), HTTP_TIMEOUT);\n\n this.socket.write(data);\n });\n }\n}\n",
|
|
119
|
+
"import { type AccessoryCredentials, type AccessoryKeys, AccessoryVerify, hkdf } from '@basmilius/apple-common';\nimport type AirPlay from './protocol';\nimport type AirPlayRTSP from './rtsp';\n\nexport default class AirPlayVerify {\n get rtsp(): AirPlayRTSP {\n return this.#protocol.rtsp;\n }\n\n readonly #internal: AccessoryVerify;\n readonly #protocol: AirPlay;\n\n constructor(protocol: AirPlay) {\n this.#internal = new AccessoryVerify(this.#request.bind(this));\n this.#protocol = protocol;\n }\n\n async start(credentials: AccessoryCredentials): Promise<AccessoryKeys> {\n const keys = await this.#internal.start(credentials);\n\n const accessoryToControllerKey = hkdf({\n hash: 'sha512',\n key: keys.sharedSecret,\n length: 32,\n salt: Buffer.from('Control-Salt'),\n info: Buffer.from('Control-Read-Encryption-Key')\n });\n\n const controllerToAccessoryKey = hkdf({\n hash: 'sha512',\n key: keys.sharedSecret,\n length: 32,\n salt: Buffer.from('Control-Salt'),\n info: Buffer.from('Control-Write-Encryption-Key')\n });\n\n return {\n accessoryToControllerKey,\n controllerToAccessoryKey,\n pairingId: keys.pairingId,\n sharedSecret: keys.sharedSecret\n };\n }\n\n async #request(_: 'm1' | 'm3' | 'm5', data: Buffer): Promise<Buffer> {\n const response = await this.rtsp.post('/pair-verify', data, {\n 'Content-Type': 'application/octet-stream',\n 'X-Apple-HKP': '3'\n });\n\n return Buffer.from(await response.arrayBuffer());\n }\n}\n",
|
|
120
|
+
"import { debug, type DiscoveryResult, getMacAddress, parseBinaryPlist, serializeBinaryPlist, uuid } from '@basmilius/apple-common';\nimport { randomInt64 } from './utils';\nimport DataStream from './dataStream';\nimport EventStream from './eventStream';\nimport Pairing from './pairing';\nimport RTSP from './rtsp';\nimport Verify from './verify';\n\nexport default class AirPlay {\n get device(): DiscoveryResult {\n return this.#device;\n }\n\n get dataStream(): DataStream | undefined {\n return this.#dataStream;\n }\n\n get eventStream(): EventStream | undefined {\n return this.#eventStream;\n }\n\n get pairing(): Pairing {\n return this.#pairing;\n }\n\n get rtsp(): RTSP {\n return this.#rtsp;\n }\n\n get verify(): Verify {\n return this.#verify;\n }\n\n readonly #device: DiscoveryResult;\n readonly #pairing: Pairing;\n readonly #rtsp: RTSP;\n readonly #verify: Verify;\n readonly #sessionUUID: string;\n #dataStream?: DataStream;\n #eventStream?: EventStream;\n\n constructor(device: DiscoveryResult) {\n this.#device = device;\n this.#rtsp = new RTSP(device.address, device.service.port);\n this.#pairing = new Pairing(this);\n this.#verify = new Verify(this);\n this.#sessionUUID = uuid();\n }\n\n async connect(): Promise<void> {\n await this.#rtsp.connect();\n }\n\n async disconnect(): Promise<void> {\n await this.#rtsp.disconnect();\n }\n\n async feedback(): Promise<void> {\n await this.#rtsp.post('/feedback');\n }\n\n async setupDataStream(sharedSecret: Buffer): Promise<void> {\n const seed = randomInt64();\n const request = serializeBinaryPlist({\n streams: [\n {\n controlType: 2,\n channelID: '3ZDG',\n seed,\n clientUUID: uuid().toUpperCase(),\n type: 130,\n wantsDedicatedSocket: true,\n clientTypeUUID: '1910A70F-DBC0-4242-AF95-115DB30604E1'\n }\n ]\n });\n\n const response = await this.#rtsp.setup(`/${this.rtsp.sessionId}`, Buffer.from(request), {\n 'Content-Type': 'application/x-apple-binary-plist'\n });\n\n const plist = parseBinaryPlist(await response.arrayBuffer()) as any;\n const dataPort = plist.streams[0].dataPort & 0xFFFF;\n debug('Should listen on data port', dataPort);\n\n this.#dataStream = new DataStream(this.#rtsp.address, dataPort);\n await this.#dataStream.setup(sharedSecret, seed);\n await this.#dataStream.connect();\n }\n\n async setupEventStream(pairingId: Buffer, sharedSecret: Buffer): Promise<void> {\n const request = serializeBinaryPlist({\n deviceID: pairingId.toString(),\n macAddress: getMacAddress().toUpperCase(),\n name: 'iPhone van Bas',\n model: 'iPhone16,2',\n osBuildVersion: '23B82',\n osName: 'iPhone OS',\n osVersion: '26.1',\n sourceVersion: '550.10',\n sessionUUID: this.#sessionUUID,\n sessionCorrelationUUID: 'BBB3A645-7453-46B2-92CF-30A8E1F02D26',\n timingProtocol: 'None',\n isRemoteControlOnly: true,\n startsCollectionEnabled: false,\n updateSessionRequest: false,\n });\n\n const response = await this.#rtsp.setup(`/${this.rtsp.sessionId}`, Buffer.from(request), {\n 'Content-Type': 'application/x-apple-binary-plist'\n });\n\n const plist = parseBinaryPlist(await response.arrayBuffer()) as any;\n const eventPort = plist.eventPort & 0xFFFF;\n debug('Should listen on event port', eventPort);\n\n this.#eventStream = new EventStream(this.#rtsp.address, eventPort);\n await this.#eventStream.setup(sharedSecret);\n await this.#eventStream.connect();\n\n await this.#rtsp.record(`/${this.rtsp.sessionId}`);\n }\n}\n"
|
|
5
121
|
],
|
|
6
|
-
"mappings": "",
|
|
7
|
-
"debugId": "
|
|
122
|
+
"mappings": "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",
|
|
123
|
+
"debugId": "25C53942596DF44B64756E2164756E21",
|
|
8
124
|
"names": []
|
|
9
125
|
}
|