@candypoets/nipworker 0.0.58 → 0.0.60

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index2.js","sources":["../src/generated/nostr/fb/counter-pipe-config.ts","../src/generated/nostr/fb/get-public-key.ts","../src/generated/nostr/fb/kind-filter-pipe-config.ts","../src/generated/nostr/fb/template.ts","../src/generated/nostr/fb/publish.ts","../src/generated/nostr/fb/private-key.ts","../src/generated/nostr/fb/signer-type.ts","../src/generated/nostr/fb/set-signer.ts","../src/generated/nostr/fb/sign-event.ts","../src/generated/nostr/fb/npub-limiter-pipe-config.ts","../src/generated/nostr/fb/parse-pipe-config.ts","../src/generated/nostr/fb/proof-verification-pipe-config.ts","../src/generated/nostr/fb/save-to-db-pipe-config.ts","../src/generated/nostr/fb/serialize-events-pipe-config.ts","../src/generated/nostr/fb/pipe-config.ts","../src/generated/nostr/fb/pipe.ts","../src/generated/nostr/fb/pipeline-config.ts","../src/generated/nostr/fb/subscription-config.ts","../src/generated/nostr/fb/subscribe.ts","../src/generated/nostr/fb/unsubscribe.ts","../src/generated/nostr/fb/main-content.ts","../src/generated/nostr/fb/main-message.ts","../src/generated/nostr/fb/msg-kind.ts","../src/generated/nostr/fb/parsed-data-union.ts","../src/generated/nostr/fb/relay-ref.ts","../src/generated/nostr/fb/subscribe-kind.ts","../src/generated/nostr/fb/worker-line.ts","../src/generated/nostr/fb/worker-message.ts","../src/lib/SharedBuffer.ts","../src/manager.ts","../src/ws/runtime.ts","../src/index.ts"],"sourcesContent":["import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\n\n\nexport class CounterPipeConfig implements flatbuffers.IUnpackableObject<CounterPipeConfigT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):CounterPipeConfig {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsCounterPipeConfig(bb:flatbuffers.ByteBuffer, obj?:CounterPipeConfig):CounterPipeConfig {\n return (obj || new CounterPipeConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsCounterPipeConfig(bb:flatbuffers.ByteBuffer, obj?:CounterPipeConfig):CounterPipeConfig {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new CounterPipeConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nkinds(index: number):number|null {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readUint16(this.bb!.__vector(this.bb_pos + offset) + index * 2) : 0;\n}\n\nkindsLength():number {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n}\n\nkindsArray():Uint16Array|null {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? new Uint16Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null;\n}\n\npubkey(): ByteString|null\npubkey(optionalEncoding:flatbuffers.Encoding): ByteString|Uint8Array|null\npubkey(optionalEncoding?:any): ByteString|Uint8Array|null {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__stringByteString(this.bb_pos + offset, optionalEncoding) : null;\n}\n\nstatic startCounterPipeConfig(builder:flatbuffers.Builder) {\n builder.startObject(2);\n}\n\nstatic addKinds(builder:flatbuffers.Builder, kindsOffset:flatbuffers.Offset) {\n builder.addFieldOffset(0, kindsOffset, 0);\n}\n\nstatic createKindsVector(builder:flatbuffers.Builder, data:number[]|Uint16Array):flatbuffers.Offset;\n/**\n * @deprecated This Uint8Array overload will be removed in the future.\n */\nstatic createKindsVector(builder:flatbuffers.Builder, data:number[]|Uint8Array):flatbuffers.Offset;\nstatic createKindsVector(builder:flatbuffers.Builder, data:number[]|Uint16Array|Uint8Array):flatbuffers.Offset {\n builder.startVector(2, data.length, 2);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addInt16(data[i]!);\n }\n return builder.endVector();\n}\n\nstatic startKindsVector(builder:flatbuffers.Builder, numElems:number) {\n builder.startVector(2, numElems, 2);\n}\n\nstatic addPubkey(builder:flatbuffers.Builder, pubkeyOffset:flatbuffers.Offset) {\n builder.addFieldOffset(1, pubkeyOffset, 0);\n}\n\nstatic endCounterPipeConfig(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n builder.requiredField(offset, 4) // kinds\n builder.requiredField(offset, 6) // pubkey\n return offset;\n}\n\nstatic createCounterPipeConfig(builder:flatbuffers.Builder, kindsOffset:flatbuffers.Offset, pubkeyOffset:flatbuffers.Offset):flatbuffers.Offset {\n CounterPipeConfig.startCounterPipeConfig(builder);\n CounterPipeConfig.addKinds(builder, kindsOffset);\n CounterPipeConfig.addPubkey(builder, pubkeyOffset);\n return CounterPipeConfig.endCounterPipeConfig(builder);\n}\n\nunpack(): CounterPipeConfigT {\n return new CounterPipeConfigT(\n this.bb!.createScalarList<number>(this.kinds.bind(this), this.kindsLength()),\n this.pubkey()\n );\n}\n\n\nunpackTo(_o: CounterPipeConfigT): void {\n _o.kinds = this.bb!.createScalarList<number>(this.kinds.bind(this), this.kindsLength());\n _o.pubkey = this.pubkey();\n}\n}\n\nexport class CounterPipeConfigT implements flatbuffers.IGeneratedObject {\nconstructor(\n public kinds: (number)[] = [],\n public pubkey: ByteString|Uint8Array|null = null\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const kinds = CounterPipeConfig.createKindsVector(builder, this.kinds);\n const pubkey = (this.pubkey !== null ? builder.createString(this.pubkey!) : 0);\n\n return CounterPipeConfig.createCounterPipeConfig(builder,\n kinds,\n pubkey\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\n\n\nexport class GetPublicKey implements flatbuffers.IUnpackableObject<GetPublicKeyT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):GetPublicKey {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsGetPublicKey(bb:flatbuffers.ByteBuffer, obj?:GetPublicKey):GetPublicKey {\n return (obj || new GetPublicKey()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsGetPublicKey(bb:flatbuffers.ByteBuffer, obj?:GetPublicKey):GetPublicKey {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new GetPublicKey()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic startGetPublicKey(builder:flatbuffers.Builder) {\n builder.startObject(0);\n}\n\nstatic endGetPublicKey(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n return offset;\n}\n\nstatic createGetPublicKey(builder:flatbuffers.Builder):flatbuffers.Offset {\n GetPublicKey.startGetPublicKey(builder);\n return GetPublicKey.endGetPublicKey(builder);\n}\n\nunpack(): GetPublicKeyT {\n return new GetPublicKeyT();\n}\n\n\nunpackTo(_o: GetPublicKeyT): void {}\n}\n\nexport class GetPublicKeyT implements flatbuffers.IGeneratedObject {\nconstructor(){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n return GetPublicKey.createGetPublicKey(builder);\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\n\n\nexport class KindFilterPipeConfig implements flatbuffers.IUnpackableObject<KindFilterPipeConfigT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):KindFilterPipeConfig {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsKindFilterPipeConfig(bb:flatbuffers.ByteBuffer, obj?:KindFilterPipeConfig):KindFilterPipeConfig {\n return (obj || new KindFilterPipeConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsKindFilterPipeConfig(bb:flatbuffers.ByteBuffer, obj?:KindFilterPipeConfig):KindFilterPipeConfig {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new KindFilterPipeConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nkinds(index: number):number|null {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readUint16(this.bb!.__vector(this.bb_pos + offset) + index * 2) : 0;\n}\n\nkindsLength():number {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n}\n\nkindsArray():Uint16Array|null {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? new Uint16Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null;\n}\n\nstatic startKindFilterPipeConfig(builder:flatbuffers.Builder) {\n builder.startObject(1);\n}\n\nstatic addKinds(builder:flatbuffers.Builder, kindsOffset:flatbuffers.Offset) {\n builder.addFieldOffset(0, kindsOffset, 0);\n}\n\nstatic createKindsVector(builder:flatbuffers.Builder, data:number[]|Uint16Array):flatbuffers.Offset;\n/**\n * @deprecated This Uint8Array overload will be removed in the future.\n */\nstatic createKindsVector(builder:flatbuffers.Builder, data:number[]|Uint8Array):flatbuffers.Offset;\nstatic createKindsVector(builder:flatbuffers.Builder, data:number[]|Uint16Array|Uint8Array):flatbuffers.Offset {\n builder.startVector(2, data.length, 2);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addInt16(data[i]!);\n }\n return builder.endVector();\n}\n\nstatic startKindsVector(builder:flatbuffers.Builder, numElems:number) {\n builder.startVector(2, numElems, 2);\n}\n\nstatic endKindFilterPipeConfig(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n builder.requiredField(offset, 4) // kinds\n return offset;\n}\n\nstatic createKindFilterPipeConfig(builder:flatbuffers.Builder, kindsOffset:flatbuffers.Offset):flatbuffers.Offset {\n KindFilterPipeConfig.startKindFilterPipeConfig(builder);\n KindFilterPipeConfig.addKinds(builder, kindsOffset);\n return KindFilterPipeConfig.endKindFilterPipeConfig(builder);\n}\n\nunpack(): KindFilterPipeConfigT {\n return new KindFilterPipeConfigT(\n this.bb!.createScalarList<number>(this.kinds.bind(this), this.kindsLength())\n );\n}\n\n\nunpackTo(_o: KindFilterPipeConfigT): void {\n _o.kinds = this.bb!.createScalarList<number>(this.kinds.bind(this), this.kindsLength());\n}\n}\n\nexport class KindFilterPipeConfigT implements flatbuffers.IGeneratedObject {\nconstructor(\n public kinds: (number)[] = []\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const kinds = KindFilterPipeConfig.createKindsVector(builder, this.kinds);\n\n return KindFilterPipeConfig.createKindFilterPipeConfig(builder,\n kinds\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\nimport { StringVec, StringVecT } from '../../nostr/fb/string-vec.js';\n\n\nexport class Template implements flatbuffers.IUnpackableObject<TemplateT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):Template {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsTemplate(bb:flatbuffers.ByteBuffer, obj?:Template):Template {\n return (obj || new Template()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsTemplate(bb:flatbuffers.ByteBuffer, obj?:Template):Template {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Template()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nkind():number {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readUint16(this.bb_pos + offset) : 0;\n}\n\ncontent(): ByteString|null\ncontent(optionalEncoding:flatbuffers.Encoding): ByteString|Uint8Array|null\ncontent(optionalEncoding?:any): ByteString|Uint8Array|null {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__stringByteString(this.bb_pos + offset, optionalEncoding) : null;\n}\n\ntags(index: number, obj?:StringVec):StringVec|null {\n const offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? (obj || new StringVec()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n}\n\ntagsLength():number {\n const offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n}\n\nstatic startTemplate(builder:flatbuffers.Builder) {\n builder.startObject(3);\n}\n\nstatic addKind(builder:flatbuffers.Builder, kind:number) {\n builder.addFieldInt16(0, kind, 0);\n}\n\nstatic addContent(builder:flatbuffers.Builder, contentOffset:flatbuffers.Offset) {\n builder.addFieldOffset(1, contentOffset, 0);\n}\n\nstatic addTags(builder:flatbuffers.Builder, tagsOffset:flatbuffers.Offset) {\n builder.addFieldOffset(2, tagsOffset, 0);\n}\n\nstatic createTagsVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset {\n builder.startVector(4, data.length, 4);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addOffset(data[i]!);\n }\n return builder.endVector();\n}\n\nstatic startTagsVector(builder:flatbuffers.Builder, numElems:number) {\n builder.startVector(4, numElems, 4);\n}\n\nstatic endTemplate(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n builder.requiredField(offset, 6) // content\n builder.requiredField(offset, 8) // tags\n return offset;\n}\n\nstatic createTemplate(builder:flatbuffers.Builder, kind:number, contentOffset:flatbuffers.Offset, tagsOffset:flatbuffers.Offset):flatbuffers.Offset {\n Template.startTemplate(builder);\n Template.addKind(builder, kind);\n Template.addContent(builder, contentOffset);\n Template.addTags(builder, tagsOffset);\n return Template.endTemplate(builder);\n}\n\nunpack(): TemplateT {\n return new TemplateT(\n this.kind(),\n this.content(),\n this.bb!.createObjList<StringVec, StringVecT>(this.tags.bind(this), this.tagsLength())\n );\n}\n\n\nunpackTo(_o: TemplateT): void {\n _o.kind = this.kind();\n _o.content = this.content();\n _o.tags = this.bb!.createObjList<StringVec, StringVecT>(this.tags.bind(this), this.tagsLength());\n}\n}\n\nexport class TemplateT implements flatbuffers.IGeneratedObject {\nconstructor(\n public kind: number = 0,\n public content: ByteString|Uint8Array|null = null,\n public tags: (StringVecT)[] = []\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const content = (this.content !== null ? builder.createString(this.content!) : 0);\n const tags = Template.createTagsVector(builder, builder.createObjectOffsetList(this.tags));\n\n return Template.createTemplate(builder,\n this.kind,\n content,\n tags\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\nimport { Template, TemplateT } from '../../nostr/fb/template.js';\n\n\nexport class Publish implements flatbuffers.IUnpackableObject<PublishT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):Publish {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsPublish(bb:flatbuffers.ByteBuffer, obj?:Publish):Publish {\n return (obj || new Publish()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsPublish(bb:flatbuffers.ByteBuffer, obj?:Publish):Publish {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Publish()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\npublishId(): ByteString|null\npublishId(optionalEncoding:flatbuffers.Encoding): ByteString|Uint8Array|null\npublishId(optionalEncoding?:any): ByteString|Uint8Array|null {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.__stringByteString(this.bb_pos + offset, optionalEncoding) : null;\n}\n\ntemplate(obj?:Template):Template|null {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? (obj || new Template()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;\n}\n\nstatic startPublish(builder:flatbuffers.Builder) {\n builder.startObject(2);\n}\n\nstatic addPublishId(builder:flatbuffers.Builder, publishIdOffset:flatbuffers.Offset) {\n builder.addFieldOffset(0, publishIdOffset, 0);\n}\n\nstatic addTemplate(builder:flatbuffers.Builder, templateOffset:flatbuffers.Offset) {\n builder.addFieldOffset(1, templateOffset, 0);\n}\n\nstatic endPublish(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n builder.requiredField(offset, 4) // publish_id\n builder.requiredField(offset, 6) // template\n return offset;\n}\n\n\nunpack(): PublishT {\n return new PublishT(\n this.publishId(),\n (this.template() !== null ? this.template()!.unpack() : null)\n );\n}\n\n\nunpackTo(_o: PublishT): void {\n _o.publishId = this.publishId();\n _o.template = (this.template() !== null ? this.template()!.unpack() : null);\n}\n}\n\nexport class PublishT implements flatbuffers.IGeneratedObject {\nconstructor(\n public publishId: ByteString|Uint8Array|null = null,\n public template: TemplateT|null = null\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const publishId = (this.publishId !== null ? builder.createString(this.publishId!) : 0);\n const template = (this.template !== null ? this.template!.pack(builder) : 0);\n\n Publish.startPublish(builder);\n Publish.addPublishId(builder, publishId);\n Publish.addTemplate(builder, template);\n\n return Publish.endPublish(builder);\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\n\n\nexport class PrivateKey implements flatbuffers.IUnpackableObject<PrivateKeyT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):PrivateKey {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsPrivateKey(bb:flatbuffers.ByteBuffer, obj?:PrivateKey):PrivateKey {\n return (obj || new PrivateKey()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsPrivateKey(bb:flatbuffers.ByteBuffer, obj?:PrivateKey):PrivateKey {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new PrivateKey()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nprivateKey(): ByteString|null\nprivateKey(optionalEncoding:flatbuffers.Encoding): ByteString|Uint8Array|null\nprivateKey(optionalEncoding?:any): ByteString|Uint8Array|null {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.__stringByteString(this.bb_pos + offset, optionalEncoding) : null;\n}\n\nstatic startPrivateKey(builder:flatbuffers.Builder) {\n builder.startObject(1);\n}\n\nstatic addPrivateKey(builder:flatbuffers.Builder, privateKeyOffset:flatbuffers.Offset) {\n builder.addFieldOffset(0, privateKeyOffset, 0);\n}\n\nstatic endPrivateKey(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n builder.requiredField(offset, 4) // private_key\n return offset;\n}\n\nstatic createPrivateKey(builder:flatbuffers.Builder, privateKeyOffset:flatbuffers.Offset):flatbuffers.Offset {\n PrivateKey.startPrivateKey(builder);\n PrivateKey.addPrivateKey(builder, privateKeyOffset);\n return PrivateKey.endPrivateKey(builder);\n}\n\nunpack(): PrivateKeyT {\n return new PrivateKeyT(\n this.privateKey()\n );\n}\n\n\nunpackTo(_o: PrivateKeyT): void {\n _o.privateKey = this.privateKey();\n}\n}\n\nexport class PrivateKeyT implements flatbuffers.IGeneratedObject {\nconstructor(\n public privateKey: ByteString|Uint8Array|null = null\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const privateKey = (this.privateKey !== null ? builder.createString(this.privateKey!) : 0);\n\n return PrivateKey.createPrivateKey(builder,\n privateKey\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport { PrivateKey, PrivateKeyT } from '../../nostr/fb/private-key.js';\n\n\nexport enum SignerType {\n NONE = 0,\n PrivateKey = 1\n}\n\nexport function unionToSignerType(\n type: SignerType,\n accessor: (obj:PrivateKey) => PrivateKey|null\n): PrivateKey|null {\n switch(SignerType[type]) {\n case 'NONE': return null; \n case 'PrivateKey': return accessor(new PrivateKey())! as PrivateKey;\n default: return null;\n }\n}\n\nexport function unionListToSignerType(\n type: SignerType, \n accessor: (index: number, obj:PrivateKey) => PrivateKey|null, \n index: number\n): PrivateKey|null {\n switch(SignerType[type]) {\n case 'NONE': return null; \n case 'PrivateKey': return accessor(index, new PrivateKey())! as PrivateKey;\n default: return null;\n }\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\nimport { PrivateKey, PrivateKeyT } from '../../nostr/fb/private-key.js';\nimport { SignerType, unionToSignerType, unionListToSignerType } from '../../nostr/fb/signer-type.js';\n\n\nexport class SetSigner implements flatbuffers.IUnpackableObject<SetSignerT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):SetSigner {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsSetSigner(bb:flatbuffers.ByteBuffer, obj?:SetSigner):SetSigner {\n return (obj || new SetSigner()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsSetSigner(bb:flatbuffers.ByteBuffer, obj?:SetSigner):SetSigner {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new SetSigner()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nsignerTypeType():SignerType {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readUint8(this.bb_pos + offset) : SignerType.NONE;\n}\n\nsignerType<T extends flatbuffers.Table>(obj:any):any|null {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__union(obj, this.bb_pos + offset) : null;\n}\n\nstatic startSetSigner(builder:flatbuffers.Builder) {\n builder.startObject(2);\n}\n\nstatic addSignerTypeType(builder:flatbuffers.Builder, signerTypeType:SignerType) {\n builder.addFieldInt8(0, signerTypeType, SignerType.NONE);\n}\n\nstatic addSignerType(builder:flatbuffers.Builder, signerTypeOffset:flatbuffers.Offset) {\n builder.addFieldOffset(1, signerTypeOffset, 0);\n}\n\nstatic endSetSigner(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n builder.requiredField(offset, 6) // signer_type\n return offset;\n}\n\nstatic createSetSigner(builder:flatbuffers.Builder, signerTypeType:SignerType, signerTypeOffset:flatbuffers.Offset):flatbuffers.Offset {\n SetSigner.startSetSigner(builder);\n SetSigner.addSignerTypeType(builder, signerTypeType);\n SetSigner.addSignerType(builder, signerTypeOffset);\n return SetSigner.endSetSigner(builder);\n}\n\nunpack(): SetSignerT {\n return new SetSignerT(\n this.signerTypeType(),\n (() => {\n const temp = unionToSignerType(this.signerTypeType(), this.signerType.bind(this));\n if(temp === null) { return null; }\n return temp.unpack()\n })()\n );\n}\n\n\nunpackTo(_o: SetSignerT): void {\n _o.signerTypeType = this.signerTypeType();\n _o.signerType = (() => {\n const temp = unionToSignerType(this.signerTypeType(), this.signerType.bind(this));\n if(temp === null) { return null; }\n return temp.unpack()\n })();\n}\n}\n\nexport class SetSignerT implements flatbuffers.IGeneratedObject {\nconstructor(\n public signerTypeType: SignerType = SignerType.NONE,\n public signerType: PrivateKeyT|null = null\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const signerType = builder.createObjectOffset(this.signerType);\n\n return SetSigner.createSetSigner(builder,\n this.signerTypeType,\n signerType\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\nimport { Template, TemplateT } from '../../nostr/fb/template.js';\n\n\nexport class SignEvent implements flatbuffers.IUnpackableObject<SignEventT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):SignEvent {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsSignEvent(bb:flatbuffers.ByteBuffer, obj?:SignEvent):SignEvent {\n return (obj || new SignEvent()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsSignEvent(bb:flatbuffers.ByteBuffer, obj?:SignEvent):SignEvent {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new SignEvent()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\ntemplate(obj?:Template):Template|null {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? (obj || new Template()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;\n}\n\nstatic startSignEvent(builder:flatbuffers.Builder) {\n builder.startObject(1);\n}\n\nstatic addTemplate(builder:flatbuffers.Builder, templateOffset:flatbuffers.Offset) {\n builder.addFieldOffset(0, templateOffset, 0);\n}\n\nstatic endSignEvent(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n builder.requiredField(offset, 4) // template\n return offset;\n}\n\nstatic createSignEvent(builder:flatbuffers.Builder, templateOffset:flatbuffers.Offset):flatbuffers.Offset {\n SignEvent.startSignEvent(builder);\n SignEvent.addTemplate(builder, templateOffset);\n return SignEvent.endSignEvent(builder);\n}\n\nunpack(): SignEventT {\n return new SignEventT(\n (this.template() !== null ? this.template()!.unpack() : null)\n );\n}\n\n\nunpackTo(_o: SignEventT): void {\n _o.template = (this.template() !== null ? this.template()!.unpack() : null);\n}\n}\n\nexport class SignEventT implements flatbuffers.IGeneratedObject {\nconstructor(\n public template: TemplateT|null = null\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const template = (this.template !== null ? this.template!.pack(builder) : 0);\n\n return SignEvent.createSignEvent(builder,\n template\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\n\n\nexport class NpubLimiterPipeConfig implements flatbuffers.IUnpackableObject<NpubLimiterPipeConfigT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):NpubLimiterPipeConfig {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsNpubLimiterPipeConfig(bb:flatbuffers.ByteBuffer, obj?:NpubLimiterPipeConfig):NpubLimiterPipeConfig {\n return (obj || new NpubLimiterPipeConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsNpubLimiterPipeConfig(bb:flatbuffers.ByteBuffer, obj?:NpubLimiterPipeConfig):NpubLimiterPipeConfig {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new NpubLimiterPipeConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nkind():number {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readUint16(this.bb_pos + offset) : 0;\n}\n\nlimitPerNpub():number {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.readUint32(this.bb_pos + offset) : 0;\n}\n\nmaxTotalNpubs():number {\n const offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? this.bb!.readUint32(this.bb_pos + offset) : 0;\n}\n\nstatic startNpubLimiterPipeConfig(builder:flatbuffers.Builder) {\n builder.startObject(3);\n}\n\nstatic addKind(builder:flatbuffers.Builder, kind:number) {\n builder.addFieldInt16(0, kind, 0);\n}\n\nstatic addLimitPerNpub(builder:flatbuffers.Builder, limitPerNpub:number) {\n builder.addFieldInt32(1, limitPerNpub, 0);\n}\n\nstatic addMaxTotalNpubs(builder:flatbuffers.Builder, maxTotalNpubs:number) {\n builder.addFieldInt32(2, maxTotalNpubs, 0);\n}\n\nstatic endNpubLimiterPipeConfig(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n return offset;\n}\n\nstatic createNpubLimiterPipeConfig(builder:flatbuffers.Builder, kind:number, limitPerNpub:number, maxTotalNpubs:number):flatbuffers.Offset {\n NpubLimiterPipeConfig.startNpubLimiterPipeConfig(builder);\n NpubLimiterPipeConfig.addKind(builder, kind);\n NpubLimiterPipeConfig.addLimitPerNpub(builder, limitPerNpub);\n NpubLimiterPipeConfig.addMaxTotalNpubs(builder, maxTotalNpubs);\n return NpubLimiterPipeConfig.endNpubLimiterPipeConfig(builder);\n}\n\nunpack(): NpubLimiterPipeConfigT {\n return new NpubLimiterPipeConfigT(\n this.kind(),\n this.limitPerNpub(),\n this.maxTotalNpubs()\n );\n}\n\n\nunpackTo(_o: NpubLimiterPipeConfigT): void {\n _o.kind = this.kind();\n _o.limitPerNpub = this.limitPerNpub();\n _o.maxTotalNpubs = this.maxTotalNpubs();\n}\n}\n\nexport class NpubLimiterPipeConfigT implements flatbuffers.IGeneratedObject {\nconstructor(\n public kind: number = 0,\n public limitPerNpub: number = 0,\n public maxTotalNpubs: number = 0\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n return NpubLimiterPipeConfig.createNpubLimiterPipeConfig(builder,\n this.kind,\n this.limitPerNpub,\n this.maxTotalNpubs\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\n\n\nexport class ParsePipeConfig implements flatbuffers.IUnpackableObject<ParsePipeConfigT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):ParsePipeConfig {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsParsePipeConfig(bb:flatbuffers.ByteBuffer, obj?:ParsePipeConfig):ParsePipeConfig {\n return (obj || new ParsePipeConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsParsePipeConfig(bb:flatbuffers.ByteBuffer, obj?:ParsePipeConfig):ParsePipeConfig {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new ParsePipeConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic startParsePipeConfig(builder:flatbuffers.Builder) {\n builder.startObject(0);\n}\n\nstatic endParsePipeConfig(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n return offset;\n}\n\nstatic createParsePipeConfig(builder:flatbuffers.Builder):flatbuffers.Offset {\n ParsePipeConfig.startParsePipeConfig(builder);\n return ParsePipeConfig.endParsePipeConfig(builder);\n}\n\nunpack(): ParsePipeConfigT {\n return new ParsePipeConfigT();\n}\n\n\nunpackTo(_o: ParsePipeConfigT): void {}\n}\n\nexport class ParsePipeConfigT implements flatbuffers.IGeneratedObject {\nconstructor(){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n return ParsePipeConfig.createParsePipeConfig(builder);\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\n\n\nexport class ProofVerificationPipeConfig implements flatbuffers.IUnpackableObject<ProofVerificationPipeConfigT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):ProofVerificationPipeConfig {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsProofVerificationPipeConfig(bb:flatbuffers.ByteBuffer, obj?:ProofVerificationPipeConfig):ProofVerificationPipeConfig {\n return (obj || new ProofVerificationPipeConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsProofVerificationPipeConfig(bb:flatbuffers.ByteBuffer, obj?:ProofVerificationPipeConfig):ProofVerificationPipeConfig {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new ProofVerificationPipeConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nmaxProofs():number {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readUint32(this.bb_pos + offset) : 0;\n}\n\nstatic startProofVerificationPipeConfig(builder:flatbuffers.Builder) {\n builder.startObject(1);\n}\n\nstatic addMaxProofs(builder:flatbuffers.Builder, maxProofs:number) {\n builder.addFieldInt32(0, maxProofs, 0);\n}\n\nstatic endProofVerificationPipeConfig(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n return offset;\n}\n\nstatic createProofVerificationPipeConfig(builder:flatbuffers.Builder, maxProofs:number):flatbuffers.Offset {\n ProofVerificationPipeConfig.startProofVerificationPipeConfig(builder);\n ProofVerificationPipeConfig.addMaxProofs(builder, maxProofs);\n return ProofVerificationPipeConfig.endProofVerificationPipeConfig(builder);\n}\n\nunpack(): ProofVerificationPipeConfigT {\n return new ProofVerificationPipeConfigT(\n this.maxProofs()\n );\n}\n\n\nunpackTo(_o: ProofVerificationPipeConfigT): void {\n _o.maxProofs = this.maxProofs();\n}\n}\n\nexport class ProofVerificationPipeConfigT implements flatbuffers.IGeneratedObject {\nconstructor(\n public maxProofs: number = 0\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n return ProofVerificationPipeConfig.createProofVerificationPipeConfig(builder,\n this.maxProofs\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\n\n\nexport class SaveToDbPipeConfig implements flatbuffers.IUnpackableObject<SaveToDbPipeConfigT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):SaveToDbPipeConfig {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsSaveToDbPipeConfig(bb:flatbuffers.ByteBuffer, obj?:SaveToDbPipeConfig):SaveToDbPipeConfig {\n return (obj || new SaveToDbPipeConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsSaveToDbPipeConfig(bb:flatbuffers.ByteBuffer, obj?:SaveToDbPipeConfig):SaveToDbPipeConfig {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new SaveToDbPipeConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic startSaveToDbPipeConfig(builder:flatbuffers.Builder) {\n builder.startObject(0);\n}\n\nstatic endSaveToDbPipeConfig(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n return offset;\n}\n\nstatic createSaveToDbPipeConfig(builder:flatbuffers.Builder):flatbuffers.Offset {\n SaveToDbPipeConfig.startSaveToDbPipeConfig(builder);\n return SaveToDbPipeConfig.endSaveToDbPipeConfig(builder);\n}\n\nunpack(): SaveToDbPipeConfigT {\n return new SaveToDbPipeConfigT();\n}\n\n\nunpackTo(_o: SaveToDbPipeConfigT): void {}\n}\n\nexport class SaveToDbPipeConfigT implements flatbuffers.IGeneratedObject {\nconstructor(){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n return SaveToDbPipeConfig.createSaveToDbPipeConfig(builder);\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\n\n\nexport class SerializeEventsPipeConfig implements flatbuffers.IUnpackableObject<SerializeEventsPipeConfigT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):SerializeEventsPipeConfig {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsSerializeEventsPipeConfig(bb:flatbuffers.ByteBuffer, obj?:SerializeEventsPipeConfig):SerializeEventsPipeConfig {\n return (obj || new SerializeEventsPipeConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsSerializeEventsPipeConfig(bb:flatbuffers.ByteBuffer, obj?:SerializeEventsPipeConfig):SerializeEventsPipeConfig {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new SerializeEventsPipeConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nsubscriptionId(): ByteString|null\nsubscriptionId(optionalEncoding:flatbuffers.Encoding): ByteString|Uint8Array|null\nsubscriptionId(optionalEncoding?:any): ByteString|Uint8Array|null {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.__stringByteString(this.bb_pos + offset, optionalEncoding) : null;\n}\n\nstatic startSerializeEventsPipeConfig(builder:flatbuffers.Builder) {\n builder.startObject(1);\n}\n\nstatic addSubscriptionId(builder:flatbuffers.Builder, subscriptionIdOffset:flatbuffers.Offset) {\n builder.addFieldOffset(0, subscriptionIdOffset, 0);\n}\n\nstatic endSerializeEventsPipeConfig(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n builder.requiredField(offset, 4) // subscription_id\n return offset;\n}\n\nstatic createSerializeEventsPipeConfig(builder:flatbuffers.Builder, subscriptionIdOffset:flatbuffers.Offset):flatbuffers.Offset {\n SerializeEventsPipeConfig.startSerializeEventsPipeConfig(builder);\n SerializeEventsPipeConfig.addSubscriptionId(builder, subscriptionIdOffset);\n return SerializeEventsPipeConfig.endSerializeEventsPipeConfig(builder);\n}\n\nunpack(): SerializeEventsPipeConfigT {\n return new SerializeEventsPipeConfigT(\n this.subscriptionId()\n );\n}\n\n\nunpackTo(_o: SerializeEventsPipeConfigT): void {\n _o.subscriptionId = this.subscriptionId();\n}\n}\n\nexport class SerializeEventsPipeConfigT implements flatbuffers.IGeneratedObject {\nconstructor(\n public subscriptionId: ByteString|Uint8Array|null = null\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const subscriptionId = (this.subscriptionId !== null ? builder.createString(this.subscriptionId!) : 0);\n\n return SerializeEventsPipeConfig.createSerializeEventsPipeConfig(builder,\n subscriptionId\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport { CounterPipeConfig, CounterPipeConfigT } from '../../nostr/fb/counter-pipe-config.js';\nimport { KindFilterPipeConfig, KindFilterPipeConfigT } from '../../nostr/fb/kind-filter-pipe-config.js';\nimport { NpubLimiterPipeConfig, NpubLimiterPipeConfigT } from '../../nostr/fb/npub-limiter-pipe-config.js';\nimport { ParsePipeConfig, ParsePipeConfigT } from '../../nostr/fb/parse-pipe-config.js';\nimport { ProofVerificationPipeConfig, ProofVerificationPipeConfigT } from '../../nostr/fb/proof-verification-pipe-config.js';\nimport { SaveToDbPipeConfig, SaveToDbPipeConfigT } from '../../nostr/fb/save-to-db-pipe-config.js';\nimport { SerializeEventsPipeConfig, SerializeEventsPipeConfigT } from '../../nostr/fb/serialize-events-pipe-config.js';\n\n\nexport enum PipeConfig {\n NONE = 0,\n ParsePipeConfig = 1,\n KindFilterPipeConfig = 2,\n CounterPipeConfig = 3,\n NpubLimiterPipeConfig = 4,\n SaveToDbPipeConfig = 5,\n SerializeEventsPipeConfig = 6,\n ProofVerificationPipeConfig = 7\n}\n\nexport function unionToPipeConfig(\n type: PipeConfig,\n accessor: (obj:CounterPipeConfig|KindFilterPipeConfig|NpubLimiterPipeConfig|ParsePipeConfig|ProofVerificationPipeConfig|SaveToDbPipeConfig|SerializeEventsPipeConfig) => CounterPipeConfig|KindFilterPipeConfig|NpubLimiterPipeConfig|ParsePipeConfig|ProofVerificationPipeConfig|SaveToDbPipeConfig|SerializeEventsPipeConfig|null\n): CounterPipeConfig|KindFilterPipeConfig|NpubLimiterPipeConfig|ParsePipeConfig|ProofVerificationPipeConfig|SaveToDbPipeConfig|SerializeEventsPipeConfig|null {\n switch(PipeConfig[type]) {\n case 'NONE': return null; \n case 'ParsePipeConfig': return accessor(new ParsePipeConfig())! as ParsePipeConfig;\n case 'KindFilterPipeConfig': return accessor(new KindFilterPipeConfig())! as KindFilterPipeConfig;\n case 'CounterPipeConfig': return accessor(new CounterPipeConfig())! as CounterPipeConfig;\n case 'NpubLimiterPipeConfig': return accessor(new NpubLimiterPipeConfig())! as NpubLimiterPipeConfig;\n case 'SaveToDbPipeConfig': return accessor(new SaveToDbPipeConfig())! as SaveToDbPipeConfig;\n case 'SerializeEventsPipeConfig': return accessor(new SerializeEventsPipeConfig())! as SerializeEventsPipeConfig;\n case 'ProofVerificationPipeConfig': return accessor(new ProofVerificationPipeConfig())! as ProofVerificationPipeConfig;\n default: return null;\n }\n}\n\nexport function unionListToPipeConfig(\n type: PipeConfig, \n accessor: (index: number, obj:CounterPipeConfig|KindFilterPipeConfig|NpubLimiterPipeConfig|ParsePipeConfig|ProofVerificationPipeConfig|SaveToDbPipeConfig|SerializeEventsPipeConfig) => CounterPipeConfig|KindFilterPipeConfig|NpubLimiterPipeConfig|ParsePipeConfig|ProofVerificationPipeConfig|SaveToDbPipeConfig|SerializeEventsPipeConfig|null, \n index: number\n): CounterPipeConfig|KindFilterPipeConfig|NpubLimiterPipeConfig|ParsePipeConfig|ProofVerificationPipeConfig|SaveToDbPipeConfig|SerializeEventsPipeConfig|null {\n switch(PipeConfig[type]) {\n case 'NONE': return null; \n case 'ParsePipeConfig': return accessor(index, new ParsePipeConfig())! as ParsePipeConfig;\n case 'KindFilterPipeConfig': return accessor(index, new KindFilterPipeConfig())! as KindFilterPipeConfig;\n case 'CounterPipeConfig': return accessor(index, new CounterPipeConfig())! as CounterPipeConfig;\n case 'NpubLimiterPipeConfig': return accessor(index, new NpubLimiterPipeConfig())! as NpubLimiterPipeConfig;\n case 'SaveToDbPipeConfig': return accessor(index, new SaveToDbPipeConfig())! as SaveToDbPipeConfig;\n case 'SerializeEventsPipeConfig': return accessor(index, new SerializeEventsPipeConfig())! as SerializeEventsPipeConfig;\n case 'ProofVerificationPipeConfig': return accessor(index, new ProofVerificationPipeConfig())! as ProofVerificationPipeConfig;\n default: return null;\n }\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\nimport { CounterPipeConfig, CounterPipeConfigT } from '../../nostr/fb/counter-pipe-config.js';\nimport { KindFilterPipeConfig, KindFilterPipeConfigT } from '../../nostr/fb/kind-filter-pipe-config.js';\nimport { NpubLimiterPipeConfig, NpubLimiterPipeConfigT } from '../../nostr/fb/npub-limiter-pipe-config.js';\nimport { ParsePipeConfig, ParsePipeConfigT } from '../../nostr/fb/parse-pipe-config.js';\nimport { PipeConfig, unionToPipeConfig, unionListToPipeConfig } from '../../nostr/fb/pipe-config.js';\nimport { ProofVerificationPipeConfig, ProofVerificationPipeConfigT } from '../../nostr/fb/proof-verification-pipe-config.js';\nimport { SaveToDbPipeConfig, SaveToDbPipeConfigT } from '../../nostr/fb/save-to-db-pipe-config.js';\nimport { SerializeEventsPipeConfig, SerializeEventsPipeConfigT } from '../../nostr/fb/serialize-events-pipe-config.js';\n\n\nexport class Pipe implements flatbuffers.IUnpackableObject<PipeT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):Pipe {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsPipe(bb:flatbuffers.ByteBuffer, obj?:Pipe):Pipe {\n return (obj || new Pipe()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsPipe(bb:flatbuffers.ByteBuffer, obj?:Pipe):Pipe {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Pipe()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nconfigType():PipeConfig {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readUint8(this.bb_pos + offset) : PipeConfig.NONE;\n}\n\nconfig<T extends flatbuffers.Table>(obj:any):any|null {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__union(obj, this.bb_pos + offset) : null;\n}\n\nstatic startPipe(builder:flatbuffers.Builder) {\n builder.startObject(2);\n}\n\nstatic addConfigType(builder:flatbuffers.Builder, configType:PipeConfig) {\n builder.addFieldInt8(0, configType, PipeConfig.NONE);\n}\n\nstatic addConfig(builder:flatbuffers.Builder, configOffset:flatbuffers.Offset) {\n builder.addFieldOffset(1, configOffset, 0);\n}\n\nstatic endPipe(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n builder.requiredField(offset, 6) // config\n return offset;\n}\n\nstatic createPipe(builder:flatbuffers.Builder, configType:PipeConfig, configOffset:flatbuffers.Offset):flatbuffers.Offset {\n Pipe.startPipe(builder);\n Pipe.addConfigType(builder, configType);\n Pipe.addConfig(builder, configOffset);\n return Pipe.endPipe(builder);\n}\n\nunpack(): PipeT {\n return new PipeT(\n this.configType(),\n (() => {\n const temp = unionToPipeConfig(this.configType(), this.config.bind(this));\n if(temp === null) { return null; }\n return temp.unpack()\n })()\n );\n}\n\n\nunpackTo(_o: PipeT): void {\n _o.configType = this.configType();\n _o.config = (() => {\n const temp = unionToPipeConfig(this.configType(), this.config.bind(this));\n if(temp === null) { return null; }\n return temp.unpack()\n })();\n}\n}\n\nexport class PipeT implements flatbuffers.IGeneratedObject {\nconstructor(\n public configType: PipeConfig = PipeConfig.NONE,\n public config: CounterPipeConfigT|KindFilterPipeConfigT|NpubLimiterPipeConfigT|ParsePipeConfigT|ProofVerificationPipeConfigT|SaveToDbPipeConfigT|SerializeEventsPipeConfigT|null = null\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const config = builder.createObjectOffset(this.config);\n\n return Pipe.createPipe(builder,\n this.configType,\n config\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\nimport { Pipe, PipeT } from '../../nostr/fb/pipe.js';\n\n\nexport class PipelineConfig implements flatbuffers.IUnpackableObject<PipelineConfigT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):PipelineConfig {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsPipelineConfig(bb:flatbuffers.ByteBuffer, obj?:PipelineConfig):PipelineConfig {\n return (obj || new PipelineConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsPipelineConfig(bb:flatbuffers.ByteBuffer, obj?:PipelineConfig):PipelineConfig {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new PipelineConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\npipes(index: number, obj?:Pipe):Pipe|null {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? (obj || new Pipe()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n}\n\npipesLength():number {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n}\n\nstatic startPipelineConfig(builder:flatbuffers.Builder) {\n builder.startObject(1);\n}\n\nstatic addPipes(builder:flatbuffers.Builder, pipesOffset:flatbuffers.Offset) {\n builder.addFieldOffset(0, pipesOffset, 0);\n}\n\nstatic createPipesVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset {\n builder.startVector(4, data.length, 4);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addOffset(data[i]!);\n }\n return builder.endVector();\n}\n\nstatic startPipesVector(builder:flatbuffers.Builder, numElems:number) {\n builder.startVector(4, numElems, 4);\n}\n\nstatic endPipelineConfig(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n builder.requiredField(offset, 4) // pipes\n return offset;\n}\n\nstatic createPipelineConfig(builder:flatbuffers.Builder, pipesOffset:flatbuffers.Offset):flatbuffers.Offset {\n PipelineConfig.startPipelineConfig(builder);\n PipelineConfig.addPipes(builder, pipesOffset);\n return PipelineConfig.endPipelineConfig(builder);\n}\n\nunpack(): PipelineConfigT {\n return new PipelineConfigT(\n this.bb!.createObjList<Pipe, PipeT>(this.pipes.bind(this), this.pipesLength())\n );\n}\n\n\nunpackTo(_o: PipelineConfigT): void {\n _o.pipes = this.bb!.createObjList<Pipe, PipeT>(this.pipes.bind(this), this.pipesLength());\n}\n}\n\nexport class PipelineConfigT implements flatbuffers.IGeneratedObject {\nconstructor(\n public pipes: (PipeT)[] = []\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const pipes = PipelineConfig.createPipesVector(builder, builder.createObjectOffsetList(this.pipes));\n\n return PipelineConfig.createPipelineConfig(builder,\n pipes\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\nimport { PipelineConfig, PipelineConfigT } from '../../nostr/fb/pipeline-config.js';\n\n\nexport class SubscriptionConfig implements flatbuffers.IUnpackableObject<SubscriptionConfigT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):SubscriptionConfig {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsSubscriptionConfig(bb:flatbuffers.ByteBuffer, obj?:SubscriptionConfig):SubscriptionConfig {\n return (obj || new SubscriptionConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsSubscriptionConfig(bb:flatbuffers.ByteBuffer, obj?:SubscriptionConfig):SubscriptionConfig {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new SubscriptionConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\npipeline(obj?:PipelineConfig):PipelineConfig|null {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? (obj || new PipelineConfig()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;\n}\n\ncloseOnEose():boolean {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;\n}\n\ncacheFirst():boolean {\n const offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : true;\n}\n\ntimeoutMs():bigint {\n const offset = this.bb!.__offset(this.bb_pos, 10);\n return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('0');\n}\n\nmaxEvents():number {\n const offset = this.bb!.__offset(this.bb_pos, 12);\n return offset ? this.bb!.readUint32(this.bb_pos + offset) : 0;\n}\n\nskipCache():boolean {\n const offset = this.bb!.__offset(this.bb_pos, 14);\n return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;\n}\n\nforce():boolean {\n const offset = this.bb!.__offset(this.bb_pos, 16);\n return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;\n}\n\nbytesPerEvent():number {\n const offset = this.bb!.__offset(this.bb_pos, 18);\n return offset ? this.bb!.readUint32(this.bb_pos + offset) : 0;\n}\n\nstatic startSubscriptionConfig(builder:flatbuffers.Builder) {\n builder.startObject(8);\n}\n\nstatic addPipeline(builder:flatbuffers.Builder, pipelineOffset:flatbuffers.Offset) {\n builder.addFieldOffset(0, pipelineOffset, 0);\n}\n\nstatic addCloseOnEose(builder:flatbuffers.Builder, closeOnEose:boolean) {\n builder.addFieldInt8(1, +closeOnEose, +false);\n}\n\nstatic addCacheFirst(builder:flatbuffers.Builder, cacheFirst:boolean) {\n builder.addFieldInt8(2, +cacheFirst, +true);\n}\n\nstatic addTimeoutMs(builder:flatbuffers.Builder, timeoutMs:bigint) {\n builder.addFieldInt64(3, timeoutMs, BigInt('0'));\n}\n\nstatic addMaxEvents(builder:flatbuffers.Builder, maxEvents:number) {\n builder.addFieldInt32(4, maxEvents, 0);\n}\n\nstatic addSkipCache(builder:flatbuffers.Builder, skipCache:boolean) {\n builder.addFieldInt8(5, +skipCache, +false);\n}\n\nstatic addForce(builder:flatbuffers.Builder, force:boolean) {\n builder.addFieldInt8(6, +force, +false);\n}\n\nstatic addBytesPerEvent(builder:flatbuffers.Builder, bytesPerEvent:number) {\n builder.addFieldInt32(7, bytesPerEvent, 0);\n}\n\nstatic endSubscriptionConfig(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n return offset;\n}\n\nstatic createSubscriptionConfig(builder:flatbuffers.Builder, pipelineOffset:flatbuffers.Offset, closeOnEose:boolean, cacheFirst:boolean, timeoutMs:bigint, maxEvents:number, skipCache:boolean, force:boolean, bytesPerEvent:number):flatbuffers.Offset {\n SubscriptionConfig.startSubscriptionConfig(builder);\n SubscriptionConfig.addPipeline(builder, pipelineOffset);\n SubscriptionConfig.addCloseOnEose(builder, closeOnEose);\n SubscriptionConfig.addCacheFirst(builder, cacheFirst);\n SubscriptionConfig.addTimeoutMs(builder, timeoutMs);\n SubscriptionConfig.addMaxEvents(builder, maxEvents);\n SubscriptionConfig.addSkipCache(builder, skipCache);\n SubscriptionConfig.addForce(builder, force);\n SubscriptionConfig.addBytesPerEvent(builder, bytesPerEvent);\n return SubscriptionConfig.endSubscriptionConfig(builder);\n}\n\nunpack(): SubscriptionConfigT {\n return new SubscriptionConfigT(\n (this.pipeline() !== null ? this.pipeline()!.unpack() : null),\n this.closeOnEose(),\n this.cacheFirst(),\n this.timeoutMs(),\n this.maxEvents(),\n this.skipCache(),\n this.force(),\n this.bytesPerEvent()\n );\n}\n\n\nunpackTo(_o: SubscriptionConfigT): void {\n _o.pipeline = (this.pipeline() !== null ? this.pipeline()!.unpack() : null);\n _o.closeOnEose = this.closeOnEose();\n _o.cacheFirst = this.cacheFirst();\n _o.timeoutMs = this.timeoutMs();\n _o.maxEvents = this.maxEvents();\n _o.skipCache = this.skipCache();\n _o.force = this.force();\n _o.bytesPerEvent = this.bytesPerEvent();\n}\n}\n\nexport class SubscriptionConfigT implements flatbuffers.IGeneratedObject {\nconstructor(\n public pipeline: PipelineConfigT|null = null,\n public closeOnEose: boolean = false,\n public cacheFirst: boolean = true,\n public timeoutMs: bigint = BigInt('0'),\n public maxEvents: number = 0,\n public skipCache: boolean = false,\n public force: boolean = false,\n public bytesPerEvent: number = 0\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const pipeline = (this.pipeline !== null ? this.pipeline!.pack(builder) : 0);\n\n return SubscriptionConfig.createSubscriptionConfig(builder,\n pipeline,\n this.closeOnEose,\n this.cacheFirst,\n this.timeoutMs,\n this.maxEvents,\n this.skipCache,\n this.force,\n this.bytesPerEvent\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\nimport { Request, RequestT } from '../../nostr/fb/request.js';\nimport { SubscriptionConfig, SubscriptionConfigT } from '../../nostr/fb/subscription-config.js';\n\n\nexport class Subscribe implements flatbuffers.IUnpackableObject<SubscribeT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):Subscribe {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsSubscribe(bb:flatbuffers.ByteBuffer, obj?:Subscribe):Subscribe {\n return (obj || new Subscribe()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsSubscribe(bb:flatbuffers.ByteBuffer, obj?:Subscribe):Subscribe {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Subscribe()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nsubscriptionId(): ByteString|null\nsubscriptionId(optionalEncoding:flatbuffers.Encoding): ByteString|Uint8Array|null\nsubscriptionId(optionalEncoding?:any): ByteString|Uint8Array|null {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.__stringByteString(this.bb_pos + offset, optionalEncoding) : null;\n}\n\nrequests(index: number, obj?:Request):Request|null {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? (obj || new Request()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n}\n\nrequestsLength():number {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n}\n\nconfig(obj?:SubscriptionConfig):SubscriptionConfig|null {\n const offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? (obj || new SubscriptionConfig()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;\n}\n\nstatic startSubscribe(builder:flatbuffers.Builder) {\n builder.startObject(3);\n}\n\nstatic addSubscriptionId(builder:flatbuffers.Builder, subscriptionIdOffset:flatbuffers.Offset) {\n builder.addFieldOffset(0, subscriptionIdOffset, 0);\n}\n\nstatic addRequests(builder:flatbuffers.Builder, requestsOffset:flatbuffers.Offset) {\n builder.addFieldOffset(1, requestsOffset, 0);\n}\n\nstatic createRequestsVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset {\n builder.startVector(4, data.length, 4);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addOffset(data[i]!);\n }\n return builder.endVector();\n}\n\nstatic startRequestsVector(builder:flatbuffers.Builder, numElems:number) {\n builder.startVector(4, numElems, 4);\n}\n\nstatic addConfig(builder:flatbuffers.Builder, configOffset:flatbuffers.Offset) {\n builder.addFieldOffset(2, configOffset, 0);\n}\n\nstatic endSubscribe(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n builder.requiredField(offset, 4) // subscription_id\n builder.requiredField(offset, 6) // requests\n builder.requiredField(offset, 8) // config\n return offset;\n}\n\n\nunpack(): SubscribeT {\n return new SubscribeT(\n this.subscriptionId(),\n this.bb!.createObjList<Request, RequestT>(this.requests.bind(this), this.requestsLength()),\n (this.config() !== null ? this.config()!.unpack() : null)\n );\n}\n\n\nunpackTo(_o: SubscribeT): void {\n _o.subscriptionId = this.subscriptionId();\n _o.requests = this.bb!.createObjList<Request, RequestT>(this.requests.bind(this), this.requestsLength());\n _o.config = (this.config() !== null ? this.config()!.unpack() : null);\n}\n}\n\nexport class SubscribeT implements flatbuffers.IGeneratedObject {\nconstructor(\n public subscriptionId: ByteString|Uint8Array|null = null,\n public requests: (RequestT)[] = [],\n public config: SubscriptionConfigT|null = null\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const subscriptionId = (this.subscriptionId !== null ? builder.createString(this.subscriptionId!) : 0);\n const requests = Subscribe.createRequestsVector(builder, builder.createObjectOffsetList(this.requests));\n const config = (this.config !== null ? this.config!.pack(builder) : 0);\n\n Subscribe.startSubscribe(builder);\n Subscribe.addSubscriptionId(builder, subscriptionId);\n Subscribe.addRequests(builder, requests);\n Subscribe.addConfig(builder, config);\n\n return Subscribe.endSubscribe(builder);\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\n\n\nexport class Unsubscribe implements flatbuffers.IUnpackableObject<UnsubscribeT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):Unsubscribe {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsUnsubscribe(bb:flatbuffers.ByteBuffer, obj?:Unsubscribe):Unsubscribe {\n return (obj || new Unsubscribe()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsUnsubscribe(bb:flatbuffers.ByteBuffer, obj?:Unsubscribe):Unsubscribe {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Unsubscribe()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nsubscriptionId(): ByteString|null\nsubscriptionId(optionalEncoding:flatbuffers.Encoding): ByteString|Uint8Array|null\nsubscriptionId(optionalEncoding?:any): ByteString|Uint8Array|null {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.__stringByteString(this.bb_pos + offset, optionalEncoding) : null;\n}\n\nstatic startUnsubscribe(builder:flatbuffers.Builder) {\n builder.startObject(1);\n}\n\nstatic addSubscriptionId(builder:flatbuffers.Builder, subscriptionIdOffset:flatbuffers.Offset) {\n builder.addFieldOffset(0, subscriptionIdOffset, 0);\n}\n\nstatic endUnsubscribe(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n builder.requiredField(offset, 4) // subscription_id\n return offset;\n}\n\nstatic createUnsubscribe(builder:flatbuffers.Builder, subscriptionIdOffset:flatbuffers.Offset):flatbuffers.Offset {\n Unsubscribe.startUnsubscribe(builder);\n Unsubscribe.addSubscriptionId(builder, subscriptionIdOffset);\n return Unsubscribe.endUnsubscribe(builder);\n}\n\nunpack(): UnsubscribeT {\n return new UnsubscribeT(\n this.subscriptionId()\n );\n}\n\n\nunpackTo(_o: UnsubscribeT): void {\n _o.subscriptionId = this.subscriptionId();\n}\n}\n\nexport class UnsubscribeT implements flatbuffers.IGeneratedObject {\nconstructor(\n public subscriptionId: ByteString|Uint8Array|null = null\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const subscriptionId = (this.subscriptionId !== null ? builder.createString(this.subscriptionId!) : 0);\n\n return Unsubscribe.createUnsubscribe(builder,\n subscriptionId\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport { GetPublicKey, GetPublicKeyT } from '../../nostr/fb/get-public-key.js';\nimport { Publish, PublishT } from '../../nostr/fb/publish.js';\nimport { SetSigner, SetSignerT } from '../../nostr/fb/set-signer.js';\nimport { SignEvent, SignEventT } from '../../nostr/fb/sign-event.js';\nimport { Subscribe, SubscribeT } from '../../nostr/fb/subscribe.js';\nimport { Unsubscribe, UnsubscribeT } from '../../nostr/fb/unsubscribe.js';\n\n\nexport enum MainContent {\n NONE = 0,\n Subscribe = 1,\n Unsubscribe = 2,\n Publish = 3,\n SignEvent = 4,\n SetSigner = 5,\n GetPublicKey = 6\n}\n\nexport function unionToMainContent(\n type: MainContent,\n accessor: (obj:GetPublicKey|Publish|SetSigner|SignEvent|Subscribe|Unsubscribe) => GetPublicKey|Publish|SetSigner|SignEvent|Subscribe|Unsubscribe|null\n): GetPublicKey|Publish|SetSigner|SignEvent|Subscribe|Unsubscribe|null {\n switch(MainContent[type]) {\n case 'NONE': return null; \n case 'Subscribe': return accessor(new Subscribe())! as Subscribe;\n case 'Unsubscribe': return accessor(new Unsubscribe())! as Unsubscribe;\n case 'Publish': return accessor(new Publish())! as Publish;\n case 'SignEvent': return accessor(new SignEvent())! as SignEvent;\n case 'SetSigner': return accessor(new SetSigner())! as SetSigner;\n case 'GetPublicKey': return accessor(new GetPublicKey())! as GetPublicKey;\n default: return null;\n }\n}\n\nexport function unionListToMainContent(\n type: MainContent, \n accessor: (index: number, obj:GetPublicKey|Publish|SetSigner|SignEvent|Subscribe|Unsubscribe) => GetPublicKey|Publish|SetSigner|SignEvent|Subscribe|Unsubscribe|null, \n index: number\n): GetPublicKey|Publish|SetSigner|SignEvent|Subscribe|Unsubscribe|null {\n switch(MainContent[type]) {\n case 'NONE': return null; \n case 'Subscribe': return accessor(index, new Subscribe())! as Subscribe;\n case 'Unsubscribe': return accessor(index, new Unsubscribe())! as Unsubscribe;\n case 'Publish': return accessor(index, new Publish())! as Publish;\n case 'SignEvent': return accessor(index, new SignEvent())! as SignEvent;\n case 'SetSigner': return accessor(index, new SetSigner())! as SetSigner;\n case 'GetPublicKey': return accessor(index, new GetPublicKey())! as GetPublicKey;\n default: return null;\n }\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\nimport { GetPublicKey, GetPublicKeyT } from '../../nostr/fb/get-public-key.js';\nimport { MainContent, unionToMainContent, unionListToMainContent } from '../../nostr/fb/main-content.js';\nimport { Publish, PublishT } from '../../nostr/fb/publish.js';\nimport { SetSigner, SetSignerT } from '../../nostr/fb/set-signer.js';\nimport { SignEvent, SignEventT } from '../../nostr/fb/sign-event.js';\nimport { Subscribe, SubscribeT } from '../../nostr/fb/subscribe.js';\nimport { Unsubscribe, UnsubscribeT } from '../../nostr/fb/unsubscribe.js';\n\n\nexport class MainMessage implements flatbuffers.IUnpackableObject<MainMessageT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):MainMessage {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsMainMessage(bb:flatbuffers.ByteBuffer, obj?:MainMessage):MainMessage {\n return (obj || new MainMessage()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsMainMessage(bb:flatbuffers.ByteBuffer, obj?:MainMessage):MainMessage {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new MainMessage()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\ncontentType():MainContent {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readUint8(this.bb_pos + offset) : MainContent.NONE;\n}\n\ncontent<T extends flatbuffers.Table>(obj:any):any|null {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__union(obj, this.bb_pos + offset) : null;\n}\n\nstatic startMainMessage(builder:flatbuffers.Builder) {\n builder.startObject(2);\n}\n\nstatic addContentType(builder:flatbuffers.Builder, contentType:MainContent) {\n builder.addFieldInt8(0, contentType, MainContent.NONE);\n}\n\nstatic addContent(builder:flatbuffers.Builder, contentOffset:flatbuffers.Offset) {\n builder.addFieldOffset(1, contentOffset, 0);\n}\n\nstatic endMainMessage(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n builder.requiredField(offset, 6) // content\n return offset;\n}\n\nstatic createMainMessage(builder:flatbuffers.Builder, contentType:MainContent, contentOffset:flatbuffers.Offset):flatbuffers.Offset {\n MainMessage.startMainMessage(builder);\n MainMessage.addContentType(builder, contentType);\n MainMessage.addContent(builder, contentOffset);\n return MainMessage.endMainMessage(builder);\n}\n\nunpack(): MainMessageT {\n return new MainMessageT(\n this.contentType(),\n (() => {\n const temp = unionToMainContent(this.contentType(), this.content.bind(this));\n if(temp === null) { return null; }\n return temp.unpack()\n })()\n );\n}\n\n\nunpackTo(_o: MainMessageT): void {\n _o.contentType = this.contentType();\n _o.content = (() => {\n const temp = unionToMainContent(this.contentType(), this.content.bind(this));\n if(temp === null) { return null; }\n return temp.unpack()\n })();\n}\n}\n\nexport class MainMessageT implements flatbuffers.IGeneratedObject {\nconstructor(\n public contentType: MainContent = MainContent.NONE,\n public content: GetPublicKeyT|PublishT|SetSignerT|SignEventT|SubscribeT|UnsubscribeT|null = null\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const content = builder.createObjectOffset(this.content);\n\n return MainMessage.createMainMessage(builder,\n this.contentType,\n content\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nexport enum MsgKind {\n Unknown = 0,\n Event = 1,\n Eose = 2,\n Ok = 3,\n Closed = 4,\n Notice = 5,\n Auth = 6\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nexport enum ParsedDataUnion {\n Kind0Parsed = 0,\n Kind1Parsed = 1,\n Kind3Parsed = 3,\n Kind4Parsed = 4,\n Kind6Parsed = 6,\n Kind7Parsed = 7,\n Kind17Parsed = 17,\n Kind7374Parsed = 7374,\n Kind7375Parsed = 7375,\n Kind7376Parsed = 7376,\n Kind9321Parsed = 9321,\n Kind9735Parsed = 9735,\n Kind10002Parsed = 10002,\n Kind10019Parsed = 10019,\n Kind17375Parsed = 17375,\n Kind39089Parsed = 39089\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\n\n\nexport class RelayRef implements flatbuffers.IUnpackableObject<RelayRefT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):RelayRef {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsRelayRef(bb:flatbuffers.ByteBuffer, obj?:RelayRef):RelayRef {\n return (obj || new RelayRef()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsRelayRef(bb:flatbuffers.ByteBuffer, obj?:RelayRef):RelayRef {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new RelayRef()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nurl(): ByteString|null\nurl(optionalEncoding:flatbuffers.Encoding): ByteString|Uint8Array|null\nurl(optionalEncoding?:any): ByteString|Uint8Array|null {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.__stringByteString(this.bb_pos + offset, optionalEncoding) : null;\n}\n\nstatic startRelayRef(builder:flatbuffers.Builder) {\n builder.startObject(1);\n}\n\nstatic addUrl(builder:flatbuffers.Builder, urlOffset:flatbuffers.Offset) {\n builder.addFieldOffset(0, urlOffset, 0);\n}\n\nstatic endRelayRef(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n builder.requiredField(offset, 4) // url\n return offset;\n}\n\nstatic createRelayRef(builder:flatbuffers.Builder, urlOffset:flatbuffers.Offset):flatbuffers.Offset {\n RelayRef.startRelayRef(builder);\n RelayRef.addUrl(builder, urlOffset);\n return RelayRef.endRelayRef(builder);\n}\n\nunpack(): RelayRefT {\n return new RelayRefT(\n this.url()\n );\n}\n\n\nunpackTo(_o: RelayRefT): void {\n _o.url = this.url();\n}\n}\n\nexport class RelayRefT implements flatbuffers.IGeneratedObject {\nconstructor(\n public url: ByteString|Uint8Array|null = null\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const url = (this.url !== null ? builder.createString(this.url!) : 0);\n\n return RelayRef.createRelayRef(builder,\n url\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nexport enum SubscribeKind {\n CachedEvent = 0,\n FetchedEvent = 1,\n Count = 2,\n ConnectionStatus = 3,\n Eoce = 4,\n BufferFull = 5\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\nimport { MsgKind } from '../../nostr/fb/msg-kind.js';\nimport { RelayRef, RelayRefT } from '../../nostr/fb/relay-ref.js';\n\n\nexport class WorkerLine implements flatbuffers.IUnpackableObject<WorkerLineT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):WorkerLine {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsWorkerLine(bb:flatbuffers.ByteBuffer, obj?:WorkerLine):WorkerLine {\n return (obj || new WorkerLine()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsWorkerLine(bb:flatbuffers.ByteBuffer, obj?:WorkerLine):WorkerLine {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new WorkerLine()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nrelay(obj?:RelayRef):RelayRef|null {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? (obj || new RelayRef()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;\n}\n\nkind():MsgKind {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.readInt16(this.bb_pos + offset) : MsgKind.Unknown;\n}\n\nsubId(): ByteString|null\nsubId(optionalEncoding:flatbuffers.Encoding): ByteString|Uint8Array|null\nsubId(optionalEncoding?:any): ByteString|Uint8Array|null {\n const offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? this.bb!.__stringByteString(this.bb_pos + offset, optionalEncoding) : null;\n}\n\nraw(index: number):number|null {\n const offset = this.bb!.__offset(this.bb_pos, 10);\n return offset ? this.bb!.readUint8(this.bb!.__vector(this.bb_pos + offset) + index) : 0;\n}\n\nrawLength():number {\n const offset = this.bb!.__offset(this.bb_pos, 10);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n}\n\nrawArray():Uint8Array|null {\n const offset = this.bb!.__offset(this.bb_pos, 10);\n return offset ? new Uint8Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null;\n}\n\nstatic startWorkerLine(builder:flatbuffers.Builder) {\n builder.startObject(4);\n}\n\nstatic addRelay(builder:flatbuffers.Builder, relayOffset:flatbuffers.Offset) {\n builder.addFieldOffset(0, relayOffset, 0);\n}\n\nstatic addKind(builder:flatbuffers.Builder, kind:MsgKind) {\n builder.addFieldInt16(1, kind, MsgKind.Unknown);\n}\n\nstatic addSubId(builder:flatbuffers.Builder, subIdOffset:flatbuffers.Offset) {\n builder.addFieldOffset(2, subIdOffset, 0);\n}\n\nstatic addRaw(builder:flatbuffers.Builder, rawOffset:flatbuffers.Offset) {\n builder.addFieldOffset(3, rawOffset, 0);\n}\n\nstatic createRawVector(builder:flatbuffers.Builder, data:number[]|Uint8Array):flatbuffers.Offset {\n builder.startVector(1, data.length, 1);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addInt8(data[i]!);\n }\n return builder.endVector();\n}\n\nstatic startRawVector(builder:flatbuffers.Builder, numElems:number) {\n builder.startVector(1, numElems, 1);\n}\n\nstatic endWorkerLine(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n builder.requiredField(offset, 4) // relay\n builder.requiredField(offset, 10) // raw\n return offset;\n}\n\nstatic createWorkerLine(builder:flatbuffers.Builder, relayOffset:flatbuffers.Offset, kind:MsgKind, subIdOffset:flatbuffers.Offset, rawOffset:flatbuffers.Offset):flatbuffers.Offset {\n WorkerLine.startWorkerLine(builder);\n WorkerLine.addRelay(builder, relayOffset);\n WorkerLine.addKind(builder, kind);\n WorkerLine.addSubId(builder, subIdOffset);\n WorkerLine.addRaw(builder, rawOffset);\n return WorkerLine.endWorkerLine(builder);\n}\n\nunpack(): WorkerLineT {\n return new WorkerLineT(\n (this.relay() !== null ? this.relay()!.unpack() : null),\n this.kind(),\n this.subId(),\n this.bb!.createScalarList<number>(this.raw.bind(this), this.rawLength())\n );\n}\n\n\nunpackTo(_o: WorkerLineT): void {\n _o.relay = (this.relay() !== null ? this.relay()!.unpack() : null);\n _o.kind = this.kind();\n _o.subId = this.subId();\n _o.raw = this.bb!.createScalarList<number>(this.raw.bind(this), this.rawLength());\n}\n}\n\nexport class WorkerLineT implements flatbuffers.IGeneratedObject {\nconstructor(\n public relay: RelayRefT|null = null,\n public kind: MsgKind = MsgKind.Unknown,\n public subId: ByteString|Uint8Array|null = null,\n public raw: (number)[] = []\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const relay = (this.relay !== null ? this.relay!.pack(builder) : 0);\n const subId = (this.subId !== null ? builder.createString(this.subId!) : 0);\n const raw = WorkerLine.createRawVector(builder, this.raw);\n\n return WorkerLine.createWorkerLine(builder,\n relay,\n this.kind,\n subId,\n raw\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\nimport { BufferFull, BufferFullT } from '../../nostr/fb/buffer-full.js';\nimport { ConnectionStatus, ConnectionStatusT } from '../../nostr/fb/connection-status.js';\nimport { CountResponse, CountResponseT } from '../../nostr/fb/count-response.js';\nimport { Eoce, EoceT } from '../../nostr/fb/eoce.js';\nimport { Message, unionToMessage, unionListToMessage } from '../../nostr/fb/message.js';\nimport { MessageType } from '../../nostr/fb/message-type.js';\nimport { ParsedEvent, ParsedEventT } from '../../nostr/fb/parsed-event.js';\nimport { Pubkey, PubkeyT } from '../../nostr/fb/pubkey.js';\nimport { SignedEvent, SignedEventT } from '../../nostr/fb/signed-event.js';\nimport { ValidProofs, ValidProofsT } from '../../nostr/fb/valid-proofs.js';\n\n\nexport class WorkerMessage implements flatbuffers.IUnpackableObject<WorkerMessageT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):WorkerMessage {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsWorkerMessage(bb:flatbuffers.ByteBuffer, obj?:WorkerMessage):WorkerMessage {\n return (obj || new WorkerMessage()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsWorkerMessage(bb:flatbuffers.ByteBuffer, obj?:WorkerMessage):WorkerMessage {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new WorkerMessage()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\ntype():MessageType {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readUint32(this.bb_pos + offset) : MessageType.ParsedNostrEvent;\n}\n\ncontentType():Message {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.readUint8(this.bb_pos + offset) : Message.NONE;\n}\n\ncontent<T extends flatbuffers.Table>(obj:any):any|null {\n const offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? this.bb!.__union(obj, this.bb_pos + offset) : null;\n}\n\nstatic startWorkerMessage(builder:flatbuffers.Builder) {\n builder.startObject(3);\n}\n\nstatic addType(builder:flatbuffers.Builder, type:MessageType) {\n builder.addFieldInt32(0, type, MessageType.ParsedNostrEvent);\n}\n\nstatic addContentType(builder:flatbuffers.Builder, contentType:Message) {\n builder.addFieldInt8(1, contentType, Message.NONE);\n}\n\nstatic addContent(builder:flatbuffers.Builder, contentOffset:flatbuffers.Offset) {\n builder.addFieldOffset(2, contentOffset, 0);\n}\n\nstatic endWorkerMessage(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n return offset;\n}\n\nstatic finishWorkerMessageBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) {\n builder.finish(offset);\n}\n\nstatic finishSizePrefixedWorkerMessageBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) {\n builder.finish(offset, undefined, true);\n}\n\nstatic createWorkerMessage(builder:flatbuffers.Builder, type:MessageType, contentType:Message, contentOffset:flatbuffers.Offset):flatbuffers.Offset {\n WorkerMessage.startWorkerMessage(builder);\n WorkerMessage.addType(builder, type);\n WorkerMessage.addContentType(builder, contentType);\n WorkerMessage.addContent(builder, contentOffset);\n return WorkerMessage.endWorkerMessage(builder);\n}\n\nunpack(): WorkerMessageT {\n return new WorkerMessageT(\n this.type(),\n this.contentType(),\n (() => {\n const temp = unionToMessage(this.contentType(), this.content.bind(this));\n if(temp === null) { return null; }\n return temp.unpack()\n })()\n );\n}\n\n\nunpackTo(_o: WorkerMessageT): void {\n _o.type = this.type();\n _o.contentType = this.contentType();\n _o.content = (() => {\n const temp = unionToMessage(this.contentType(), this.content.bind(this));\n if(temp === null) { return null; }\n return temp.unpack()\n })();\n}\n}\n\nexport class WorkerMessageT implements flatbuffers.IGeneratedObject {\nconstructor(\n public type: MessageType = MessageType.ParsedNostrEvent,\n public contentType: Message = Message.NONE,\n public content: BufferFullT|ConnectionStatusT|CountResponseT|EoceT|ParsedEventT|PubkeyT|SignedEventT|ValidProofsT|null = null\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const content = builder.createObjectOffset(this.content);\n\n return WorkerMessage.createWorkerMessage(builder,\n this.type,\n this.contentType,\n content\n );\n}\n}\n","import { ByteBuffer } from 'flatbuffers';\nimport { WorkerMessage } from 'src/generated/nostr/fb';\n\n/**\n * Utility library for reading from SharedArrayBuffer with 4-byte header approach\n * Header format: [0-3]: Write position (4 bytes, little endian)\n * Data format: [4+]: [4-byte length][msgpack event][4-byte length][msgpack event]...\n */\nexport class SharedBufferReader {\n\t/**\n\t * Initialize a buffer for writing - sets the write position header to 4\n\t * @param buffer The SharedArrayBuffer to initialize\n\t */\n\tstatic initializeBuffer(buffer: SharedArrayBuffer): void {\n\t\tconst view = new DataView(buffer);\n\t\t// Set initial write position to 4 (right after the header)\n\t\tview.setUint32(0, 4, true);\n\t}\n\n\t/**\n\t * Write a message to the SharedArrayBuffer\n\t * @param buffer The SharedArrayBuffer to write to\n\t * @param data The data to write (already encoded as Uint8Array)\n\t * @returns True if written successfully, false if buffer is full\n\t */\n\tstatic writeMessage(buffer: SharedArrayBuffer, data: Uint8Array): boolean {\n\t\tconst view = new DataView(buffer);\n\t\tconst uint8View = new Uint8Array(buffer);\n\n\t\t// Get current write position\n\t\tconst currentWritePosition = view.getUint32(0, true);\n\n\t\t// Check if there's enough space (4 bytes for length + data length)\n\t\tconst requiredSpace = 4 + data.length;\n\t\tif (currentWritePosition + requiredSpace > buffer.byteLength) {\n\t\t\tconsole.warn('Buffer full, cannot write message');\n\t\t\treturn false;\n\t\t}\n\n\t\t// Write the length prefix (4 bytes, little endian)\n\t\tview.setUint32(currentWritePosition, data.length, true);\n\n\t\t// Write the actual data\n\t\tuint8View.set(data, currentWritePosition + 4);\n\n\t\t// Update the write position header\n\t\tconst newWritePosition = currentWritePosition + requiredSpace;\n\t\tview.setUint32(0, newWritePosition, true);\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Read new messages from SharedArrayBuffer since last read position\n\t * @param buffer The SharedArrayBuffer to read from\n\t * @param lastReadPosition Last position read (default: 0, meaning read from beginning)\n\t * @returns Object containing new messages and updated read position\n\t */\n\tstatic readMessages(buffer: SharedArrayBuffer, lastReadPosition: number = 0) {\n\t\tconst view = new DataView(buffer);\n\t\tconst uint8View = new Uint8Array(buffer);\n\n\t\tconst currentWritePosition = view.getUint32(0, true);\n\t\tconst dataStartOffset = 4;\n\t\tlet currentPos = lastReadPosition < dataStartOffset ? dataStartOffset : lastReadPosition;\n\t\tif (currentWritePosition <= currentPos) {\n\t\t\treturn { messages: [], newReadPosition: currentPos, hasNewData: false };\n\t\t}\n\n\t\tconst maxMessages = 128;\n\t\tconst messages: WorkerMessage[] = new Array(maxMessages);\n\t\tlet msgCount = 0;\n\n\t\ttry {\n\t\t\twhile (currentPos < currentWritePosition) {\n\t\t\t\t// Stop if we've filled this batch; leave currentPos at the start of the next message\n\t\t\t\tif (msgCount >= maxMessages) break;\n\n\t\t\t\t// Need enough bytes for header\n\t\t\t\tif (currentPos + 4 > currentWritePosition) break;\n\n\t\t\t\tconst headerPos = currentPos;\n\t\t\t\tconst eventLength = view.getUint32(headerPos, true);\n\t\t\t\tconst payloadStart = headerPos + 4;\n\t\t\t\tconst nextPos = payloadStart + eventLength;\n\n\t\t\t\t// Need the full payload to be available\n\t\t\t\tif (nextPos > currentWritePosition) break;\n\n\t\t\t\t// ⚡ ZERO-COPY: create subarray view directly over SharedArrayBuffer\n\t\t\t\tconst flatBufferData = uint8View.subarray(payloadStart, nextPos);\n\n\t\t\t\t// Parse directly\n\t\t\t\tconst bb = new ByteBuffer(flatBufferData);\n\t\t\t\tconst message = WorkerMessage.getRootAsWorkerMessage(bb);\n\n\t\t\t\tmessages[msgCount++] = message;\n\n\t\t\t\t// Advance to next message boundary\n\t\t\t\tcurrentPos = nextPos;\n\t\t\t}\n\n\t\t\tmessages.length = msgCount;\n\t\t\treturn {\n\t\t\t\tmessages,\n\t\t\t\tnewReadPosition: currentPos,\n\t\t\t\thasNewData: msgCount > 0\n\t\t\t};\n\t\t} catch (error) {\n\t\t\tconsole.error('Failed to decode FlatBuffer data from SharedArrayBuffer:', error);\n\t\t\tmessages.length = msgCount;\n\t\t\treturn {\n\t\t\t\tmessages,\n\t\t\t\tnewReadPosition: lastReadPosition < dataStartOffset ? dataStartOffset : lastReadPosition,\n\t\t\t\thasNewData: false\n\t\t\t};\n\t\t}\n\t}\n\n\t/**\n\t * Read all messages from SharedArrayBuffer from the beginning (ignores lastReadPosition)\n\t * @param buffer The SharedArrayBuffer to read from\n\t * @returns Object containing all messages in the buffer\n\t */\n\tstatic readAllMessages(buffer: SharedArrayBuffer): {\n\t\tmessages: WorkerMessage[];\n\t\ttotalMessages: number;\n\t} {\n\t\tconst result = this.readMessages(buffer, 0); // Always start from beginning\n\t\treturn {\n\t\t\tmessages: result.messages,\n\t\t\ttotalMessages: result.messages.length\n\t\t};\n\t}\n\n\t/**\n\t * Get current write position from buffer header\n\t * @param buffer The SharedArrayBuffer to read from\n\t * @returns Current write position\n\t */\n\tstatic getCurrentWritePosition(buffer: SharedArrayBuffer): number {\n\t\tconst view = new DataView(buffer);\n\t\treturn view.getUint32(0, true);\n\t}\n\n\t/**\n\t * Check if buffer has new data since last read\n\t * @param buffer The SharedArrayBuffer to check\n\t * @param lastReadPosition Last position read\n\t * @returns True if there's new data to read\n\t */\n\tstatic hasNewData(buffer: SharedArrayBuffer, lastReadPosition: number): boolean {\n\t\tconst currentWritePosition = this.getCurrentWritePosition(buffer);\n\t\tconst dataStartOffset = 4;\n\t\tconst actualLastReadPosition = Math.max(lastReadPosition, dataStartOffset);\n\t\treturn currentWritePosition > actualLastReadPosition;\n\t}\n\n\t/**\n\t * Calculate recommended buffer size based on request limits\n\t * @param totalEventLimit Total expected events across all requests\n\t * @param bytesPerEvent Estimated bytes per event (default: 3072)\n\t * @returns Recommended buffer size in bytes\n\t */\n\tstatic calculateBufferSize(totalEventLimit: number = 100, bytesPerEvent: number = 3072): number {\n\t\tconst headerSize = 4;\n\t\tconst dataSize = totalEventLimit * bytesPerEvent;\n\t\tconst overhead = Math.floor(dataSize * 0.25); // 25% overhead\n\t\treturn headerSize + dataSize + overhead;\n\t}\n}\n","import RustWorker from '@candypoets/rust-worker/worker.js?worker';\nimport wasmAsset from '@candypoets/rust-worker/rust_worker_bg.wasm?url';\nimport type { EventTemplate, NostrEvent } from 'nostr-tools';\n\nimport { SharedBufferReader } from 'src/lib/SharedBuffer';\n\nimport * as flatbuffers from 'flatbuffers';\nimport { RequestObject, SubscriptionConfig } from 'src/types';\nimport {\n\tGetPublicKeyT,\n\tMainContent,\n\tMainMessageT,\n\tPipelineConfigT,\n\tPrivateKeyT,\n\tPublishT,\n\tRequestT,\n\tSetSignerT,\n\tSignerType,\n\tSignEventT,\n\tStringVecT,\n\tSubscribeT,\n\tSubscriptionConfigT,\n\tTemplateT,\n\tUnsubscribeT\n} from './generated/nostr/fb';\n\n/**\n * Configuration for the Nostr Manager\n */\nexport interface NostrManagerConfig {\n\tbufferKey: string;\n\tmaxBufferSize: number;\n\tinRing: SharedArrayBuffer;\n\toutRing: SharedArrayBuffer;\n}\n\n// Globals for single fetch + per-worker copies\nlet originalWasmBuffer: ArrayBuffer | null = null;\nlet fetchPromise: Promise<void> | null = null;\n\nasync function ensureOriginalBuffer(): Promise<void> {\n\tif (fetchPromise) {\n\t\treturn fetchPromise;\n\t}\n\n\tfetchPromise = fetch(wasmAsset)\n\t\t.then((res) => {\n\t\t\tif (!res.ok) {\n\t\t\t\tthrow new Error(`Failed to fetch WASM: ${res.status} ${res.statusText}`);\n\t\t\t}\n\t\t\treturn res.arrayBuffer();\n\t\t})\n\t\t.then((buffer) => {\n\t\t\toriginalWasmBuffer = buffer; // Cache the original (never transfer this one)\n\t\t})\n\t\t.catch((error) => {\n\t\t\tconsole.error('WASM fetch failed:', error);\n\t\t\tthrow error;\n\t\t});\n\n\treturn fetchPromise;\n}\n\n/**\n * Pure TypeScript NostrClient that manages worker communication and state.\n * Uses WASM utilities for heavy lifting (encoding, decoding, crypto).\n */\nexport class NostrManager {\n\tprivate worker: Worker;\n\tprivate textEncoder = new TextEncoder();\n\tprivate subscriptions = new Map<\n\t\tstring,\n\t\t{\n\t\t\tbuffer: SharedArrayBuffer;\n\t\t\toptions: SubscriptionConfig;\n\t\t\trefCount: number;\n\t\t}\n\t>();\n\tprivate publishes = new Map<string, { buffer: SharedArrayBuffer }>();\n\tprivate signers = new Map<string, string>(); // name -> secret key hex\n\n\tprivate signCB = (event: any) => {};\n\tprivate eventTarget = new EventTarget();\n\n\tpublic PERPETUAL_SUBSCRIPTIONS = ['notifications', 'starterpack'];\n\n\t// In constructor, do NOT start init directly. Just set up ready lazily.\n\tconstructor(config: NostrManagerConfig) {\n\t\tthis.config = config;\n\t\t// Optionally prewarm, but at idle priority:\n\t\tconst prewarm = () => void this.init();\n\t\tif ('requestIdleCallback' in window) {\n\t\t\t(window as any).requestIdleCallback(prewarm, { timeout: 2000 });\n\t\t} else {\n\t\t\tsetTimeout(prewarm, 1500);\n\t\t}\n\t}\n\n\tprivate _ready: Promise<void> | null = null;\n\tprivate config!: NostrManagerConfig;\n\n\tprivate init(): Promise<void> {\n\t\tif (this._ready) return this._ready;\n\n\t\tthis.worker = this.createWorker();\n\t\tthis.setupWorkerListener();\n\n\t\tthis._ready = (async () => {\n\t\t\tawait ensureOriginalBuffer();\n\t\t\t// Create a transferable copy for the worker to avoid an extra clone.\n\t\t\tconst wasmCopy = originalWasmBuffer!.slice(0);\n\t\t\tthis.worker.postMessage(\n\t\t\t\t{\n\t\t\t\t\ttype: 'init',\n\t\t\t\t\tpayload: {\n\t\t\t\t\t\tbufferKey: this.config.bufferKey,\n\t\t\t\t\t\tmaxBufferSize: this.config.maxBufferSize,\n\t\t\t\t\t\twasmBuffer: wasmCopy,\n\t\t\t\t\t\tinRing: this.config.inRing,\n\t\t\t\t\t\toutRing: this.config.outRing\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t// Transfer the wasm copy to the worker (no duplicate copy).\n\t\t\t\t[wasmCopy]\n\t\t\t);\n\t\t})();\n\n\t\treturn this._ready;\n\t}\n\n\t// Helper so all calls route through a single place and never race init:\n\tprivate postToWorker(message: any, transfer?: Transferable[]) {\n\t\treturn this.init().then(() => {\n\t\t\tif (transfer && transfer.length) {\n\t\t\t\tthis.worker.postMessage(message, transfer);\n\t\t\t} else {\n\t\t\t\tthis.worker.postMessage(message);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate createWorker(): Worker {\n\t\treturn new RustWorker();\n\t}\n\n\tprivate setupWorkerListener() {\n\t\tthis.worker.onmessage = async (event) => {\n\t\t\tconst id = typeof event.data === 'string' ? event.data : undefined;\n\t\t\ttry {\n\t\t\t\tif (event.data.startsWith('{\"id\":')) {\n\t\t\t\t\tconst parsed = JSON.parse(event.data);\n\t\t\t\t\tthis.signCB(parsed);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\t// console.error(\"Error parsing event data:\", error);\n\t\t\t}\n\n\t\t\tif (!id) return;\n\n\t\t\t// Prefer O(1) routing via your existing maps\n\t\t\tif (this.subscriptions.has(id)) {\n\t\t\t\t// Notify only the listeners for this subscription\n\t\t\t\tthis.dispatch(`subscription:${id}`, id);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (this.publishes.has(id)) {\n\t\t\t\tthis.dispatch(`publish:${id}`, id);\n\t\t\t\treturn;\n\t\t\t}\n\t\t};\n\n\t\tthis.worker.onerror = (error) => {\n\t\t\tconsole.error('Worker error:', error);\n\t\t};\n\t}\n\n\tpublic createShortId(input: string): string {\n\t\tif (input.length < 64) return input;\n\t\tlet hash = 0;\n\t\tfor (let i = 0; i < input.length; i++) {\n\t\t\tconst char = input.charCodeAt(i);\n\t\t\thash = (hash << 5) - hash + char;\n\t\t\thash = hash & hash;\n\t\t}\n\t\tconst shortId = Math.abs(hash).toString(36);\n\t\treturn shortId.substring(0, 63);\n\t}\n\n\tpublic addEventListener(\n\t\ttype: string,\n\t\tlistener: EventListenerOrEventListenerObject,\n\t\toptions?: AddEventListenerOptions\n\t): void {\n\t\tthis.eventTarget.addEventListener(type, listener as EventListener, options);\n\t}\n\n\tpublic removeEventListener(\n\t\ttype: string,\n\t\tlistener: EventListenerOrEventListenerObject,\n\t\toptions?: EventListenerOptions\n\t): void {\n\t\tthis.eventTarget.removeEventListener(type, listener as EventListener, options);\n\t}\n\n\tprivate dispatch(type: string, detail?: unknown): void {\n\t\tthis.eventTarget.dispatchEvent(new CustomEvent(type, { detail }));\n\t}\n\n\tsubscribe(\n\t\tsubscriptionId: string,\n\t\trequests: RequestObject[],\n\t\toptions: SubscriptionConfig\n\t): SharedArrayBuffer {\n\t\tconst subId = this.createShortId(subscriptionId);\n\n\t\tconst existingSubscription = this.subscriptions.get(subId);\n\n\t\tif (existingSubscription) {\n\t\t\texistingSubscription.refCount++;\n\t\t\treturn existingSubscription.buffer;\n\t\t}\n\n\t\tconst totalLimit = requests.reduce((sum, req) => sum + (req.limit || 100), 0);\n\n\t\tconst bufferSize = SharedBufferReader.calculateBufferSize(totalLimit, options.bytesPerEvent);\n\n\t\tlet initialMessage: Uint8Array<ArrayBufferLike> = new Uint8Array();\n\n\t\tconst buffer = new SharedArrayBuffer(bufferSize + initialMessage.length);\n\n\t\t// Initialize the buffer (sets write position to 4)\n\t\tSharedBufferReader.initializeBuffer(buffer);\n\n\t\t// Write the initial message if provided\n\t\tif (initialMessage.length > 0) {\n\t\t\tconst success = SharedBufferReader.writeMessage(buffer, initialMessage);\n\t\t\tif (!success) {\n\t\t\t\tconsole.error('Failed to write initial message to buffer');\n\t\t\t}\n\t\t}\n\n\t\tthis.subscriptions.set(subId, {\n\t\t\tbuffer,\n\t\t\toptions,\n\t\t\trefCount: 1\n\t\t});\n\n\t\tconst optionsT = new SubscriptionConfigT(\n\t\t\tnew PipelineConfigT(options.pipeline || []),\n\t\t\toptions.closeOnEose,\n\t\t\toptions.cacheFirst,\n\t\t\toptions.timeoutMs ? BigInt(options.timeoutMs) : undefined,\n\t\t\toptions.maxEvents,\n\t\t\toptions.skipCache,\n\t\t\toptions.force,\n\t\t\toptions.bytesPerEvent\n\t\t);\n\n\t\tconst subscribeT = new SubscribeT(\n\t\t\tthis.textEncoder.encode(subId),\n\t\t\trequests.map(\n\t\t\t\t(r) =>\n\t\t\t\t\tnew RequestT(\n\t\t\t\t\t\tr.ids,\n\t\t\t\t\t\tr.authors,\n\t\t\t\t\t\tr.kinds,\n\t\t\t\t\t\tObject.entries(r.tags || {}).flatMap(\n\t\t\t\t\t\t\t([key, values]) => new StringVecT([key, ...values])\n\t\t\t\t\t\t),\n\t\t\t\t\t\tr.limit,\n\t\t\t\t\t\tr.since,\n\t\t\t\t\t\tr.until,\n\t\t\t\t\t\tthis.textEncoder.encode(r.search),\n\t\t\t\t\t\tr.relays,\n\t\t\t\t\t\tr.closeOnEOSE,\n\t\t\t\t\t\tr.cacheFirst\n\t\t\t\t\t)\n\t\t\t),\n\t\t\toptionsT\n\t\t);\n\n\t\t// Wrap in MainMessageT as Subscribe variant\n\t\tconst mainT = new MainMessageT(MainContent.Subscribe, subscribeT);\n\n\t\t// Serialize with FlatBuffers builder\n\t\tconst builder = new flatbuffers.Builder(2048);\n\t\tconst mainOffset = mainT.pack(builder);\n\t\tbuilder.finish(mainOffset);\n\t\tconst serializedMessage = builder.asUint8Array();\n\n\t\ttry {\n\t\t\t// nipWorker.resetInputLoopBackoff();\n\t\t\tvoid this.postToWorker({ serializedMessage, sharedBuffer: buffer });\n\n\t\t\treturn buffer;\n\t\t} catch (error) {\n\t\t\tthis.subscriptions.delete(subId);\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tgetBuffer(subId: string): SharedArrayBuffer | undefined {\n\t\tconst existingSubscription = this.subscriptions.get(subId);\n\t\tif (existingSubscription) {\n\t\t\texistingSubscription.refCount++;\n\t\t\treturn existingSubscription.buffer;\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tunsubscribe(subscriptionId: string): void {\n\t\tconst subId = subscriptionId.length < 64 ? subscriptionId : this.createShortId(subscriptionId);\n\t\tconst subscription = this.subscriptions.get(subId);\n\t\tif (subscription) {\n\t\t\tsubscription.refCount--;\n\t\t}\n\t}\n\n\tpublish(publish_id: string, event: NostrEvent): SharedArrayBuffer {\n\t\t// a publish buffer fit in 3kb\n\t\tconst buffer = new SharedArrayBuffer(3072);\n\n\t\t// Initialize the buffer (sets write position to 4)\n\t\tSharedBufferReader.initializeBuffer(buffer);\n\n\t\ttry {\n\t\t\tconst templateT = new TemplateT(\n\t\t\t\tevent.kind,\n\t\t\t\tthis.textEncoder.encode(event.content),\n\t\t\t\tevent.tags.map((t) => new StringVecT(t)) || []\n\t\t\t);\n\t\t\tconst publishT = new PublishT(this.textEncoder.encode(publish_id), templateT);\n\n\t\t\t// Wrap in MainMessageT as Publish variant\n\t\t\tconst mainT = new MainMessageT(MainContent.Publish, publishT);\n\n\t\t\t// Serialize with FlatBuffers builder\n\t\t\tconst builder = new flatbuffers.Builder(2048);\n\t\t\tconst mainOffset = mainT.pack(builder);\n\t\t\tbuilder.finish(mainOffset);\n\t\t\tconst serializedMessage = builder.asUint8Array();\n\n\t\t\t// nipWorker.resetInputLoopBackoff();\n\t\t\tthis.postToWorker({ serializedMessage, sharedBuffer: buffer });\n\n\t\t\tthis.publishes.set(publish_id, { buffer });\n\t\t\treturn buffer;\n\t\t} catch (error) {\n\t\t\tconsole.error('Failed to publish event:', error);\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tsetSigner(name: string, secretKeyHex: string): void {\n\t\tconsole.log('setSigner', name, secretKeyHex);\n\n\t\t// Create the PrivateKeyT object\n\t\tconst privateKeyT = new PrivateKeyT(this.textEncoder.encode(secretKeyHex));\n\n\t\t// Create the SetSignerT object and set the union\n\t\tconst setSignerT = new SetSignerT(SignerType.PrivateKey, privateKeyT);\n\n\t\t// Create the MainMessageT with the properly constructed SetSignerT\n\t\tconst mainT = new MainMessageT(MainContent.SetSigner, setSignerT);\n\n\t\t// Serialize with FlatBuffers builder (unchanged)\n\t\tconst builder = new flatbuffers.Builder(2048);\n\t\tconst mainOffset = mainT.pack(builder);\n\t\tbuilder.finish(mainOffset);\n\t\tconst serializedMessage = builder.asUint8Array();\n\n\t\tvoid this.postToWorker(serializedMessage);\n\t\tthis.signers.set(name, secretKeyHex);\n\t}\n\n\tsignEvent(event: EventTemplate, cb: (event: NostrEvent) => void) {\n\t\tconst mainT = new MainMessageT(\n\t\t\tMainContent.SignEvent,\n\t\t\tnew SignEventT(\n\t\t\t\tnew TemplateT(\n\t\t\t\t\tevent.kind,\n\t\t\t\t\tthis.textEncoder.encode(event.content),\n\t\t\t\t\tevent.tags.map((t) => new StringVecT(t))\n\t\t\t\t)\n\t\t\t)\n\t\t);\n\n\t\t// Serialize with FlatBuffers builder\n\t\tconst builder = new flatbuffers.Builder(2048);\n\t\tconst mainOffset = mainT.pack(builder);\n\t\tbuilder.finish(mainOffset);\n\t\tconst serializedMessage = builder.asUint8Array();\n\t\tthis.signCB = cb;\n\t\tthis.worker.postMessage(serializedMessage);\n\t}\n\n\tgetPublicKey() {\n\t\tconst mainT = new MainMessageT(MainContent.GetPublicKey, new GetPublicKeyT());\n\n\t\t// Serialize with FlatBuffers builder\n\t\tconst builder = new flatbuffers.Builder(2048);\n\t\tconst mainOffset = mainT.pack(builder);\n\t\tbuilder.finish(mainOffset);\n\t\tconst serializedMessage = builder.asUint8Array();\n\n\t\tthis.worker.postMessage(serializedMessage);\n\t}\n\n\tcleanup(): void {\n\t\tconst subscriptionsToDelete: string[] = [];\n\n\t\tfor (const [subId, subscription] of this.subscriptions.entries()) {\n\t\t\tif (subscription.refCount <= 0 && !this.PERPETUAL_SUBSCRIPTIONS.includes(subId)) {\n\t\t\t\tsubscriptionsToDelete.push(subId);\n\t\t\t}\n\t\t}\n\n\t\tfor (const subId of subscriptionsToDelete) {\n\t\t\tconst subscription = this.subscriptions.get(subId);\n\t\t\tif (subscription) {\n\t\t\t\tconst mainT = new MainMessageT(\n\t\t\t\t\tMainContent.Unsubscribe,\n\t\t\t\t\tnew UnsubscribeT(this.textEncoder.encode(subId))\n\t\t\t\t);\n\t\t\t\t// Serialize with FlatBuffers builder\n\t\t\t\tconst builder = new flatbuffers.Builder(2048);\n\t\t\t\tconst mainOffset = mainT.pack(builder);\n\t\t\t\tbuilder.finish(mainOffset);\n\t\t\t\tconst serializedMessage = builder.asUint8Array();\n\t\t\t\t// nipWorker.resetInputLoopBackoff();\n\t\t\t\tthis.postToWorker(serializedMessage);\n\t\t\t\tsubscription.closed = true;\n\t\t\t\tthis.subscriptions.delete(subId);\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport * from './types';\n","import { ByteRingBuffer } from './ring-buffer';\nimport { ConnectionRegistry } from './registry';\n\nconst __encoder = new TextEncoder();\nconst __urlBytesCache = new Map<string, Uint8Array>();\nfunction __getUrlBytes(url: string): Uint8Array {\n\tconst cached = __urlBytesCache.get(url);\n\tif (cached) return cached;\n\tconst bytes = __encoder.encode(url);\n\t__urlBytesCache.set(url, bytes);\n\treturn bytes;\n}\n\nfunction writeEnvelope(outputRing: ByteRingBuffer, url: string, rawText: string): void {\n\tconst urlBytes = __getUrlBytes(url);\n\tconst rawBytes = __encoder.encode(rawText);\n\tconst totalLen = 2 + urlBytes.length + 4 + rawBytes.length;\n\tconst out = new Uint8Array(totalLen);\n\tconst view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n\tlet o = 0;\n\tview.setUint16(o, urlBytes.length, false);\n\to += 2;\n\tout.set(urlBytes, o);\n\to += urlBytes.length;\n\tview.setUint32(o, rawBytes.length, false);\n\to += 4;\n\tout.set(rawBytes, o);\n\toutputRing.write(out);\n}\n\nfunction extractSubIdFast(s: string): string | null {\n\tlet i = 0,\n\t\tn = s.length;\n\twhile (i < n && s.charCodeAt(i) <= 32) i++;\n\tif (i >= n || s[i] !== '[') return null;\n\ti++;\n\twhile (i < n && s.charCodeAt(i) <= 32) i++;\n\tif (i >= n) return null;\n\tif (s[i] === '\"') {\n\t\ti++;\n\t\twhile (i < n && s[i] !== '\"') i++;\n\t\tif (i >= n) return null;\n\t\ti++;\n\t} else {\n\t\twhile (i < n && s[i] !== ',' && s[i] !== ']') i++;\n\t}\n\twhile (i < n && s[i] !== ',') i++;\n\tif (i >= n || s[i] !== ',') return null;\n\ti++;\n\twhile (i < n && s.charCodeAt(i) <= 32) i++;\n\tif (i >= n) return null;\n\tif (s[i] === '\"') {\n\t\ti++;\n\t\tconst start = i;\n\t\twhile (i < n && s[i] !== '\"') i++;\n\t\tif (i > n) return null;\n\t\treturn s.slice(start, i);\n\t}\n\treturn null;\n}\n\nconst MIN_BACKOFF_MS = 10;\nconst MAX_BACKOFF_MS = 1000;\n\nexport type WSRuntimeInit = {\n\tinRings: SharedArrayBuffer[];\n\toutRings: SharedArrayBuffer[];\n\trelayConfig: any;\n};\n\nexport class WSRuntime {\n\tprivate inputRings: ByteRingBuffer[] = [];\n\tprivate outputRings: ByteRingBuffer[] = [];\n\tprivate registry: ConnectionRegistry | null = null;\n\tprivate subIdToRing = new Map<string, ByteRingBuffer>();\n\tprivate decoder = new TextDecoder();\n\n\tprivate lastRingIndex = 0;\n\tprivate backoffMs = MIN_BACKOFF_MS;\n\tprivate loopTimer: ReturnType<typeof setTimeout> | null = null;\n\n\tconstructor(init: WSRuntimeInit) {\n\t\tthis.inputRings = init.inRings.map((s) => new ByteRingBuffer(s));\n\t\tthis.outputRings = init.outRings.map((s) => new ByteRingBuffer(s));\n\t\tthis.registry = new ConnectionRegistry(init.relayConfig || {});\n\n\t\tconst onIncoming = (url: string, subId: string | null, rawText: string) => {\n\t\t\tconst sid = subId ?? extractSubIdFast(rawText);\n\t\t\tif (sid) writeEnvelope(this.getOutRingForSubId(sid), url, rawText);\n\t\t};\n\n\t\t// Wrap ensureConnection to attach inbound handler once\n\t\tconst originalEnsure = this.registry.ensureConnection.bind(this.registry);\n\t\tthis.registry.ensureConnection = async (url: string) => {\n\t\t\tconst conn = await originalEnsure(url);\n\t\t\tif (!conn.messageHandler) conn.setMessageHandler(onIncoming);\n\t\t\treturn conn;\n\t\t};\n\n\t\t// Start polling loop\n\t\tthis.backoffMs = MIN_BACKOFF_MS;\n\t\tthis.scheduleLoop();\n\t}\n\n\tpublic wake(): void {\n\t\tthis.backoffMs = MIN_BACKOFF_MS;\n\t\tif (this.loopTimer !== null) {\n\t\t\tclearTimeout(this.loopTimer);\n\t\t\tthis.loopTimer = null;\n\t\t}\n\t\tthis.scheduleLoop();\n\t}\n\n\tpublic destroy(): void {\n\t\tif (this.loopTimer !== null) {\n\t\t\tclearTimeout(this.loopTimer);\n\t\t\tthis.loopTimer = null;\n\t\t}\n\t\t// If ConnectionRegistry has a shutdown/close method in your codebase, call it here.\n\t\t// (Not invoking anything here to avoid assumptions.)\n\t\tthis.subIdToRing.clear();\n\t\tthis.registry = null;\n\t\tthis.inputRings = [];\n\t\tthis.outputRings = [];\n\t}\n\n\tprivate scheduleLoop = (): void => {\n\t\tthis.loopTimer = setTimeout(this.processLoop, this.backoffMs);\n\t};\n\n\tprivate processLoop = (): void => {\n\t\tlet processed = 0;\n\t\tconst ringCount = this.inputRings.length;\n\t\tif (ringCount === 0) {\n\t\t\tthis.backoffMs = Math.min(this.backoffMs * 2, MAX_BACKOFF_MS);\n\t\t\treturn this.scheduleLoop();\n\t\t}\n\n\t\tlet madeProgress: boolean;\n\t\tdo {\n\t\t\tmadeProgress = false;\n\t\t\tfor (let i = 0; i < ringCount; i++) {\n\t\t\t\tconst idx = (this.lastRingIndex + i) % ringCount;\n\t\t\t\tconst ring = this.inputRings[idx];\n\t\t\t\tconst record = ring.read();\n\t\t\t\tif (!record) continue;\n\n\t\t\t\tmadeProgress = true;\n\t\t\t\tprocessed++;\n\n\t\t\t\tconst envelopeStr = this.decoder.decode(record);\n\t\t\t\tlet envelope: any;\n\t\t\t\ttry {\n\t\t\t\t\tenvelope = JSON.parse(envelopeStr);\n\t\t\t\t} catch {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (!Array.isArray(envelope.relays) || !Array.isArray(envelope.frames)) continue;\n\n\t\t\t\t// Fire and forget; if desired you could await to pace the loop\n\t\t\t\tthis.registry?.sendToRelays(envelope.relays, envelope.frames).catch(console.error);\n\t\t\t\tthis.lastRingIndex = (idx + 1) % ringCount;\n\t\t\t}\n\t\t} while (madeProgress);\n\n\t\tthis.backoffMs = processed > 0 ? MIN_BACKOFF_MS : Math.min(this.backoffMs * 2, MAX_BACKOFF_MS);\n\t\tthis.scheduleLoop();\n\t};\n\n\tprivate hashSubId(sub_id: string): number {\n\t\tconst len = this.outputRings.length || 1;\n\t\tconst target = sub_id.includes('_') ? (sub_id.split('_')[1] ?? '') : sub_id;\n\t\tlet hash = 0;\n\t\tfor (let i = 0; i < target.length; i++) hash = (hash << 5) - hash + target.charCodeAt(i);\n\t\treturn Math.abs(hash) % len;\n\t}\n\n\tprivate getOutRingForSubId(subId: string): ByteRingBuffer {\n\t\tlet ring = this.subIdToRing.get(subId);\n\t\tif (ring) return ring;\n\t\tring = this.outputRings[this.hashSubId(subId)];\n\t\tthis.subIdToRing.set(subId, ring);\n\t\treturn ring;\n\t}\n}\n","import { NostrManager } from 'src/manager';\nimport { WSRuntime } from './ws/runtime';\n// import { initializeRingHeader } from './ws/ring-buffer';\n\nexport * from 'src/manager';\n\n// Idempotent header initializer for rings created on the TS side.\n// If capacity (u32 at offset 0) is 0, we set it to (byteLength - 32)\n// and zero head, tail, and seq. Reserved bytes are cleared as well.\nexport function initializeRingHeader(buffer: SharedArrayBuffer): void {\n\tconst HEADER = 32;\n\tconst view = new DataView(buffer);\n\tconst total = buffer.byteLength;\n\n\tif (total < HEADER) {\n\t\tthrow new Error(`Ring buffer too small: ${total} bytes`);\n\t}\n\n\tconst cap = view.getUint32(0, true);\n\tif (cap !== 0) {\n\t\t// Already initialized; nothing to do.\n\t\treturn;\n\t}\n\n\tconst capacity = total - HEADER;\n\tif (capacity <= 0) {\n\t\tthrow new Error(`Invalid ring capacity computed from total=${total}`);\n\t}\n\n\t// Initialize header: capacity, head=0, tail=0, seq=0, reserved=0\n\tview.setUint32(0, capacity, true); // capacity\n\tview.setUint32(4, 0, true); // head\n\tview.setUint32(8, 0, true); // tail\n\tview.setUint32(12, 0, true); // seq\n\t// Zero reserved [16..32)\n\tfor (let off = 16; off < 32; off += 4) {\n\t\tview.setUint32(off, 0, true);\n\t}\n}\n\nexport class NipWorker {\n\tprivate inRings: SharedArrayBuffer[] = [];\n\tprivate outRings: SharedArrayBuffer[] = [];\n\tprivate managers: NostrManager[] = [];\n\tprivate worker: WSRuntime;\n\n\tprivate hashSubId(sub_id: string): number {\n\t\tconst target = sub_id.includes('_') ? (sub_id.split('_')[1] ?? '') : sub_id;\n\t\tlet hash = 0;\n\t\tfor (let i = 0; i < target.length; i++) {\n\t\t\thash = (hash << 5) - hash + target.charCodeAt(i);\n\t\t}\n\t\treturn Math.abs(hash) % this.managers.length;\n\t}\n\n\tpublic createShortId(input: string): string {\n\t\tconst maxTotalLength = 63;\n\t\tconst computeHash = (value: string, limit: number): string => {\n\t\t\tlet hash = 0;\n\t\t\tfor (let i = 0; i < value.length; i++) {\n\t\t\t\tconst char = value.charCodeAt(i);\n\t\t\t\thash = (hash << 5) - hash + char;\n\t\t\t\thash = hash & hash;\n\t\t\t}\n\t\t\tconst short = Math.abs(hash).toString(36);\n\t\t\treturn short.substring(0, Math.max(1, limit));\n\t\t};\n\n\t\tif (input.includes('_')) {\n\t\t\tconst [firstPart, ...rest] = input.split('_');\n\t\t\tconst secondPart = rest.join('_');\n\t\t\tconst partLimit = Math.max(1, Math.floor((maxTotalLength - 1) / 2));\n\t\t\tconst firstShort = computeHash(firstPart ?? '', partLimit);\n\t\t\tconst secondShort = computeHash(secondPart ?? '', partLimit);\n\t\t\tconst result = `${firstShort}_${secondShort}`;\n\t\t\treturn result.length > maxTotalLength ? result.substring(0, maxTotalLength) : result;\n\t\t}\n\n\t\tif (input.length < 64) return input;\n\t\treturn computeHash(input, maxTotalLength);\n\t}\n\n\tconstructor(config: any = {}, scale = 1) {\n\t\tfor (let i = 0; i < scale; i++) {\n\t\t\tconst inRing = new SharedArrayBuffer(512 * 1024); // 1MB\n\t\t\tconst outRing = new SharedArrayBuffer(2 * 1024 * 1024); // 2MB\n\t\t\tinitializeRingHeader(inRing);\n\t\t\tinitializeRingHeader(outRing);\n\t\t\tthis.inRings.push(inRing);\n\t\t\tthis.outRings.push(outRing);\n\n\t\t\tthis.managers.push(\n\t\t\t\tnew NostrManager({\n\t\t\t\t\tbufferKey: i.toString(),\n\t\t\t\t\tmaxBufferSize: 2_000_000,\n\t\t\t\t\tinRing,\n\t\t\t\t\toutRing\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\n\t\t// Instantiate the main-thread WS runtime instead of a Web Worker\n\t\tthis.worker = new WSRuntime({\n\t\t\tinRings: this.inRings,\n\t\t\toutRings: this.outRings,\n\t\t\trelayConfig: config\n\t\t});\n\t\t// const url = new URL('./ws/index.js', import.meta.url);\n\t\t// this.worker = new Worker(url, { type: 'module' });\n\n\t\t// this.worker.onerror = (e) => {\n\t\t// \tconsole.error('WS Worker error:', e);\n\t\t// };\n\n\t\t// this.worker.postMessage({\n\t\t// \ttype: 'init',\n\t\t// \tpayload: {\n\t\t// \t\tinRings: this.inRings,\n\t\t// \t\toutRings: this.outRings,\n\t\t// \t\trelayConfig: config\n\t\t// \t}\n\t\t// });\n\t\t// this.worker.postMessage({ type: 'wake' });\n\t}\n\n\tpublic cleanup(): void {\n\t\tfor (const manager of this.managers) {\n\t\t\tmanager.cleanup();\n\t\t}\n\t}\n\n\tpublic setSigner(name: string, secretKeyHex: string): void {\n\t\tfor (const manager of this.managers) {\n\t\t\tmanager.setSigner(name, secretKeyHex);\n\t\t}\n\t}\n\n\tpublic getManager(subId: string): NostrManager {\n\t\tif (subId?.length > 64) {\n\t\t\tthrow new Error('subId cannot exceed 64 characters');\n\t\t}\n\t\t// subId = this.createShortId(subId);\n\t\tconst hash = this.hashSubId(subId || '');\n\t\treturn this.managers[hash] as NostrManager;\n\t}\n\n\t// Called by NostrManager to ensure low-latency pickup by the worker\n\tpublic resetInputLoopBackoff(): void {\n\t\t// this.worker.postMessage({ type: 'wake' });\n\t\tthis.worker.wake();\n\t}\n}\n\nexport const nipWorker = new NipWorker({});\n"],"names":["CounterPipeConfig","i","bb","obj","flatbuffers","index","offset","optionalEncoding","builder","kindsOffset","data","numElems","pubkeyOffset","CounterPipeConfigT","_o","kinds","pubkey","GetPublicKey","GetPublicKeyT","KindFilterPipeConfig","KindFilterPipeConfigT","Template","StringVec","kind","contentOffset","tagsOffset","TemplateT","content","tags","Publish","publishIdOffset","templateOffset","PublishT","publishId","template","PrivateKey","privateKeyOffset","PrivateKeyT","privateKey","SignerType","unionToSignerType","type","accessor","SetSigner","signerTypeType","signerTypeOffset","SetSignerT","temp","signerType","SignEvent","SignEventT","NpubLimiterPipeConfig","limitPerNpub","maxTotalNpubs","NpubLimiterPipeConfigT","ParsePipeConfig","ParsePipeConfigT","ProofVerificationPipeConfig","maxProofs","ProofVerificationPipeConfigT","SaveToDbPipeConfig","SaveToDbPipeConfigT","SerializeEventsPipeConfig","subscriptionIdOffset","SerializeEventsPipeConfigT","subscriptionId","PipeConfig","unionToPipeConfig","Pipe","configType","configOffset","PipeT","config","PipelineConfig","pipesOffset","PipelineConfigT","pipes","SubscriptionConfig","pipelineOffset","closeOnEose","cacheFirst","timeoutMs","maxEvents","skipCache","force","bytesPerEvent","SubscriptionConfigT","pipeline","Subscribe","Request","requestsOffset","SubscribeT","requests","Unsubscribe","UnsubscribeT","MainContent","unionToMainContent","MainMessage","contentType","MainMessageT","MsgKind","ParsedDataUnion","RelayRef","urlOffset","RelayRefT","url","SubscribeKind","WorkerLine","relayOffset","subIdOffset","rawOffset","WorkerLineT","relay","subId","raw","WorkerMessage","MessageType","Message","WorkerMessageT","unionToMessage","SharedBufferReader","buffer","view","uint8View","currentWritePosition","requiredSpace","newWritePosition","lastReadPosition","dataStartOffset","currentPos","maxMessages","messages","msgCount","headerPos","eventLength","payloadStart","nextPos","flatBufferData","ByteBuffer","message","error","result","actualLastReadPosition","totalEventLimit","dataSize","overhead","originalWasmBuffer","fetchPromise","ensureOriginalBuffer","wasmAsset","res","NostrManager","event","prewarm","wasmCopy","transfer","RustWorker","id","parsed","input","hash","char","listener","options","detail","existingSubscription","totalLimit","sum","req","bufferSize","initialMessage","optionsT","subscribeT","r","RequestT","key","values","StringVecT","mainT","mainOffset","serializedMessage","subscription","publish_id","templateT","t","publishT","name","secretKeyHex","privateKeyT","setSignerT","cb","subscriptionsToDelete","__encoder","__urlBytesCache","__getUrlBytes","cached","bytes","writeEnvelope","outputRing","rawText","urlBytes","rawBytes","totalLen","out","o","extractSubIdFast","s","n","start","MIN_BACKOFF_MS","MAX_BACKOFF_MS","WSRuntime","init","processed","ringCount","madeProgress","idx","record","envelopeStr","envelope","ByteRingBuffer","ConnectionRegistry","onIncoming","sid","originalEnsure","conn","sub_id","len","target","ring","initializeRingHeader","total","capacity","off","NipWorker","scale","inRing","outRing","computeHash","value","limit","firstPart","rest","secondPart","partLimit","firstShort","secondShort","manager","nipWorker"],"mappings":"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"}
1
+ {"version":3,"file":"index2.js","sources":["../src/generated/nostr/fb/counter-pipe-config.ts","../src/generated/nostr/fb/get-public-key.ts","../src/generated/nostr/fb/kind-filter-pipe-config.ts","../src/generated/nostr/fb/template.ts","../src/generated/nostr/fb/publish.ts","../src/generated/nostr/fb/private-key.ts","../src/generated/nostr/fb/signer-type.ts","../src/generated/nostr/fb/set-signer.ts","../src/generated/nostr/fb/sign-event.ts","../src/generated/nostr/fb/npub-limiter-pipe-config.ts","../src/generated/nostr/fb/parse-pipe-config.ts","../src/generated/nostr/fb/proof-verification-pipe-config.ts","../src/generated/nostr/fb/save-to-db-pipe-config.ts","../src/generated/nostr/fb/serialize-events-pipe-config.ts","../src/generated/nostr/fb/pipe-config.ts","../src/generated/nostr/fb/pipe.ts","../src/generated/nostr/fb/pipeline-config.ts","../src/generated/nostr/fb/subscription-config.ts","../src/generated/nostr/fb/subscribe.ts","../src/generated/nostr/fb/unsubscribe.ts","../src/generated/nostr/fb/main-content.ts","../src/generated/nostr/fb/main-message.ts","../src/generated/nostr/fb/msg-kind.ts","../src/generated/nostr/fb/parsed-data-union.ts","../src/generated/nostr/fb/relay-ref.ts","../src/generated/nostr/fb/subscribe-kind.ts","../src/generated/nostr/fb/worker-line.ts","../src/generated/nostr/fb/worker-message.ts","../src/lib/SharedBuffer.ts","../src/manager.ts","../src/index.ts"],"sourcesContent":["import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\n\n\nexport class CounterPipeConfig implements flatbuffers.IUnpackableObject<CounterPipeConfigT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):CounterPipeConfig {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsCounterPipeConfig(bb:flatbuffers.ByteBuffer, obj?:CounterPipeConfig):CounterPipeConfig {\n return (obj || new CounterPipeConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsCounterPipeConfig(bb:flatbuffers.ByteBuffer, obj?:CounterPipeConfig):CounterPipeConfig {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new CounterPipeConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nkinds(index: number):number|null {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readUint16(this.bb!.__vector(this.bb_pos + offset) + index * 2) : 0;\n}\n\nkindsLength():number {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n}\n\nkindsArray():Uint16Array|null {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? new Uint16Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null;\n}\n\npubkey(): ByteString|null\npubkey(optionalEncoding:flatbuffers.Encoding): ByteString|Uint8Array|null\npubkey(optionalEncoding?:any): ByteString|Uint8Array|null {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__stringByteString(this.bb_pos + offset, optionalEncoding) : null;\n}\n\nstatic startCounterPipeConfig(builder:flatbuffers.Builder) {\n builder.startObject(2);\n}\n\nstatic addKinds(builder:flatbuffers.Builder, kindsOffset:flatbuffers.Offset) {\n builder.addFieldOffset(0, kindsOffset, 0);\n}\n\nstatic createKindsVector(builder:flatbuffers.Builder, data:number[]|Uint16Array):flatbuffers.Offset;\n/**\n * @deprecated This Uint8Array overload will be removed in the future.\n */\nstatic createKindsVector(builder:flatbuffers.Builder, data:number[]|Uint8Array):flatbuffers.Offset;\nstatic createKindsVector(builder:flatbuffers.Builder, data:number[]|Uint16Array|Uint8Array):flatbuffers.Offset {\n builder.startVector(2, data.length, 2);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addInt16(data[i]!);\n }\n return builder.endVector();\n}\n\nstatic startKindsVector(builder:flatbuffers.Builder, numElems:number) {\n builder.startVector(2, numElems, 2);\n}\n\nstatic addPubkey(builder:flatbuffers.Builder, pubkeyOffset:flatbuffers.Offset) {\n builder.addFieldOffset(1, pubkeyOffset, 0);\n}\n\nstatic endCounterPipeConfig(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n builder.requiredField(offset, 4) // kinds\n builder.requiredField(offset, 6) // pubkey\n return offset;\n}\n\nstatic createCounterPipeConfig(builder:flatbuffers.Builder, kindsOffset:flatbuffers.Offset, pubkeyOffset:flatbuffers.Offset):flatbuffers.Offset {\n CounterPipeConfig.startCounterPipeConfig(builder);\n CounterPipeConfig.addKinds(builder, kindsOffset);\n CounterPipeConfig.addPubkey(builder, pubkeyOffset);\n return CounterPipeConfig.endCounterPipeConfig(builder);\n}\n\nunpack(): CounterPipeConfigT {\n return new CounterPipeConfigT(\n this.bb!.createScalarList<number>(this.kinds.bind(this), this.kindsLength()),\n this.pubkey()\n );\n}\n\n\nunpackTo(_o: CounterPipeConfigT): void {\n _o.kinds = this.bb!.createScalarList<number>(this.kinds.bind(this), this.kindsLength());\n _o.pubkey = this.pubkey();\n}\n}\n\nexport class CounterPipeConfigT implements flatbuffers.IGeneratedObject {\nconstructor(\n public kinds: (number)[] = [],\n public pubkey: ByteString|Uint8Array|null = null\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const kinds = CounterPipeConfig.createKindsVector(builder, this.kinds);\n const pubkey = (this.pubkey !== null ? builder.createString(this.pubkey!) : 0);\n\n return CounterPipeConfig.createCounterPipeConfig(builder,\n kinds,\n pubkey\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\n\n\nexport class GetPublicKey implements flatbuffers.IUnpackableObject<GetPublicKeyT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):GetPublicKey {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsGetPublicKey(bb:flatbuffers.ByteBuffer, obj?:GetPublicKey):GetPublicKey {\n return (obj || new GetPublicKey()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsGetPublicKey(bb:flatbuffers.ByteBuffer, obj?:GetPublicKey):GetPublicKey {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new GetPublicKey()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic startGetPublicKey(builder:flatbuffers.Builder) {\n builder.startObject(0);\n}\n\nstatic endGetPublicKey(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n return offset;\n}\n\nstatic createGetPublicKey(builder:flatbuffers.Builder):flatbuffers.Offset {\n GetPublicKey.startGetPublicKey(builder);\n return GetPublicKey.endGetPublicKey(builder);\n}\n\nunpack(): GetPublicKeyT {\n return new GetPublicKeyT();\n}\n\n\nunpackTo(_o: GetPublicKeyT): void {}\n}\n\nexport class GetPublicKeyT implements flatbuffers.IGeneratedObject {\nconstructor(){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n return GetPublicKey.createGetPublicKey(builder);\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\n\n\nexport class KindFilterPipeConfig implements flatbuffers.IUnpackableObject<KindFilterPipeConfigT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):KindFilterPipeConfig {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsKindFilterPipeConfig(bb:flatbuffers.ByteBuffer, obj?:KindFilterPipeConfig):KindFilterPipeConfig {\n return (obj || new KindFilterPipeConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsKindFilterPipeConfig(bb:flatbuffers.ByteBuffer, obj?:KindFilterPipeConfig):KindFilterPipeConfig {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new KindFilterPipeConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nkinds(index: number):number|null {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readUint16(this.bb!.__vector(this.bb_pos + offset) + index * 2) : 0;\n}\n\nkindsLength():number {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n}\n\nkindsArray():Uint16Array|null {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? new Uint16Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null;\n}\n\nstatic startKindFilterPipeConfig(builder:flatbuffers.Builder) {\n builder.startObject(1);\n}\n\nstatic addKinds(builder:flatbuffers.Builder, kindsOffset:flatbuffers.Offset) {\n builder.addFieldOffset(0, kindsOffset, 0);\n}\n\nstatic createKindsVector(builder:flatbuffers.Builder, data:number[]|Uint16Array):flatbuffers.Offset;\n/**\n * @deprecated This Uint8Array overload will be removed in the future.\n */\nstatic createKindsVector(builder:flatbuffers.Builder, data:number[]|Uint8Array):flatbuffers.Offset;\nstatic createKindsVector(builder:flatbuffers.Builder, data:number[]|Uint16Array|Uint8Array):flatbuffers.Offset {\n builder.startVector(2, data.length, 2);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addInt16(data[i]!);\n }\n return builder.endVector();\n}\n\nstatic startKindsVector(builder:flatbuffers.Builder, numElems:number) {\n builder.startVector(2, numElems, 2);\n}\n\nstatic endKindFilterPipeConfig(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n builder.requiredField(offset, 4) // kinds\n return offset;\n}\n\nstatic createKindFilterPipeConfig(builder:flatbuffers.Builder, kindsOffset:flatbuffers.Offset):flatbuffers.Offset {\n KindFilterPipeConfig.startKindFilterPipeConfig(builder);\n KindFilterPipeConfig.addKinds(builder, kindsOffset);\n return KindFilterPipeConfig.endKindFilterPipeConfig(builder);\n}\n\nunpack(): KindFilterPipeConfigT {\n return new KindFilterPipeConfigT(\n this.bb!.createScalarList<number>(this.kinds.bind(this), this.kindsLength())\n );\n}\n\n\nunpackTo(_o: KindFilterPipeConfigT): void {\n _o.kinds = this.bb!.createScalarList<number>(this.kinds.bind(this), this.kindsLength());\n}\n}\n\nexport class KindFilterPipeConfigT implements flatbuffers.IGeneratedObject {\nconstructor(\n public kinds: (number)[] = []\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const kinds = KindFilterPipeConfig.createKindsVector(builder, this.kinds);\n\n return KindFilterPipeConfig.createKindFilterPipeConfig(builder,\n kinds\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\nimport { StringVec, StringVecT } from '../../nostr/fb/string-vec.js';\n\n\nexport class Template implements flatbuffers.IUnpackableObject<TemplateT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):Template {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsTemplate(bb:flatbuffers.ByteBuffer, obj?:Template):Template {\n return (obj || new Template()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsTemplate(bb:flatbuffers.ByteBuffer, obj?:Template):Template {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Template()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nkind():number {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readUint16(this.bb_pos + offset) : 0;\n}\n\ncontent(): ByteString|null\ncontent(optionalEncoding:flatbuffers.Encoding): ByteString|Uint8Array|null\ncontent(optionalEncoding?:any): ByteString|Uint8Array|null {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__stringByteString(this.bb_pos + offset, optionalEncoding) : null;\n}\n\ntags(index: number, obj?:StringVec):StringVec|null {\n const offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? (obj || new StringVec()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n}\n\ntagsLength():number {\n const offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n}\n\nstatic startTemplate(builder:flatbuffers.Builder) {\n builder.startObject(3);\n}\n\nstatic addKind(builder:flatbuffers.Builder, kind:number) {\n builder.addFieldInt16(0, kind, 0);\n}\n\nstatic addContent(builder:flatbuffers.Builder, contentOffset:flatbuffers.Offset) {\n builder.addFieldOffset(1, contentOffset, 0);\n}\n\nstatic addTags(builder:flatbuffers.Builder, tagsOffset:flatbuffers.Offset) {\n builder.addFieldOffset(2, tagsOffset, 0);\n}\n\nstatic createTagsVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset {\n builder.startVector(4, data.length, 4);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addOffset(data[i]!);\n }\n return builder.endVector();\n}\n\nstatic startTagsVector(builder:flatbuffers.Builder, numElems:number) {\n builder.startVector(4, numElems, 4);\n}\n\nstatic endTemplate(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n builder.requiredField(offset, 6) // content\n builder.requiredField(offset, 8) // tags\n return offset;\n}\n\nstatic createTemplate(builder:flatbuffers.Builder, kind:number, contentOffset:flatbuffers.Offset, tagsOffset:flatbuffers.Offset):flatbuffers.Offset {\n Template.startTemplate(builder);\n Template.addKind(builder, kind);\n Template.addContent(builder, contentOffset);\n Template.addTags(builder, tagsOffset);\n return Template.endTemplate(builder);\n}\n\nunpack(): TemplateT {\n return new TemplateT(\n this.kind(),\n this.content(),\n this.bb!.createObjList<StringVec, StringVecT>(this.tags.bind(this), this.tagsLength())\n );\n}\n\n\nunpackTo(_o: TemplateT): void {\n _o.kind = this.kind();\n _o.content = this.content();\n _o.tags = this.bb!.createObjList<StringVec, StringVecT>(this.tags.bind(this), this.tagsLength());\n}\n}\n\nexport class TemplateT implements flatbuffers.IGeneratedObject {\nconstructor(\n public kind: number = 0,\n public content: ByteString|Uint8Array|null = null,\n public tags: (StringVecT)[] = []\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const content = (this.content !== null ? builder.createString(this.content!) : 0);\n const tags = Template.createTagsVector(builder, builder.createObjectOffsetList(this.tags));\n\n return Template.createTemplate(builder,\n this.kind,\n content,\n tags\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\nimport { Template, TemplateT } from '../../nostr/fb/template.js';\n\n\nexport class Publish implements flatbuffers.IUnpackableObject<PublishT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):Publish {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsPublish(bb:flatbuffers.ByteBuffer, obj?:Publish):Publish {\n return (obj || new Publish()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsPublish(bb:flatbuffers.ByteBuffer, obj?:Publish):Publish {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Publish()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\npublishId(): ByteString|null\npublishId(optionalEncoding:flatbuffers.Encoding): ByteString|Uint8Array|null\npublishId(optionalEncoding?:any): ByteString|Uint8Array|null {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.__stringByteString(this.bb_pos + offset, optionalEncoding) : null;\n}\n\ntemplate(obj?:Template):Template|null {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? (obj || new Template()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;\n}\n\nstatic startPublish(builder:flatbuffers.Builder) {\n builder.startObject(2);\n}\n\nstatic addPublishId(builder:flatbuffers.Builder, publishIdOffset:flatbuffers.Offset) {\n builder.addFieldOffset(0, publishIdOffset, 0);\n}\n\nstatic addTemplate(builder:flatbuffers.Builder, templateOffset:flatbuffers.Offset) {\n builder.addFieldOffset(1, templateOffset, 0);\n}\n\nstatic endPublish(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n builder.requiredField(offset, 4) // publish_id\n builder.requiredField(offset, 6) // template\n return offset;\n}\n\n\nunpack(): PublishT {\n return new PublishT(\n this.publishId(),\n (this.template() !== null ? this.template()!.unpack() : null)\n );\n}\n\n\nunpackTo(_o: PublishT): void {\n _o.publishId = this.publishId();\n _o.template = (this.template() !== null ? this.template()!.unpack() : null);\n}\n}\n\nexport class PublishT implements flatbuffers.IGeneratedObject {\nconstructor(\n public publishId: ByteString|Uint8Array|null = null,\n public template: TemplateT|null = null\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const publishId = (this.publishId !== null ? builder.createString(this.publishId!) : 0);\n const template = (this.template !== null ? this.template!.pack(builder) : 0);\n\n Publish.startPublish(builder);\n Publish.addPublishId(builder, publishId);\n Publish.addTemplate(builder, template);\n\n return Publish.endPublish(builder);\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\n\n\nexport class PrivateKey implements flatbuffers.IUnpackableObject<PrivateKeyT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):PrivateKey {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsPrivateKey(bb:flatbuffers.ByteBuffer, obj?:PrivateKey):PrivateKey {\n return (obj || new PrivateKey()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsPrivateKey(bb:flatbuffers.ByteBuffer, obj?:PrivateKey):PrivateKey {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new PrivateKey()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nprivateKey(): ByteString|null\nprivateKey(optionalEncoding:flatbuffers.Encoding): ByteString|Uint8Array|null\nprivateKey(optionalEncoding?:any): ByteString|Uint8Array|null {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.__stringByteString(this.bb_pos + offset, optionalEncoding) : null;\n}\n\nstatic startPrivateKey(builder:flatbuffers.Builder) {\n builder.startObject(1);\n}\n\nstatic addPrivateKey(builder:flatbuffers.Builder, privateKeyOffset:flatbuffers.Offset) {\n builder.addFieldOffset(0, privateKeyOffset, 0);\n}\n\nstatic endPrivateKey(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n builder.requiredField(offset, 4) // private_key\n return offset;\n}\n\nstatic createPrivateKey(builder:flatbuffers.Builder, privateKeyOffset:flatbuffers.Offset):flatbuffers.Offset {\n PrivateKey.startPrivateKey(builder);\n PrivateKey.addPrivateKey(builder, privateKeyOffset);\n return PrivateKey.endPrivateKey(builder);\n}\n\nunpack(): PrivateKeyT {\n return new PrivateKeyT(\n this.privateKey()\n );\n}\n\n\nunpackTo(_o: PrivateKeyT): void {\n _o.privateKey = this.privateKey();\n}\n}\n\nexport class PrivateKeyT implements flatbuffers.IGeneratedObject {\nconstructor(\n public privateKey: ByteString|Uint8Array|null = null\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const privateKey = (this.privateKey !== null ? builder.createString(this.privateKey!) : 0);\n\n return PrivateKey.createPrivateKey(builder,\n privateKey\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport { PrivateKey, PrivateKeyT } from '../../nostr/fb/private-key.js';\n\n\nexport enum SignerType {\n NONE = 0,\n PrivateKey = 1\n}\n\nexport function unionToSignerType(\n type: SignerType,\n accessor: (obj:PrivateKey) => PrivateKey|null\n): PrivateKey|null {\n switch(SignerType[type]) {\n case 'NONE': return null; \n case 'PrivateKey': return accessor(new PrivateKey())! as PrivateKey;\n default: return null;\n }\n}\n\nexport function unionListToSignerType(\n type: SignerType, \n accessor: (index: number, obj:PrivateKey) => PrivateKey|null, \n index: number\n): PrivateKey|null {\n switch(SignerType[type]) {\n case 'NONE': return null; \n case 'PrivateKey': return accessor(index, new PrivateKey())! as PrivateKey;\n default: return null;\n }\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\nimport { PrivateKey, PrivateKeyT } from '../../nostr/fb/private-key.js';\nimport { SignerType, unionToSignerType, unionListToSignerType } from '../../nostr/fb/signer-type.js';\n\n\nexport class SetSigner implements flatbuffers.IUnpackableObject<SetSignerT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):SetSigner {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsSetSigner(bb:flatbuffers.ByteBuffer, obj?:SetSigner):SetSigner {\n return (obj || new SetSigner()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsSetSigner(bb:flatbuffers.ByteBuffer, obj?:SetSigner):SetSigner {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new SetSigner()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nsignerTypeType():SignerType {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readUint8(this.bb_pos + offset) : SignerType.NONE;\n}\n\nsignerType<T extends flatbuffers.Table>(obj:any):any|null {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__union(obj, this.bb_pos + offset) : null;\n}\n\nstatic startSetSigner(builder:flatbuffers.Builder) {\n builder.startObject(2);\n}\n\nstatic addSignerTypeType(builder:flatbuffers.Builder, signerTypeType:SignerType) {\n builder.addFieldInt8(0, signerTypeType, SignerType.NONE);\n}\n\nstatic addSignerType(builder:flatbuffers.Builder, signerTypeOffset:flatbuffers.Offset) {\n builder.addFieldOffset(1, signerTypeOffset, 0);\n}\n\nstatic endSetSigner(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n builder.requiredField(offset, 6) // signer_type\n return offset;\n}\n\nstatic createSetSigner(builder:flatbuffers.Builder, signerTypeType:SignerType, signerTypeOffset:flatbuffers.Offset):flatbuffers.Offset {\n SetSigner.startSetSigner(builder);\n SetSigner.addSignerTypeType(builder, signerTypeType);\n SetSigner.addSignerType(builder, signerTypeOffset);\n return SetSigner.endSetSigner(builder);\n}\n\nunpack(): SetSignerT {\n return new SetSignerT(\n this.signerTypeType(),\n (() => {\n const temp = unionToSignerType(this.signerTypeType(), this.signerType.bind(this));\n if(temp === null) { return null; }\n return temp.unpack()\n })()\n );\n}\n\n\nunpackTo(_o: SetSignerT): void {\n _o.signerTypeType = this.signerTypeType();\n _o.signerType = (() => {\n const temp = unionToSignerType(this.signerTypeType(), this.signerType.bind(this));\n if(temp === null) { return null; }\n return temp.unpack()\n })();\n}\n}\n\nexport class SetSignerT implements flatbuffers.IGeneratedObject {\nconstructor(\n public signerTypeType: SignerType = SignerType.NONE,\n public signerType: PrivateKeyT|null = null\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const signerType = builder.createObjectOffset(this.signerType);\n\n return SetSigner.createSetSigner(builder,\n this.signerTypeType,\n signerType\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\nimport { Template, TemplateT } from '../../nostr/fb/template.js';\n\n\nexport class SignEvent implements flatbuffers.IUnpackableObject<SignEventT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):SignEvent {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsSignEvent(bb:flatbuffers.ByteBuffer, obj?:SignEvent):SignEvent {\n return (obj || new SignEvent()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsSignEvent(bb:flatbuffers.ByteBuffer, obj?:SignEvent):SignEvent {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new SignEvent()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\ntemplate(obj?:Template):Template|null {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? (obj || new Template()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;\n}\n\nstatic startSignEvent(builder:flatbuffers.Builder) {\n builder.startObject(1);\n}\n\nstatic addTemplate(builder:flatbuffers.Builder, templateOffset:flatbuffers.Offset) {\n builder.addFieldOffset(0, templateOffset, 0);\n}\n\nstatic endSignEvent(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n builder.requiredField(offset, 4) // template\n return offset;\n}\n\nstatic createSignEvent(builder:flatbuffers.Builder, templateOffset:flatbuffers.Offset):flatbuffers.Offset {\n SignEvent.startSignEvent(builder);\n SignEvent.addTemplate(builder, templateOffset);\n return SignEvent.endSignEvent(builder);\n}\n\nunpack(): SignEventT {\n return new SignEventT(\n (this.template() !== null ? this.template()!.unpack() : null)\n );\n}\n\n\nunpackTo(_o: SignEventT): void {\n _o.template = (this.template() !== null ? this.template()!.unpack() : null);\n}\n}\n\nexport class SignEventT implements flatbuffers.IGeneratedObject {\nconstructor(\n public template: TemplateT|null = null\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const template = (this.template !== null ? this.template!.pack(builder) : 0);\n\n return SignEvent.createSignEvent(builder,\n template\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\n\n\nexport class NpubLimiterPipeConfig implements flatbuffers.IUnpackableObject<NpubLimiterPipeConfigT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):NpubLimiterPipeConfig {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsNpubLimiterPipeConfig(bb:flatbuffers.ByteBuffer, obj?:NpubLimiterPipeConfig):NpubLimiterPipeConfig {\n return (obj || new NpubLimiterPipeConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsNpubLimiterPipeConfig(bb:flatbuffers.ByteBuffer, obj?:NpubLimiterPipeConfig):NpubLimiterPipeConfig {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new NpubLimiterPipeConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nkind():number {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readUint16(this.bb_pos + offset) : 0;\n}\n\nlimitPerNpub():number {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.readUint32(this.bb_pos + offset) : 0;\n}\n\nmaxTotalNpubs():number {\n const offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? this.bb!.readUint32(this.bb_pos + offset) : 0;\n}\n\nstatic startNpubLimiterPipeConfig(builder:flatbuffers.Builder) {\n builder.startObject(3);\n}\n\nstatic addKind(builder:flatbuffers.Builder, kind:number) {\n builder.addFieldInt16(0, kind, 0);\n}\n\nstatic addLimitPerNpub(builder:flatbuffers.Builder, limitPerNpub:number) {\n builder.addFieldInt32(1, limitPerNpub, 0);\n}\n\nstatic addMaxTotalNpubs(builder:flatbuffers.Builder, maxTotalNpubs:number) {\n builder.addFieldInt32(2, maxTotalNpubs, 0);\n}\n\nstatic endNpubLimiterPipeConfig(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n return offset;\n}\n\nstatic createNpubLimiterPipeConfig(builder:flatbuffers.Builder, kind:number, limitPerNpub:number, maxTotalNpubs:number):flatbuffers.Offset {\n NpubLimiterPipeConfig.startNpubLimiterPipeConfig(builder);\n NpubLimiterPipeConfig.addKind(builder, kind);\n NpubLimiterPipeConfig.addLimitPerNpub(builder, limitPerNpub);\n NpubLimiterPipeConfig.addMaxTotalNpubs(builder, maxTotalNpubs);\n return NpubLimiterPipeConfig.endNpubLimiterPipeConfig(builder);\n}\n\nunpack(): NpubLimiterPipeConfigT {\n return new NpubLimiterPipeConfigT(\n this.kind(),\n this.limitPerNpub(),\n this.maxTotalNpubs()\n );\n}\n\n\nunpackTo(_o: NpubLimiterPipeConfigT): void {\n _o.kind = this.kind();\n _o.limitPerNpub = this.limitPerNpub();\n _o.maxTotalNpubs = this.maxTotalNpubs();\n}\n}\n\nexport class NpubLimiterPipeConfigT implements flatbuffers.IGeneratedObject {\nconstructor(\n public kind: number = 0,\n public limitPerNpub: number = 0,\n public maxTotalNpubs: number = 0\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n return NpubLimiterPipeConfig.createNpubLimiterPipeConfig(builder,\n this.kind,\n this.limitPerNpub,\n this.maxTotalNpubs\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\n\n\nexport class ParsePipeConfig implements flatbuffers.IUnpackableObject<ParsePipeConfigT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):ParsePipeConfig {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsParsePipeConfig(bb:flatbuffers.ByteBuffer, obj?:ParsePipeConfig):ParsePipeConfig {\n return (obj || new ParsePipeConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsParsePipeConfig(bb:flatbuffers.ByteBuffer, obj?:ParsePipeConfig):ParsePipeConfig {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new ParsePipeConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic startParsePipeConfig(builder:flatbuffers.Builder) {\n builder.startObject(0);\n}\n\nstatic endParsePipeConfig(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n return offset;\n}\n\nstatic createParsePipeConfig(builder:flatbuffers.Builder):flatbuffers.Offset {\n ParsePipeConfig.startParsePipeConfig(builder);\n return ParsePipeConfig.endParsePipeConfig(builder);\n}\n\nunpack(): ParsePipeConfigT {\n return new ParsePipeConfigT();\n}\n\n\nunpackTo(_o: ParsePipeConfigT): void {}\n}\n\nexport class ParsePipeConfigT implements flatbuffers.IGeneratedObject {\nconstructor(){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n return ParsePipeConfig.createParsePipeConfig(builder);\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\n\n\nexport class ProofVerificationPipeConfig implements flatbuffers.IUnpackableObject<ProofVerificationPipeConfigT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):ProofVerificationPipeConfig {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsProofVerificationPipeConfig(bb:flatbuffers.ByteBuffer, obj?:ProofVerificationPipeConfig):ProofVerificationPipeConfig {\n return (obj || new ProofVerificationPipeConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsProofVerificationPipeConfig(bb:flatbuffers.ByteBuffer, obj?:ProofVerificationPipeConfig):ProofVerificationPipeConfig {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new ProofVerificationPipeConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nmaxProofs():number {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readUint32(this.bb_pos + offset) : 0;\n}\n\nstatic startProofVerificationPipeConfig(builder:flatbuffers.Builder) {\n builder.startObject(1);\n}\n\nstatic addMaxProofs(builder:flatbuffers.Builder, maxProofs:number) {\n builder.addFieldInt32(0, maxProofs, 0);\n}\n\nstatic endProofVerificationPipeConfig(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n return offset;\n}\n\nstatic createProofVerificationPipeConfig(builder:flatbuffers.Builder, maxProofs:number):flatbuffers.Offset {\n ProofVerificationPipeConfig.startProofVerificationPipeConfig(builder);\n ProofVerificationPipeConfig.addMaxProofs(builder, maxProofs);\n return ProofVerificationPipeConfig.endProofVerificationPipeConfig(builder);\n}\n\nunpack(): ProofVerificationPipeConfigT {\n return new ProofVerificationPipeConfigT(\n this.maxProofs()\n );\n}\n\n\nunpackTo(_o: ProofVerificationPipeConfigT): void {\n _o.maxProofs = this.maxProofs();\n}\n}\n\nexport class ProofVerificationPipeConfigT implements flatbuffers.IGeneratedObject {\nconstructor(\n public maxProofs: number = 0\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n return ProofVerificationPipeConfig.createProofVerificationPipeConfig(builder,\n this.maxProofs\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\n\n\nexport class SaveToDbPipeConfig implements flatbuffers.IUnpackableObject<SaveToDbPipeConfigT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):SaveToDbPipeConfig {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsSaveToDbPipeConfig(bb:flatbuffers.ByteBuffer, obj?:SaveToDbPipeConfig):SaveToDbPipeConfig {\n return (obj || new SaveToDbPipeConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsSaveToDbPipeConfig(bb:flatbuffers.ByteBuffer, obj?:SaveToDbPipeConfig):SaveToDbPipeConfig {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new SaveToDbPipeConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic startSaveToDbPipeConfig(builder:flatbuffers.Builder) {\n builder.startObject(0);\n}\n\nstatic endSaveToDbPipeConfig(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n return offset;\n}\n\nstatic createSaveToDbPipeConfig(builder:flatbuffers.Builder):flatbuffers.Offset {\n SaveToDbPipeConfig.startSaveToDbPipeConfig(builder);\n return SaveToDbPipeConfig.endSaveToDbPipeConfig(builder);\n}\n\nunpack(): SaveToDbPipeConfigT {\n return new SaveToDbPipeConfigT();\n}\n\n\nunpackTo(_o: SaveToDbPipeConfigT): void {}\n}\n\nexport class SaveToDbPipeConfigT implements flatbuffers.IGeneratedObject {\nconstructor(){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n return SaveToDbPipeConfig.createSaveToDbPipeConfig(builder);\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\n\n\nexport class SerializeEventsPipeConfig implements flatbuffers.IUnpackableObject<SerializeEventsPipeConfigT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):SerializeEventsPipeConfig {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsSerializeEventsPipeConfig(bb:flatbuffers.ByteBuffer, obj?:SerializeEventsPipeConfig):SerializeEventsPipeConfig {\n return (obj || new SerializeEventsPipeConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsSerializeEventsPipeConfig(bb:flatbuffers.ByteBuffer, obj?:SerializeEventsPipeConfig):SerializeEventsPipeConfig {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new SerializeEventsPipeConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nsubscriptionId(): ByteString|null\nsubscriptionId(optionalEncoding:flatbuffers.Encoding): ByteString|Uint8Array|null\nsubscriptionId(optionalEncoding?:any): ByteString|Uint8Array|null {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.__stringByteString(this.bb_pos + offset, optionalEncoding) : null;\n}\n\nstatic startSerializeEventsPipeConfig(builder:flatbuffers.Builder) {\n builder.startObject(1);\n}\n\nstatic addSubscriptionId(builder:flatbuffers.Builder, subscriptionIdOffset:flatbuffers.Offset) {\n builder.addFieldOffset(0, subscriptionIdOffset, 0);\n}\n\nstatic endSerializeEventsPipeConfig(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n builder.requiredField(offset, 4) // subscription_id\n return offset;\n}\n\nstatic createSerializeEventsPipeConfig(builder:flatbuffers.Builder, subscriptionIdOffset:flatbuffers.Offset):flatbuffers.Offset {\n SerializeEventsPipeConfig.startSerializeEventsPipeConfig(builder);\n SerializeEventsPipeConfig.addSubscriptionId(builder, subscriptionIdOffset);\n return SerializeEventsPipeConfig.endSerializeEventsPipeConfig(builder);\n}\n\nunpack(): SerializeEventsPipeConfigT {\n return new SerializeEventsPipeConfigT(\n this.subscriptionId()\n );\n}\n\n\nunpackTo(_o: SerializeEventsPipeConfigT): void {\n _o.subscriptionId = this.subscriptionId();\n}\n}\n\nexport class SerializeEventsPipeConfigT implements flatbuffers.IGeneratedObject {\nconstructor(\n public subscriptionId: ByteString|Uint8Array|null = null\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const subscriptionId = (this.subscriptionId !== null ? builder.createString(this.subscriptionId!) : 0);\n\n return SerializeEventsPipeConfig.createSerializeEventsPipeConfig(builder,\n subscriptionId\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport { CounterPipeConfig, CounterPipeConfigT } from '../../nostr/fb/counter-pipe-config.js';\nimport { KindFilterPipeConfig, KindFilterPipeConfigT } from '../../nostr/fb/kind-filter-pipe-config.js';\nimport { NpubLimiterPipeConfig, NpubLimiterPipeConfigT } from '../../nostr/fb/npub-limiter-pipe-config.js';\nimport { ParsePipeConfig, ParsePipeConfigT } from '../../nostr/fb/parse-pipe-config.js';\nimport { ProofVerificationPipeConfig, ProofVerificationPipeConfigT } from '../../nostr/fb/proof-verification-pipe-config.js';\nimport { SaveToDbPipeConfig, SaveToDbPipeConfigT } from '../../nostr/fb/save-to-db-pipe-config.js';\nimport { SerializeEventsPipeConfig, SerializeEventsPipeConfigT } from '../../nostr/fb/serialize-events-pipe-config.js';\n\n\nexport enum PipeConfig {\n NONE = 0,\n ParsePipeConfig = 1,\n KindFilterPipeConfig = 2,\n CounterPipeConfig = 3,\n NpubLimiterPipeConfig = 4,\n SaveToDbPipeConfig = 5,\n SerializeEventsPipeConfig = 6,\n ProofVerificationPipeConfig = 7\n}\n\nexport function unionToPipeConfig(\n type: PipeConfig,\n accessor: (obj:CounterPipeConfig|KindFilterPipeConfig|NpubLimiterPipeConfig|ParsePipeConfig|ProofVerificationPipeConfig|SaveToDbPipeConfig|SerializeEventsPipeConfig) => CounterPipeConfig|KindFilterPipeConfig|NpubLimiterPipeConfig|ParsePipeConfig|ProofVerificationPipeConfig|SaveToDbPipeConfig|SerializeEventsPipeConfig|null\n): CounterPipeConfig|KindFilterPipeConfig|NpubLimiterPipeConfig|ParsePipeConfig|ProofVerificationPipeConfig|SaveToDbPipeConfig|SerializeEventsPipeConfig|null {\n switch(PipeConfig[type]) {\n case 'NONE': return null; \n case 'ParsePipeConfig': return accessor(new ParsePipeConfig())! as ParsePipeConfig;\n case 'KindFilterPipeConfig': return accessor(new KindFilterPipeConfig())! as KindFilterPipeConfig;\n case 'CounterPipeConfig': return accessor(new CounterPipeConfig())! as CounterPipeConfig;\n case 'NpubLimiterPipeConfig': return accessor(new NpubLimiterPipeConfig())! as NpubLimiterPipeConfig;\n case 'SaveToDbPipeConfig': return accessor(new SaveToDbPipeConfig())! as SaveToDbPipeConfig;\n case 'SerializeEventsPipeConfig': return accessor(new SerializeEventsPipeConfig())! as SerializeEventsPipeConfig;\n case 'ProofVerificationPipeConfig': return accessor(new ProofVerificationPipeConfig())! as ProofVerificationPipeConfig;\n default: return null;\n }\n}\n\nexport function unionListToPipeConfig(\n type: PipeConfig, \n accessor: (index: number, obj:CounterPipeConfig|KindFilterPipeConfig|NpubLimiterPipeConfig|ParsePipeConfig|ProofVerificationPipeConfig|SaveToDbPipeConfig|SerializeEventsPipeConfig) => CounterPipeConfig|KindFilterPipeConfig|NpubLimiterPipeConfig|ParsePipeConfig|ProofVerificationPipeConfig|SaveToDbPipeConfig|SerializeEventsPipeConfig|null, \n index: number\n): CounterPipeConfig|KindFilterPipeConfig|NpubLimiterPipeConfig|ParsePipeConfig|ProofVerificationPipeConfig|SaveToDbPipeConfig|SerializeEventsPipeConfig|null {\n switch(PipeConfig[type]) {\n case 'NONE': return null; \n case 'ParsePipeConfig': return accessor(index, new ParsePipeConfig())! as ParsePipeConfig;\n case 'KindFilterPipeConfig': return accessor(index, new KindFilterPipeConfig())! as KindFilterPipeConfig;\n case 'CounterPipeConfig': return accessor(index, new CounterPipeConfig())! as CounterPipeConfig;\n case 'NpubLimiterPipeConfig': return accessor(index, new NpubLimiterPipeConfig())! as NpubLimiterPipeConfig;\n case 'SaveToDbPipeConfig': return accessor(index, new SaveToDbPipeConfig())! as SaveToDbPipeConfig;\n case 'SerializeEventsPipeConfig': return accessor(index, new SerializeEventsPipeConfig())! as SerializeEventsPipeConfig;\n case 'ProofVerificationPipeConfig': return accessor(index, new ProofVerificationPipeConfig())! as ProofVerificationPipeConfig;\n default: return null;\n }\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\nimport { CounterPipeConfig, CounterPipeConfigT } from '../../nostr/fb/counter-pipe-config.js';\nimport { KindFilterPipeConfig, KindFilterPipeConfigT } from '../../nostr/fb/kind-filter-pipe-config.js';\nimport { NpubLimiterPipeConfig, NpubLimiterPipeConfigT } from '../../nostr/fb/npub-limiter-pipe-config.js';\nimport { ParsePipeConfig, ParsePipeConfigT } from '../../nostr/fb/parse-pipe-config.js';\nimport { PipeConfig, unionToPipeConfig, unionListToPipeConfig } from '../../nostr/fb/pipe-config.js';\nimport { ProofVerificationPipeConfig, ProofVerificationPipeConfigT } from '../../nostr/fb/proof-verification-pipe-config.js';\nimport { SaveToDbPipeConfig, SaveToDbPipeConfigT } from '../../nostr/fb/save-to-db-pipe-config.js';\nimport { SerializeEventsPipeConfig, SerializeEventsPipeConfigT } from '../../nostr/fb/serialize-events-pipe-config.js';\n\n\nexport class Pipe implements flatbuffers.IUnpackableObject<PipeT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):Pipe {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsPipe(bb:flatbuffers.ByteBuffer, obj?:Pipe):Pipe {\n return (obj || new Pipe()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsPipe(bb:flatbuffers.ByteBuffer, obj?:Pipe):Pipe {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Pipe()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nconfigType():PipeConfig {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readUint8(this.bb_pos + offset) : PipeConfig.NONE;\n}\n\nconfig<T extends flatbuffers.Table>(obj:any):any|null {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__union(obj, this.bb_pos + offset) : null;\n}\n\nstatic startPipe(builder:flatbuffers.Builder) {\n builder.startObject(2);\n}\n\nstatic addConfigType(builder:flatbuffers.Builder, configType:PipeConfig) {\n builder.addFieldInt8(0, configType, PipeConfig.NONE);\n}\n\nstatic addConfig(builder:flatbuffers.Builder, configOffset:flatbuffers.Offset) {\n builder.addFieldOffset(1, configOffset, 0);\n}\n\nstatic endPipe(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n builder.requiredField(offset, 6) // config\n return offset;\n}\n\nstatic createPipe(builder:flatbuffers.Builder, configType:PipeConfig, configOffset:flatbuffers.Offset):flatbuffers.Offset {\n Pipe.startPipe(builder);\n Pipe.addConfigType(builder, configType);\n Pipe.addConfig(builder, configOffset);\n return Pipe.endPipe(builder);\n}\n\nunpack(): PipeT {\n return new PipeT(\n this.configType(),\n (() => {\n const temp = unionToPipeConfig(this.configType(), this.config.bind(this));\n if(temp === null) { return null; }\n return temp.unpack()\n })()\n );\n}\n\n\nunpackTo(_o: PipeT): void {\n _o.configType = this.configType();\n _o.config = (() => {\n const temp = unionToPipeConfig(this.configType(), this.config.bind(this));\n if(temp === null) { return null; }\n return temp.unpack()\n })();\n}\n}\n\nexport class PipeT implements flatbuffers.IGeneratedObject {\nconstructor(\n public configType: PipeConfig = PipeConfig.NONE,\n public config: CounterPipeConfigT|KindFilterPipeConfigT|NpubLimiterPipeConfigT|ParsePipeConfigT|ProofVerificationPipeConfigT|SaveToDbPipeConfigT|SerializeEventsPipeConfigT|null = null\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const config = builder.createObjectOffset(this.config);\n\n return Pipe.createPipe(builder,\n this.configType,\n config\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\nimport { Pipe, PipeT } from '../../nostr/fb/pipe.js';\n\n\nexport class PipelineConfig implements flatbuffers.IUnpackableObject<PipelineConfigT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):PipelineConfig {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsPipelineConfig(bb:flatbuffers.ByteBuffer, obj?:PipelineConfig):PipelineConfig {\n return (obj || new PipelineConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsPipelineConfig(bb:flatbuffers.ByteBuffer, obj?:PipelineConfig):PipelineConfig {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new PipelineConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\npipes(index: number, obj?:Pipe):Pipe|null {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? (obj || new Pipe()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n}\n\npipesLength():number {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n}\n\nstatic startPipelineConfig(builder:flatbuffers.Builder) {\n builder.startObject(1);\n}\n\nstatic addPipes(builder:flatbuffers.Builder, pipesOffset:flatbuffers.Offset) {\n builder.addFieldOffset(0, pipesOffset, 0);\n}\n\nstatic createPipesVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset {\n builder.startVector(4, data.length, 4);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addOffset(data[i]!);\n }\n return builder.endVector();\n}\n\nstatic startPipesVector(builder:flatbuffers.Builder, numElems:number) {\n builder.startVector(4, numElems, 4);\n}\n\nstatic endPipelineConfig(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n builder.requiredField(offset, 4) // pipes\n return offset;\n}\n\nstatic createPipelineConfig(builder:flatbuffers.Builder, pipesOffset:flatbuffers.Offset):flatbuffers.Offset {\n PipelineConfig.startPipelineConfig(builder);\n PipelineConfig.addPipes(builder, pipesOffset);\n return PipelineConfig.endPipelineConfig(builder);\n}\n\nunpack(): PipelineConfigT {\n return new PipelineConfigT(\n this.bb!.createObjList<Pipe, PipeT>(this.pipes.bind(this), this.pipesLength())\n );\n}\n\n\nunpackTo(_o: PipelineConfigT): void {\n _o.pipes = this.bb!.createObjList<Pipe, PipeT>(this.pipes.bind(this), this.pipesLength());\n}\n}\n\nexport class PipelineConfigT implements flatbuffers.IGeneratedObject {\nconstructor(\n public pipes: (PipeT)[] = []\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const pipes = PipelineConfig.createPipesVector(builder, builder.createObjectOffsetList(this.pipes));\n\n return PipelineConfig.createPipelineConfig(builder,\n pipes\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\nimport { PipelineConfig, PipelineConfigT } from '../../nostr/fb/pipeline-config.js';\n\n\nexport class SubscriptionConfig implements flatbuffers.IUnpackableObject<SubscriptionConfigT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):SubscriptionConfig {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsSubscriptionConfig(bb:flatbuffers.ByteBuffer, obj?:SubscriptionConfig):SubscriptionConfig {\n return (obj || new SubscriptionConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsSubscriptionConfig(bb:flatbuffers.ByteBuffer, obj?:SubscriptionConfig):SubscriptionConfig {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new SubscriptionConfig()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\npipeline(obj?:PipelineConfig):PipelineConfig|null {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? (obj || new PipelineConfig()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;\n}\n\ncloseOnEose():boolean {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;\n}\n\ncacheFirst():boolean {\n const offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : true;\n}\n\ntimeoutMs():bigint {\n const offset = this.bb!.__offset(this.bb_pos, 10);\n return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('0');\n}\n\nmaxEvents():number {\n const offset = this.bb!.__offset(this.bb_pos, 12);\n return offset ? this.bb!.readUint32(this.bb_pos + offset) : 0;\n}\n\nskipCache():boolean {\n const offset = this.bb!.__offset(this.bb_pos, 14);\n return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;\n}\n\nforce():boolean {\n const offset = this.bb!.__offset(this.bb_pos, 16);\n return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false;\n}\n\nbytesPerEvent():number {\n const offset = this.bb!.__offset(this.bb_pos, 18);\n return offset ? this.bb!.readUint32(this.bb_pos + offset) : 0;\n}\n\nstatic startSubscriptionConfig(builder:flatbuffers.Builder) {\n builder.startObject(8);\n}\n\nstatic addPipeline(builder:flatbuffers.Builder, pipelineOffset:flatbuffers.Offset) {\n builder.addFieldOffset(0, pipelineOffset, 0);\n}\n\nstatic addCloseOnEose(builder:flatbuffers.Builder, closeOnEose:boolean) {\n builder.addFieldInt8(1, +closeOnEose, +false);\n}\n\nstatic addCacheFirst(builder:flatbuffers.Builder, cacheFirst:boolean) {\n builder.addFieldInt8(2, +cacheFirst, +true);\n}\n\nstatic addTimeoutMs(builder:flatbuffers.Builder, timeoutMs:bigint) {\n builder.addFieldInt64(3, timeoutMs, BigInt('0'));\n}\n\nstatic addMaxEvents(builder:flatbuffers.Builder, maxEvents:number) {\n builder.addFieldInt32(4, maxEvents, 0);\n}\n\nstatic addSkipCache(builder:flatbuffers.Builder, skipCache:boolean) {\n builder.addFieldInt8(5, +skipCache, +false);\n}\n\nstatic addForce(builder:flatbuffers.Builder, force:boolean) {\n builder.addFieldInt8(6, +force, +false);\n}\n\nstatic addBytesPerEvent(builder:flatbuffers.Builder, bytesPerEvent:number) {\n builder.addFieldInt32(7, bytesPerEvent, 0);\n}\n\nstatic endSubscriptionConfig(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n return offset;\n}\n\nstatic createSubscriptionConfig(builder:flatbuffers.Builder, pipelineOffset:flatbuffers.Offset, closeOnEose:boolean, cacheFirst:boolean, timeoutMs:bigint, maxEvents:number, skipCache:boolean, force:boolean, bytesPerEvent:number):flatbuffers.Offset {\n SubscriptionConfig.startSubscriptionConfig(builder);\n SubscriptionConfig.addPipeline(builder, pipelineOffset);\n SubscriptionConfig.addCloseOnEose(builder, closeOnEose);\n SubscriptionConfig.addCacheFirst(builder, cacheFirst);\n SubscriptionConfig.addTimeoutMs(builder, timeoutMs);\n SubscriptionConfig.addMaxEvents(builder, maxEvents);\n SubscriptionConfig.addSkipCache(builder, skipCache);\n SubscriptionConfig.addForce(builder, force);\n SubscriptionConfig.addBytesPerEvent(builder, bytesPerEvent);\n return SubscriptionConfig.endSubscriptionConfig(builder);\n}\n\nunpack(): SubscriptionConfigT {\n return new SubscriptionConfigT(\n (this.pipeline() !== null ? this.pipeline()!.unpack() : null),\n this.closeOnEose(),\n this.cacheFirst(),\n this.timeoutMs(),\n this.maxEvents(),\n this.skipCache(),\n this.force(),\n this.bytesPerEvent()\n );\n}\n\n\nunpackTo(_o: SubscriptionConfigT): void {\n _o.pipeline = (this.pipeline() !== null ? this.pipeline()!.unpack() : null);\n _o.closeOnEose = this.closeOnEose();\n _o.cacheFirst = this.cacheFirst();\n _o.timeoutMs = this.timeoutMs();\n _o.maxEvents = this.maxEvents();\n _o.skipCache = this.skipCache();\n _o.force = this.force();\n _o.bytesPerEvent = this.bytesPerEvent();\n}\n}\n\nexport class SubscriptionConfigT implements flatbuffers.IGeneratedObject {\nconstructor(\n public pipeline: PipelineConfigT|null = null,\n public closeOnEose: boolean = false,\n public cacheFirst: boolean = true,\n public timeoutMs: bigint = BigInt('0'),\n public maxEvents: number = 0,\n public skipCache: boolean = false,\n public force: boolean = false,\n public bytesPerEvent: number = 0\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const pipeline = (this.pipeline !== null ? this.pipeline!.pack(builder) : 0);\n\n return SubscriptionConfig.createSubscriptionConfig(builder,\n pipeline,\n this.closeOnEose,\n this.cacheFirst,\n this.timeoutMs,\n this.maxEvents,\n this.skipCache,\n this.force,\n this.bytesPerEvent\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\nimport { Request, RequestT } from '../../nostr/fb/request.js';\nimport { SubscriptionConfig, SubscriptionConfigT } from '../../nostr/fb/subscription-config.js';\n\n\nexport class Subscribe implements flatbuffers.IUnpackableObject<SubscribeT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):Subscribe {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsSubscribe(bb:flatbuffers.ByteBuffer, obj?:Subscribe):Subscribe {\n return (obj || new Subscribe()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsSubscribe(bb:flatbuffers.ByteBuffer, obj?:Subscribe):Subscribe {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Subscribe()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nsubscriptionId(): ByteString|null\nsubscriptionId(optionalEncoding:flatbuffers.Encoding): ByteString|Uint8Array|null\nsubscriptionId(optionalEncoding?:any): ByteString|Uint8Array|null {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.__stringByteString(this.bb_pos + offset, optionalEncoding) : null;\n}\n\nrequests(index: number, obj?:Request):Request|null {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? (obj || new Request()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null;\n}\n\nrequestsLength():number {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n}\n\nconfig(obj?:SubscriptionConfig):SubscriptionConfig|null {\n const offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? (obj || new SubscriptionConfig()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;\n}\n\nstatic startSubscribe(builder:flatbuffers.Builder) {\n builder.startObject(3);\n}\n\nstatic addSubscriptionId(builder:flatbuffers.Builder, subscriptionIdOffset:flatbuffers.Offset) {\n builder.addFieldOffset(0, subscriptionIdOffset, 0);\n}\n\nstatic addRequests(builder:flatbuffers.Builder, requestsOffset:flatbuffers.Offset) {\n builder.addFieldOffset(1, requestsOffset, 0);\n}\n\nstatic createRequestsVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset {\n builder.startVector(4, data.length, 4);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addOffset(data[i]!);\n }\n return builder.endVector();\n}\n\nstatic startRequestsVector(builder:flatbuffers.Builder, numElems:number) {\n builder.startVector(4, numElems, 4);\n}\n\nstatic addConfig(builder:flatbuffers.Builder, configOffset:flatbuffers.Offset) {\n builder.addFieldOffset(2, configOffset, 0);\n}\n\nstatic endSubscribe(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n builder.requiredField(offset, 4) // subscription_id\n builder.requiredField(offset, 6) // requests\n builder.requiredField(offset, 8) // config\n return offset;\n}\n\n\nunpack(): SubscribeT {\n return new SubscribeT(\n this.subscriptionId(),\n this.bb!.createObjList<Request, RequestT>(this.requests.bind(this), this.requestsLength()),\n (this.config() !== null ? this.config()!.unpack() : null)\n );\n}\n\n\nunpackTo(_o: SubscribeT): void {\n _o.subscriptionId = this.subscriptionId();\n _o.requests = this.bb!.createObjList<Request, RequestT>(this.requests.bind(this), this.requestsLength());\n _o.config = (this.config() !== null ? this.config()!.unpack() : null);\n}\n}\n\nexport class SubscribeT implements flatbuffers.IGeneratedObject {\nconstructor(\n public subscriptionId: ByteString|Uint8Array|null = null,\n public requests: (RequestT)[] = [],\n public config: SubscriptionConfigT|null = null\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const subscriptionId = (this.subscriptionId !== null ? builder.createString(this.subscriptionId!) : 0);\n const requests = Subscribe.createRequestsVector(builder, builder.createObjectOffsetList(this.requests));\n const config = (this.config !== null ? this.config!.pack(builder) : 0);\n\n Subscribe.startSubscribe(builder);\n Subscribe.addSubscriptionId(builder, subscriptionId);\n Subscribe.addRequests(builder, requests);\n Subscribe.addConfig(builder, config);\n\n return Subscribe.endSubscribe(builder);\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\n\n\nexport class Unsubscribe implements flatbuffers.IUnpackableObject<UnsubscribeT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):Unsubscribe {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsUnsubscribe(bb:flatbuffers.ByteBuffer, obj?:Unsubscribe):Unsubscribe {\n return (obj || new Unsubscribe()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsUnsubscribe(bb:flatbuffers.ByteBuffer, obj?:Unsubscribe):Unsubscribe {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new Unsubscribe()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nsubscriptionId(): ByteString|null\nsubscriptionId(optionalEncoding:flatbuffers.Encoding): ByteString|Uint8Array|null\nsubscriptionId(optionalEncoding?:any): ByteString|Uint8Array|null {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.__stringByteString(this.bb_pos + offset, optionalEncoding) : null;\n}\n\nstatic startUnsubscribe(builder:flatbuffers.Builder) {\n builder.startObject(1);\n}\n\nstatic addSubscriptionId(builder:flatbuffers.Builder, subscriptionIdOffset:flatbuffers.Offset) {\n builder.addFieldOffset(0, subscriptionIdOffset, 0);\n}\n\nstatic endUnsubscribe(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n builder.requiredField(offset, 4) // subscription_id\n return offset;\n}\n\nstatic createUnsubscribe(builder:flatbuffers.Builder, subscriptionIdOffset:flatbuffers.Offset):flatbuffers.Offset {\n Unsubscribe.startUnsubscribe(builder);\n Unsubscribe.addSubscriptionId(builder, subscriptionIdOffset);\n return Unsubscribe.endUnsubscribe(builder);\n}\n\nunpack(): UnsubscribeT {\n return new UnsubscribeT(\n this.subscriptionId()\n );\n}\n\n\nunpackTo(_o: UnsubscribeT): void {\n _o.subscriptionId = this.subscriptionId();\n}\n}\n\nexport class UnsubscribeT implements flatbuffers.IGeneratedObject {\nconstructor(\n public subscriptionId: ByteString|Uint8Array|null = null\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const subscriptionId = (this.subscriptionId !== null ? builder.createString(this.subscriptionId!) : 0);\n\n return Unsubscribe.createUnsubscribe(builder,\n subscriptionId\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport { GetPublicKey, GetPublicKeyT } from '../../nostr/fb/get-public-key.js';\nimport { Publish, PublishT } from '../../nostr/fb/publish.js';\nimport { SetSigner, SetSignerT } from '../../nostr/fb/set-signer.js';\nimport { SignEvent, SignEventT } from '../../nostr/fb/sign-event.js';\nimport { Subscribe, SubscribeT } from '../../nostr/fb/subscribe.js';\nimport { Unsubscribe, UnsubscribeT } from '../../nostr/fb/unsubscribe.js';\n\n\nexport enum MainContent {\n NONE = 0,\n Subscribe = 1,\n Unsubscribe = 2,\n Publish = 3,\n SignEvent = 4,\n SetSigner = 5,\n GetPublicKey = 6\n}\n\nexport function unionToMainContent(\n type: MainContent,\n accessor: (obj:GetPublicKey|Publish|SetSigner|SignEvent|Subscribe|Unsubscribe) => GetPublicKey|Publish|SetSigner|SignEvent|Subscribe|Unsubscribe|null\n): GetPublicKey|Publish|SetSigner|SignEvent|Subscribe|Unsubscribe|null {\n switch(MainContent[type]) {\n case 'NONE': return null; \n case 'Subscribe': return accessor(new Subscribe())! as Subscribe;\n case 'Unsubscribe': return accessor(new Unsubscribe())! as Unsubscribe;\n case 'Publish': return accessor(new Publish())! as Publish;\n case 'SignEvent': return accessor(new SignEvent())! as SignEvent;\n case 'SetSigner': return accessor(new SetSigner())! as SetSigner;\n case 'GetPublicKey': return accessor(new GetPublicKey())! as GetPublicKey;\n default: return null;\n }\n}\n\nexport function unionListToMainContent(\n type: MainContent, \n accessor: (index: number, obj:GetPublicKey|Publish|SetSigner|SignEvent|Subscribe|Unsubscribe) => GetPublicKey|Publish|SetSigner|SignEvent|Subscribe|Unsubscribe|null, \n index: number\n): GetPublicKey|Publish|SetSigner|SignEvent|Subscribe|Unsubscribe|null {\n switch(MainContent[type]) {\n case 'NONE': return null; \n case 'Subscribe': return accessor(index, new Subscribe())! as Subscribe;\n case 'Unsubscribe': return accessor(index, new Unsubscribe())! as Unsubscribe;\n case 'Publish': return accessor(index, new Publish())! as Publish;\n case 'SignEvent': return accessor(index, new SignEvent())! as SignEvent;\n case 'SetSigner': return accessor(index, new SetSigner())! as SetSigner;\n case 'GetPublicKey': return accessor(index, new GetPublicKey())! as GetPublicKey;\n default: return null;\n }\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\nimport { GetPublicKey, GetPublicKeyT } from '../../nostr/fb/get-public-key.js';\nimport { MainContent, unionToMainContent, unionListToMainContent } from '../../nostr/fb/main-content.js';\nimport { Publish, PublishT } from '../../nostr/fb/publish.js';\nimport { SetSigner, SetSignerT } from '../../nostr/fb/set-signer.js';\nimport { SignEvent, SignEventT } from '../../nostr/fb/sign-event.js';\nimport { Subscribe, SubscribeT } from '../../nostr/fb/subscribe.js';\nimport { Unsubscribe, UnsubscribeT } from '../../nostr/fb/unsubscribe.js';\n\n\nexport class MainMessage implements flatbuffers.IUnpackableObject<MainMessageT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):MainMessage {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsMainMessage(bb:flatbuffers.ByteBuffer, obj?:MainMessage):MainMessage {\n return (obj || new MainMessage()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsMainMessage(bb:flatbuffers.ByteBuffer, obj?:MainMessage):MainMessage {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new MainMessage()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\ncontentType():MainContent {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readUint8(this.bb_pos + offset) : MainContent.NONE;\n}\n\ncontent<T extends flatbuffers.Table>(obj:any):any|null {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.__union(obj, this.bb_pos + offset) : null;\n}\n\nstatic startMainMessage(builder:flatbuffers.Builder) {\n builder.startObject(2);\n}\n\nstatic addContentType(builder:flatbuffers.Builder, contentType:MainContent) {\n builder.addFieldInt8(0, contentType, MainContent.NONE);\n}\n\nstatic addContent(builder:flatbuffers.Builder, contentOffset:flatbuffers.Offset) {\n builder.addFieldOffset(1, contentOffset, 0);\n}\n\nstatic endMainMessage(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n builder.requiredField(offset, 6) // content\n return offset;\n}\n\nstatic createMainMessage(builder:flatbuffers.Builder, contentType:MainContent, contentOffset:flatbuffers.Offset):flatbuffers.Offset {\n MainMessage.startMainMessage(builder);\n MainMessage.addContentType(builder, contentType);\n MainMessage.addContent(builder, contentOffset);\n return MainMessage.endMainMessage(builder);\n}\n\nunpack(): MainMessageT {\n return new MainMessageT(\n this.contentType(),\n (() => {\n const temp = unionToMainContent(this.contentType(), this.content.bind(this));\n if(temp === null) { return null; }\n return temp.unpack()\n })()\n );\n}\n\n\nunpackTo(_o: MainMessageT): void {\n _o.contentType = this.contentType();\n _o.content = (() => {\n const temp = unionToMainContent(this.contentType(), this.content.bind(this));\n if(temp === null) { return null; }\n return temp.unpack()\n })();\n}\n}\n\nexport class MainMessageT implements flatbuffers.IGeneratedObject {\nconstructor(\n public contentType: MainContent = MainContent.NONE,\n public content: GetPublicKeyT|PublishT|SetSignerT|SignEventT|SubscribeT|UnsubscribeT|null = null\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const content = builder.createObjectOffset(this.content);\n\n return MainMessage.createMainMessage(builder,\n this.contentType,\n content\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nexport enum MsgKind {\n Unknown = 0,\n Event = 1,\n Eose = 2,\n Ok = 3,\n Closed = 4,\n Notice = 5,\n Auth = 6\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nexport enum ParsedDataUnion {\n Kind0Parsed = 0,\n Kind1Parsed = 1,\n Kind3Parsed = 3,\n Kind4Parsed = 4,\n Kind6Parsed = 6,\n Kind7Parsed = 7,\n Kind17Parsed = 17,\n Kind7374Parsed = 7374,\n Kind7375Parsed = 7375,\n Kind7376Parsed = 7376,\n Kind9321Parsed = 9321,\n Kind9735Parsed = 9735,\n Kind10002Parsed = 10002,\n Kind10019Parsed = 10019,\n Kind17375Parsed = 17375,\n Kind39089Parsed = 39089\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\n\n\nexport class RelayRef implements flatbuffers.IUnpackableObject<RelayRefT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):RelayRef {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsRelayRef(bb:flatbuffers.ByteBuffer, obj?:RelayRef):RelayRef {\n return (obj || new RelayRef()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsRelayRef(bb:flatbuffers.ByteBuffer, obj?:RelayRef):RelayRef {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new RelayRef()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nurl(): ByteString|null\nurl(optionalEncoding:flatbuffers.Encoding): ByteString|Uint8Array|null\nurl(optionalEncoding?:any): ByteString|Uint8Array|null {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.__stringByteString(this.bb_pos + offset, optionalEncoding) : null;\n}\n\nstatic startRelayRef(builder:flatbuffers.Builder) {\n builder.startObject(1);\n}\n\nstatic addUrl(builder:flatbuffers.Builder, urlOffset:flatbuffers.Offset) {\n builder.addFieldOffset(0, urlOffset, 0);\n}\n\nstatic endRelayRef(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n builder.requiredField(offset, 4) // url\n return offset;\n}\n\nstatic createRelayRef(builder:flatbuffers.Builder, urlOffset:flatbuffers.Offset):flatbuffers.Offset {\n RelayRef.startRelayRef(builder);\n RelayRef.addUrl(builder, urlOffset);\n return RelayRef.endRelayRef(builder);\n}\n\nunpack(): RelayRefT {\n return new RelayRefT(\n this.url()\n );\n}\n\n\nunpackTo(_o: RelayRefT): void {\n _o.url = this.url();\n}\n}\n\nexport class RelayRefT implements flatbuffers.IGeneratedObject {\nconstructor(\n public url: ByteString|Uint8Array|null = null\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const url = (this.url !== null ? builder.createString(this.url!) : 0);\n\n return RelayRef.createRelayRef(builder,\n url\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nexport enum SubscribeKind {\n CachedEvent = 0,\n FetchedEvent = 1,\n Count = 2,\n ConnectionStatus = 3,\n Eoce = 4,\n BufferFull = 5\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\nimport { MsgKind } from '../../nostr/fb/msg-kind.js';\nimport { RelayRef, RelayRefT } from '../../nostr/fb/relay-ref.js';\n\n\nexport class WorkerLine implements flatbuffers.IUnpackableObject<WorkerLineT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):WorkerLine {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsWorkerLine(bb:flatbuffers.ByteBuffer, obj?:WorkerLine):WorkerLine {\n return (obj || new WorkerLine()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsWorkerLine(bb:flatbuffers.ByteBuffer, obj?:WorkerLine):WorkerLine {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new WorkerLine()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nrelay(obj?:RelayRef):RelayRef|null {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? (obj || new RelayRef()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null;\n}\n\nkind():MsgKind {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.readInt16(this.bb_pos + offset) : MsgKind.Unknown;\n}\n\nsubId(): ByteString|null\nsubId(optionalEncoding:flatbuffers.Encoding): ByteString|Uint8Array|null\nsubId(optionalEncoding?:any): ByteString|Uint8Array|null {\n const offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? this.bb!.__stringByteString(this.bb_pos + offset, optionalEncoding) : null;\n}\n\nraw(index: number):number|null {\n const offset = this.bb!.__offset(this.bb_pos, 10);\n return offset ? this.bb!.readUint8(this.bb!.__vector(this.bb_pos + offset) + index) : 0;\n}\n\nrawLength():number {\n const offset = this.bb!.__offset(this.bb_pos, 10);\n return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;\n}\n\nrawArray():Uint8Array|null {\n const offset = this.bb!.__offset(this.bb_pos, 10);\n return offset ? new Uint8Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null;\n}\n\nstatic startWorkerLine(builder:flatbuffers.Builder) {\n builder.startObject(4);\n}\n\nstatic addRelay(builder:flatbuffers.Builder, relayOffset:flatbuffers.Offset) {\n builder.addFieldOffset(0, relayOffset, 0);\n}\n\nstatic addKind(builder:flatbuffers.Builder, kind:MsgKind) {\n builder.addFieldInt16(1, kind, MsgKind.Unknown);\n}\n\nstatic addSubId(builder:flatbuffers.Builder, subIdOffset:flatbuffers.Offset) {\n builder.addFieldOffset(2, subIdOffset, 0);\n}\n\nstatic addRaw(builder:flatbuffers.Builder, rawOffset:flatbuffers.Offset) {\n builder.addFieldOffset(3, rawOffset, 0);\n}\n\nstatic createRawVector(builder:flatbuffers.Builder, data:number[]|Uint8Array):flatbuffers.Offset {\n builder.startVector(1, data.length, 1);\n for (let i = data.length - 1; i >= 0; i--) {\n builder.addInt8(data[i]!);\n }\n return builder.endVector();\n}\n\nstatic startRawVector(builder:flatbuffers.Builder, numElems:number) {\n builder.startVector(1, numElems, 1);\n}\n\nstatic endWorkerLine(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n builder.requiredField(offset, 4) // relay\n builder.requiredField(offset, 10) // raw\n return offset;\n}\n\nstatic createWorkerLine(builder:flatbuffers.Builder, relayOffset:flatbuffers.Offset, kind:MsgKind, subIdOffset:flatbuffers.Offset, rawOffset:flatbuffers.Offset):flatbuffers.Offset {\n WorkerLine.startWorkerLine(builder);\n WorkerLine.addRelay(builder, relayOffset);\n WorkerLine.addKind(builder, kind);\n WorkerLine.addSubId(builder, subIdOffset);\n WorkerLine.addRaw(builder, rawOffset);\n return WorkerLine.endWorkerLine(builder);\n}\n\nunpack(): WorkerLineT {\n return new WorkerLineT(\n (this.relay() !== null ? this.relay()!.unpack() : null),\n this.kind(),\n this.subId(),\n this.bb!.createScalarList<number>(this.raw.bind(this), this.rawLength())\n );\n}\n\n\nunpackTo(_o: WorkerLineT): void {\n _o.relay = (this.relay() !== null ? this.relay()!.unpack() : null);\n _o.kind = this.kind();\n _o.subId = this.subId();\n _o.raw = this.bb!.createScalarList<number>(this.raw.bind(this), this.rawLength());\n}\n}\n\nexport class WorkerLineT implements flatbuffers.IGeneratedObject {\nconstructor(\n public relay: RelayRefT|null = null,\n public kind: MsgKind = MsgKind.Unknown,\n public subId: ByteString|Uint8Array|null = null,\n public raw: (number)[] = []\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const relay = (this.relay !== null ? this.relay!.pack(builder) : 0);\n const subId = (this.subId !== null ? builder.createString(this.subId!) : 0);\n const raw = WorkerLine.createRawVector(builder, this.raw);\n\n return WorkerLine.createWorkerLine(builder,\n relay,\n this.kind,\n subId,\n raw\n );\n}\n}\n","import { ByteString } from \"src/lib/ByteString\";\n// automatically generated by the FlatBuffers compiler, do not modify\n\n/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */\n\nimport * as flatbuffers from 'flatbuffers';\n\nimport { BufferFull, BufferFullT } from '../../nostr/fb/buffer-full.js';\nimport { ConnectionStatus, ConnectionStatusT } from '../../nostr/fb/connection-status.js';\nimport { CountResponse, CountResponseT } from '../../nostr/fb/count-response.js';\nimport { Eoce, EoceT } from '../../nostr/fb/eoce.js';\nimport { Message, unionToMessage, unionListToMessage } from '../../nostr/fb/message.js';\nimport { MessageType } from '../../nostr/fb/message-type.js';\nimport { ParsedEvent, ParsedEventT } from '../../nostr/fb/parsed-event.js';\nimport { Pubkey, PubkeyT } from '../../nostr/fb/pubkey.js';\nimport { SignedEvent, SignedEventT } from '../../nostr/fb/signed-event.js';\nimport { ValidProofs, ValidProofsT } from '../../nostr/fb/valid-proofs.js';\n\n\nexport class WorkerMessage implements flatbuffers.IUnpackableObject<WorkerMessageT> {\n bb: flatbuffers.ByteBuffer|null = null;\n bb_pos = 0;\n __init(i:number, bb:flatbuffers.ByteBuffer):WorkerMessage {\n this.bb_pos = i;\n this.bb = bb;\n return this;\n}\n\nstatic getRootAsWorkerMessage(bb:flatbuffers.ByteBuffer, obj?:WorkerMessage):WorkerMessage {\n return (obj || new WorkerMessage()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\nstatic getSizePrefixedRootAsWorkerMessage(bb:flatbuffers.ByteBuffer, obj?:WorkerMessage):WorkerMessage {\n bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);\n return (obj || new WorkerMessage()).__init(bb.readInt32(bb.position()) + bb.position(), bb);\n}\n\ntype():MessageType {\n const offset = this.bb!.__offset(this.bb_pos, 4);\n return offset ? this.bb!.readUint32(this.bb_pos + offset) : MessageType.ParsedNostrEvent;\n}\n\ncontentType():Message {\n const offset = this.bb!.__offset(this.bb_pos, 6);\n return offset ? this.bb!.readUint8(this.bb_pos + offset) : Message.NONE;\n}\n\ncontent<T extends flatbuffers.Table>(obj:any):any|null {\n const offset = this.bb!.__offset(this.bb_pos, 8);\n return offset ? this.bb!.__union(obj, this.bb_pos + offset) : null;\n}\n\nstatic startWorkerMessage(builder:flatbuffers.Builder) {\n builder.startObject(3);\n}\n\nstatic addType(builder:flatbuffers.Builder, type:MessageType) {\n builder.addFieldInt32(0, type, MessageType.ParsedNostrEvent);\n}\n\nstatic addContentType(builder:flatbuffers.Builder, contentType:Message) {\n builder.addFieldInt8(1, contentType, Message.NONE);\n}\n\nstatic addContent(builder:flatbuffers.Builder, contentOffset:flatbuffers.Offset) {\n builder.addFieldOffset(2, contentOffset, 0);\n}\n\nstatic endWorkerMessage(builder:flatbuffers.Builder):flatbuffers.Offset {\n const offset = builder.endObject();\n return offset;\n}\n\nstatic finishWorkerMessageBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) {\n builder.finish(offset);\n}\n\nstatic finishSizePrefixedWorkerMessageBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) {\n builder.finish(offset, undefined, true);\n}\n\nstatic createWorkerMessage(builder:flatbuffers.Builder, type:MessageType, contentType:Message, contentOffset:flatbuffers.Offset):flatbuffers.Offset {\n WorkerMessage.startWorkerMessage(builder);\n WorkerMessage.addType(builder, type);\n WorkerMessage.addContentType(builder, contentType);\n WorkerMessage.addContent(builder, contentOffset);\n return WorkerMessage.endWorkerMessage(builder);\n}\n\nunpack(): WorkerMessageT {\n return new WorkerMessageT(\n this.type(),\n this.contentType(),\n (() => {\n const temp = unionToMessage(this.contentType(), this.content.bind(this));\n if(temp === null) { return null; }\n return temp.unpack()\n })()\n );\n}\n\n\nunpackTo(_o: WorkerMessageT): void {\n _o.type = this.type();\n _o.contentType = this.contentType();\n _o.content = (() => {\n const temp = unionToMessage(this.contentType(), this.content.bind(this));\n if(temp === null) { return null; }\n return temp.unpack()\n })();\n}\n}\n\nexport class WorkerMessageT implements flatbuffers.IGeneratedObject {\nconstructor(\n public type: MessageType = MessageType.ParsedNostrEvent,\n public contentType: Message = Message.NONE,\n public content: BufferFullT|ConnectionStatusT|CountResponseT|EoceT|ParsedEventT|PubkeyT|SignedEventT|ValidProofsT|null = null\n){}\n\n\npack(builder:flatbuffers.Builder): flatbuffers.Offset {\n const content = builder.createObjectOffset(this.content);\n\n return WorkerMessage.createWorkerMessage(builder,\n this.type,\n this.contentType,\n content\n );\n}\n}\n","import { ByteBuffer } from 'flatbuffers';\nimport { WorkerMessage } from 'src/generated/nostr/fb';\n\n/**\n * Utility library for reading from SharedArrayBuffer with 4-byte header approach\n * Header format: [0-3]: Write position (4 bytes, little endian)\n * Data format: [4+]: [4-byte length][msgpack event][4-byte length][msgpack event]...\n */\nexport class SharedBufferReader {\n\t/**\n\t * Initialize a buffer for writing - sets the write position header to 4\n\t * @param buffer The SharedArrayBuffer to initialize\n\t */\n\tstatic initializeBuffer(buffer: SharedArrayBuffer): void {\n\t\tconst view = new DataView(buffer);\n\t\t// Set initial write position to 4 (right after the header)\n\t\tview.setUint32(0, 4, true);\n\t}\n\n\t/**\n\t * Write a message to the SharedArrayBuffer\n\t * @param buffer The SharedArrayBuffer to write to\n\t * @param data The data to write (already encoded as Uint8Array)\n\t * @returns True if written successfully, false if buffer is full\n\t */\n\tstatic writeMessage(buffer: SharedArrayBuffer, data: Uint8Array): boolean {\n\t\tconst view = new DataView(buffer);\n\t\tconst uint8View = new Uint8Array(buffer);\n\n\t\t// Get current write position\n\t\tconst currentWritePosition = view.getUint32(0, true);\n\n\t\t// Check if there's enough space (4 bytes for length + data length)\n\t\tconst requiredSpace = 4 + data.length;\n\t\tif (currentWritePosition + requiredSpace > buffer.byteLength) {\n\t\t\tconsole.warn('Buffer full, cannot write message');\n\t\t\treturn false;\n\t\t}\n\n\t\t// Write the length prefix (4 bytes, little endian)\n\t\tview.setUint32(currentWritePosition, data.length, true);\n\n\t\t// Write the actual data\n\t\tuint8View.set(data, currentWritePosition + 4);\n\n\t\t// Update the write position header\n\t\tconst newWritePosition = currentWritePosition + requiredSpace;\n\t\tview.setUint32(0, newWritePosition, true);\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Read new messages from SharedArrayBuffer since last read position\n\t * @param buffer The SharedArrayBuffer to read from\n\t * @param lastReadPosition Last position read (default: 0, meaning read from beginning)\n\t * @returns Object containing new messages and updated read position\n\t */\n\tstatic readMessages(buffer: SharedArrayBuffer, lastReadPosition: number = 0) {\n\t\tconst view = new DataView(buffer);\n\t\tconst uint8View = new Uint8Array(buffer);\n\n\t\tconst currentWritePosition = view.getUint32(0, true);\n\t\tconst dataStartOffset = 4;\n\t\tlet currentPos = lastReadPosition < dataStartOffset ? dataStartOffset : lastReadPosition;\n\t\tif (currentWritePosition <= currentPos) {\n\t\t\treturn { messages: [], newReadPosition: currentPos, hasNewData: false };\n\t\t}\n\n\t\tconst maxMessages = 128;\n\t\tconst messages: WorkerMessage[] = new Array(maxMessages);\n\t\tlet msgCount = 0;\n\n\t\ttry {\n\t\t\twhile (currentPos < currentWritePosition) {\n\t\t\t\t// Stop if we've filled this batch; leave currentPos at the start of the next message\n\t\t\t\tif (msgCount >= maxMessages) break;\n\n\t\t\t\t// Need enough bytes for header\n\t\t\t\tif (currentPos + 4 > currentWritePosition) break;\n\n\t\t\t\tconst headerPos = currentPos;\n\t\t\t\tconst eventLength = view.getUint32(headerPos, true);\n\t\t\t\tconst payloadStart = headerPos + 4;\n\t\t\t\tconst nextPos = payloadStart + eventLength;\n\n\t\t\t\t// Need the full payload to be available\n\t\t\t\tif (nextPos > currentWritePosition) break;\n\n\t\t\t\t// ⚡ ZERO-COPY: create subarray view directly over SharedArrayBuffer\n\t\t\t\tconst flatBufferData = uint8View.subarray(payloadStart, nextPos);\n\n\t\t\t\t// Parse directly\n\t\t\t\tconst bb = new ByteBuffer(flatBufferData);\n\t\t\t\tconst message = WorkerMessage.getRootAsWorkerMessage(bb);\n\n\t\t\t\tmessages[msgCount++] = message;\n\n\t\t\t\t// Advance to next message boundary\n\t\t\t\tcurrentPos = nextPos;\n\t\t\t}\n\n\t\t\tmessages.length = msgCount;\n\t\t\treturn {\n\t\t\t\tmessages,\n\t\t\t\tnewReadPosition: currentPos,\n\t\t\t\thasNewData: msgCount > 0\n\t\t\t};\n\t\t} catch (error) {\n\t\t\tconsole.error('Failed to decode FlatBuffer data from SharedArrayBuffer:', error);\n\t\t\tmessages.length = msgCount;\n\t\t\treturn {\n\t\t\t\tmessages,\n\t\t\t\tnewReadPosition: lastReadPosition < dataStartOffset ? dataStartOffset : lastReadPosition,\n\t\t\t\thasNewData: false\n\t\t\t};\n\t\t}\n\t}\n\n\t/**\n\t * Read all messages from SharedArrayBuffer from the beginning (ignores lastReadPosition)\n\t * @param buffer The SharedArrayBuffer to read from\n\t * @returns Object containing all messages in the buffer\n\t */\n\tstatic readAllMessages(buffer: SharedArrayBuffer): {\n\t\tmessages: WorkerMessage[];\n\t\ttotalMessages: number;\n\t} {\n\t\tconst result = this.readMessages(buffer, 0); // Always start from beginning\n\t\treturn {\n\t\t\tmessages: result.messages,\n\t\t\ttotalMessages: result.messages.length\n\t\t};\n\t}\n\n\t/**\n\t * Get current write position from buffer header\n\t * @param buffer The SharedArrayBuffer to read from\n\t * @returns Current write position\n\t */\n\tstatic getCurrentWritePosition(buffer: SharedArrayBuffer): number {\n\t\tconst view = new DataView(buffer);\n\t\treturn view.getUint32(0, true);\n\t}\n\n\t/**\n\t * Check if buffer has new data since last read\n\t * @param buffer The SharedArrayBuffer to check\n\t * @param lastReadPosition Last position read\n\t * @returns True if there's new data to read\n\t */\n\tstatic hasNewData(buffer: SharedArrayBuffer, lastReadPosition: number): boolean {\n\t\tconst currentWritePosition = this.getCurrentWritePosition(buffer);\n\t\tconst dataStartOffset = 4;\n\t\tconst actualLastReadPosition = Math.max(lastReadPosition, dataStartOffset);\n\t\treturn currentWritePosition > actualLastReadPosition;\n\t}\n\n\t/**\n\t * Calculate recommended buffer size based on request limits\n\t * @param totalEventLimit Total expected events across all requests\n\t * @param bytesPerEvent Estimated bytes per event (default: 3072)\n\t * @returns Recommended buffer size in bytes\n\t */\n\tstatic calculateBufferSize(totalEventLimit: number = 100, bytesPerEvent: number = 3072): number {\n\t\tconst headerSize = 4;\n\t\tconst dataSize = totalEventLimit * bytesPerEvent;\n\t\tconst overhead = Math.floor(dataSize * 0.25); // 25% overhead\n\t\treturn headerSize + dataSize + overhead;\n\t}\n}\n","import RustWorker from '@candypoets/rust-worker/worker.js?worker';\nimport wasmAsset from '@candypoets/rust-worker/rust_worker_bg.wasm?url';\nimport type { EventTemplate, NostrEvent } from 'nostr-tools';\n\nimport { SharedBufferReader } from 'src/lib/SharedBuffer';\n\nimport * as flatbuffers from 'flatbuffers';\nimport { RequestObject, SubscriptionConfig } from 'src/types';\nimport {\n\tGetPublicKeyT,\n\tMainContent,\n\tMainMessageT,\n\tPipelineConfigT,\n\tPrivateKeyT,\n\tPublishT,\n\tRequestT,\n\tSetSignerT,\n\tSignerType,\n\tSignEventT,\n\tStringVecT,\n\tSubscribeT,\n\tSubscriptionConfigT,\n\tTemplateT,\n\tUnsubscribeT\n} from './generated/nostr/fb';\n\n/**\n * Configuration for the Nostr Manager\n */\nexport interface NostrManagerConfig {\n\tbufferKey: string;\n\tmaxBufferSize: number;\n\tinRing: SharedArrayBuffer;\n\toutRing: SharedArrayBuffer;\n}\n\n// Globals for single fetch + per-worker copies\nlet originalWasmBuffer: ArrayBuffer | null = null;\nlet fetchPromise: Promise<void> | null = null;\n\nasync function ensureOriginalBuffer(): Promise<void> {\n\tif (fetchPromise) {\n\t\treturn fetchPromise;\n\t}\n\n\tfetchPromise = fetch(wasmAsset)\n\t\t.then((res) => {\n\t\t\tif (!res.ok) {\n\t\t\t\tthrow new Error(`Failed to fetch WASM: ${res.status} ${res.statusText}`);\n\t\t\t}\n\t\t\treturn res.arrayBuffer();\n\t\t})\n\t\t.then((buffer) => {\n\t\t\toriginalWasmBuffer = buffer; // Cache the original (never transfer this one)\n\t\t})\n\t\t.catch((error) => {\n\t\t\tconsole.error('WASM fetch failed:', error);\n\t\t\tthrow error;\n\t\t});\n\n\treturn fetchPromise;\n}\n\n/**\n * Pure TypeScript NostrClient that manages worker communication and state.\n * Uses WASM utilities for heavy lifting (encoding, decoding, crypto).\n */\nexport class NostrManager {\n\tprivate worker: Worker;\n\tprivate textEncoder = new TextEncoder();\n\tprivate subscriptions = new Map<\n\t\tstring,\n\t\t{\n\t\t\tbuffer: SharedArrayBuffer;\n\t\t\toptions: SubscriptionConfig;\n\t\t\trefCount: number;\n\t\t}\n\t>();\n\tprivate publishes = new Map<string, { buffer: SharedArrayBuffer }>();\n\tprivate signers = new Map<string, string>(); // name -> secret key hex\n\n\tprivate signCB = (event: any) => {};\n\tprivate eventTarget = new EventTarget();\n\n\tpublic PERPETUAL_SUBSCRIPTIONS = ['notifications', 'starterpack'];\n\n\t// In constructor, do NOT start init directly. Just set up ready lazily.\n\tconstructor(config: NostrManagerConfig) {\n\t\tthis.config = config;\n\t\t// Optionally prewarm, but at idle priority:\n\t\tconst prewarm = () => void this.init();\n\t\tif ('requestIdleCallback' in window) {\n\t\t\t(window as any).requestIdleCallback(prewarm, { timeout: 2000 });\n\t\t} else {\n\t\t\tsetTimeout(prewarm, 1500);\n\t\t}\n\t}\n\n\tprivate _ready: Promise<void> | null = null;\n\tprivate config!: NostrManagerConfig;\n\n\tprivate init(): Promise<void> {\n\t\tif (this._ready) return this._ready;\n\n\t\tthis.worker = this.createWorker();\n\t\tthis.setupWorkerListener();\n\n\t\tthis._ready = (async () => {\n\t\t\tawait ensureOriginalBuffer();\n\t\t\t// Create a transferable copy for the worker to avoid an extra clone.\n\t\t\tconst wasmCopy = originalWasmBuffer!.slice(0);\n\t\t\tthis.worker.postMessage(\n\t\t\t\t{\n\t\t\t\t\ttype: 'init',\n\t\t\t\t\tpayload: {\n\t\t\t\t\t\tbufferKey: this.config.bufferKey,\n\t\t\t\t\t\tmaxBufferSize: this.config.maxBufferSize,\n\t\t\t\t\t\twasmBuffer: wasmCopy,\n\t\t\t\t\t\tinRing: this.config.inRing,\n\t\t\t\t\t\toutRing: this.config.outRing\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t// Transfer the wasm copy to the worker (no duplicate copy).\n\t\t\t\t[wasmCopy]\n\t\t\t);\n\t\t})();\n\n\t\treturn this._ready;\n\t}\n\n\t// Helper so all calls route through a single place and never race init:\n\tprivate postToWorker(message: any, transfer?: Transferable[]) {\n\t\treturn this.init().then(() => {\n\t\t\tif (transfer && transfer.length) {\n\t\t\t\tthis.worker.postMessage(message, transfer);\n\t\t\t} else {\n\t\t\t\tthis.worker.postMessage(message);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate createWorker(): Worker {\n\t\treturn new RustWorker();\n\t}\n\n\tprivate setupWorkerListener() {\n\t\tthis.worker.onmessage = async (event) => {\n\t\t\tconst id = typeof event.data === 'string' ? event.data : undefined;\n\t\t\ttry {\n\t\t\t\tif (event.data.startsWith('{\"id\":')) {\n\t\t\t\t\tconst parsed = JSON.parse(event.data);\n\t\t\t\t\tthis.signCB(parsed);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\t// console.error(\"Error parsing event data:\", error);\n\t\t\t}\n\n\t\t\tif (!id) return;\n\n\t\t\t// Prefer O(1) routing via your existing maps\n\t\t\tif (this.subscriptions.has(id)) {\n\t\t\t\t// Notify only the listeners for this subscription\n\t\t\t\tthis.dispatch(`subscription:${id}`, id);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (this.publishes.has(id)) {\n\t\t\t\tthis.dispatch(`publish:${id}`, id);\n\t\t\t\treturn;\n\t\t\t}\n\t\t};\n\n\t\tthis.worker.onerror = (error) => {\n\t\t\tconsole.error('Worker error:', error);\n\t\t};\n\t}\n\n\tpublic createShortId(input: string): string {\n\t\tif (input.length < 64) return input;\n\t\tlet hash = 0;\n\t\tfor (let i = 0; i < input.length; i++) {\n\t\t\tconst char = input.charCodeAt(i);\n\t\t\thash = (hash << 5) - hash + char;\n\t\t\thash = hash & hash;\n\t\t}\n\t\tconst shortId = Math.abs(hash).toString(36);\n\t\treturn shortId.substring(0, 63);\n\t}\n\n\tpublic addEventListener(\n\t\ttype: string,\n\t\tlistener: EventListenerOrEventListenerObject,\n\t\toptions?: AddEventListenerOptions\n\t): void {\n\t\tthis.eventTarget.addEventListener(type, listener as EventListener, options);\n\t}\n\n\tpublic removeEventListener(\n\t\ttype: string,\n\t\tlistener: EventListenerOrEventListenerObject,\n\t\toptions?: EventListenerOptions\n\t): void {\n\t\tthis.eventTarget.removeEventListener(type, listener as EventListener, options);\n\t}\n\n\tprivate dispatch(type: string, detail?: unknown): void {\n\t\tthis.eventTarget.dispatchEvent(new CustomEvent(type, { detail }));\n\t}\n\n\tsubscribe(\n\t\tsubscriptionId: string,\n\t\trequests: RequestObject[],\n\t\toptions: SubscriptionConfig\n\t): SharedArrayBuffer {\n\t\tconst subId = this.createShortId(subscriptionId);\n\n\t\tconst existingSubscription = this.subscriptions.get(subId);\n\n\t\tif (existingSubscription) {\n\t\t\texistingSubscription.refCount++;\n\t\t\treturn existingSubscription.buffer;\n\t\t}\n\n\t\tconst totalLimit = requests.reduce((sum, req) => sum + (req.limit || 100), 0);\n\n\t\tconst bufferSize = SharedBufferReader.calculateBufferSize(totalLimit, options.bytesPerEvent);\n\n\t\tlet initialMessage: Uint8Array<ArrayBufferLike> = new Uint8Array();\n\n\t\tconst buffer = new SharedArrayBuffer(bufferSize + initialMessage.length);\n\n\t\t// Initialize the buffer (sets write position to 4)\n\t\tSharedBufferReader.initializeBuffer(buffer);\n\n\t\t// Write the initial message if provided\n\t\tif (initialMessage.length > 0) {\n\t\t\tconst success = SharedBufferReader.writeMessage(buffer, initialMessage);\n\t\t\tif (!success) {\n\t\t\t\tconsole.error('Failed to write initial message to buffer');\n\t\t\t}\n\t\t}\n\n\t\tthis.subscriptions.set(subId, {\n\t\t\tbuffer,\n\t\t\toptions,\n\t\t\trefCount: 1\n\t\t});\n\n\t\tconst optionsT = new SubscriptionConfigT(\n\t\t\tnew PipelineConfigT(options.pipeline || []),\n\t\t\toptions.closeOnEose,\n\t\t\toptions.cacheFirst,\n\t\t\toptions.timeoutMs ? BigInt(options.timeoutMs) : undefined,\n\t\t\toptions.maxEvents,\n\t\t\toptions.skipCache,\n\t\t\toptions.force,\n\t\t\toptions.bytesPerEvent\n\t\t);\n\n\t\tconst subscribeT = new SubscribeT(\n\t\t\tthis.textEncoder.encode(subId),\n\t\t\trequests.map(\n\t\t\t\t(r) =>\n\t\t\t\t\tnew RequestT(\n\t\t\t\t\t\tr.ids,\n\t\t\t\t\t\tr.authors,\n\t\t\t\t\t\tr.kinds,\n\t\t\t\t\t\tObject.entries(r.tags || {}).flatMap(\n\t\t\t\t\t\t\t([key, values]) => new StringVecT([key, ...values])\n\t\t\t\t\t\t),\n\t\t\t\t\t\tr.limit,\n\t\t\t\t\t\tr.since,\n\t\t\t\t\t\tr.until,\n\t\t\t\t\t\tthis.textEncoder.encode(r.search),\n\t\t\t\t\t\tr.relays,\n\t\t\t\t\t\tr.closeOnEOSE,\n\t\t\t\t\t\tr.cacheFirst\n\t\t\t\t\t)\n\t\t\t),\n\t\t\toptionsT\n\t\t);\n\n\t\t// Wrap in MainMessageT as Subscribe variant\n\t\tconst mainT = new MainMessageT(MainContent.Subscribe, subscribeT);\n\n\t\t// Serialize with FlatBuffers builder\n\t\tconst builder = new flatbuffers.Builder(2048);\n\t\tconst mainOffset = mainT.pack(builder);\n\t\tbuilder.finish(mainOffset);\n\t\tconst serializedMessage = builder.asUint8Array();\n\n\t\ttry {\n\t\t\t// nipWorker.resetInputLoopBackoff();\n\t\t\tvoid this.postToWorker({ serializedMessage, sharedBuffer: buffer });\n\n\t\t\treturn buffer;\n\t\t} catch (error) {\n\t\t\tthis.subscriptions.delete(subId);\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tgetBuffer(subId: string): SharedArrayBuffer | undefined {\n\t\tconst existingSubscription = this.subscriptions.get(subId);\n\t\tif (existingSubscription) {\n\t\t\texistingSubscription.refCount++;\n\t\t\treturn existingSubscription.buffer;\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tunsubscribe(subscriptionId: string): void {\n\t\tconst subId = subscriptionId.length < 64 ? subscriptionId : this.createShortId(subscriptionId);\n\t\tconst subscription = this.subscriptions.get(subId);\n\t\tif (subscription) {\n\t\t\tsubscription.refCount--;\n\t\t}\n\t}\n\n\tpublish(publish_id: string, event: NostrEvent): SharedArrayBuffer {\n\t\t// a publish buffer fit in 3kb\n\t\tconst buffer = new SharedArrayBuffer(3072);\n\n\t\t// Initialize the buffer (sets write position to 4)\n\t\tSharedBufferReader.initializeBuffer(buffer);\n\n\t\ttry {\n\t\t\tconst templateT = new TemplateT(\n\t\t\t\tevent.kind,\n\t\t\t\tthis.textEncoder.encode(event.content),\n\t\t\t\tevent.tags.map((t) => new StringVecT(t)) || []\n\t\t\t);\n\t\t\tconst publishT = new PublishT(this.textEncoder.encode(publish_id), templateT);\n\n\t\t\t// Wrap in MainMessageT as Publish variant\n\t\t\tconst mainT = new MainMessageT(MainContent.Publish, publishT);\n\n\t\t\t// Serialize with FlatBuffers builder\n\t\t\tconst builder = new flatbuffers.Builder(2048);\n\t\t\tconst mainOffset = mainT.pack(builder);\n\t\t\tbuilder.finish(mainOffset);\n\t\t\tconst serializedMessage = builder.asUint8Array();\n\n\t\t\t// nipWorker.resetInputLoopBackoff();\n\t\t\tthis.postToWorker({ serializedMessage, sharedBuffer: buffer });\n\n\t\t\tthis.publishes.set(publish_id, { buffer });\n\t\t\treturn buffer;\n\t\t} catch (error) {\n\t\t\tconsole.error('Failed to publish event:', error);\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tsetSigner(name: string, secretKeyHex: string): void {\n\t\tconsole.log('setSigner', name, secretKeyHex);\n\n\t\t// Create the PrivateKeyT object\n\t\tconst privateKeyT = new PrivateKeyT(this.textEncoder.encode(secretKeyHex));\n\n\t\t// Create the SetSignerT object and set the union\n\t\tconst setSignerT = new SetSignerT(SignerType.PrivateKey, privateKeyT);\n\n\t\t// Create the MainMessageT with the properly constructed SetSignerT\n\t\tconst mainT = new MainMessageT(MainContent.SetSigner, setSignerT);\n\n\t\t// Serialize with FlatBuffers builder (unchanged)\n\t\tconst builder = new flatbuffers.Builder(2048);\n\t\tconst mainOffset = mainT.pack(builder);\n\t\tbuilder.finish(mainOffset);\n\t\tconst serializedMessage = builder.asUint8Array();\n\n\t\tvoid this.postToWorker(serializedMessage);\n\t\tthis.signers.set(name, secretKeyHex);\n\t}\n\n\tsignEvent(event: EventTemplate, cb: (event: NostrEvent) => void) {\n\t\tconst mainT = new MainMessageT(\n\t\t\tMainContent.SignEvent,\n\t\t\tnew SignEventT(\n\t\t\t\tnew TemplateT(\n\t\t\t\t\tevent.kind,\n\t\t\t\t\tthis.textEncoder.encode(event.content),\n\t\t\t\t\tevent.tags.map((t) => new StringVecT(t))\n\t\t\t\t)\n\t\t\t)\n\t\t);\n\n\t\t// Serialize with FlatBuffers builder\n\t\tconst builder = new flatbuffers.Builder(2048);\n\t\tconst mainOffset = mainT.pack(builder);\n\t\tbuilder.finish(mainOffset);\n\t\tconst serializedMessage = builder.asUint8Array();\n\t\tthis.signCB = cb;\n\t\tthis.worker.postMessage(serializedMessage);\n\t}\n\n\tgetPublicKey() {\n\t\tconst mainT = new MainMessageT(MainContent.GetPublicKey, new GetPublicKeyT());\n\n\t\t// Serialize with FlatBuffers builder\n\t\tconst builder = new flatbuffers.Builder(2048);\n\t\tconst mainOffset = mainT.pack(builder);\n\t\tbuilder.finish(mainOffset);\n\t\tconst serializedMessage = builder.asUint8Array();\n\n\t\tthis.worker.postMessage(serializedMessage);\n\t}\n\n\tcleanup(): void {\n\t\tconst subscriptionsToDelete: string[] = [];\n\n\t\tfor (const [subId, subscription] of this.subscriptions.entries()) {\n\t\t\tif (subscription.refCount <= 0 && !this.PERPETUAL_SUBSCRIPTIONS.includes(subId)) {\n\t\t\t\tsubscriptionsToDelete.push(subId);\n\t\t\t}\n\t\t}\n\n\t\tfor (const subId of subscriptionsToDelete) {\n\t\t\tconst subscription = this.subscriptions.get(subId);\n\t\t\tif (subscription) {\n\t\t\t\tconst mainT = new MainMessageT(\n\t\t\t\t\tMainContent.Unsubscribe,\n\t\t\t\t\tnew UnsubscribeT(this.textEncoder.encode(subId))\n\t\t\t\t);\n\t\t\t\t// Serialize with FlatBuffers builder\n\t\t\t\tconst builder = new flatbuffers.Builder(2048);\n\t\t\t\tconst mainOffset = mainT.pack(builder);\n\t\t\t\tbuilder.finish(mainOffset);\n\t\t\t\tconst serializedMessage = builder.asUint8Array();\n\t\t\t\t// nipWorker.resetInputLoopBackoff();\n\t\t\t\tthis.postToWorker(serializedMessage);\n\t\t\t\tsubscription.closed = true;\n\t\t\t\tthis.subscriptions.delete(subId);\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport * from './types';\n","import { NostrManager } from 'src/manager';\nimport { WSRuntime } from './ws/runtime';\n// import { initializeRingHeader } from './ws/ring-buffer';\n\nexport * from 'src/manager';\n\n// Idempotent header initializer for rings created on the TS side.\n// If capacity (u32 at offset 0) is 0, we set it to (byteLength - 32)\n// and zero head, tail, and seq. Reserved bytes are cleared as well.\nexport function initializeRingHeader(buffer: SharedArrayBuffer): void {\n\tconst HEADER = 32;\n\tconst view = new DataView(buffer);\n\tconst total = buffer.byteLength;\n\n\tif (total < HEADER) {\n\t\tthrow new Error(`Ring buffer too small: ${total} bytes`);\n\t}\n\n\tconst cap = view.getUint32(0, true);\n\tif (cap !== 0) {\n\t\t// Already initialized; nothing to do.\n\t\treturn;\n\t}\n\n\tconst capacity = total - HEADER;\n\tif (capacity <= 0) {\n\t\tthrow new Error(`Invalid ring capacity computed from total=${total}`);\n\t}\n\n\t// Initialize header: capacity, head=0, tail=0, seq=0, reserved=0\n\tview.setUint32(0, capacity, true); // capacity\n\tview.setUint32(4, 0, true); // head\n\tview.setUint32(8, 0, true); // tail\n\tview.setUint32(12, 0, true); // seq\n\t// Zero reserved [16..32)\n\tfor (let off = 16; off < 32; off += 4) {\n\t\tview.setUint32(off, 0, true);\n\t}\n}\n\nexport class NipWorker {\n\tprivate inRings: SharedArrayBuffer[] = [];\n\tprivate outRings: SharedArrayBuffer[] = [];\n\tprivate managers: NostrManager[] = [];\n\tprivate worker: Worker;\n\n\tprivate hashSubId(sub_id: string): number {\n\t\tconst target = sub_id.includes('_') ? (sub_id.split('_')[1] ?? '') : sub_id;\n\t\tlet hash = 0;\n\t\tfor (let i = 0; i < target.length; i++) {\n\t\t\thash = (hash << 5) - hash + target.charCodeAt(i);\n\t\t}\n\t\treturn Math.abs(hash) % this.managers.length;\n\t}\n\n\tpublic createShortId(input: string): string {\n\t\tconst maxTotalLength = 63;\n\t\tconst computeHash = (value: string, limit: number): string => {\n\t\t\tlet hash = 0;\n\t\t\tfor (let i = 0; i < value.length; i++) {\n\t\t\t\tconst char = value.charCodeAt(i);\n\t\t\t\thash = (hash << 5) - hash + char;\n\t\t\t\thash = hash & hash;\n\t\t\t}\n\t\t\tconst short = Math.abs(hash).toString(36);\n\t\t\treturn short.substring(0, Math.max(1, limit));\n\t\t};\n\n\t\tif (input.includes('_')) {\n\t\t\tconst [firstPart, ...rest] = input.split('_');\n\t\t\tconst secondPart = rest.join('_');\n\t\t\tconst partLimit = Math.max(1, Math.floor((maxTotalLength - 1) / 2));\n\t\t\tconst firstShort = computeHash(firstPart ?? '', partLimit);\n\t\t\tconst secondShort = computeHash(secondPart ?? '', partLimit);\n\t\t\tconst result = `${firstShort}_${secondShort}`;\n\t\t\treturn result.length > maxTotalLength ? result.substring(0, maxTotalLength) : result;\n\t\t}\n\n\t\tif (input.length < 64) return input;\n\t\treturn computeHash(input, maxTotalLength);\n\t}\n\n\tconstructor(config: any = {}, scale = 1) {\n\t\tfor (let i = 0; i < scale; i++) {\n\t\t\tconst inRing = new SharedArrayBuffer(512 * 1024); // 1MB\n\t\t\tconst outRing = new SharedArrayBuffer(2 * 1024 * 1024); // 2MB\n\t\t\tinitializeRingHeader(inRing);\n\t\t\tinitializeRingHeader(outRing);\n\t\t\tthis.inRings.push(inRing);\n\t\t\tthis.outRings.push(outRing);\n\n\t\t\tthis.managers.push(\n\t\t\t\tnew NostrManager({\n\t\t\t\t\tbufferKey: i.toString(),\n\t\t\t\t\tmaxBufferSize: 2_000_000,\n\t\t\t\t\tinRing,\n\t\t\t\t\toutRing\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\n\t\t// Instantiate the main-thread WS runtime instead of a Web Worker\n\t\t// this.worker = new WSRuntime({\n\t\t// \tinRings: this.inRings,\n\t\t// \toutRings: this.outRings,\n\t\t// \trelayConfig: config\n\t\t// });\n\t\tconst url = new URL('./ws/index.js', import.meta.url);\n\t\tthis.worker = new Worker(url, { type: 'module' });\n\n\t\tthis.worker.onerror = (e) => {\n\t\t\tconsole.error('WS Worker error:', e);\n\t\t};\n\n\t\tthis.worker.postMessage({\n\t\t\ttype: 'init',\n\t\t\tpayload: {\n\t\t\t\tinRings: this.inRings,\n\t\t\t\toutRings: this.outRings,\n\t\t\t\trelayConfig: config\n\t\t\t}\n\t\t});\n\t\tthis.worker.postMessage({ type: 'wake' });\n\t}\n\n\tpublic cleanup(): void {\n\t\tfor (const manager of this.managers) {\n\t\t\tmanager.cleanup();\n\t\t}\n\t}\n\n\tpublic setSigner(name: string, secretKeyHex: string): void {\n\t\tfor (const manager of this.managers) {\n\t\t\tmanager.setSigner(name, secretKeyHex);\n\t\t}\n\t}\n\n\tpublic getManager(subId: string): NostrManager {\n\t\tif (subId?.length > 64) {\n\t\t\tthrow new Error('subId cannot exceed 64 characters');\n\t\t}\n\t\t// subId = this.createShortId(subId);\n\t\tconst hash = this.hashSubId(subId || '');\n\t\treturn this.managers[hash] as NostrManager;\n\t}\n\n\t// Called by NostrManager to ensure low-latency pickup by the worker\n\tpublic resetInputLoopBackoff(): void {\n\t\t// this.worker.postMessage({ type: 'wake' });\n\t\tthis.worker.wake();\n\t}\n}\n\nexport const nipWorker = new NipWorker({});\n"],"names":["CounterPipeConfig","i","bb","obj","flatbuffers","index","offset","optionalEncoding","builder","kindsOffset","data","numElems","pubkeyOffset","CounterPipeConfigT","_o","kinds","pubkey","GetPublicKey","GetPublicKeyT","KindFilterPipeConfig","KindFilterPipeConfigT","Template","StringVec","kind","contentOffset","tagsOffset","TemplateT","content","tags","Publish","publishIdOffset","templateOffset","PublishT","publishId","template","PrivateKey","privateKeyOffset","PrivateKeyT","privateKey","SignerType","unionToSignerType","type","accessor","SetSigner","signerTypeType","signerTypeOffset","SetSignerT","temp","signerType","SignEvent","SignEventT","NpubLimiterPipeConfig","limitPerNpub","maxTotalNpubs","NpubLimiterPipeConfigT","ParsePipeConfig","ParsePipeConfigT","ProofVerificationPipeConfig","maxProofs","ProofVerificationPipeConfigT","SaveToDbPipeConfig","SaveToDbPipeConfigT","SerializeEventsPipeConfig","subscriptionIdOffset","SerializeEventsPipeConfigT","subscriptionId","PipeConfig","unionToPipeConfig","Pipe","configType","configOffset","PipeT","config","PipelineConfig","pipesOffset","PipelineConfigT","pipes","SubscriptionConfig","pipelineOffset","closeOnEose","cacheFirst","timeoutMs","maxEvents","skipCache","force","bytesPerEvent","SubscriptionConfigT","pipeline","Subscribe","Request","requestsOffset","SubscribeT","requests","Unsubscribe","UnsubscribeT","MainContent","unionToMainContent","MainMessage","contentType","MainMessageT","MsgKind","ParsedDataUnion","RelayRef","urlOffset","RelayRefT","url","SubscribeKind","WorkerLine","relayOffset","subIdOffset","rawOffset","WorkerLineT","relay","subId","raw","WorkerMessage","MessageType","Message","WorkerMessageT","unionToMessage","SharedBufferReader","buffer","view","uint8View","currentWritePosition","requiredSpace","newWritePosition","lastReadPosition","dataStartOffset","currentPos","maxMessages","messages","msgCount","headerPos","eventLength","payloadStart","nextPos","flatBufferData","ByteBuffer","message","error","result","actualLastReadPosition","totalEventLimit","dataSize","overhead","originalWasmBuffer","fetchPromise","ensureOriginalBuffer","wasmAsset","res","NostrManager","event","prewarm","wasmCopy","transfer","RustWorker","id","parsed","input","hash","char","listener","options","detail","existingSubscription","totalLimit","sum","req","bufferSize","initialMessage","optionsT","subscribeT","r","RequestT","key","values","StringVecT","mainT","mainOffset","serializedMessage","subscription","publish_id","templateT","t","publishT","name","secretKeyHex","privateKeyT","setSignerT","cb","subscriptionsToDelete","initializeRingHeader","total","capacity","off","NipWorker","scale","inRing","outRing","e","sub_id","target","computeHash","value","limit","firstPart","rest","secondPart","partLimit","firstShort","secondShort","manager","nipWorker"],"mappings":"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"}