@candypoets/nipworker 0.0.55 → 0.0.58
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/generated/nostr/fb/htlcwitness.d.ts +31 -0
- package/dist/generated/nostr/fb/htlcwitness.d.ts.map +1 -0
- package/dist/generated/nostr/fb/p2-pkwitness.d.ts +27 -0
- package/dist/generated/nostr/fb/p2-pkwitness.d.ts.map +1 -0
- package/dist/generated/nostr/fb/proof.d.ts +11 -1
- package/dist/generated/nostr/fb/proof.d.ts.map +1 -1
- package/dist/generated/nostr/fb/witness-string.d.ts +24 -0
- package/dist/generated/nostr/fb/witness-string.d.ts.map +1 -0
- package/dist/generated/nostr/fb/witness.d.ts +13 -0
- package/dist/generated/nostr/fb/witness.d.ts.map +1 -0
- package/dist/generated/nostr/fb.d.ts +4 -0
- package/dist/generated/nostr/fb.d.ts.map +1 -1
- package/dist/hooks.js +1 -1
- package/dist/hooks.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index2.js +1 -1
- package/dist/index2.js.map +1 -1
- package/dist/lib/SharedBuffer.d.ts +3 -10
- package/dist/lib/SharedBuffer.d.ts.map +1 -1
- package/dist/manager.d.ts.map +1 -1
- package/dist/message-type.js +1 -1
- package/dist/message-type.js.map +1 -1
- package/dist/registry.js +1 -0
- package/dist/registry.js.map +1 -0
- package/dist/utils.js +1 -1
- package/dist/utils.js.map +1 -1
- package/dist/ws/index.js +1 -1
- package/dist/ws/index.js.map +1 -1
- package/dist/ws/registry.d.ts +0 -4
- package/dist/ws/registry.d.ts.map +1 -1
- package/dist/ws/ring-buffer.d.ts +0 -1
- package/dist/ws/ring-buffer.d.ts.map +1 -1
- package/dist/ws/runtime.d.ts +23 -0
- package/dist/ws/runtime.d.ts.map +1 -0
- package/package.json +5 -5
- package/dist/ring-buffer.js +0 -1
- package/dist/ring-buffer.js.map +0 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ByteString } from '../../../lib/ByteString';
|
|
2
|
+
|
|
3
|
+
import * as flatbuffers from 'flatbuffers';
|
|
4
|
+
export declare class HTLCWitness implements flatbuffers.IUnpackableObject<HTLCWitnessT> {
|
|
5
|
+
bb: flatbuffers.ByteBuffer | null;
|
|
6
|
+
bb_pos: number;
|
|
7
|
+
__init(i: number, bb: flatbuffers.ByteBuffer): HTLCWitness;
|
|
8
|
+
static getRootAsHTLCWitness(bb: flatbuffers.ByteBuffer, obj?: HTLCWitness): HTLCWitness;
|
|
9
|
+
static getSizePrefixedRootAsHTLCWitness(bb: flatbuffers.ByteBuffer, obj?: HTLCWitness): HTLCWitness;
|
|
10
|
+
preimage(): ByteString | null;
|
|
11
|
+
preimage(optionalEncoding: flatbuffers.Encoding): ByteString | Uint8Array | null;
|
|
12
|
+
signatures(index: number): ByteString;
|
|
13
|
+
signatures(index: number, optionalEncoding: flatbuffers.Encoding): ByteString | Uint8Array;
|
|
14
|
+
signaturesLength(): number;
|
|
15
|
+
static startHTLCWitness(builder: flatbuffers.Builder): void;
|
|
16
|
+
static addPreimage(builder: flatbuffers.Builder, preimageOffset: flatbuffers.Offset): void;
|
|
17
|
+
static addSignatures(builder: flatbuffers.Builder, signaturesOffset: flatbuffers.Offset): void;
|
|
18
|
+
static createSignaturesVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset;
|
|
19
|
+
static startSignaturesVector(builder: flatbuffers.Builder, numElems: number): void;
|
|
20
|
+
static endHTLCWitness(builder: flatbuffers.Builder): flatbuffers.Offset;
|
|
21
|
+
static createHTLCWitness(builder: flatbuffers.Builder, preimageOffset: flatbuffers.Offset, signaturesOffset: flatbuffers.Offset): flatbuffers.Offset;
|
|
22
|
+
unpack(): HTLCWitnessT;
|
|
23
|
+
unpackTo(_o: HTLCWitnessT): void;
|
|
24
|
+
}
|
|
25
|
+
export declare class HTLCWitnessT implements flatbuffers.IGeneratedObject {
|
|
26
|
+
preimage: ByteString | Uint8Array | null;
|
|
27
|
+
signatures: (string)[];
|
|
28
|
+
constructor(preimage?: ByteString | Uint8Array | null, signatures?: (string)[]);
|
|
29
|
+
pack(builder: flatbuffers.Builder): flatbuffers.Offset;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=htlcwitness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"htlcwitness.d.ts","sourceRoot":"","sources":["../../../../src/generated/nostr/fb/htlcwitness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAKhD,OAAO,KAAK,WAAW,MAAM,aAAa,CAAC;AAI3C,qBAAa,WAAY,YAAW,WAAW,CAAC,iBAAiB,CAAC,YAAY,CAAC;IAC7E,EAAE,EAAE,WAAW,CAAC,UAAU,GAAC,IAAI,CAAQ;IACvC,MAAM,SAAK;IACX,MAAM,CAAC,CAAC,EAAC,MAAM,EAAE,EAAE,EAAC,WAAW,CAAC,UAAU,GAAE,WAAW;IAMzD,MAAM,CAAC,oBAAoB,CAAC,EAAE,EAAC,WAAW,CAAC,UAAU,EAAE,GAAG,CAAC,EAAC,WAAW,GAAE,WAAW;IAIpF,MAAM,CAAC,gCAAgC,CAAC,EAAE,EAAC,WAAW,CAAC,UAAU,EAAE,GAAG,CAAC,EAAC,WAAW,GAAE,WAAW;IAKhG,QAAQ,IAAI,UAAU,GAAC,IAAI;IAC3B,QAAQ,CAAC,gBAAgB,EAAC,WAAW,CAAC,QAAQ,GAAG,UAAU,GAAC,UAAU,GAAC,IAAI;IAM3E,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU;IACrC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAC,gBAAgB,EAAC,WAAW,CAAC,QAAQ,GAAG,UAAU,GAAC,UAAU;IAMtF,gBAAgB,IAAG,MAAM;IAKzB,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAC,WAAW,CAAC,OAAO;IAInD,MAAM,CAAC,WAAW,CAAC,OAAO,EAAC,WAAW,CAAC,OAAO,EAAE,cAAc,EAAC,WAAW,CAAC,MAAM;IAIjF,MAAM,CAAC,aAAa,CAAC,OAAO,EAAC,WAAW,CAAC,OAAO,EAAE,gBAAgB,EAAC,WAAW,CAAC,MAAM;IAIrF,MAAM,CAAC,sBAAsB,CAAC,OAAO,EAAC,WAAW,CAAC,OAAO,EAAE,IAAI,EAAC,WAAW,CAAC,MAAM,EAAE,GAAE,WAAW,CAAC,MAAM;IAQxG,MAAM,CAAC,qBAAqB,CAAC,OAAO,EAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAC,MAAM;IAIzE,MAAM,CAAC,cAAc,CAAC,OAAO,EAAC,WAAW,CAAC,OAAO,GAAE,WAAW,CAAC,MAAM;IAMrE,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAC,WAAW,CAAC,OAAO,EAAE,cAAc,EAAC,WAAW,CAAC,MAAM,EAAE,gBAAgB,EAAC,WAAW,CAAC,MAAM,GAAE,WAAW,CAAC,MAAM;IAOhJ,MAAM,IAAI,YAAY;IAQtB,QAAQ,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI;CAI/B;AAED,qBAAa,YAAa,YAAW,WAAW,CAAC,gBAAgB;IAExD,QAAQ,EAAE,UAAU,GAAC,UAAU,GAAC,IAAI;IACpC,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE;gBADtB,QAAQ,GAAE,UAAU,GAAC,UAAU,GAAC,IAAW,EAC3C,UAAU,GAAE,CAAC,MAAM,CAAC,EAAO;IAIpC,IAAI,CAAC,OAAO,EAAC,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,MAAM;CASpD"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ByteString } from '../../../lib/ByteString';
|
|
2
|
+
|
|
3
|
+
import * as flatbuffers from 'flatbuffers';
|
|
4
|
+
export declare class P2PKWitness implements flatbuffers.IUnpackableObject<P2PKWitnessT> {
|
|
5
|
+
bb: flatbuffers.ByteBuffer | null;
|
|
6
|
+
bb_pos: number;
|
|
7
|
+
__init(i: number, bb: flatbuffers.ByteBuffer): P2PKWitness;
|
|
8
|
+
static getRootAsP2PKWitness(bb: flatbuffers.ByteBuffer, obj?: P2PKWitness): P2PKWitness;
|
|
9
|
+
static getSizePrefixedRootAsP2PKWitness(bb: flatbuffers.ByteBuffer, obj?: P2PKWitness): P2PKWitness;
|
|
10
|
+
signatures(index: number): ByteString;
|
|
11
|
+
signatures(index: number, optionalEncoding: flatbuffers.Encoding): ByteString | Uint8Array;
|
|
12
|
+
signaturesLength(): number;
|
|
13
|
+
static startP2PKWitness(builder: flatbuffers.Builder): void;
|
|
14
|
+
static addSignatures(builder: flatbuffers.Builder, signaturesOffset: flatbuffers.Offset): void;
|
|
15
|
+
static createSignaturesVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset;
|
|
16
|
+
static startSignaturesVector(builder: flatbuffers.Builder, numElems: number): void;
|
|
17
|
+
static endP2PKWitness(builder: flatbuffers.Builder): flatbuffers.Offset;
|
|
18
|
+
static createP2PKWitness(builder: flatbuffers.Builder, signaturesOffset: flatbuffers.Offset): flatbuffers.Offset;
|
|
19
|
+
unpack(): P2PKWitnessT;
|
|
20
|
+
unpackTo(_o: P2PKWitnessT): void;
|
|
21
|
+
}
|
|
22
|
+
export declare class P2PKWitnessT implements flatbuffers.IGeneratedObject {
|
|
23
|
+
signatures: (string)[];
|
|
24
|
+
constructor(signatures?: (string)[]);
|
|
25
|
+
pack(builder: flatbuffers.Builder): flatbuffers.Offset;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=p2-pkwitness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"p2-pkwitness.d.ts","sourceRoot":"","sources":["../../../../src/generated/nostr/fb/p2-pkwitness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAKhD,OAAO,KAAK,WAAW,MAAM,aAAa,CAAC;AAI3C,qBAAa,WAAY,YAAW,WAAW,CAAC,iBAAiB,CAAC,YAAY,CAAC;IAC7E,EAAE,EAAE,WAAW,CAAC,UAAU,GAAC,IAAI,CAAQ;IACvC,MAAM,SAAK;IACX,MAAM,CAAC,CAAC,EAAC,MAAM,EAAE,EAAE,EAAC,WAAW,CAAC,UAAU,GAAE,WAAW;IAMzD,MAAM,CAAC,oBAAoB,CAAC,EAAE,EAAC,WAAW,CAAC,UAAU,EAAE,GAAG,CAAC,EAAC,WAAW,GAAE,WAAW;IAIpF,MAAM,CAAC,gCAAgC,CAAC,EAAE,EAAC,WAAW,CAAC,UAAU,EAAE,GAAG,CAAC,EAAC,WAAW,GAAE,WAAW;IAKhG,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU;IACrC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAC,gBAAgB,EAAC,WAAW,CAAC,QAAQ,GAAG,UAAU,GAAC,UAAU;IAMtF,gBAAgB,IAAG,MAAM;IAKzB,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAC,WAAW,CAAC,OAAO;IAInD,MAAM,CAAC,aAAa,CAAC,OAAO,EAAC,WAAW,CAAC,OAAO,EAAE,gBAAgB,EAAC,WAAW,CAAC,MAAM;IAIrF,MAAM,CAAC,sBAAsB,CAAC,OAAO,EAAC,WAAW,CAAC,OAAO,EAAE,IAAI,EAAC,WAAW,CAAC,MAAM,EAAE,GAAE,WAAW,CAAC,MAAM;IAQxG,MAAM,CAAC,qBAAqB,CAAC,OAAO,EAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAC,MAAM;IAIzE,MAAM,CAAC,cAAc,CAAC,OAAO,EAAC,WAAW,CAAC,OAAO,GAAE,WAAW,CAAC,MAAM;IAKrE,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAC,WAAW,CAAC,OAAO,EAAE,gBAAgB,EAAC,WAAW,CAAC,MAAM,GAAE,WAAW,CAAC,MAAM;IAM7G,MAAM,IAAI,YAAY;IAOtB,QAAQ,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI;CAG/B;AAED,qBAAa,YAAa,YAAW,WAAW,CAAC,gBAAgB;IAExD,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE;gBAAtB,UAAU,GAAE,CAAC,MAAM,CAAC,EAAO;IAIpC,IAAI,CAAC,OAAO,EAAC,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,MAAM;CAOpD"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { ByteString } from '../../../lib/ByteString';
|
|
2
2
|
import { DLEQProof, DLEQProofT } from '../../nostr/fb/dleqproof.js';
|
|
3
|
+
import { HTLCWitnessT } from '../../nostr/fb/htlcwitness.js';
|
|
4
|
+
import { P2PKWitnessT } from '../../nostr/fb/p2-pkwitness.js';
|
|
5
|
+
import { Witness } from '../../nostr/fb/witness.js';
|
|
6
|
+
import { WitnessStringT } from '../../nostr/fb/witness-string.js';
|
|
3
7
|
|
|
4
8
|
import * as flatbuffers from 'flatbuffers';
|
|
5
9
|
export declare class Proof implements flatbuffers.IUnpackableObject<ProofT> {
|
|
@@ -16,6 +20,8 @@ export declare class Proof implements flatbuffers.IUnpackableObject<ProofT> {
|
|
|
16
20
|
c(): ByteString | null;
|
|
17
21
|
c(optionalEncoding: flatbuffers.Encoding): ByteString | Uint8Array | null;
|
|
18
22
|
dleq(obj?: DLEQProof): DLEQProof | null;
|
|
23
|
+
witnessType(): Witness;
|
|
24
|
+
witness<T extends flatbuffers.Table>(obj: any): any | null;
|
|
19
25
|
version(): number;
|
|
20
26
|
static startProof(builder: flatbuffers.Builder): void;
|
|
21
27
|
static addAmount(builder: flatbuffers.Builder, amount: bigint): void;
|
|
@@ -23,6 +29,8 @@ export declare class Proof implements flatbuffers.IUnpackableObject<ProofT> {
|
|
|
23
29
|
static addSecret(builder: flatbuffers.Builder, secretOffset: flatbuffers.Offset): void;
|
|
24
30
|
static addC(builder: flatbuffers.Builder, cOffset: flatbuffers.Offset): void;
|
|
25
31
|
static addDleq(builder: flatbuffers.Builder, dleqOffset: flatbuffers.Offset): void;
|
|
32
|
+
static addWitnessType(builder: flatbuffers.Builder, witnessType: Witness): void;
|
|
33
|
+
static addWitness(builder: flatbuffers.Builder, witnessOffset: flatbuffers.Offset): void;
|
|
26
34
|
static addVersion(builder: flatbuffers.Builder, version: number): void;
|
|
27
35
|
static endProof(builder: flatbuffers.Builder): flatbuffers.Offset;
|
|
28
36
|
unpack(): ProofT;
|
|
@@ -34,8 +42,10 @@ export declare class ProofT implements flatbuffers.IGeneratedObject {
|
|
|
34
42
|
secret: ByteString | Uint8Array | null;
|
|
35
43
|
c: ByteString | Uint8Array | null;
|
|
36
44
|
dleq: DLEQProofT | null;
|
|
45
|
+
witnessType: Witness;
|
|
46
|
+
witness: HTLCWitnessT | P2PKWitnessT | WitnessStringT | null;
|
|
37
47
|
version: number;
|
|
38
|
-
constructor(amount?: bigint, id?: ByteString | Uint8Array | null, secret?: ByteString | Uint8Array | null, c?: ByteString | Uint8Array | null, dleq?: DLEQProofT | null, version?: number);
|
|
48
|
+
constructor(amount?: bigint, id?: ByteString | Uint8Array | null, secret?: ByteString | Uint8Array | null, c?: ByteString | Uint8Array | null, dleq?: DLEQProofT | null, witnessType?: Witness, witness?: HTLCWitnessT | P2PKWitnessT | WitnessStringT | null, version?: number);
|
|
39
49
|
pack(builder: flatbuffers.Builder): flatbuffers.Offset;
|
|
40
50
|
}
|
|
41
51
|
//# sourceMappingURL=proof.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proof.d.ts","sourceRoot":"","sources":["../../../../src/generated/nostr/fb/proof.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAKhD,OAAO,KAAK,WAAW,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"proof.d.ts","sourceRoot":"","sources":["../../../../src/generated/nostr/fb/proof.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ByteString } from '../../../lib/ByteString';
|
|
2
|
+
|
|
3
|
+
import * as flatbuffers from 'flatbuffers';
|
|
4
|
+
export declare class WitnessString implements flatbuffers.IUnpackableObject<WitnessStringT> {
|
|
5
|
+
bb: flatbuffers.ByteBuffer | null;
|
|
6
|
+
bb_pos: number;
|
|
7
|
+
__init(i: number, bb: flatbuffers.ByteBuffer): WitnessString;
|
|
8
|
+
static getRootAsWitnessString(bb: flatbuffers.ByteBuffer, obj?: WitnessString): WitnessString;
|
|
9
|
+
static getSizePrefixedRootAsWitnessString(bb: flatbuffers.ByteBuffer, obj?: WitnessString): WitnessString;
|
|
10
|
+
value(): ByteString | null;
|
|
11
|
+
value(optionalEncoding: flatbuffers.Encoding): ByteString | Uint8Array | null;
|
|
12
|
+
static startWitnessString(builder: flatbuffers.Builder): void;
|
|
13
|
+
static addValue(builder: flatbuffers.Builder, valueOffset: flatbuffers.Offset): void;
|
|
14
|
+
static endWitnessString(builder: flatbuffers.Builder): flatbuffers.Offset;
|
|
15
|
+
static createWitnessString(builder: flatbuffers.Builder, valueOffset: flatbuffers.Offset): flatbuffers.Offset;
|
|
16
|
+
unpack(): WitnessStringT;
|
|
17
|
+
unpackTo(_o: WitnessStringT): void;
|
|
18
|
+
}
|
|
19
|
+
export declare class WitnessStringT implements flatbuffers.IGeneratedObject {
|
|
20
|
+
value: ByteString | Uint8Array | null;
|
|
21
|
+
constructor(value?: ByteString | Uint8Array | null);
|
|
22
|
+
pack(builder: flatbuffers.Builder): flatbuffers.Offset;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=witness-string.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"witness-string.d.ts","sourceRoot":"","sources":["../../../../src/generated/nostr/fb/witness-string.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAKhD,OAAO,KAAK,WAAW,MAAM,aAAa,CAAC;AAI3C,qBAAa,aAAc,YAAW,WAAW,CAAC,iBAAiB,CAAC,cAAc,CAAC;IACjF,EAAE,EAAE,WAAW,CAAC,UAAU,GAAC,IAAI,CAAQ;IACvC,MAAM,SAAK;IACX,MAAM,CAAC,CAAC,EAAC,MAAM,EAAE,EAAE,EAAC,WAAW,CAAC,UAAU,GAAE,aAAa;IAM3D,MAAM,CAAC,sBAAsB,CAAC,EAAE,EAAC,WAAW,CAAC,UAAU,EAAE,GAAG,CAAC,EAAC,aAAa,GAAE,aAAa;IAI1F,MAAM,CAAC,kCAAkC,CAAC,EAAE,EAAC,WAAW,CAAC,UAAU,EAAE,GAAG,CAAC,EAAC,aAAa,GAAE,aAAa;IAKtG,KAAK,IAAI,UAAU,GAAC,IAAI;IACxB,KAAK,CAAC,gBAAgB,EAAC,WAAW,CAAC,QAAQ,GAAG,UAAU,GAAC,UAAU,GAAC,IAAI;IAMxE,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAC,WAAW,CAAC,OAAO;IAIrD,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAC,WAAW,CAAC,OAAO,EAAE,WAAW,EAAC,WAAW,CAAC,MAAM;IAI3E,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAC,WAAW,CAAC,OAAO,GAAE,WAAW,CAAC,MAAM;IAKvE,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAC,WAAW,CAAC,OAAO,EAAE,WAAW,EAAC,WAAW,CAAC,MAAM,GAAE,WAAW,CAAC,MAAM;IAM1G,MAAM,IAAI,cAAc;IAOxB,QAAQ,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI;CAGjC;AAED,qBAAa,cAAe,YAAW,WAAW,CAAC,gBAAgB;IAE1D,KAAK,EAAE,UAAU,GAAC,UAAU,GAAC,IAAI;gBAAjC,KAAK,GAAE,UAAU,GAAC,UAAU,GAAC,IAAW;IAIjD,IAAI,CAAC,OAAO,EAAC,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,MAAM;CAOpD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { HTLCWitness } from '../../nostr/fb/htlcwitness.js';
|
|
2
|
+
import { P2PKWitness } from '../../nostr/fb/p2-pkwitness.js';
|
|
3
|
+
import { WitnessString } from '../../nostr/fb/witness-string.js';
|
|
4
|
+
|
|
5
|
+
export declare enum Witness {
|
|
6
|
+
NONE = 0,
|
|
7
|
+
WitnessString = 1,
|
|
8
|
+
P2PKWitness = 2,
|
|
9
|
+
HTLCWitness = 3
|
|
10
|
+
}
|
|
11
|
+
export declare function unionToWitness(type: Witness, accessor: (obj: HTLCWitness | P2PKWitness | WitnessString) => HTLCWitness | P2PKWitness | WitnessString | null): HTLCWitness | P2PKWitness | WitnessString | null;
|
|
12
|
+
export declare function unionListToWitness(type: Witness, accessor: (index: number, obj: HTLCWitness | P2PKWitness | WitnessString) => HTLCWitness | P2PKWitness | WitnessString | null, index: number): HTLCWitness | P2PKWitness | WitnessString | null;
|
|
13
|
+
//# sourceMappingURL=witness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"witness.d.ts","sourceRoot":"","sources":["../../../../src/generated/nostr/fb/witness.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAgB,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAgB,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAkB,MAAM,kCAAkC,CAAC;AAGjF,oBAAY,OAAO;IACjB,IAAI,IAAI;IACR,aAAa,IAAI;IACjB,WAAW,IAAI;IACf,WAAW,IAAI;CAChB;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,CAAC,GAAG,EAAC,WAAW,GAAC,WAAW,GAAC,aAAa,KAAK,WAAW,GAAC,WAAW,GAAC,aAAa,GAAC,IAAI,GAClG,WAAW,GAAC,WAAW,GAAC,aAAa,GAAC,IAAI,CAQ5C;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAC,WAAW,GAAC,WAAW,GAAC,aAAa,KAAK,WAAW,GAAC,WAAW,GAAC,aAAa,GAAC,IAAI,EAClH,KAAK,EAAE,MAAM,GACZ,WAAW,GAAC,WAAW,GAAC,aAAa,GAAC,IAAI,CAQ5C"}
|
|
@@ -12,6 +12,7 @@ export { Emoji, EmojiT } from './fb/emoji.js';
|
|
|
12
12
|
export { Eoce, EoceT } from './fb/eoce.js';
|
|
13
13
|
export { EventPointer, EventPointerT } from './fb/event-pointer.js';
|
|
14
14
|
export { GetPublicKey, GetPublicKeyT } from './fb/get-public-key.js';
|
|
15
|
+
export { HTLCWitness, HTLCWitnessT } from './fb/htlcwitness.js';
|
|
15
16
|
export { HashtagData, HashtagDataT } from './fb/hashtag-data.js';
|
|
16
17
|
export { HistoryTag, HistoryTagT } from './fb/history-tag.js';
|
|
17
18
|
export { ImageData, ImageDataT } from './fb/image-data.js';
|
|
@@ -45,6 +46,7 @@ export { MsgKind } from './fb/msg-kind.js';
|
|
|
45
46
|
export { NostrData, NostrDataT } from './fb/nostr-data.js';
|
|
46
47
|
export { NostrEvent, NostrEventT } from './fb/nostr-event.js';
|
|
47
48
|
export { NpubLimiterPipeConfig, NpubLimiterPipeConfigT } from './fb/npub-limiter-pipe-config.js';
|
|
49
|
+
export { P2PKWitness, P2PKWitnessT } from './fb/p2-pkwitness.js';
|
|
48
50
|
export { ParsePipeConfig, ParsePipeConfigT } from './fb/parse-pipe-config.js';
|
|
49
51
|
export { ParsedData } from './fb/parsed-data.js';
|
|
50
52
|
export { ParsedDataUnion } from './fb/parsed-data-union.js';
|
|
@@ -76,6 +78,8 @@ export { Template, TemplateT } from './fb/template.js';
|
|
|
76
78
|
export { Unsubscribe, UnsubscribeT } from './fb/unsubscribe.js';
|
|
77
79
|
export { ValidProofs, ValidProofsT } from './fb/valid-proofs.js';
|
|
78
80
|
export { VideoData, VideoDataT } from './fb/video-data.js';
|
|
81
|
+
export { Witness } from './fb/witness.js';
|
|
82
|
+
export { WitnessString, WitnessStringT } from './fb/witness-string.js';
|
|
79
83
|
export { WorkerLine, WorkerLineT } from './fb/worker-line.js';
|
|
80
84
|
export { WorkerMessage, WorkerMessageT } from './fb/worker-message.js';
|
|
81
85
|
export { ZapRequest, ZapRequestT } from './fb/zap-request.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fb.d.ts","sourceRoot":"","sources":["../../../src/generated/nostr/fb.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC9F,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AACjG,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AACnH,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACzF,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAC7G,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACtF,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"fb.d.ts","sourceRoot":"","sources":["../../../src/generated/nostr/fb.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as
|
|
1
|
+
import{n as h,S as I}from"./index2.js";const R=Date.now();let T=0,M=0,y=!1;function A(e=2e3){return Date.now()-R<e}function x(){y||(y=!0,(typeof requestAnimationFrame=="function"?requestAnimationFrame:e=>setTimeout(()=>e(performance?.now?.()??Date.now()),16))(()=>{T=A()?200:1500,M=T,y=!1}))}function B(e,c,q=()=>{},E={closeOnEose:!1}){if(!e)return console.warn("useSharedSubscription: No subscription ID provided"),()=>{};let o=null,i=4,r=!0,a=!1,g=!1;const s=5e3,f=4,S=8;let m=!1,t=[],v=!1,p=null,w=null,d=null;const C=typeof requestAnimationFrame=="function"?requestAnimationFrame:n=>setTimeout(()=>n(performance?.now?.()??Date.now()),16),L=typeof cancelAnimationFrame=="function"?cancelAnimationFrame:n=>clearTimeout(n),N=n=>{if(t.length>=s){const u=t.length-s+1;u>0&&t.splice(0,u)}t.push(n)},F=()=>{if(!r||t.length===0)return;if(x(),M<=0){b();return}const n=Math.min(M,t.length);if(n<=0)return;const u=t.splice(0,n);M-=n;for(const l of u){if(!r)break;q(l)}t.length>0&&b()},b=()=>{if(!(v||!r)){if(v=!0,A()&&typeof window<"u"&&typeof window.requestIdleCallback=="function"){w=window.requestIdleCallback(()=>{w=null,v=!1,F()},{timeout:100});return}p=C(()=>{v=!1,p=null,F()})}};e=h.createShortId(e);const D=h.getManager(e),P=()=>(r=!1,p!=null&&(L(p),p=null),w!=null&&typeof window?.cancelIdleCallback=="function"&&(window.cancelIdleCallback(w),w=null),d&&(clearTimeout(d),d=null),g&&!a&&(D.removeEventListener(`subscription:${e}`,k),D.unsubscribe(e),a=!0),t=[],()=>{});o=D.subscribe(e,c,E),g=!0;const k=()=>{if(!r||!o||m)return;m=!0;const n=performance?.now?.()??Date.now(),u=A()?f:S;let l=I.readMessages(o,i);for(;l.hasNewData;){for(const $ of l.messages)N($);if(i=l.newReadPosition,(performance?.now?.()??Date.now())-n>=u){m=!1,b(),d=setTimeout(()=>{d=null,k()},0);return}if(t.length>=s){m=!1,b();return}l=I.readMessages(o,i)}m=!1,b()};return D.addEventListener(`subscription:${e}`,k),queueMicrotask(k),P}function G(e,c,q=()=>{},E={trackStatus:!0}){if(!e)return console.warn("usePublish: No publish ID provided"),()=>{};let o=null,i=4,r=!0;e=h.createShortId(e);const a=h.getManager(e),g=()=>{r=!1,a.removeEventListener(`publish:${e}`,s)};o=a.publish(e,c);const s=()=>{if(!r||!o)return;const f=I.readMessages(o,i);f.hasNewData&&(f.messages.forEach(S=>{q(S)}),i=f.newReadPosition)};return E.trackStatus&&(a.addEventListener(`publish:${e}`,s),queueMicrotask(s)),g}function H(e,c){h.getManager("").signEvent(e,c)}export{G as usePublish,H as useSignEvent,B as useSubscription};
|
package/dist/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sources":["../src/hooks.ts"],"sourcesContent":["import { Event, EventTemplate, NostrEvent } from 'nostr-tools';\nimport { SharedBufferReader } from 'src/lib/SharedBuffer';\nimport { WorkerMessage } from './generated/nostr/fb';\nimport { RequestObject, type SubscriptionConfig } from './manager';\nimport { nipWorker } from '.';\n\n// Global cold-start timestamp and per-frame token bucket shared by all subscriptions in this module.\nconst APP_START_TS = Date.now();\n\n// Global tokens replenished once per frame. All useSubscription instances share this.\nlet TOKENS_PER_FRAME = 0;\nlet tokensRemaining = 0;\nlet tokenRefillScheduled = false;\n\nfunction inColdStart(coldMs = 2000) {\n\treturn Date.now() - APP_START_TS < coldMs;\n}\n\nfunction scheduleTokenRefill() {\n\tif (tokenRefillScheduled) return;\n\ttokenRefillScheduled = true;\n\tconst raf =\n\t\ttypeof requestAnimationFrame === 'function'\n\t\t\t? requestAnimationFrame\n\t\t\t: (fn: FrameRequestCallback) =>\n\t\t\t\t\tsetTimeout(() => fn(performance?.now?.() ?? Date.now()), 16) as unknown as number;\n\n\traf(() => {\n\t\t// Refill once per frame with cold/hot limits\n\t\tTOKENS_PER_FRAME = inColdStart() ? 200 : 1500; // tune these\n\t\ttokensRemaining = TOKENS_PER_FRAME;\n\t\ttokenRefillScheduled = false;\n\t\t// We don't call any flushers here; each subscription already schedules its own flush.\n\t});\n}\n\nexport function useSubscription(\n\tsubId: string,\n\trequests: RequestObject[],\n\tcallback: (message: WorkerMessage) => void = () => {},\n\toptions: SubscriptionConfig = { closeOnEose: false }\n): () => void {\n\tif (!subId) {\n\t\tconsole.warn('useSharedSubscription: No subscription ID provided');\n\t\treturn () => {};\n\t}\n\n\tlet buffer: SharedArrayBuffer | null = null;\n\tlet lastReadPos: number = 4;\n\tlet running = true;\n\tlet hasUnsubscribed = false;\n\tlet hasSubscribed = false;\n\n\t// Per-instance queues and scheduling\n\tconst MAX_PENDING_BUFFER = 5000; // cap per-subscription memory\n\tconst READ_BUDGET_MS_COLD = 4;\n\tconst READ_BUDGET_MS_HOT = 8;\n\n\tlet processing = false;\n\tlet pending: WorkerMessage[] = [];\n\tlet flushScheduled = false;\n\tlet rafHandle: number | null = null;\n\tlet idleHandle: number | null = null;\n\tlet sliceTimeout: ReturnType<typeof setTimeout> | null = null;\n\n\t// Polyfills\n\tconst raf =\n\t\ttypeof requestAnimationFrame === 'function'\n\t\t\t? requestAnimationFrame\n\t\t\t: (fn: FrameRequestCallback) =>\n\t\t\t\t\tsetTimeout(() => fn(performance?.now?.() ?? Date.now()), 16) as unknown as number;\n\n\tconst caf =\n\t\ttypeof cancelAnimationFrame === 'function'\n\t\t\t? cancelAnimationFrame\n\t\t\t: (id: number) => clearTimeout(id as unknown as number);\n\n\t// Minimal typings for requestIdleCallback\n\tdeclare const window: any;\n\n\tconst pushPending = (msg: WorkerMessage) => {\n\t\tif (pending.length >= MAX_PENDING_BUFFER) {\n\t\t\t// Drop oldest to keep memory bounded during surges\n\t\t\tconst drop = pending.length - MAX_PENDING_BUFFER + 1;\n\t\t\tif (drop > 0) pending.splice(0, drop);\n\t\t}\n\t\tpending.push(msg);\n\t};\n\n\tconst flushSomeWithGlobalTokens = () => {\n\t\tif (!running || pending.length === 0) return;\n\n\t\t// Ensure tokens will be refilled this or next frame\n\t\tscheduleTokenRefill();\n\n\t\t// Nothing to do if global tokens are out; try again next frame\n\t\tif (tokensRemaining <= 0) {\n\t\t\tscheduleFlush(); // reschedule for next frame when tokens are refilled\n\t\t\treturn;\n\t\t}\n\n\t\t// Deliver up to the available global tokens\n\t\tconst deliverCount = Math.min(tokensRemaining, pending.length);\n\t\tif (deliverCount <= 0) return;\n\n\t\tconst chunk = pending.splice(0, deliverCount);\n\t\ttokensRemaining -= deliverCount;\n\n\t\tfor (const msg of chunk) {\n\t\t\tif (!running) break;\n\t\t\tcallback(msg);\n\t\t}\n\n\t\t// If we still have backlog, schedule another flush (may run next frame if tokens are depleted)\n\t\tif (pending.length > 0) scheduleFlush();\n\t};\n\n\tconst scheduleFlush = () => {\n\t\tif (flushScheduled || !running) return;\n\t\tflushScheduled = true;\n\n\t\t// During cold start, prefer idle time if available to avoid competing with first paint/hydration\n\t\tif (\n\t\t\tinColdStart() &&\n\t\t\ttypeof window !== 'undefined' &&\n\t\t\ttypeof window.requestIdleCallback === 'function'\n\t\t) {\n\t\t\tidleHandle = window.requestIdleCallback!(\n\t\t\t\t() => {\n\t\t\t\t\tidleHandle = null;\n\t\t\t\t\tflushScheduled = false;\n\t\t\t\t\tflushSomeWithGlobalTokens();\n\t\t\t\t},\n\t\t\t\t{ timeout: 100 }\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\trafHandle = raf(() => {\n\t\t\tflushScheduled = false;\n\t\t\trafHandle = null;\n\t\t\tflushSomeWithGlobalTokens();\n\t\t});\n\t};\n\n\tsubId = nipWorker.createShortId(subId);\n\tconst manager = nipWorker.getManager(subId);\n\n\tconst unsubscribe = (): (() => void) => {\n\t\trunning = false;\n\n\t\tif (rafHandle != null) {\n\t\t\tcaf(rafHandle);\n\t\t\trafHandle = null;\n\t\t}\n\t\tif (idleHandle != null && typeof window?.cancelIdleCallback === 'function') {\n\t\t\twindow.cancelIdleCallback(idleHandle);\n\t\t\tidleHandle = null;\n\t\t}\n\t\tif (sliceTimeout) {\n\t\t\tclearTimeout(sliceTimeout);\n\t\t\tsliceTimeout = null;\n\t\t}\n\n\t\tif (hasSubscribed && !hasUnsubscribed) {\n\t\t\tmanager.removeEventListener(`subscription:${subId}`, processEvents);\n\t\t\tmanager.unsubscribe(subId);\n\t\t\thasUnsubscribed = true;\n\t\t}\n\n\t\tpending = [];\n\t\treturn () => {};\n\t};\n\n\tnipWorker.resetInputLoopBackoff();\n\tbuffer = manager.subscribe(subId, requests, options);\n\thasSubscribed = true;\n\n\tconst processEvents = (): void => {\n\t\tif (!running || !buffer) return;\n\t\tif (processing) return;\n\n\t\tprocessing = true;\n\n\t\tconst start = performance?.now?.() ?? Date.now();\n\t\tconst budget = inColdStart() ? READ_BUDGET_MS_COLD : READ_BUDGET_MS_HOT;\n\n\t\tlet result = SharedBufferReader.readMessages(buffer, lastReadPos);\n\t\twhile (result.hasNewData) {\n\t\t\tfor (const message of result.messages) pushPending(message);\n\t\t\tlastReadPos = result.newReadPosition;\n\n\t\t\tconst now = performance?.now?.() ?? Date.now();\n\t\t\tif (now - start >= budget) {\n\t\t\t\tprocessing = false;\n\t\t\t\tscheduleFlush();\n\t\t\t\t// Yield to keep the main thread responsive\n\t\t\t\tsliceTimeout = setTimeout(() => {\n\t\t\t\t\tsliceTimeout = null;\n\t\t\t\t\tprocessEvents();\n\t\t\t\t}, 0);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If we’re already backed up, stop reading for now and let the UI catch up\n\t\t\tif (pending.length >= MAX_PENDING_BUFFER) {\n\t\t\t\tprocessing = false;\n\t\t\t\tscheduleFlush();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresult = SharedBufferReader.readMessages(buffer, lastReadPos);\n\t\t}\n\n\t\tprocessing = false;\n\t\tscheduleFlush();\n\t};\n\n\tmanager.addEventListener(`subscription:${subId}`, processEvents);\n\n\t// Kick off initial read without blocking the current stack\n\tqueueMicrotask(processEvents);\n\n\treturn unsubscribe;\n}\n\nexport function usePublish(\n\tpubId: string,\n\tevent: EventTemplate,\n\tcallback: (message: WorkerMessage) => void = () => {},\n\toptions: { trackStatus?: boolean } = { trackStatus: true }\n): () => void {\n\tif (!pubId) {\n\t\tconsole.warn('usePublish: No publish ID provided');\n\t\treturn () => {};\n\t}\n\n\tlet buffer: SharedArrayBuffer | null = null;\n\tlet lastReadPos: number = 4;\n\tlet running = true;\n\n\tpubId = nipWorker.createShortId(pubId);\n\n\tconst manager = nipWorker.getManager(pubId);\n\n\tconst unsubscribe = (): void => {\n\t\trunning = false;\n\t\tmanager.removeEventListener(`publish:${pubId}`, processEvents);\n\t};\n\n\tbuffer = manager.publish(pubId, event);\n\n\tconst processEvents = (): void => {\n\t\tif (!running || !buffer) {\n\t\t\treturn;\n\t\t}\n\t\tconst result = SharedBufferReader.readMessages(buffer, lastReadPos);\n\t\tif (result.hasNewData) {\n\t\t\tresult.messages.forEach((message: WorkerMessage) => {\n\t\t\t\tcallback(message);\n\t\t\t});\n\t\t\tlastReadPos = result.newReadPosition;\n\t\t}\n\t};\n\n\tif (options.trackStatus) {\n\t\tmanager.addEventListener(`publish:${pubId}`, processEvents);\n\t\tqueueMicrotask(processEvents);\n\t}\n\n\treturn unsubscribe;\n}\n\nexport function useSignEvent(template: EventTemplate, callback: (event: Event) => void) {\n\tconst manager = nipWorker.getManager('');\n\n\tmanager.signEvent(template, callback);\n}\n"],"names":["APP_START_TS","TOKENS_PER_FRAME","tokensRemaining","tokenRefillScheduled","inColdStart","coldMs","scheduleTokenRefill","fn","useSubscription","subId","requests","callback","options","buffer","lastReadPos","running","hasUnsubscribed","hasSubscribed","MAX_PENDING_BUFFER","READ_BUDGET_MS_COLD","READ_BUDGET_MS_HOT","processing","pending","flushScheduled","rafHandle","idleHandle","sliceTimeout","raf","caf","id","pushPending","msg","drop","flushSomeWithGlobalTokens","scheduleFlush","deliverCount","chunk","nipWorker","manager","unsubscribe","processEvents","start","budget","result","SharedBufferReader","message","usePublish","pubId","event","useSignEvent","template"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hooks.js","sources":["../src/hooks.ts"],"sourcesContent":["import { Event, EventTemplate, NostrEvent } from 'nostr-tools';\nimport { SharedBufferReader } from 'src/lib/SharedBuffer';\nimport { WorkerMessage } from './generated/nostr/fb';\nimport { RequestObject, type SubscriptionConfig } from './manager';\nimport { nipWorker } from '.';\n\n// Global cold-start timestamp and per-frame token bucket shared by all subscriptions in this module.\nconst APP_START_TS = Date.now();\n\n// Global tokens replenished once per frame. All useSubscription instances share this.\nlet TOKENS_PER_FRAME = 0;\nlet tokensRemaining = 0;\nlet tokenRefillScheduled = false;\n\nfunction inColdStart(coldMs = 2000) {\n\treturn Date.now() - APP_START_TS < coldMs;\n}\n\nfunction scheduleTokenRefill() {\n\tif (tokenRefillScheduled) return;\n\ttokenRefillScheduled = true;\n\tconst raf =\n\t\ttypeof requestAnimationFrame === 'function'\n\t\t\t? requestAnimationFrame\n\t\t\t: (fn: FrameRequestCallback) =>\n\t\t\t\t\tsetTimeout(() => fn(performance?.now?.() ?? Date.now()), 16) as unknown as number;\n\n\traf(() => {\n\t\t// Refill once per frame with cold/hot limits\n\t\tTOKENS_PER_FRAME = inColdStart() ? 200 : 1500; // tune these\n\t\ttokensRemaining = TOKENS_PER_FRAME;\n\t\ttokenRefillScheduled = false;\n\t\t// We don't call any flushers here; each subscription already schedules its own flush.\n\t});\n}\n\nexport function useSubscription(\n\tsubId: string,\n\trequests: RequestObject[],\n\tcallback: (message: WorkerMessage) => void = () => {},\n\toptions: SubscriptionConfig = { closeOnEose: false }\n): () => void {\n\tif (!subId) {\n\t\tconsole.warn('useSharedSubscription: No subscription ID provided');\n\t\treturn () => {};\n\t}\n\n\tlet buffer: SharedArrayBuffer | null = null;\n\tlet lastReadPos: number = 4;\n\tlet running = true;\n\tlet hasUnsubscribed = false;\n\tlet hasSubscribed = false;\n\n\t// Per-instance queues and scheduling\n\tconst MAX_PENDING_BUFFER = 5000; // cap per-subscription memory\n\tconst READ_BUDGET_MS_COLD = 4;\n\tconst READ_BUDGET_MS_HOT = 8;\n\n\tlet processing = false;\n\tlet pending: WorkerMessage[] = [];\n\tlet flushScheduled = false;\n\tlet rafHandle: number | null = null;\n\tlet idleHandle: number | null = null;\n\tlet sliceTimeout: ReturnType<typeof setTimeout> | null = null;\n\n\t// Polyfills\n\tconst raf =\n\t\ttypeof requestAnimationFrame === 'function'\n\t\t\t? requestAnimationFrame\n\t\t\t: (fn: FrameRequestCallback) =>\n\t\t\t\t\tsetTimeout(() => fn(performance?.now?.() ?? Date.now()), 16) as unknown as number;\n\n\tconst caf =\n\t\ttypeof cancelAnimationFrame === 'function'\n\t\t\t? cancelAnimationFrame\n\t\t\t: (id: number) => clearTimeout(id as unknown as number);\n\n\t// Minimal typings for requestIdleCallback\n\tdeclare const window: any;\n\n\tconst pushPending = (msg: WorkerMessage) => {\n\t\tif (pending.length >= MAX_PENDING_BUFFER) {\n\t\t\t// Drop oldest to keep memory bounded during surges\n\t\t\tconst drop = pending.length - MAX_PENDING_BUFFER + 1;\n\t\t\tif (drop > 0) pending.splice(0, drop);\n\t\t}\n\t\tpending.push(msg);\n\t};\n\n\tconst flushSomeWithGlobalTokens = () => {\n\t\tif (!running || pending.length === 0) return;\n\n\t\t// Ensure tokens will be refilled this or next frame\n\t\tscheduleTokenRefill();\n\n\t\t// Nothing to do if global tokens are out; try again next frame\n\t\tif (tokensRemaining <= 0) {\n\t\t\tscheduleFlush(); // reschedule for next frame when tokens are refilled\n\t\t\treturn;\n\t\t}\n\n\t\t// Deliver up to the available global tokens\n\t\tconst deliverCount = Math.min(tokensRemaining, pending.length);\n\t\tif (deliverCount <= 0) return;\n\n\t\tconst chunk = pending.splice(0, deliverCount);\n\t\ttokensRemaining -= deliverCount;\n\n\t\tfor (const msg of chunk) {\n\t\t\tif (!running) break;\n\t\t\tcallback(msg);\n\t\t}\n\n\t\t// If we still have backlog, schedule another flush (may run next frame if tokens are depleted)\n\t\tif (pending.length > 0) scheduleFlush();\n\t};\n\n\tconst scheduleFlush = () => {\n\t\tif (flushScheduled || !running) return;\n\t\tflushScheduled = true;\n\n\t\t// During cold start, prefer idle time if available to avoid competing with first paint/hydration\n\t\tif (\n\t\t\tinColdStart() &&\n\t\t\ttypeof window !== 'undefined' &&\n\t\t\ttypeof window.requestIdleCallback === 'function'\n\t\t) {\n\t\t\tidleHandle = window.requestIdleCallback!(\n\t\t\t\t() => {\n\t\t\t\t\tidleHandle = null;\n\t\t\t\t\tflushScheduled = false;\n\t\t\t\t\tflushSomeWithGlobalTokens();\n\t\t\t\t},\n\t\t\t\t{ timeout: 100 }\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\trafHandle = raf(() => {\n\t\t\tflushScheduled = false;\n\t\t\trafHandle = null;\n\t\t\tflushSomeWithGlobalTokens();\n\t\t});\n\t};\n\n\tsubId = nipWorker.createShortId(subId);\n\tconst manager = nipWorker.getManager(subId);\n\n\tconst unsubscribe = (): (() => void) => {\n\t\trunning = false;\n\n\t\tif (rafHandle != null) {\n\t\t\tcaf(rafHandle);\n\t\t\trafHandle = null;\n\t\t}\n\t\tif (idleHandle != null && typeof window?.cancelIdleCallback === 'function') {\n\t\t\twindow.cancelIdleCallback(idleHandle);\n\t\t\tidleHandle = null;\n\t\t}\n\t\tif (sliceTimeout) {\n\t\t\tclearTimeout(sliceTimeout);\n\t\t\tsliceTimeout = null;\n\t\t}\n\n\t\tif (hasSubscribed && !hasUnsubscribed) {\n\t\t\tmanager.removeEventListener(`subscription:${subId}`, processEvents);\n\t\t\tmanager.unsubscribe(subId);\n\t\t\thasUnsubscribed = true;\n\t\t}\n\n\t\tpending = [];\n\t\treturn () => {};\n\t};\n\n\t// nipWorker.resetInputLoopBackoff();\n\tbuffer = manager.subscribe(subId, requests, options);\n\thasSubscribed = true;\n\n\tconst processEvents = (): void => {\n\t\tif (!running || !buffer) return;\n\t\tif (processing) return;\n\n\t\tprocessing = true;\n\n\t\tconst start = performance?.now?.() ?? Date.now();\n\t\tconst budget = inColdStart() ? READ_BUDGET_MS_COLD : READ_BUDGET_MS_HOT;\n\n\t\tlet result = SharedBufferReader.readMessages(buffer, lastReadPos);\n\t\twhile (result.hasNewData) {\n\t\t\tfor (const message of result.messages) pushPending(message);\n\t\t\tlastReadPos = result.newReadPosition;\n\n\t\t\tconst now = performance?.now?.() ?? Date.now();\n\t\t\tif (now - start >= budget) {\n\t\t\t\tprocessing = false;\n\t\t\t\tscheduleFlush();\n\t\t\t\t// Yield to keep the main thread responsive\n\t\t\t\tsliceTimeout = setTimeout(() => {\n\t\t\t\t\tsliceTimeout = null;\n\t\t\t\t\tprocessEvents();\n\t\t\t\t}, 0);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If we’re already backed up, stop reading for now and let the UI catch up\n\t\t\tif (pending.length >= MAX_PENDING_BUFFER) {\n\t\t\t\tprocessing = false;\n\t\t\t\tscheduleFlush();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresult = SharedBufferReader.readMessages(buffer, lastReadPos);\n\t\t}\n\n\t\tprocessing = false;\n\t\tscheduleFlush();\n\t};\n\n\tmanager.addEventListener(`subscription:${subId}`, processEvents);\n\n\t// Kick off initial read without blocking the current stack\n\tqueueMicrotask(processEvents);\n\n\treturn unsubscribe;\n}\n\nexport function usePublish(\n\tpubId: string,\n\tevent: EventTemplate,\n\tcallback: (message: WorkerMessage) => void = () => {},\n\toptions: { trackStatus?: boolean } = { trackStatus: true }\n): () => void {\n\tif (!pubId) {\n\t\tconsole.warn('usePublish: No publish ID provided');\n\t\treturn () => {};\n\t}\n\n\tlet buffer: SharedArrayBuffer | null = null;\n\tlet lastReadPos: number = 4;\n\tlet running = true;\n\n\tpubId = nipWorker.createShortId(pubId);\n\n\tconst manager = nipWorker.getManager(pubId);\n\n\tconst unsubscribe = (): void => {\n\t\trunning = false;\n\t\tmanager.removeEventListener(`publish:${pubId}`, processEvents);\n\t};\n\n\tbuffer = manager.publish(pubId, event);\n\n\tconst processEvents = (): void => {\n\t\tif (!running || !buffer) {\n\t\t\treturn;\n\t\t}\n\t\tconst result = SharedBufferReader.readMessages(buffer, lastReadPos);\n\t\tif (result.hasNewData) {\n\t\t\tresult.messages.forEach((message: WorkerMessage) => {\n\t\t\t\tcallback(message);\n\t\t\t});\n\t\t\tlastReadPos = result.newReadPosition;\n\t\t}\n\t};\n\n\tif (options.trackStatus) {\n\t\tmanager.addEventListener(`publish:${pubId}`, processEvents);\n\t\tqueueMicrotask(processEvents);\n\t}\n\n\treturn unsubscribe;\n}\n\nexport function useSignEvent(template: EventTemplate, callback: (event: Event) => void) {\n\tconst manager = nipWorker.getManager('');\n\n\tmanager.signEvent(template, callback);\n}\n"],"names":["APP_START_TS","TOKENS_PER_FRAME","tokensRemaining","tokenRefillScheduled","inColdStart","coldMs","scheduleTokenRefill","fn","useSubscription","subId","requests","callback","options","buffer","lastReadPos","running","hasUnsubscribed","hasSubscribed","MAX_PENDING_BUFFER","READ_BUDGET_MS_COLD","READ_BUDGET_MS_HOT","processing","pending","flushScheduled","rafHandle","idleHandle","sliceTimeout","raf","caf","id","pushPending","msg","drop","flushSomeWithGlobalTokens","scheduleFlush","deliverCount","chunk","nipWorker","manager","unsubscribe","processEvents","start","budget","result","SharedBufferReader","message","usePublish","pubId","event","useSignEvent","template"],"mappings":";AAOA,MAAMA,IAAe,KAAK,IAAA;AAG1B,IAAIC,IAAmB,GACnBC,IAAkB,GAClBC,IAAuB;AAE3B,SAASC,EAAYC,IAAS,KAAM;AACnC,SAAO,KAAK,QAAQL,IAAeK;AACpC;AAEA,SAASC,IAAsB;AAC9B,MAAIH,EAAsB;AAC1B,EAAAA,IAAuB,KAEtB,OAAO,yBAA0B,aAC9B,wBACA,CAACI,MACD,WAAW,MAAMA,EAAG,aAAa,MAAA,KAAW,KAAK,IAAA,CAAK,GAAG,EAAE,GAE3D,MAAM;AAET,IAAAN,IAAmBG,MAAgB,MAAM,MACzCF,IAAkBD,GAClBE,IAAuB;AAAA,EAExB,CAAC;AACF;AAEO,SAASK,EACfC,GACAC,GACAC,IAA6C,MAAM;AAAC,GACpDC,IAA8B,EAAE,aAAa,MAChC;AACb,MAAI,CAACH;AACJ,mBAAQ,KAAK,oDAAoD,GAC1D,MAAM;AAAA,IAAC;AAGf,MAAII,IAAmC,MACnCC,IAAsB,GACtBC,IAAU,IACVC,IAAkB,IAClBC,IAAgB;AAGpB,QAAMC,IAAqB,KACrBC,IAAsB,GACtBC,IAAqB;AAE3B,MAAIC,IAAa,IACbC,IAA2B,CAAA,GAC3BC,IAAiB,IACjBC,IAA2B,MAC3BC,IAA4B,MAC5BC,IAAqD;AAGzD,QAAMC,IACL,OAAO,yBAA0B,aAC9B,wBACA,CAACpB,MACD,WAAW,MAAMA,EAAG,aAAa,MAAA,KAAW,KAAK,IAAA,CAAK,GAAG,EAAE,GAEzDqB,IACL,OAAO,wBAAyB,aAC7B,uBACA,CAACC,MAAe,aAAaA,CAAuB,GAKlDC,IAAc,CAACC,MAAuB;AAC3C,QAAIT,EAAQ,UAAUJ,GAAoB;AAEzC,YAAMc,IAAOV,EAAQ,SAASJ,IAAqB;AACnD,MAAIc,IAAO,KAAGV,EAAQ,OAAO,GAAGU,CAAI;AAAA,IACrC;AACA,IAAAV,EAAQ,KAAKS,CAAG;AAAA,EACjB,GAEME,IAA4B,MAAM;AACvC,QAAI,CAAClB,KAAWO,EAAQ,WAAW,EAAG;AAMtC,QAHAhB,EAAA,GAGIJ,KAAmB,GAAG;AACzB,MAAAgC,EAAA;AACA;AAAA,IACD;AAGA,UAAMC,IAAe,KAAK,IAAIjC,GAAiBoB,EAAQ,MAAM;AAC7D,QAAIa,KAAgB,EAAG;AAEvB,UAAMC,IAAQd,EAAQ,OAAO,GAAGa,CAAY;AAC5C,IAAAjC,KAAmBiC;AAEnB,eAAWJ,KAAOK,GAAO;AACxB,UAAI,CAACrB,EAAS;AACd,MAAAJ,EAASoB,CAAG;AAAA,IACb;AAGA,IAAIT,EAAQ,SAAS,KAAGY,EAAA;AAAA,EACzB,GAEMA,IAAgB,MAAM;AAC3B,QAAI,EAAAX,KAAkB,CAACR,IAIvB;AAAA,UAHAQ,IAAiB,IAIhBnB,EAAA,KACA,OAAO,SAAW,OAClB,OAAO,OAAO,uBAAwB,YACrC;AACD,QAAAqB,IAAa,OAAO;AAAA,UACnB,MAAM;AACL,YAAAA,IAAa,MACbF,IAAiB,IACjBU,EAAA;AAAA,UACD;AAAA,UACA,EAAE,SAAS,IAAA;AAAA,QAAI;AAEhB;AAAA,MACD;AAEA,MAAAT,IAAYG,EAAI,MAAM;AACrB,QAAAJ,IAAiB,IACjBC,IAAY,MACZS,EAAA;AAAA,MACD,CAAC;AAAA;AAAA,EACF;AAEA,EAAAxB,IAAQ4B,EAAU,cAAc5B,CAAK;AACrC,QAAM6B,IAAUD,EAAU,WAAW5B,CAAK,GAEpC8B,IAAc,OACnBxB,IAAU,IAENS,KAAa,SAChBI,EAAIJ,CAAS,GACbA,IAAY,OAETC,KAAc,QAAQ,OAAO,QAAQ,sBAAuB,eAC/D,OAAO,mBAAmBA,CAAU,GACpCA,IAAa,OAEVC,MACH,aAAaA,CAAY,GACzBA,IAAe,OAGZT,KAAiB,CAACD,MACrBsB,EAAQ,oBAAoB,gBAAgB7B,CAAK,IAAI+B,CAAa,GAClEF,EAAQ,YAAY7B,CAAK,GACzBO,IAAkB,KAGnBM,IAAU,CAAA,GACH,MAAM;AAAA,EAAC;AAIf,EAAAT,IAASyB,EAAQ,UAAU7B,GAAOC,GAAUE,CAAO,GACnDK,IAAgB;AAEhB,QAAMuB,IAAgB,MAAY;AAEjC,QADI,CAACzB,KAAW,CAACF,KACbQ,EAAY;AAEhB,IAAAA,IAAa;AAEb,UAAMoB,IAAQ,aAAa,MAAA,KAAW,KAAK,IAAA,GACrCC,IAAStC,MAAgBe,IAAsBC;AAErD,QAAIuB,IAASC,EAAmB,aAAa/B,GAAQC,CAAW;AAChE,WAAO6B,EAAO,cAAY;AACzB,iBAAWE,KAAWF,EAAO,SAAU,CAAAb,EAAYe,CAAO;AAI1D,UAHA/B,IAAc6B,EAAO,kBAET,aAAa,MAAA,KAAW,KAAK,IAAA,KAC/BF,KAASC,GAAQ;AAC1B,QAAArB,IAAa,IACba,EAAA,GAEAR,IAAe,WAAW,MAAM;AAC/B,UAAAA,IAAe,MACfc,EAAA;AAAA,QACD,GAAG,CAAC;AACJ;AAAA,MACD;AAGA,UAAIlB,EAAQ,UAAUJ,GAAoB;AACzC,QAAAG,IAAa,IACba,EAAA;AACA;AAAA,MACD;AAEA,MAAAS,IAASC,EAAmB,aAAa/B,GAAQC,CAAW;AAAA,IAC7D;AAEA,IAAAO,IAAa,IACba,EAAA;AAAA,EACD;AAEA,SAAAI,EAAQ,iBAAiB,gBAAgB7B,CAAK,IAAI+B,CAAa,GAG/D,eAAeA,CAAa,GAErBD;AACR;AAEO,SAASO,EACfC,GACAC,GACArC,IAA6C,MAAM;AAAC,GACpDC,IAAqC,EAAE,aAAa,MACvC;AACb,MAAI,CAACmC;AACJ,mBAAQ,KAAK,oCAAoC,GAC1C,MAAM;AAAA,IAAC;AAGf,MAAIlC,IAAmC,MACnCC,IAAsB,GACtBC,IAAU;AAEd,EAAAgC,IAAQV,EAAU,cAAcU,CAAK;AAErC,QAAMT,IAAUD,EAAU,WAAWU,CAAK,GAEpCR,IAAc,MAAY;AAC/B,IAAAxB,IAAU,IACVuB,EAAQ,oBAAoB,WAAWS,CAAK,IAAIP,CAAa;AAAA,EAC9D;AAEA,EAAA3B,IAASyB,EAAQ,QAAQS,GAAOC,CAAK;AAErC,QAAMR,IAAgB,MAAY;AACjC,QAAI,CAACzB,KAAW,CAACF;AAChB;AAED,UAAM8B,IAASC,EAAmB,aAAa/B,GAAQC,CAAW;AAClE,IAAI6B,EAAO,eACVA,EAAO,SAAS,QAAQ,CAACE,MAA2B;AACnD,MAAAlC,EAASkC,CAAO;AAAA,IACjB,CAAC,GACD/B,IAAc6B,EAAO;AAAA,EAEvB;AAEA,SAAI/B,EAAQ,gBACX0B,EAAQ,iBAAiB,WAAWS,CAAK,IAAIP,CAAa,GAC1D,eAAeA,CAAa,IAGtBD;AACR;AAEO,SAASU,EAAaC,GAAyBvC,GAAkC;AAGvF,EAFgB0B,EAAU,WAAW,EAAE,EAE/B,UAAUa,GAAUvC,CAAQ;AACrC;"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,cAAc,aAAa,CAAC;AAK5B,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CA6BpE;AAED,qBAAa,SAAS;IACrB,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,MAAM,CAAY;IAE1B,OAAO,CAAC,SAAS;IASV,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;gBA2B/B,MAAM,GAAE,GAAQ,EAAE,KAAK,SAAI;IA2ChC,OAAO,IAAI,IAAI;IAMf,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAMnD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY;IAUvC,qBAAqB,IAAI,IAAI;CAIpC;AAED,eAAO,MAAM,SAAS,WAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as a,b as s,G as e,c as i,K as n,d as r,M as
|
|
1
|
+
import{C as a,b as s,G as e,c as i,K as n,d as r,M as t,e as o,f as P,g as d,N as T,a as f,h as g,j as K,P as p,k as C,l as u,m as l,p as D,o as S,q as b,r as c,s as M,t as v,u as E,v as y,w as m,x as R,R as k,y as W,z as L,A as I,B as N,D as H,E as V,F as h,H as q,I as B,J as F,L as G,Q as z,O as U,T as j,U as w,V as Q,W as x,X as Z,Y as A,Z as J,_ as O,$ as X,a0 as Y,i as _,n as $}from"./index2.js";import{B as aa,g as sa,h as ea,i as ia,j as na,k as ra,l as ta,m as oa,n as Pa,o as da,p as Ta,q as fa,b as ga,C as Ka,r as pa,D as Ca,s as ua,t as la,v as Da,E as Sa,w as ba,x as ca,y as Ma,H as va,z as Ea,A as ya,F as ma,G as Ra,I as ka,J as Wa,K as La,L as Ia,N as Na,O as Ha,Q as Va,T as ha,U as qa,W as Ba,X as Fa,Y as Ga,Z as za,_ as Ua,$ as ja,a0 as wa,a1 as Qa,a2 as xa,a3 as Za,a4 as Aa,a5 as Ja,a6 as Oa,a7 as Xa,a8 as Ya,a9 as _a,aa as $a,ab as as,ac as ss,ad as es,ae as is,af as ns,ag as rs,ah as ts,ai as os,aj as Ps,ak as ds,al as Ts,am as fs,an as gs,ao as Ks,ap as ps,d as Cs,M as us,aq as ls,ar as Ds,as as Ss,at as bs,au as cs,av as Ms,aw as vs,ax as Es,ay as ys,az as ms,P as Rs,aA as ks,aB as Ws,aC as Ls,aD as Is,aE as Ns,aF as Hs,aG as Vs,aH as hs,aI as qs,aJ as Bs,aK as Fs,R as Gs,e as zs,aL as Us,aM as js,S as ws,f as Qs,V as xs,aN as Zs,aO as As,aP as Js,aQ as Os,aR as Xs,aS as Ys,aT as _s,aU as $s}from"./message-type.js";export{aa as BufferFull,sa as BufferFullT,ea as CashuData,ia as CashuDataT,na as CodeData,ra as CodeDataT,ta as ConnectionStatus,oa as ConnectionStatusT,Pa as Contact,da as ContactT,Ta as ContentBlock,fa as ContentBlockT,ga as ContentData,Ka as CountResponse,pa as CountResponseT,a as CounterPipeConfig,s as CounterPipeConfigT,Ca as DLEQProof,ua as DLEQProofT,la as Emoji,Da as EmojiT,Sa as Eoce,ba as EoceT,ca as EventPointer,Ma as EventPointerT,e as GetPublicKey,i as GetPublicKeyT,va as HTLCWitness,Ea as HTLCWitnessT,ya as HashtagData,ma as HashtagDataT,Ra as HistoryTag,ka as HistoryTagT,Wa as ImageData,La as ImageDataT,Ia as Kind0Parsed,Na as Kind0ParsedT,Ha as Kind10002Parsed,Va as Kind10002ParsedT,ha as Kind10019Parsed,qa as Kind10019ParsedT,Ba as Kind17375Parsed,Fa as Kind17375ParsedT,Ga as Kind17Parsed,za as Kind17ParsedT,Ua as Kind1Parsed,ja as Kind1ParsedT,wa as Kind39089Parsed,Qa as Kind39089ParsedT,xa as Kind3Parsed,Za as Kind3ParsedT,Aa as Kind4Parsed,Ja as Kind4ParsedT,Oa as Kind6Parsed,Xa as Kind6ParsedT,Ya as Kind7374Parsed,_a as Kind7374ParsedT,$a as Kind7375Parsed,as as Kind7375ParsedT,ss as Kind7376Parsed,es as Kind7376ParsedT,is as Kind7Parsed,ns as Kind7ParsedT,rs as Kind9321Parsed,ts as Kind9321ParsedT,os as Kind9735Parsed,Ps as Kind9735ParsedT,n as KindFilterPipeConfig,r as KindFilterPipeConfigT,ds as LinkPreviewData,Ts as LinkPreviewDataT,t as MainContent,o as MainMessage,P as MainMessageT,fs as MediaGroupData,gs as MediaGroupDataT,Ks as MediaItem,ps as MediaItemT,Cs as Message,us as MessageType,ls as MintInfo,Ds as MintInfoT,Ss as MintProofs,bs as MintProofsT,d as MsgKind,T as NipWorker,cs as NostrData,Ms as NostrDataT,vs as NostrEvent,Es as NostrEventT,f as NostrManager,g as NpubLimiterPipeConfig,K as NpubLimiterPipeConfigT,ys as P2PKWitness,ms as P2PKWitnessT,p as ParsePipeConfig,C as ParsePipeConfigT,Rs as ParsedData,u as ParsedDataUnion,ks as ParsedEvent,Ws as ParsedEventT,l as Pipe,D as PipeConfig,S as PipeT,b as PipelineConfig,c as PipelineConfigT,M as PrivateKey,v as PrivateKeyT,Ls as ProfilePointer,Is as ProfilePointerT,Ns as Proof,Hs as ProofT,E as ProofVerificationPipeConfig,y as ProofVerificationPipeConfigT,Vs as Pubkey,hs as PubkeyT,m as Publish,R as PublishT,qs as ReactionType,Bs as RelayInfo,Fs as RelayInfoT,k as RelayRef,W as RelayRefT,Gs as Request,zs as RequestT,L as SaveToDbPipeConfig,I as SaveToDbPipeConfigT,N as SerializeEventsPipeConfig,H as SerializeEventsPipeConfigT,V as SetSigner,h as SetSignerT,q as SignEvent,B as SignEventT,Us as SignedEvent,js as SignedEventT,F as SignerType,ws as StringVec,Qs as StringVecT,G as Subscribe,z as SubscribeKind,U as SubscribeT,j as SubscriptionConfig,w as SubscriptionConfigT,Q as Template,x as TemplateT,Z as Unsubscribe,A as UnsubscribeT,xs as ValidProofs,Zs as ValidProofsT,As as VideoData,Js as VideoDataT,Os as Witness,Xs as WitnessString,Ys as WitnessStringT,J as WorkerLine,O as WorkerLineT,X as WorkerMessage,Y as WorkerMessageT,_s as ZapRequest,$s as ZapRequestT,_ as initializeRingHeader,$ as nipWorker};
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
package/dist/index2.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import At from"@candypoets/rust-worker/worker.js?worker";import Mt from"@candypoets/rust-worker/rust_worker_bg.wasm?url";import{encode as jt}from"@msgpack/msgpack";import{d as Q,S as W,e as Y,F as $,f as b,g as xt,R as Lt,M as Z,h as tt,u as ut,i as Ut,j as et}from"./message-type.js";import{i as pt}from"./ring-buffer.js";class A{constructor(t){this.minalign=1,this.vtable=null,this.vtable_in_use=0,this.isNested=!1,this.object_start=0,this.vtables=[],this.vector_num_elems=0,this.force_defaults=!1,this.string_maps=null,this.text_encoder=new TextEncoder;let e;t?e=t:e=1024,this.bb=Q.allocate(e),this.space=e}clear(){this.bb.clear(),this.space=this.bb.capacity(),this.minalign=1,this.vtable=null,this.vtable_in_use=0,this.isNested=!1,this.object_start=0,this.vtables=[],this.vector_num_elems=0,this.force_defaults=!1,this.string_maps=null}forceDefaults(t){this.force_defaults=t}dataBuffer(){return this.bb}asUint8Array(){return this.bb.bytes().subarray(this.bb.position(),this.bb.position()+this.offset())}prep(t,e){t>this.minalign&&(this.minalign=t);const s=~(this.bb.capacity()-this.space+e)+1&t-1;for(;this.space<s+t+e;){const n=this.bb.capacity();this.bb=A.growByteBuffer(this.bb),this.space+=this.bb.capacity()-n}this.pad(s)}pad(t){for(let e=0;e<t;e++)this.bb.writeInt8(--this.space,0)}writeInt8(t){this.bb.writeInt8(this.space-=1,t)}writeInt16(t){this.bb.writeInt16(this.space-=2,t)}writeInt32(t){this.bb.writeInt32(this.space-=4,t)}writeInt64(t){this.bb.writeInt64(this.space-=8,t)}writeFloat32(t){this.bb.writeFloat32(this.space-=4,t)}writeFloat64(t){this.bb.writeFloat64(this.space-=8,t)}addInt8(t){this.prep(1,0),this.writeInt8(t)}addInt16(t){this.prep(2,0),this.writeInt16(t)}addInt32(t){this.prep(4,0),this.writeInt32(t)}addInt64(t){this.prep(8,0),this.writeInt64(t)}addFloat32(t){this.prep(4,0),this.writeFloat32(t)}addFloat64(t){this.prep(8,0),this.writeFloat64(t)}addFieldInt8(t,e,s){(this.force_defaults||e!=s)&&(this.addInt8(e),this.slot(t))}addFieldInt16(t,e,s){(this.force_defaults||e!=s)&&(this.addInt16(e),this.slot(t))}addFieldInt32(t,e,s){(this.force_defaults||e!=s)&&(this.addInt32(e),this.slot(t))}addFieldInt64(t,e,s){(this.force_defaults||e!==s)&&(this.addInt64(e),this.slot(t))}addFieldFloat32(t,e,s){(this.force_defaults||e!=s)&&(this.addFloat32(e),this.slot(t))}addFieldFloat64(t,e,s){(this.force_defaults||e!=s)&&(this.addFloat64(e),this.slot(t))}addFieldOffset(t,e,s){(this.force_defaults||e!=s)&&(this.addOffset(e),this.slot(t))}addFieldStruct(t,e,s){e!=s&&(this.nested(e),this.slot(t))}nested(t){if(t!=this.offset())throw new TypeError("FlatBuffers: struct must be serialized inline.")}notNested(){if(this.isNested)throw new TypeError("FlatBuffers: object serialization must not be nested.")}slot(t){this.vtable!==null&&(this.vtable[t]=this.offset())}offset(){return this.bb.capacity()-this.space}static growByteBuffer(t){const e=t.capacity();if(e&3221225472)throw new Error("FlatBuffers: cannot grow buffer beyond 2 gigabytes.");const s=e<<1,n=Q.allocate(s);return n.setPosition(s-e),n.bytes().set(t.bytes(),s-e),n}addOffset(t){this.prep(W,0),this.writeInt32(this.offset()-t+W)}startObject(t){this.notNested(),this.vtable==null&&(this.vtable=[]),this.vtable_in_use=t;for(let e=0;e<t;e++)this.vtable[e]=0;this.isNested=!0,this.object_start=this.offset()}endObject(){if(this.vtable==null||!this.isNested)throw new Error("FlatBuffers: endObject called without startObject");this.addInt32(0);const t=this.offset();let e=this.vtable_in_use-1;for(;e>=0&&this.vtable[e]==0;e--);const s=e+1;for(;e>=0;e--)this.addInt16(this.vtable[e]!=0?t-this.vtable[e]:0);const n=2;this.addInt16(t-this.object_start);const r=(s+n)*Y;this.addInt16(r);let o=0;const a=this.space;t:for(e=0;e<this.vtables.length;e++){const h=this.bb.capacity()-this.vtables[e];if(r==this.bb.readInt16(h)){for(let c=Y;c<r;c+=Y)if(this.bb.readInt16(a+c)!=this.bb.readInt16(h+c))continue t;o=this.vtables[e];break}}return o?(this.space=this.bb.capacity()-t,this.bb.writeInt32(this.space,o-t)):(this.vtables.push(this.offset()),this.bb.writeInt32(this.bb.capacity()-t,this.offset()-t)),this.isNested=!1,t}finish(t,e,s){const n=s?b:0;if(e){const r=e;if(this.prep(this.minalign,W+$+n),r.length!=$)throw new TypeError("FlatBuffers: file identifier must be length "+$);for(let o=$-1;o>=0;o--)this.writeInt8(r.charCodeAt(o))}this.prep(this.minalign,W+n),this.addOffset(t),n&&this.addInt32(this.bb.capacity()-this.space),this.bb.setPosition(this.space)}finishSizePrefixed(t,e){this.finish(t,e,!0)}requiredField(t,e){const s=this.bb.capacity()-t,n=s-this.bb.readInt32(s);if(!(e<this.bb.readInt16(n)&&this.bb.readInt16(n+e)!=0))throw new TypeError("FlatBuffers: field "+e+" must be set")}startVector(t,e,s){this.notNested(),this.vector_num_elems=e,this.prep(W,t*e),this.prep(s,t*e)}endVector(){return this.writeInt32(this.vector_num_elems),this.offset()}createSharedString(t){if(!t)return 0;if(this.string_maps||(this.string_maps=new Map),this.string_maps.has(t))return this.string_maps.get(t);const e=this.createString(t);return this.string_maps.set(t,e),e}createString(t){if(t==null)return 0;let e;return t instanceof Uint8Array?e=t:e=this.text_encoder.encode(t),this.addInt8(0),this.startVector(1,e.length,1),this.bb.setPosition(this.space-=e.length),this.bb.bytes().set(e,this.space),this.endVector()}createByteVector(t){return t==null?0:(this.startVector(1,t.length,1),this.bb.setPosition(this.space-=t.length),this.bb.bytes().set(t,this.space),this.endVector())}createObjectOffset(t){return t===null?0:typeof t=="string"?this.createString(t):t.pack(this)}createObjectOffsetList(t){const e=[];for(let s=0;s<t.length;++s){const n=t[s];if(n!==null)e.push(this.createObjectOffset(n));else throw new TypeError("FlatBuffers: Argument for createObjectOffsetList cannot contain null.")}return e}createStructOffsetList(t,e){return e(this,t.length),this.createObjectOffsetList(t.slice().reverse()),this.endVector()}}class w{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsCounterPipeConfig(t,e){return(e||new w).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsCounterPipeConfig(t,e){return t.setPosition(t.position()+b),(e||new w).__init(t.readInt32(t.position())+t.position(),t)}kinds(t){const e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readUint16(this.bb.__vector(this.bb_pos+e)+t*2):0}kindsLength(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}kindsArray(){const t=this.bb.__offset(this.bb_pos,4);return t?new Uint16Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}pubkey(t){const e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__stringByteString(this.bb_pos+e,t):null}static startCounterPipeConfig(t){t.startObject(2)}static addKinds(t,e){t.addFieldOffset(0,e,0)}static createKindsVector(t,e){t.startVector(2,e.length,2);for(let s=e.length-1;s>=0;s--)t.addInt16(e[s]);return t.endVector()}static startKindsVector(t,e){t.startVector(2,e,2)}static addPubkey(t,e){t.addFieldOffset(1,e,0)}static endCounterPipeConfig(t){const e=t.endObject();return t.requiredField(e,4),t.requiredField(e,6),e}static createCounterPipeConfig(t,e,s){return w.startCounterPipeConfig(t),w.addKinds(t,e),w.addPubkey(t,s),w.endCounterPipeConfig(t)}unpack(){return new lt(this.bb.createScalarList(this.kinds.bind(this),this.kindsLength()),this.pubkey())}unpackTo(t){t.kinds=this.bb.createScalarList(this.kinds.bind(this),this.kindsLength()),t.pubkey=this.pubkey()}}class lt{constructor(t=[],e=null){this.kinds=t,this.pubkey=e}pack(t){const e=w.createKindsVector(t,this.kinds),s=this.pubkey!==null?t.createString(this.pubkey):0;return w.createCounterPipeConfig(t,e,s)}}class M{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsGetPublicKey(t,e){return(e||new M).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsGetPublicKey(t,e){return t.setPosition(t.position()+b),(e||new M).__init(t.readInt32(t.position())+t.position(),t)}static startGetPublicKey(t){t.startObject(0)}static endGetPublicKey(t){return t.endObject()}static createGetPublicKey(t){return M.startGetPublicKey(t),M.endGetPublicKey(t)}unpack(){return new st}unpackTo(t){}}class st{constructor(){}pack(t){return M.createGetPublicKey(t)}}class S{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsKindFilterPipeConfig(t,e){return(e||new S).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsKindFilterPipeConfig(t,e){return t.setPosition(t.position()+b),(e||new S).__init(t.readInt32(t.position())+t.position(),t)}kinds(t){const e=this.bb.__offset(this.bb_pos,4);return e?this.bb.readUint16(this.bb.__vector(this.bb_pos+e)+t*2):0}kindsLength(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}kindsArray(){const t=this.bb.__offset(this.bb_pos,4);return t?new Uint16Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}static startKindFilterPipeConfig(t){t.startObject(1)}static addKinds(t,e){t.addFieldOffset(0,e,0)}static createKindsVector(t,e){t.startVector(2,e.length,2);for(let s=e.length-1;s>=0;s--)t.addInt16(e[s]);return t.endVector()}static startKindsVector(t,e){t.startVector(2,e,2)}static endKindFilterPipeConfig(t){const e=t.endObject();return t.requiredField(e,4),e}static createKindFilterPipeConfig(t,e){return S.startKindFilterPipeConfig(t),S.addKinds(t,e),S.endKindFilterPipeConfig(t)}unpack(){return new ft(this.bb.createScalarList(this.kinds.bind(this),this.kindsLength()))}unpackTo(t){t.kinds=this.bb.createScalarList(this.kinds.bind(this),this.kindsLength())}}class ft{constructor(t=[]){this.kinds=t}pack(t){const e=S.createKindsVector(t,this.kinds);return S.createKindFilterPipeConfig(t,e)}}class p{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsTemplate(t,e){return(e||new p).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsTemplate(t,e){return t.setPosition(t.position()+b),(e||new p).__init(t.readInt32(t.position())+t.position(),t)}kind(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readUint16(this.bb_pos+t):0}content(t){const e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__stringByteString(this.bb_pos+e,t):null}tags(t,e){const s=this.bb.__offset(this.bb_pos,8);return s?(e||new xt).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+s)+t*4),this.bb):null}tagsLength(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}static startTemplate(t){t.startObject(3)}static addKind(t,e){t.addFieldInt16(0,e,0)}static addContent(t,e){t.addFieldOffset(1,e,0)}static addTags(t,e){t.addFieldOffset(2,e,0)}static createTagsVector(t,e){t.startVector(4,e.length,4);for(let s=e.length-1;s>=0;s--)t.addOffset(e[s]);return t.endVector()}static startTagsVector(t,e){t.startVector(4,e,4)}static endTemplate(t){const e=t.endObject();return t.requiredField(e,6),t.requiredField(e,8),e}static createTemplate(t,e,s,n){return p.startTemplate(t),p.addKind(t,e),p.addContent(t,s),p.addTags(t,n),p.endTemplate(t)}unpack(){return new J(this.kind(),this.content(),this.bb.createObjList(this.tags.bind(this),this.tagsLength()))}unpackTo(t){t.kind=this.kind(),t.content=this.content(),t.tags=this.bb.createObjList(this.tags.bind(this),this.tagsLength())}}class J{constructor(t=0,e=null,s=[]){this.kind=t,this.content=e,this.tags=s}pack(t){const e=this.content!==null?t.createString(this.content):0,s=p.createTagsVector(t,t.createObjectOffsetList(this.tags));return p.createTemplate(t,this.kind,e,s)}}class O{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsPublish(t,e){return(e||new O).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsPublish(t,e){return t.setPosition(t.position()+b),(e||new O).__init(t.readInt32(t.position())+t.position(),t)}publishId(t){const e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__stringByteString(this.bb_pos+e,t):null}template(t){const e=this.bb.__offset(this.bb_pos,6);return e?(t||new p).__init(this.bb.__indirect(this.bb_pos+e),this.bb):null}static startPublish(t){t.startObject(2)}static addPublishId(t,e){t.addFieldOffset(0,e,0)}static addTemplate(t,e){t.addFieldOffset(1,e,0)}static endPublish(t){const e=t.endObject();return t.requiredField(e,4),t.requiredField(e,6),e}unpack(){return new it(this.publishId(),this.template()!==null?this.template().unpack():null)}unpackTo(t){t.publishId=this.publishId(),t.template=this.template()!==null?this.template().unpack():null}}class it{constructor(t=null,e=null){this.publishId=t,this.template=e}pack(t){const e=this.publishId!==null?t.createString(this.publishId):0,s=this.template!==null?this.template.pack(t):0;return O.startPublish(t),O.addPublishId(t,e),O.addTemplate(t,s),O.endPublish(t)}}class v{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsPrivateKey(t,e){return(e||new v).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsPrivateKey(t,e){return t.setPosition(t.position()+b),(e||new v).__init(t.readInt32(t.position())+t.position(),t)}privateKey(t){const e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__stringByteString(this.bb_pos+e,t):null}static startPrivateKey(t){t.startObject(1)}static addPrivateKey(t,e){t.addFieldOffset(0,e,0)}static endPrivateKey(t){const e=t.endObject();return t.requiredField(e,4),e}static createPrivateKey(t,e){return v.startPrivateKey(t),v.addPrivateKey(t,e),v.endPrivateKey(t)}unpack(){return new nt(this.privateKey())}unpackTo(t){t.privateKey=this.privateKey()}}class nt{constructor(t=null){this.privateKey=t}pack(t){const e=this.privateKey!==null?t.createString(this.privateKey):0;return v.createPrivateKey(t,e)}}var L=(i=>(i[i.NONE=0]="NONE",i[i.PrivateKey=1]="PrivateKey",i))(L||{});function gt(i,t){switch(L[i]){case"NONE":return null;case"PrivateKey":return t(new v);default:return null}}class y{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsSetSigner(t,e){return(e||new y).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsSetSigner(t,e){return t.setPosition(t.position()+b),(e||new y).__init(t.readInt32(t.position())+t.position(),t)}signerTypeType(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readUint8(this.bb_pos+t):L.NONE}signerType(t){const e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__union(t,this.bb_pos+e):null}static startSetSigner(t){t.startObject(2)}static addSignerTypeType(t,e){t.addFieldInt8(0,e,L.NONE)}static addSignerType(t,e){t.addFieldOffset(1,e,0)}static endSetSigner(t){const e=t.endObject();return t.requiredField(e,6),e}static createSetSigner(t,e,s){return y.startSetSigner(t),y.addSignerTypeType(t,e),y.addSignerType(t,s),y.endSetSigner(t)}unpack(){return new rt(this.signerTypeType(),(()=>{const t=gt(this.signerTypeType(),this.signerType.bind(this));return t===null?null:t.unpack()})())}unpackTo(t){t.signerTypeType=this.signerTypeType(),t.signerType=(()=>{const e=gt(this.signerTypeType(),this.signerType.bind(this));return e===null?null:e.unpack()})()}}class rt{constructor(t=L.NONE,e=null){this.signerTypeType=t,this.signerType=e}pack(t){const e=t.createObjectOffset(this.signerType);return y.createSetSigner(t,this.signerTypeType,e)}}class T{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsSignEvent(t,e){return(e||new T).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsSignEvent(t,e){return t.setPosition(t.position()+b),(e||new T).__init(t.readInt32(t.position())+t.position(),t)}template(t){const e=this.bb.__offset(this.bb_pos,4);return e?(t||new p).__init(this.bb.__indirect(this.bb_pos+e),this.bb):null}static startSignEvent(t){t.startObject(1)}static addTemplate(t,e){t.addFieldOffset(0,e,0)}static endSignEvent(t){const e=t.endObject();return t.requiredField(e,4),e}static createSignEvent(t,e){return T.startSignEvent(t),T.addTemplate(t,e),T.endSignEvent(t)}unpack(){return new ot(this.template()!==null?this.template().unpack():null)}unpackTo(t){t.template=this.template()!==null?this.template().unpack():null}}class ot{constructor(t=null){this.template=t}pack(t){const e=this.template!==null?this.template.pack(t):0;return T.createSignEvent(t,e)}}class _{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsNpubLimiterPipeConfig(t,e){return(e||new _).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsNpubLimiterPipeConfig(t,e){return t.setPosition(t.position()+b),(e||new _).__init(t.readInt32(t.position())+t.position(),t)}kind(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readUint16(this.bb_pos+t):0}limitPerNpub(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readUint32(this.bb_pos+t):0}maxTotalNpubs(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readUint32(this.bb_pos+t):0}static startNpubLimiterPipeConfig(t){t.startObject(3)}static addKind(t,e){t.addFieldInt16(0,e,0)}static addLimitPerNpub(t,e){t.addFieldInt32(1,e,0)}static addMaxTotalNpubs(t,e){t.addFieldInt32(2,e,0)}static endNpubLimiterPipeConfig(t){return t.endObject()}static createNpubLimiterPipeConfig(t,e,s,n){return _.startNpubLimiterPipeConfig(t),_.addKind(t,e),_.addLimitPerNpub(t,s),_.addMaxTotalNpubs(t,n),_.endNpubLimiterPipeConfig(t)}unpack(){return new _t(this.kind(),this.limitPerNpub(),this.maxTotalNpubs())}unpackTo(t){t.kind=this.kind(),t.limitPerNpub=this.limitPerNpub(),t.maxTotalNpubs=this.maxTotalNpubs()}}class _t{constructor(t=0,e=0,s=0){this.kind=t,this.limitPerNpub=e,this.maxTotalNpubs=s}pack(t){return _.createNpubLimiterPipeConfig(t,this.kind,this.limitPerNpub,this.maxTotalNpubs)}}class j{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsParsePipeConfig(t,e){return(e||new j).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsParsePipeConfig(t,e){return t.setPosition(t.position()+b),(e||new j).__init(t.readInt32(t.position())+t.position(),t)}static startParsePipeConfig(t){t.startObject(0)}static endParsePipeConfig(t){return t.endObject()}static createParsePipeConfig(t){return j.startParsePipeConfig(t),j.endParsePipeConfig(t)}unpack(){return new Pt}unpackTo(t){}}class Pt{constructor(){}pack(t){return j.createParsePipeConfig(t)}}class F{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsProofVerificationPipeConfig(t,e){return(e||new F).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsProofVerificationPipeConfig(t,e){return t.setPosition(t.position()+b),(e||new F).__init(t.readInt32(t.position())+t.position(),t)}maxProofs(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readUint32(this.bb_pos+t):0}static startProofVerificationPipeConfig(t){t.startObject(1)}static addMaxProofs(t,e){t.addFieldInt32(0,e,0)}static endProofVerificationPipeConfig(t){return t.endObject()}static createProofVerificationPipeConfig(t,e){return F.startProofVerificationPipeConfig(t),F.addMaxProofs(t,e),F.endProofVerificationPipeConfig(t)}unpack(){return new wt(this.maxProofs())}unpackTo(t){t.maxProofs=this.maxProofs()}}class wt{constructor(t=0){this.maxProofs=t}pack(t){return F.createProofVerificationPipeConfig(t,this.maxProofs)}}class x{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsSaveToDbPipeConfig(t,e){return(e||new x).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsSaveToDbPipeConfig(t,e){return t.setPosition(t.position()+b),(e||new x).__init(t.readInt32(t.position())+t.position(),t)}static startSaveToDbPipeConfig(t){t.startObject(0)}static endSaveToDbPipeConfig(t){return t.endObject()}static createSaveToDbPipeConfig(t){return x.startSaveToDbPipeConfig(t),x.endSaveToDbPipeConfig(t)}unpack(){return new yt}unpackTo(t){}}class yt{constructor(){}pack(t){return x.createSaveToDbPipeConfig(t)}}class E{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsSerializeEventsPipeConfig(t,e){return(e||new E).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsSerializeEventsPipeConfig(t,e){return t.setPosition(t.position()+b),(e||new E).__init(t.readInt32(t.position())+t.position(),t)}subscriptionId(t){const e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__stringByteString(this.bb_pos+e,t):null}static startSerializeEventsPipeConfig(t){t.startObject(1)}static addSubscriptionId(t,e){t.addFieldOffset(0,e,0)}static endSerializeEventsPipeConfig(t){const e=t.endObject();return t.requiredField(e,4),e}static createSerializeEventsPipeConfig(t,e){return E.startSerializeEventsPipeConfig(t),E.addSubscriptionId(t,e),E.endSerializeEventsPipeConfig(t)}unpack(){return new kt(this.subscriptionId())}unpackTo(t){t.subscriptionId=this.subscriptionId()}}class kt{constructor(t=null){this.subscriptionId=t}pack(t){const e=this.subscriptionId!==null?t.createString(this.subscriptionId):0;return E.createSerializeEventsPipeConfig(t,e)}}var B=(i=>(i[i.NONE=0]="NONE",i[i.ParsePipeConfig=1]="ParsePipeConfig",i[i.KindFilterPipeConfig=2]="KindFilterPipeConfig",i[i.CounterPipeConfig=3]="CounterPipeConfig",i[i.NpubLimiterPipeConfig=4]="NpubLimiterPipeConfig",i[i.SaveToDbPipeConfig=5]="SaveToDbPipeConfig",i[i.SerializeEventsPipeConfig=6]="SerializeEventsPipeConfig",i[i.ProofVerificationPipeConfig=7]="ProofVerificationPipeConfig",i))(B||{});function St(i,t){switch(B[i]){case"NONE":return null;case"ParsePipeConfig":return t(new j);case"KindFilterPipeConfig":return t(new S);case"CounterPipeConfig":return t(new w);case"NpubLimiterPipeConfig":return t(new _);case"SaveToDbPipeConfig":return t(new x);case"SerializeEventsPipeConfig":return t(new E);case"ProofVerificationPipeConfig":return t(new F);default:return null}}class k{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsPipe(t,e){return(e||new k).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsPipe(t,e){return t.setPosition(t.position()+b),(e||new k).__init(t.readInt32(t.position())+t.position(),t)}configType(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readUint8(this.bb_pos+t):B.NONE}config(t){const e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__union(t,this.bb_pos+e):null}static startPipe(t){t.startObject(2)}static addConfigType(t,e){t.addFieldInt8(0,e,B.NONE)}static addConfig(t,e){t.addFieldOffset(1,e,0)}static endPipe(t){const e=t.endObject();return t.requiredField(e,6),e}static createPipe(t,e,s){return k.startPipe(t),k.addConfigType(t,e),k.addConfig(t,s),k.endPipe(t)}unpack(){return new It(this.configType(),(()=>{const t=St(this.configType(),this.config.bind(this));return t===null?null:t.unpack()})())}unpackTo(t){t.configType=this.configType(),t.config=(()=>{const e=St(this.configType(),this.config.bind(this));return e===null?null:e.unpack()})()}}class It{constructor(t=B.NONE,e=null){this.configType=t,this.config=e}pack(t){const e=t.createObjectOffset(this.config);return k.createPipe(t,this.configType,e)}}class I{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsPipelineConfig(t,e){return(e||new I).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsPipelineConfig(t,e){return t.setPosition(t.position()+b),(e||new I).__init(t.readInt32(t.position())+t.position(),t)}pipes(t,e){const s=this.bb.__offset(this.bb_pos,4);return s?(e||new k).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+s)+t*4),this.bb):null}pipesLength(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}static startPipelineConfig(t){t.startObject(1)}static addPipes(t,e){t.addFieldOffset(0,e,0)}static createPipesVector(t,e){t.startVector(4,e.length,4);for(let s=e.length-1;s>=0;s--)t.addOffset(e[s]);return t.endVector()}static startPipesVector(t,e){t.startVector(4,e,4)}static endPipelineConfig(t){const e=t.endObject();return t.requiredField(e,4),e}static createPipelineConfig(t,e){return I.startPipelineConfig(t),I.addPipes(t,e),I.endPipelineConfig(t)}unpack(){return new at(this.bb.createObjList(this.pipes.bind(this),this.pipesLength()))}unpackTo(t){t.pipes=this.bb.createObjList(this.pipes.bind(this),this.pipesLength())}}class at{constructor(t=[]){this.pipes=t}pack(t){const e=I.createPipesVector(t,t.createObjectOffsetList(this.pipes));return I.createPipelineConfig(t,e)}}class u{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsSubscriptionConfig(t,e){return(e||new u).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsSubscriptionConfig(t,e){return t.setPosition(t.position()+b),(e||new u).__init(t.readInt32(t.position())+t.position(),t)}pipeline(t){const e=this.bb.__offset(this.bb_pos,4);return e?(t||new I).__init(this.bb.__indirect(this.bb_pos+e),this.bb):null}closeOnEose(){const t=this.bb.__offset(this.bb_pos,6);return t?!!this.bb.readInt8(this.bb_pos+t):!1}cacheFirst(){const t=this.bb.__offset(this.bb_pos,8);return t?!!this.bb.readInt8(this.bb_pos+t):!0}timeoutMs(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readUint64(this.bb_pos+t):BigInt("0")}maxEvents(){const t=this.bb.__offset(this.bb_pos,12);return t?this.bb.readUint32(this.bb_pos+t):0}skipCache(){const t=this.bb.__offset(this.bb_pos,14);return t?!!this.bb.readInt8(this.bb_pos+t):!1}force(){const t=this.bb.__offset(this.bb_pos,16);return t?!!this.bb.readInt8(this.bb_pos+t):!1}bytesPerEvent(){const t=this.bb.__offset(this.bb_pos,18);return t?this.bb.readUint32(this.bb_pos+t):0}static startSubscriptionConfig(t){t.startObject(8)}static addPipeline(t,e){t.addFieldOffset(0,e,0)}static addCloseOnEose(t,e){t.addFieldInt8(1,+e,0)}static addCacheFirst(t,e){t.addFieldInt8(2,+e,1)}static addTimeoutMs(t,e){t.addFieldInt64(3,e,BigInt("0"))}static addMaxEvents(t,e){t.addFieldInt32(4,e,0)}static addSkipCache(t,e){t.addFieldInt8(5,+e,0)}static addForce(t,e){t.addFieldInt8(6,+e,0)}static addBytesPerEvent(t,e){t.addFieldInt32(7,e,0)}static endSubscriptionConfig(t){return t.endObject()}static createSubscriptionConfig(t,e,s,n,r,o,a,h,c){return u.startSubscriptionConfig(t),u.addPipeline(t,e),u.addCloseOnEose(t,s),u.addCacheFirst(t,n),u.addTimeoutMs(t,r),u.addMaxEvents(t,o),u.addSkipCache(t,a),u.addForce(t,h),u.addBytesPerEvent(t,c),u.endSubscriptionConfig(t)}unpack(){return new ct(this.pipeline()!==null?this.pipeline().unpack():null,this.closeOnEose(),this.cacheFirst(),this.timeoutMs(),this.maxEvents(),this.skipCache(),this.force(),this.bytesPerEvent())}unpackTo(t){t.pipeline=this.pipeline()!==null?this.pipeline().unpack():null,t.closeOnEose=this.closeOnEose(),t.cacheFirst=this.cacheFirst(),t.timeoutMs=this.timeoutMs(),t.maxEvents=this.maxEvents(),t.skipCache=this.skipCache(),t.force=this.force(),t.bytesPerEvent=this.bytesPerEvent()}}class ct{constructor(t=null,e=!1,s=!0,n=BigInt("0"),r=0,o=!1,a=!1,h=0){this.pipeline=t,this.closeOnEose=e,this.cacheFirst=s,this.timeoutMs=n,this.maxEvents=r,this.skipCache=o,this.force=a,this.bytesPerEvent=h}pack(t){const e=this.pipeline!==null?this.pipeline.pack(t):0;return u.createSubscriptionConfig(t,e,this.closeOnEose,this.cacheFirst,this.timeoutMs,this.maxEvents,this.skipCache,this.force,this.bytesPerEvent)}}class g{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsSubscribe(t,e){return(e||new g).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsSubscribe(t,e){return t.setPosition(t.position()+b),(e||new g).__init(t.readInt32(t.position())+t.position(),t)}subscriptionId(t){const e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__stringByteString(this.bb_pos+e,t):null}requests(t,e){const s=this.bb.__offset(this.bb_pos,6);return s?(e||new Lt).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+s)+t*4),this.bb):null}requestsLength(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}config(t){const e=this.bb.__offset(this.bb_pos,8);return e?(t||new u).__init(this.bb.__indirect(this.bb_pos+e),this.bb):null}static startSubscribe(t){t.startObject(3)}static addSubscriptionId(t,e){t.addFieldOffset(0,e,0)}static addRequests(t,e){t.addFieldOffset(1,e,0)}static createRequestsVector(t,e){t.startVector(4,e.length,4);for(let s=e.length-1;s>=0;s--)t.addOffset(e[s]);return t.endVector()}static startRequestsVector(t,e){t.startVector(4,e,4)}static addConfig(t,e){t.addFieldOffset(2,e,0)}static endSubscribe(t){const e=t.endObject();return t.requiredField(e,4),t.requiredField(e,6),t.requiredField(e,8),e}unpack(){return new bt(this.subscriptionId(),this.bb.createObjList(this.requests.bind(this),this.requestsLength()),this.config()!==null?this.config().unpack():null)}unpackTo(t){t.subscriptionId=this.subscriptionId(),t.requests=this.bb.createObjList(this.requests.bind(this),this.requestsLength()),t.config=this.config()!==null?this.config().unpack():null}}class bt{constructor(t=null,e=[],s=null){this.subscriptionId=t,this.requests=e,this.config=s}pack(t){const e=this.subscriptionId!==null?t.createString(this.subscriptionId):0,s=g.createRequestsVector(t,t.createObjectOffsetList(this.requests)),n=this.config!==null?this.config.pack(t):0;return g.startSubscribe(t),g.addSubscriptionId(t,e),g.addRequests(t,s),g.addConfig(t,n),g.endSubscribe(t)}}class K{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsUnsubscribe(t,e){return(e||new K).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsUnsubscribe(t,e){return t.setPosition(t.position()+b),(e||new K).__init(t.readInt32(t.position())+t.position(),t)}subscriptionId(t){const e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__stringByteString(this.bb_pos+e,t):null}static startUnsubscribe(t){t.startObject(1)}static addSubscriptionId(t,e){t.addFieldOffset(0,e,0)}static endUnsubscribe(t){const e=t.endObject();return t.requiredField(e,4),e}static createUnsubscribe(t,e){return K.startUnsubscribe(t),K.addSubscriptionId(t,e),K.endUnsubscribe(t)}unpack(){return new ht(this.subscriptionId())}unpackTo(t){t.subscriptionId=this.subscriptionId()}}class ht{constructor(t=null){this.subscriptionId=t}pack(t){const e=this.subscriptionId!==null?t.createString(this.subscriptionId):0;return K.createUnsubscribe(t,e)}}var l=(i=>(i[i.NONE=0]="NONE",i[i.Subscribe=1]="Subscribe",i[i.Unsubscribe=2]="Unsubscribe",i[i.Publish=3]="Publish",i[i.SignEvent=4]="SignEvent",i[i.SetSigner=5]="SetSigner",i[i.GetPublicKey=6]="GetPublicKey",i))(l||{});function Ct(i,t){switch(l[i]){case"NONE":return null;case"Subscribe":return t(new g);case"Unsubscribe":return t(new K);case"Publish":return t(new O);case"SignEvent":return t(new T);case"SetSigner":return t(new y);case"GetPublicKey":return t(new M);default:return null}}class m{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsMainMessage(t,e){return(e||new m).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsMainMessage(t,e){return t.setPosition(t.position()+b),(e||new m).__init(t.readInt32(t.position())+t.position(),t)}contentType(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readUint8(this.bb_pos+t):l.NONE}content(t){const e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__union(t,this.bb_pos+e):null}static startMainMessage(t){t.startObject(2)}static addContentType(t,e){t.addFieldInt8(0,e,l.NONE)}static addContent(t,e){t.addFieldOffset(1,e,0)}static endMainMessage(t){const e=t.endObject();return t.requiredField(e,6),e}static createMainMessage(t,e,s){return m.startMainMessage(t),m.addContentType(t,e),m.addContent(t,s),m.endMainMessage(t)}unpack(){return new N(this.contentType(),(()=>{const t=Ct(this.contentType(),this.content.bind(this));return t===null?null:t.unpack()})())}unpackTo(t){t.contentType=this.contentType(),t.content=(()=>{const e=Ct(this.contentType(),this.content.bind(this));return e===null?null:e.unpack()})()}}class N{constructor(t=l.NONE,e=null){this.contentType=t,this.content=e}pack(t){const e=t.createObjectOffset(this.content);return m.createMainMessage(t,this.contentType,e)}}var D=(i=>(i[i.Unknown=0]="Unknown",i[i.Event=1]="Event",i[i.Eose=2]="Eose",i[i.Ok=3]="Ok",i[i.Closed=4]="Closed",i[i.Notice=5]="Notice",i[i.Auth=6]="Auth",i))(D||{}),Ot=(i=>(i[i.Kind0Parsed=0]="Kind0Parsed",i[i.Kind1Parsed=1]="Kind1Parsed",i[i.Kind3Parsed=3]="Kind3Parsed",i[i.Kind4Parsed=4]="Kind4Parsed",i[i.Kind6Parsed=6]="Kind6Parsed",i[i.Kind7Parsed=7]="Kind7Parsed",i[i.Kind17Parsed=17]="Kind17Parsed",i[i.Kind7374Parsed=7374]="Kind7374Parsed",i[i.Kind7375Parsed=7375]="Kind7375Parsed",i[i.Kind7376Parsed=7376]="Kind7376Parsed",i[i.Kind9321Parsed=9321]="Kind9321Parsed",i[i.Kind9735Parsed=9735]="Kind9735Parsed",i[i.Kind10002Parsed=10002]="Kind10002Parsed",i[i.Kind10019Parsed=10019]="Kind10019Parsed",i[i.Kind17375Parsed=17375]="Kind17375Parsed",i[i.Kind39089Parsed=39089]="Kind39089Parsed",i))(Ot||{});class R{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsRelayRef(t,e){return(e||new R).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsRelayRef(t,e){return t.setPosition(t.position()+b),(e||new R).__init(t.readInt32(t.position())+t.position(),t)}url(t){const e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__stringByteString(this.bb_pos+e,t):null}static startRelayRef(t){t.startObject(1)}static addUrl(t,e){t.addFieldOffset(0,e,0)}static endRelayRef(t){const e=t.endObject();return t.requiredField(e,4),e}static createRelayRef(t,e){return R.startRelayRef(t),R.addUrl(t,e),R.endRelayRef(t)}unpack(){return new mt(this.url())}unpackTo(t){t.url=this.url()}}class mt{constructor(t=null){this.url=t}pack(t){const e=this.url!==null?t.createString(this.url):0;return R.createRelayRef(t,e)}}var vt=(i=>(i[i.CachedEvent=0]="CachedEvent",i[i.FetchedEvent=1]="FetchedEvent",i[i.Count=2]="Count",i[i.ConnectionStatus=3]="ConnectionStatus",i[i.Eoce=4]="Eoce",i[i.BufferFull=5]="BufferFull",i))(vt||{});class f{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsWorkerLine(t,e){return(e||new f).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsWorkerLine(t,e){return t.setPosition(t.position()+b),(e||new f).__init(t.readInt32(t.position())+t.position(),t)}relay(t){const e=this.bb.__offset(this.bb_pos,4);return e?(t||new R).__init(this.bb.__indirect(this.bb_pos+e),this.bb):null}kind(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readInt16(this.bb_pos+t):D.Unknown}subId(t){const e=this.bb.__offset(this.bb_pos,8);return e?this.bb.__stringByteString(this.bb_pos+e,t):null}raw(t){const e=this.bb.__offset(this.bb_pos,10);return e?this.bb.readUint8(this.bb.__vector(this.bb_pos+e)+t):0}rawLength(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.__vector_len(this.bb_pos+t):0}rawArray(){const t=this.bb.__offset(this.bb_pos,10);return t?new Uint8Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}static startWorkerLine(t){t.startObject(4)}static addRelay(t,e){t.addFieldOffset(0,e,0)}static addKind(t,e){t.addFieldInt16(1,e,D.Unknown)}static addSubId(t,e){t.addFieldOffset(2,e,0)}static addRaw(t,e){t.addFieldOffset(3,e,0)}static createRawVector(t,e){t.startVector(1,e.length,1);for(let s=e.length-1;s>=0;s--)t.addInt8(e[s]);return t.endVector()}static startRawVector(t,e){t.startVector(1,e,1)}static endWorkerLine(t){const e=t.endObject();return t.requiredField(e,4),t.requiredField(e,10),e}static createWorkerLine(t,e,s,n,r){return f.startWorkerLine(t),f.addRelay(t,e),f.addKind(t,s),f.addSubId(t,n),f.addRaw(t,r),f.endWorkerLine(t)}unpack(){return new Tt(this.relay()!==null?this.relay().unpack():null,this.kind(),this.subId(),this.bb.createScalarList(this.raw.bind(this),this.rawLength()))}unpackTo(t){t.relay=this.relay()!==null?this.relay().unpack():null,t.kind=this.kind(),t.subId=this.subId(),t.raw=this.bb.createScalarList(this.raw.bind(this),this.rawLength())}}class Tt{constructor(t=null,e=D.Unknown,s=null,n=[]){this.relay=t,this.kind=e,this.subId=s,this.raw=n}pack(t){const e=this.relay!==null?this.relay.pack(t):0,s=this.subId!==null?t.createString(this.subId):0,n=f.createRawVector(t,this.raw);return f.createWorkerLine(t,e,this.kind,s,n)}}class P{constructor(){this.bb=null,this.bb_pos=0}__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsWorkerMessage(t,e){return(e||new P).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsWorkerMessage(t,e){return t.setPosition(t.position()+b),(e||new P).__init(t.readInt32(t.position())+t.position(),t)}type(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readUint32(this.bb_pos+t):Z.ParsedNostrEvent}contentType(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readUint8(this.bb_pos+t):tt.NONE}content(t){const e=this.bb.__offset(this.bb_pos,8);return e?this.bb.__union(t,this.bb_pos+e):null}static startWorkerMessage(t){t.startObject(3)}static addType(t,e){t.addFieldInt32(0,e,Z.ParsedNostrEvent)}static addContentType(t,e){t.addFieldInt8(1,e,tt.NONE)}static addContent(t,e){t.addFieldOffset(2,e,0)}static endWorkerMessage(t){return t.endObject()}static finishWorkerMessageBuffer(t,e){t.finish(e)}static finishSizePrefixedWorkerMessageBuffer(t,e){t.finish(e,void 0,!0)}static createWorkerMessage(t,e,s,n){return P.startWorkerMessage(t),P.addType(t,e),P.addContentType(t,s),P.addContent(t,n),P.endWorkerMessage(t)}unpack(){return new Ft(this.type(),this.contentType(),(()=>{const t=ut(this.contentType(),this.content.bind(this));return t===null?null:t.unpack()})())}unpackTo(t){t.type=this.type(),t.contentType=this.contentType(),t.content=(()=>{const e=ut(this.contentType(),this.content.bind(this));return e===null?null:e.unpack()})()}}class Ft{constructor(t=Z.ParsedNostrEvent,e=tt.NONE,s=null){this.type=t,this.contentType=e,this.content=s}pack(t){const e=t.createObjectOffset(this.content);return P.createWorkerMessage(t,this.type,this.contentType,e)}}class G{static initializeBuffer(t){new DataView(t).setUint32(0,4,!0)}static writeMessage(t,e){const s=new DataView(t),n=new Uint8Array(t),r=s.getUint32(0,!0),o=4+e.length;if(r+o>t.byteLength)return console.warn("Buffer full, cannot write message"),!1;s.setUint32(r,e.length,!0),n.set(e,r+4);const a=r+o;return s.setUint32(0,a,!0),!0}static writeMessageObject(t,e){try{const s=jt(e);return this.writeMessage(t,new Uint8Array(s))}catch(s){return console.error("Failed to encode message:",s),!1}}static readMessages(t,e=0){const s=new DataView(t),n=new Uint8Array(t),r=s.getUint32(0,!0),o=4;let a=e<o?o:e;if(r<=a)return{messages:[],newReadPosition:a,hasNewData:!1};const h=128,c=new Array(h);let C=0;try{for(;a<r&&!(C>=h||a+4>r);){const U=a,X=s.getUint32(U,!0),V=U+4,z=V+X;if(z>r)break;const H=n.subarray(V,z),d=new Q(H),q=P.getRootAsWorkerMessage(d);c[C++]=q,a=z}return c.length=C,{messages:c,newReadPosition:a,hasNewData:C>0}}catch(U){return console.error("Failed to decode FlatBuffer data from SharedArrayBuffer:",U),c.length=C,{messages:c,newReadPosition:e<o?o:e,hasNewData:!1}}}static readAllMessages(t){const e=this.readMessages(t,0);return{messages:e.messages,totalMessages:e.messages.length}}static getCurrentWritePosition(t){return new DataView(t).getUint32(0,!0)}static hasNewData(t,e){const s=this.getCurrentWritePosition(t),n=Math.max(e,4);return s>n}static calculateBufferSize(t=100,e=3072){const s=t*e,n=Math.floor(s*.25);return 4+s+n}}let Et=null,dt=null;async function Vt(){return dt||(dt=fetch(Mt).then(i=>{if(!i.ok)throw new Error(`Failed to fetch WASM: ${i.status} ${i.statusText}`);return i.arrayBuffer()}).then(i=>{Et=i}).catch(i=>{throw console.error("WASM fetch failed:",i),i}),dt)}class Kt{constructor(t){this.textEncoder=new TextEncoder,this.subscriptions=new Map,this.publishes=new Map,this.signers=new Map,this.signCB=s=>{},this.eventTarget=new EventTarget,this.PERPETUAL_SUBSCRIPTIONS=["notifications","starterpack"],this._ready=null,this.config=t;const e=()=>void this.init();"requestIdleCallback"in window?window.requestIdleCallback(e,{timeout:2e3}):setTimeout(e,1500)}init(){return this._ready?this._ready:(this.worker=this.createWorker(),this.setupWorkerListener(),this._ready=(async()=>{await Vt();const t=Et.slice(0);this.worker.postMessage({type:"init",payload:{bufferKey:this.config.bufferKey,maxBufferSize:this.config.maxBufferSize,wasmBuffer:t,inRing:this.config.inRing,outRing:this.config.outRing}},[t])})(),this._ready)}postToWorker(t,e){return this.init().then(()=>{e&&e.length?this.worker.postMessage(t,e):this.worker.postMessage(t)})}createWorker(){return new At}setupWorkerListener(){this.worker.onmessage=async t=>{const e=typeof t.data=="string"?t.data:void 0;try{if(t.data.startsWith('{"id":')){const s=JSON.parse(t.data);this.signCB(s)}}catch{}if(e){if(this.subscriptions.has(e)){this.dispatch(`subscription:${e}`,e);return}if(this.publishes.has(e)){this.dispatch(`publish:${e}`,e);return}}},this.worker.onerror=t=>{console.error("Worker error:",t)}}createShortId(t){if(t.length<64)return t;let e=0;for(let s=0;s<t.length;s++){const n=t.charCodeAt(s);e=(e<<5)-e+n,e=e&e}return Math.abs(e).toString(36).substring(0,63)}addEventListener(t,e,s){this.eventTarget.addEventListener(t,e,s)}removeEventListener(t,e,s){this.eventTarget.removeEventListener(t,e,s)}dispatch(t,e){this.eventTarget.dispatchEvent(new CustomEvent(t,{detail:e}))}subscribe(t,e,s){const n=this.createShortId(t),r=this.subscriptions.get(n);if(r)return r.refCount++,r.buffer;const o=e.reduce((d,q)=>d+(q.limit||100),0),a=G.calculateBufferSize(o,s.bytesPerEvent);let h=new Uint8Array;const c=new SharedArrayBuffer(a+h.length);G.initializeBuffer(c),h.length>0&&(G.writeMessage(c,h)||console.error("Failed to write initial message to buffer")),this.subscriptions.set(n,{buffer:c,options:s,refCount:1});const C=new ct(new at(s.pipeline||[]),s.closeOnEose,s.cacheFirst,s.timeoutMs?BigInt(s.timeoutMs):void 0,s.maxEvents,s.skipCache,s.force,s.bytesPerEvent),U=new bt(this.textEncoder.encode(n),e.map(d=>new Ut(d.ids,d.authors,d.kinds,Object.entries(d.tags||{}).flatMap(([q,Nt])=>new et([q,...Nt])),d.limit,d.since,d.until,this.textEncoder.encode(d.search),d.relays,d.closeOnEOSE,d.cacheFirst)),C),X=new N(l.Subscribe,U),V=new A(2048),z=X.pack(V);V.finish(z);const H=V.asUint8Array();try{return this.postToWorker({serializedMessage:H,sharedBuffer:c}),c}catch(d){throw this.subscriptions.delete(n),d}}getBuffer(t){const e=this.subscriptions.get(t);if(e)return e.refCount++,e.buffer}unsubscribe(t){const e=t.length<64?t:this.createShortId(t),s=this.subscriptions.get(e);s&&s.refCount--}publish(t,e){const s=new SharedArrayBuffer(3072);G.initializeBuffer(s);try{const n=new J(e.kind,this.textEncoder.encode(e.content),e.tags.map(C=>new et(C))||[]),r=new it(this.textEncoder.encode(t),n),o=new N(l.Publish,r),a=new A(2048),h=o.pack(a);a.finish(h);const c=a.asUint8Array();return this.postToWorker({serializedMessage:c,sharedBuffer:s}),this.publishes.set(t,{buffer:s}),s}catch(n){throw console.error("Failed to publish event:",n),n}}setSigner(t,e){console.log("setSigner",t,e);const s=new nt(this.textEncoder.encode(e)),n=new rt(L.PrivateKey,s),r=new N(l.SetSigner,n),o=new A(2048),a=r.pack(o);o.finish(a);const h=o.asUint8Array();this.postToWorker(h),this.signers.set(t,e)}signEvent(t,e){const s=new N(l.SignEvent,new ot(new J(t.kind,this.textEncoder.encode(t.content),t.tags.map(a=>new et(a))))),n=new A(2048),r=s.pack(n);n.finish(r);const o=n.asUint8Array();this.signCB=e,this.worker.postMessage(o)}getPublicKey(){const t=new N(l.GetPublicKey,new st),e=new A(2048),s=t.pack(e);e.finish(s);const n=e.asUint8Array();this.worker.postMessage(n)}cleanup(){const t=[];for(const[e,s]of this.subscriptions.entries())s.refCount<=0&&!this.PERPETUAL_SUBSCRIPTIONS.includes(e)&&t.push(e);for(const e of t)if(this.subscriptions.get(e)){const s=new N(l.Unsubscribe,new ht(this.textEncoder.encode(e))),n=new A(2048),r=s.pack(n);n.finish(r);const o=n.asUint8Array();this.worker.postMessage(o),this.subscriptions.delete(e)}}}class Rt{constructor(t={},e=2){this.inRings=[],this.outRings=[],this.managers=[];for(let n=0;n<e;n++){const r=new SharedArrayBuffer(1048576),o=new SharedArrayBuffer(5*1024*1024);pt(r),pt(o),this.inRings.push(r),this.outRings.push(o),this.managers.push(new Kt({bufferKey:n.toString(),maxBufferSize:2e6,inRing:r,outRing:o}))}const s=new URL("./ws/index.js",import.meta.url);this.worker=new Worker(s,{type:"module"}),this.worker.onerror=n=>{console.error("WS Worker error:",n)},console.log("ok",s,this.worker),this.worker.postMessage({type:"init",payload:{inRings:this.inRings,outRings:this.outRings,relayConfig:t}})}hashSubId(t){const e=t.includes("_")?t.split("_")[1]??"":t;let s=0;for(let n=0;n<e.length;n++)s=(s<<5)-s+e.charCodeAt(n);return Math.abs(s)%this.managers.length}createShortId(t){const e=(s,n)=>{let r=0;for(let o=0;o<s.length;o++){const a=s.charCodeAt(o);r=(r<<5)-r+a,r=r&r}return Math.abs(r).toString(36).substring(0,Math.max(1,n))};if(t.includes("_")){const[s,...n]=t.split("_"),r=n.join("_"),o=Math.max(1,Math.floor(62/2)),a=e(s??"",o),h=e(r??"",o),c=`${a}_${h}`;return c.length>63?c.substring(0,63):c}return t.length<64?t:e(t,63)}cleanup(){for(const t of this.managers)t.cleanup()}setSigner(t,e){for(const s of this.managers)s.setSigner(t,e)}getManager(t){if(t?.length>64)throw new Error("subId cannot exceed 64 characters");const e=this.hashSubId(t||"");return this.managers[e]}resetInputLoopBackoff(){this.worker.postMessage({type:"wake"})}}const Bt=new Rt({});export{Ft as $,E as A,kt as B,w as C,y as D,rt as E,T as F,M as G,ot as H,L as I,g as J,S as K,bt as L,l as M,Rt as N,vt as O,j as P,u as Q,R,G as S,ct as T,p as U,J as V,K as W,ht as X,f as Y,Tt as Z,P as _,Kt as a,lt as b,st as c,ft as d,m as e,N as f,D as g,_ as h,_t as i,Pt as j,Ot as k,k as l,It as m,Bt as n,B as o,I as p,at as q,v as r,nt as s,F as t,wt as u,O as v,it as w,mt as x,x as y,yt as z};
|
|
1
|
+
import Lt from"@candypoets/rust-worker/worker.js?worker";import At from"@candypoets/rust-worker/rust_worker_bg.wasm?url";import*as c from"flatbuffers";import{ByteBuffer as Mt}from"flatbuffers";import{S as xt,R as Ut,M as X,d as $,u as bt,e as jt,f as J}from"./message-type.js";import{B as ht,C as Vt}from"./registry.js";class k{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsCounterPipeConfig(t,s){return(s||new k).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsCounterPipeConfig(t,s){return t.setPosition(t.position()+c.SIZE_PREFIX_LENGTH),(s||new k).__init(t.readInt32(t.position())+t.position(),t)}kinds(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.readUint16(this.bb.__vector(this.bb_pos+s)+t*2):0}kindsLength(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}kindsArray(){const t=this.bb.__offset(this.bb_pos,4);return t?new Uint16Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}pubkey(t){const s=this.bb.__offset(this.bb_pos,6);return s?this.bb.__stringByteString(this.bb_pos+s,t):null}static startCounterPipeConfig(t){t.startObject(2)}static addKinds(t,s){t.addFieldOffset(0,s,0)}static createKindsVector(t,s){t.startVector(2,s.length,2);for(let e=s.length-1;e>=0;e--)t.addInt16(s[e]);return t.endVector()}static startKindsVector(t,s){t.startVector(2,s,2)}static addPubkey(t,s){t.addFieldOffset(1,s,0)}static endCounterPipeConfig(t){const s=t.endObject();return t.requiredField(s,4),t.requiredField(s,6),s}static createCounterPipeConfig(t,s,e){return k.startCounterPipeConfig(t),k.addKinds(t,s),k.addPubkey(t,e),k.endCounterPipeConfig(t)}unpack(){return new ut(this.bb.createScalarList(this.kinds.bind(this),this.kindsLength()),this.pubkey())}unpackTo(t){t.kinds=this.bb.createScalarList(this.kinds.bind(this),this.kindsLength()),t.pubkey=this.pubkey()}}class ut{constructor(t=[],s=null){this.kinds=t,this.pubkey=s}pack(t){const s=k.createKindsVector(t,this.kinds),e=this.pubkey!==null?t.createString(this.pubkey):0;return k.createCounterPipeConfig(t,s,e)}}class A{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsGetPublicKey(t,s){return(s||new A).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsGetPublicKey(t,s){return t.setPosition(t.position()+c.SIZE_PREFIX_LENGTH),(s||new A).__init(t.readInt32(t.position())+t.position(),t)}static startGetPublicKey(t){t.startObject(0)}static endGetPublicKey(t){return t.endObject()}static createGetPublicKey(t){return A.startGetPublicKey(t),A.endGetPublicKey(t)}unpack(){return new Q}unpackTo(t){}}class Q{constructor(){}pack(t){return A.createGetPublicKey(t)}}class T{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsKindFilterPipeConfig(t,s){return(s||new T).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsKindFilterPipeConfig(t,s){return t.setPosition(t.position()+c.SIZE_PREFIX_LENGTH),(s||new T).__init(t.readInt32(t.position())+t.position(),t)}kinds(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.readUint16(this.bb.__vector(this.bb_pos+s)+t*2):0}kindsLength(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}kindsArray(){const t=this.bb.__offset(this.bb_pos,4);return t?new Uint16Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}static startKindFilterPipeConfig(t){t.startObject(1)}static addKinds(t,s){t.addFieldOffset(0,s,0)}static createKindsVector(t,s){t.startVector(2,s.length,2);for(let e=s.length-1;e>=0;e--)t.addInt16(s[e]);return t.endVector()}static startKindsVector(t,s){t.startVector(2,s,2)}static endKindFilterPipeConfig(t){const s=t.endObject();return t.requiredField(s,4),s}static createKindFilterPipeConfig(t,s){return T.startKindFilterPipeConfig(t),T.addKinds(t,s),T.endKindFilterPipeConfig(t)}unpack(){return new dt(this.bb.createScalarList(this.kinds.bind(this),this.kindsLength()))}unpackTo(t){t.kinds=this.bb.createScalarList(this.kinds.bind(this),this.kindsLength())}}class dt{constructor(t=[]){this.kinds=t}pack(t){const s=T.createKindsVector(t,this.kinds);return T.createKindFilterPipeConfig(t,s)}}class p{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsTemplate(t,s){return(s||new p).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsTemplate(t,s){return t.setPosition(t.position()+c.SIZE_PREFIX_LENGTH),(s||new p).__init(t.readInt32(t.position())+t.position(),t)}kind(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readUint16(this.bb_pos+t):0}content(t){const s=this.bb.__offset(this.bb_pos,6);return s?this.bb.__stringByteString(this.bb_pos+s,t):null}tags(t,s){const e=this.bb.__offset(this.bb_pos,8);return e?(s||new xt).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}tagsLength(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}static startTemplate(t){t.startObject(3)}static addKind(t,s){t.addFieldInt16(0,s,0)}static addContent(t,s){t.addFieldOffset(1,s,0)}static addTags(t,s){t.addFieldOffset(2,s,0)}static createTagsVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startTagsVector(t,s){t.startVector(4,s,4)}static endTemplate(t){const s=t.endObject();return t.requiredField(s,6),t.requiredField(s,8),s}static createTemplate(t,s,e,n){return p.startTemplate(t),p.addKind(t,s),p.addContent(t,e),p.addTags(t,n),p.endTemplate(t)}unpack(){return new W(this.kind(),this.content(),this.bb.createObjList(this.tags.bind(this),this.tagsLength()))}unpackTo(t){t.kind=this.kind(),t.content=this.content(),t.tags=this.bb.createObjList(this.tags.bind(this),this.tagsLength())}}class W{constructor(t=0,s=null,e=[]){this.kind=t,this.content=s,this.tags=e}pack(t){const s=this.content!==null?t.createString(this.content):0,e=p.createTagsVector(t,t.createObjectOffsetList(this.tags));return p.createTemplate(t,this.kind,s,e)}}class C{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsPublish(t,s){return(s||new C).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsPublish(t,s){return t.setPosition(t.position()+c.SIZE_PREFIX_LENGTH),(s||new C).__init(t.readInt32(t.position())+t.position(),t)}publishId(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.__stringByteString(this.bb_pos+s,t):null}template(t){const s=this.bb.__offset(this.bb_pos,6);return s?(t||new p).__init(this.bb.__indirect(this.bb_pos+s),this.bb):null}static startPublish(t){t.startObject(2)}static addPublishId(t,s){t.addFieldOffset(0,s,0)}static addTemplate(t,s){t.addFieldOffset(1,s,0)}static endPublish(t){const s=t.endObject();return t.requiredField(s,4),t.requiredField(s,6),s}unpack(){return new Y(this.publishId(),this.template()!==null?this.template().unpack():null)}unpackTo(t){t.publishId=this.publishId(),t.template=this.template()!==null?this.template().unpack():null}}class Y{constructor(t=null,s=null){this.publishId=t,this.template=s}pack(t){const s=this.publishId!==null?t.createString(this.publishId):0,e=this.template!==null?this.template.pack(t):0;return C.startPublish(t),C.addPublishId(t,s),C.addTemplate(t,e),C.endPublish(t)}}class R{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsPrivateKey(t,s){return(s||new R).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsPrivateKey(t,s){return t.setPosition(t.position()+c.SIZE_PREFIX_LENGTH),(s||new R).__init(t.readInt32(t.position())+t.position(),t)}privateKey(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.__stringByteString(this.bb_pos+s,t):null}static startPrivateKey(t){t.startObject(1)}static addPrivateKey(t,s){t.addFieldOffset(0,s,0)}static endPrivateKey(t){const s=t.endObject();return t.requiredField(s,4),s}static createPrivateKey(t,s){return R.startPrivateKey(t),R.addPrivateKey(t,s),R.endPrivateKey(t)}unpack(){return new tt(this.privateKey())}unpackTo(t){t.privateKey=this.privateKey()}}class tt{constructor(t=null){this.privateKey=t}pack(t){const s=this.privateKey!==null?t.createString(this.privateKey):0;return R.createPrivateKey(t,s)}}var U=(i=>(i[i.NONE=0]="NONE",i[i.PrivateKey=1]="PrivateKey",i))(U||{});function pt(i,t){switch(U[i]){case"NONE":return null;case"PrivateKey":return t(new R);default:return null}}class S{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsSetSigner(t,s){return(s||new S).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsSetSigner(t,s){return t.setPosition(t.position()+c.SIZE_PREFIX_LENGTH),(s||new S).__init(t.readInt32(t.position())+t.position(),t)}signerTypeType(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readUint8(this.bb_pos+t):U.NONE}signerType(t){const s=this.bb.__offset(this.bb_pos,6);return s?this.bb.__union(t,this.bb_pos+s):null}static startSetSigner(t){t.startObject(2)}static addSignerTypeType(t,s){t.addFieldInt8(0,s,U.NONE)}static addSignerType(t,s){t.addFieldOffset(1,s,0)}static endSetSigner(t){const s=t.endObject();return t.requiredField(s,6),s}static createSetSigner(t,s,e){return S.startSetSigner(t),S.addSignerTypeType(t,s),S.addSignerType(t,e),S.endSetSigner(t)}unpack(){return new st(this.signerTypeType(),(()=>{const t=pt(this.signerTypeType(),this.signerType.bind(this));return t===null?null:t.unpack()})())}unpackTo(t){t.signerTypeType=this.signerTypeType(),t.signerType=(()=>{const s=pt(this.signerTypeType(),this.signerType.bind(this));return s===null?null:s.unpack()})()}}class st{constructor(t=U.NONE,s=null){this.signerTypeType=t,this.signerType=s}pack(t){const s=t.createObjectOffset(this.signerType);return S.createSetSigner(t,this.signerTypeType,s)}}class O{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsSignEvent(t,s){return(s||new O).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsSignEvent(t,s){return t.setPosition(t.position()+c.SIZE_PREFIX_LENGTH),(s||new O).__init(t.readInt32(t.position())+t.position(),t)}template(t){const s=this.bb.__offset(this.bb_pos,4);return s?(t||new p).__init(this.bb.__indirect(this.bb_pos+s),this.bb):null}static startSignEvent(t){t.startObject(1)}static addTemplate(t,s){t.addFieldOffset(0,s,0)}static endSignEvent(t){const s=t.endObject();return t.requiredField(s,4),s}static createSignEvent(t,s){return O.startSignEvent(t),O.addTemplate(t,s),O.endSignEvent(t)}unpack(){return new it(this.template()!==null?this.template().unpack():null)}unpackTo(t){t.template=this.template()!==null?this.template().unpack():null}}class it{constructor(t=null){this.template=t}pack(t){const s=this.template!==null?this.template.pack(t):0;return O.createSignEvent(t,s)}}class y{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsNpubLimiterPipeConfig(t,s){return(s||new y).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsNpubLimiterPipeConfig(t,s){return t.setPosition(t.position()+c.SIZE_PREFIX_LENGTH),(s||new y).__init(t.readInt32(t.position())+t.position(),t)}kind(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readUint16(this.bb_pos+t):0}limitPerNpub(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readUint32(this.bb_pos+t):0}maxTotalNpubs(){const t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readUint32(this.bb_pos+t):0}static startNpubLimiterPipeConfig(t){t.startObject(3)}static addKind(t,s){t.addFieldInt16(0,s,0)}static addLimitPerNpub(t,s){t.addFieldInt32(1,s,0)}static addMaxTotalNpubs(t,s){t.addFieldInt32(2,s,0)}static endNpubLimiterPipeConfig(t){return t.endObject()}static createNpubLimiterPipeConfig(t,s,e,n){return y.startNpubLimiterPipeConfig(t),y.addKind(t,s),y.addLimitPerNpub(t,e),y.addMaxTotalNpubs(t,n),y.endNpubLimiterPipeConfig(t)}unpack(){return new lt(this.kind(),this.limitPerNpub(),this.maxTotalNpubs())}unpackTo(t){t.kind=this.kind(),t.limitPerNpub=this.limitPerNpub(),t.maxTotalNpubs=this.maxTotalNpubs()}}class lt{constructor(t=0,s=0,e=0){this.kind=t,this.limitPerNpub=s,this.maxTotalNpubs=e}pack(t){return y.createNpubLimiterPipeConfig(t,this.kind,this.limitPerNpub,this.maxTotalNpubs)}}class M{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsParsePipeConfig(t,s){return(s||new M).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsParsePipeConfig(t,s){return t.setPosition(t.position()+c.SIZE_PREFIX_LENGTH),(s||new M).__init(t.readInt32(t.position())+t.position(),t)}static startParsePipeConfig(t){t.startObject(0)}static endParsePipeConfig(t){return t.endObject()}static createParsePipeConfig(t){return M.startParsePipeConfig(t),M.endParsePipeConfig(t)}unpack(){return new ft}unpackTo(t){}}class ft{constructor(){}pack(t){return M.createParsePipeConfig(t)}}class v{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsProofVerificationPipeConfig(t,s){return(s||new v).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsProofVerificationPipeConfig(t,s){return t.setPosition(t.position()+c.SIZE_PREFIX_LENGTH),(s||new v).__init(t.readInt32(t.position())+t.position(),t)}maxProofs(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readUint32(this.bb_pos+t):0}static startProofVerificationPipeConfig(t){t.startObject(1)}static addMaxProofs(t,s){t.addFieldInt32(0,s,0)}static endProofVerificationPipeConfig(t){return t.endObject()}static createProofVerificationPipeConfig(t,s){return v.startProofVerificationPipeConfig(t),v.addMaxProofs(t,s),v.endProofVerificationPipeConfig(t)}unpack(){return new gt(this.maxProofs())}unpackTo(t){t.maxProofs=this.maxProofs()}}class gt{constructor(t=0){this.maxProofs=t}pack(t){return v.createProofVerificationPipeConfig(t,this.maxProofs)}}class x{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsSaveToDbPipeConfig(t,s){return(s||new x).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsSaveToDbPipeConfig(t,s){return t.setPosition(t.position()+c.SIZE_PREFIX_LENGTH),(s||new x).__init(t.readInt32(t.position())+t.position(),t)}static startSaveToDbPipeConfig(t){t.startObject(0)}static endSaveToDbPipeConfig(t){return t.endObject()}static createSaveToDbPipeConfig(t){return x.startSaveToDbPipeConfig(t),x.endSaveToDbPipeConfig(t)}unpack(){return new _t}unpackTo(t){}}class _t{constructor(){}pack(t){return x.createSaveToDbPipeConfig(t)}}class F{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsSerializeEventsPipeConfig(t,s){return(s||new F).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsSerializeEventsPipeConfig(t,s){return t.setPosition(t.position()+c.SIZE_PREFIX_LENGTH),(s||new F).__init(t.readInt32(t.position())+t.position(),t)}subscriptionId(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.__stringByteString(this.bb_pos+s,t):null}static startSerializeEventsPipeConfig(t){t.startObject(1)}static addSubscriptionId(t,s){t.addFieldOffset(0,s,0)}static endSerializeEventsPipeConfig(t){const s=t.endObject();return t.requiredField(s,4),s}static createSerializeEventsPipeConfig(t,s){return F.startSerializeEventsPipeConfig(t),F.addSubscriptionId(t,s),F.endSerializeEventsPipeConfig(t)}unpack(){return new Pt(this.subscriptionId())}unpackTo(t){t.subscriptionId=this.subscriptionId()}}class Pt{constructor(t=null){this.subscriptionId=t}pack(t){const s=this.subscriptionId!==null?t.createString(this.subscriptionId):0;return F.createSerializeEventsPipeConfig(t,s)}}var V=(i=>(i[i.NONE=0]="NONE",i[i.ParsePipeConfig=1]="ParsePipeConfig",i[i.KindFilterPipeConfig=2]="KindFilterPipeConfig",i[i.CounterPipeConfig=3]="CounterPipeConfig",i[i.NpubLimiterPipeConfig=4]="NpubLimiterPipeConfig",i[i.SaveToDbPipeConfig=5]="SaveToDbPipeConfig",i[i.SerializeEventsPipeConfig=6]="SerializeEventsPipeConfig",i[i.ProofVerificationPipeConfig=7]="ProofVerificationPipeConfig",i))(V||{});function yt(i,t){switch(V[i]){case"NONE":return null;case"ParsePipeConfig":return t(new M);case"KindFilterPipeConfig":return t(new T);case"CounterPipeConfig":return t(new k);case"NpubLimiterPipeConfig":return t(new y);case"SaveToDbPipeConfig":return t(new x);case"SerializeEventsPipeConfig":return t(new F);case"ProofVerificationPipeConfig":return t(new v);default:return null}}class I{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsPipe(t,s){return(s||new I).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsPipe(t,s){return t.setPosition(t.position()+c.SIZE_PREFIX_LENGTH),(s||new I).__init(t.readInt32(t.position())+t.position(),t)}configType(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readUint8(this.bb_pos+t):V.NONE}config(t){const s=this.bb.__offset(this.bb_pos,6);return s?this.bb.__union(t,this.bb_pos+s):null}static startPipe(t){t.startObject(2)}static addConfigType(t,s){t.addFieldInt8(0,s,V.NONE)}static addConfig(t,s){t.addFieldOffset(1,s,0)}static endPipe(t){const s=t.endObject();return t.requiredField(s,6),s}static createPipe(t,s,e){return I.startPipe(t),I.addConfigType(t,s),I.addConfig(t,e),I.endPipe(t)}unpack(){return new wt(this.configType(),(()=>{const t=yt(this.configType(),this.config.bind(this));return t===null?null:t.unpack()})())}unpackTo(t){t.configType=this.configType(),t.config=(()=>{const s=yt(this.configType(),this.config.bind(this));return s===null?null:s.unpack()})()}}class wt{constructor(t=V.NONE,s=null){this.configType=t,this.config=s}pack(t){const s=t.createObjectOffset(this.config);return I.createPipe(t,this.configType,s)}}class E{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsPipelineConfig(t,s){return(s||new E).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsPipelineConfig(t,s){return t.setPosition(t.position()+c.SIZE_PREFIX_LENGTH),(s||new E).__init(t.readInt32(t.position())+t.position(),t)}pipes(t,s){const e=this.bb.__offset(this.bb_pos,4);return e?(s||new I).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}pipesLength(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__vector_len(this.bb_pos+t):0}static startPipelineConfig(t){t.startObject(1)}static addPipes(t,s){t.addFieldOffset(0,s,0)}static createPipesVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startPipesVector(t,s){t.startVector(4,s,4)}static endPipelineConfig(t){const s=t.endObject();return t.requiredField(s,4),s}static createPipelineConfig(t,s){return E.startPipelineConfig(t),E.addPipes(t,s),E.endPipelineConfig(t)}unpack(){return new et(this.bb.createObjList(this.pipes.bind(this),this.pipesLength()))}unpackTo(t){t.pipes=this.bb.createObjList(this.pipes.bind(this),this.pipesLength())}}class et{constructor(t=[]){this.pipes=t}pack(t){const s=E.createPipesVector(t,t.createObjectOffsetList(this.pipes));return E.createPipelineConfig(t,s)}}class d{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsSubscriptionConfig(t,s){return(s||new d).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsSubscriptionConfig(t,s){return t.setPosition(t.position()+c.SIZE_PREFIX_LENGTH),(s||new d).__init(t.readInt32(t.position())+t.position(),t)}pipeline(t){const s=this.bb.__offset(this.bb_pos,4);return s?(t||new E).__init(this.bb.__indirect(this.bb_pos+s),this.bb):null}closeOnEose(){const t=this.bb.__offset(this.bb_pos,6);return t?!!this.bb.readInt8(this.bb_pos+t):!1}cacheFirst(){const t=this.bb.__offset(this.bb_pos,8);return t?!!this.bb.readInt8(this.bb_pos+t):!0}timeoutMs(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readUint64(this.bb_pos+t):BigInt("0")}maxEvents(){const t=this.bb.__offset(this.bb_pos,12);return t?this.bb.readUint32(this.bb_pos+t):0}skipCache(){const t=this.bb.__offset(this.bb_pos,14);return t?!!this.bb.readInt8(this.bb_pos+t):!1}force(){const t=this.bb.__offset(this.bb_pos,16);return t?!!this.bb.readInt8(this.bb_pos+t):!1}bytesPerEvent(){const t=this.bb.__offset(this.bb_pos,18);return t?this.bb.readUint32(this.bb_pos+t):0}static startSubscriptionConfig(t){t.startObject(8)}static addPipeline(t,s){t.addFieldOffset(0,s,0)}static addCloseOnEose(t,s){t.addFieldInt8(1,+s,0)}static addCacheFirst(t,s){t.addFieldInt8(2,+s,1)}static addTimeoutMs(t,s){t.addFieldInt64(3,s,BigInt("0"))}static addMaxEvents(t,s){t.addFieldInt32(4,s,0)}static addSkipCache(t,s){t.addFieldInt8(5,+s,0)}static addForce(t,s){t.addFieldInt8(6,+s,0)}static addBytesPerEvent(t,s){t.addFieldInt32(7,s,0)}static endSubscriptionConfig(t){return t.endObject()}static createSubscriptionConfig(t,s,e,n,r,o,a,b,h){return d.startSubscriptionConfig(t),d.addPipeline(t,s),d.addCloseOnEose(t,e),d.addCacheFirst(t,n),d.addTimeoutMs(t,r),d.addMaxEvents(t,o),d.addSkipCache(t,a),d.addForce(t,b),d.addBytesPerEvent(t,h),d.endSubscriptionConfig(t)}unpack(){return new nt(this.pipeline()!==null?this.pipeline().unpack():null,this.closeOnEose(),this.cacheFirst(),this.timeoutMs(),this.maxEvents(),this.skipCache(),this.force(),this.bytesPerEvent())}unpackTo(t){t.pipeline=this.pipeline()!==null?this.pipeline().unpack():null,t.closeOnEose=this.closeOnEose(),t.cacheFirst=this.cacheFirst(),t.timeoutMs=this.timeoutMs(),t.maxEvents=this.maxEvents(),t.skipCache=this.skipCache(),t.force=this.force(),t.bytesPerEvent=this.bytesPerEvent()}}class nt{constructor(t=null,s=!1,e=!0,n=BigInt("0"),r=0,o=!1,a=!1,b=0){this.pipeline=t,this.closeOnEose=s,this.cacheFirst=e,this.timeoutMs=n,this.maxEvents=r,this.skipCache=o,this.force=a,this.bytesPerEvent=b}pack(t){const s=this.pipeline!==null?this.pipeline.pack(t):0;return d.createSubscriptionConfig(t,s,this.closeOnEose,this.cacheFirst,this.timeoutMs,this.maxEvents,this.skipCache,this.force,this.bytesPerEvent)}}class P{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsSubscribe(t,s){return(s||new P).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsSubscribe(t,s){return t.setPosition(t.position()+c.SIZE_PREFIX_LENGTH),(s||new P).__init(t.readInt32(t.position())+t.position(),t)}subscriptionId(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.__stringByteString(this.bb_pos+s,t):null}requests(t,s){const e=this.bb.__offset(this.bb_pos,6);return e?(s||new Ut).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+e)+t*4),this.bb):null}requestsLength(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}config(t){const s=this.bb.__offset(this.bb_pos,8);return s?(t||new d).__init(this.bb.__indirect(this.bb_pos+s),this.bb):null}static startSubscribe(t){t.startObject(3)}static addSubscriptionId(t,s){t.addFieldOffset(0,s,0)}static addRequests(t,s){t.addFieldOffset(1,s,0)}static createRequestsVector(t,s){t.startVector(4,s.length,4);for(let e=s.length-1;e>=0;e--)t.addOffset(s[e]);return t.endVector()}static startRequestsVector(t,s){t.startVector(4,s,4)}static addConfig(t,s){t.addFieldOffset(2,s,0)}static endSubscribe(t){const s=t.endObject();return t.requiredField(s,4),t.requiredField(s,6),t.requiredField(s,8),s}unpack(){return new rt(this.subscriptionId(),this.bb.createObjList(this.requests.bind(this),this.requestsLength()),this.config()!==null?this.config().unpack():null)}unpackTo(t){t.subscriptionId=this.subscriptionId(),t.requests=this.bb.createObjList(this.requests.bind(this),this.requestsLength()),t.config=this.config()!==null?this.config().unpack():null}}class rt{constructor(t=null,s=[],e=null){this.subscriptionId=t,this.requests=s,this.config=e}pack(t){const s=this.subscriptionId!==null?t.createString(this.subscriptionId):0,e=P.createRequestsVector(t,t.createObjectOffsetList(this.requests)),n=this.config!==null?this.config.pack(t):0;return P.startSubscribe(t),P.addSubscriptionId(t,s),P.addRequests(t,e),P.addConfig(t,n),P.endSubscribe(t)}}class N{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsUnsubscribe(t,s){return(s||new N).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsUnsubscribe(t,s){return t.setPosition(t.position()+c.SIZE_PREFIX_LENGTH),(s||new N).__init(t.readInt32(t.position())+t.position(),t)}subscriptionId(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.__stringByteString(this.bb_pos+s,t):null}static startUnsubscribe(t){t.startObject(1)}static addSubscriptionId(t,s){t.addFieldOffset(0,s,0)}static endUnsubscribe(t){const s=t.endObject();return t.requiredField(s,4),s}static createUnsubscribe(t,s){return N.startUnsubscribe(t),N.addSubscriptionId(t,s),N.endUnsubscribe(t)}unpack(){return new ot(this.subscriptionId())}unpackTo(t){t.subscriptionId=this.subscriptionId()}}class ot{constructor(t=null){this.subscriptionId=t}pack(t){const s=this.subscriptionId!==null?t.createString(this.subscriptionId):0;return N.createUnsubscribe(t,s)}}var f=(i=>(i[i.NONE=0]="NONE",i[i.Subscribe=1]="Subscribe",i[i.Unsubscribe=2]="Unsubscribe",i[i.Publish=3]="Publish",i[i.SignEvent=4]="SignEvent",i[i.SetSigner=5]="SetSigner",i[i.GetPublicKey=6]="GetPublicKey",i))(f||{});function kt(i,t){switch(f[i]){case"NONE":return null;case"Subscribe":return t(new P);case"Unsubscribe":return t(new N);case"Publish":return t(new C);case"SignEvent":return t(new O);case"SetSigner":return t(new S);case"GetPublicKey":return t(new A);default:return null}}class m{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsMainMessage(t,s){return(s||new m).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsMainMessage(t,s){return t.setPosition(t.position()+c.SIZE_PREFIX_LENGTH),(s||new m).__init(t.readInt32(t.position())+t.position(),t)}contentType(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readUint8(this.bb_pos+t):f.NONE}content(t){const s=this.bb.__offset(this.bb_pos,6);return s?this.bb.__union(t,this.bb_pos+s):null}static startMainMessage(t){t.startObject(2)}static addContentType(t,s){t.addFieldInt8(0,s,f.NONE)}static addContent(t,s){t.addFieldOffset(1,s,0)}static endMainMessage(t){const s=t.endObject();return t.requiredField(s,6),s}static createMainMessage(t,s,e){return m.startMainMessage(t),m.addContentType(t,s),m.addContent(t,e),m.endMainMessage(t)}unpack(){return new L(this.contentType(),(()=>{const t=kt(this.contentType(),this.content.bind(this));return t===null?null:t.unpack()})())}unpackTo(t){t.contentType=this.contentType(),t.content=(()=>{const s=kt(this.contentType(),this.content.bind(this));return s===null?null:s.unpack()})()}}class L{constructor(t=f.NONE,s=null){this.contentType=t,this.content=s}pack(t){const s=t.createObjectOffset(this.content);return m.createMainMessage(t,this.contentType,s)}}var q=(i=>(i[i.Unknown=0]="Unknown",i[i.Event=1]="Event",i[i.Eose=2]="Eose",i[i.Ok=3]="Ok",i[i.Closed=4]="Closed",i[i.Notice=5]="Notice",i[i.Auth=6]="Auth",i))(q||{}),St=(i=>(i[i.Kind0Parsed=0]="Kind0Parsed",i[i.Kind1Parsed=1]="Kind1Parsed",i[i.Kind3Parsed=3]="Kind3Parsed",i[i.Kind4Parsed=4]="Kind4Parsed",i[i.Kind6Parsed=6]="Kind6Parsed",i[i.Kind7Parsed=7]="Kind7Parsed",i[i.Kind17Parsed=17]="Kind17Parsed",i[i.Kind7374Parsed=7374]="Kind7374Parsed",i[i.Kind7375Parsed=7375]="Kind7375Parsed",i[i.Kind7376Parsed=7376]="Kind7376Parsed",i[i.Kind9321Parsed=9321]="Kind9321Parsed",i[i.Kind9735Parsed=9735]="Kind9735Parsed",i[i.Kind10002Parsed=10002]="Kind10002Parsed",i[i.Kind10019Parsed=10019]="Kind10019Parsed",i[i.Kind17375Parsed=17375]="Kind17375Parsed",i[i.Kind39089Parsed=39089]="Kind39089Parsed",i))(St||{});class K{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsRelayRef(t,s){return(s||new K).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsRelayRef(t,s){return t.setPosition(t.position()+c.SIZE_PREFIX_LENGTH),(s||new K).__init(t.readInt32(t.position())+t.position(),t)}url(t){const s=this.bb.__offset(this.bb_pos,4);return s?this.bb.__stringByteString(this.bb_pos+s,t):null}static startRelayRef(t){t.startObject(1)}static addUrl(t,s){t.addFieldOffset(0,s,0)}static endRelayRef(t){const s=t.endObject();return t.requiredField(s,4),s}static createRelayRef(t,s){return K.startRelayRef(t),K.addUrl(t,s),K.endRelayRef(t)}unpack(){return new It(this.url())}unpackTo(t){t.url=this.url()}}class It{constructor(t=null){this.url=t}pack(t){const s=this.url!==null?t.createString(this.url):0;return K.createRelayRef(t,s)}}var Tt=(i=>(i[i.CachedEvent=0]="CachedEvent",i[i.FetchedEvent=1]="FetchedEvent",i[i.Count=2]="Count",i[i.ConnectionStatus=3]="ConnectionStatus",i[i.Eoce=4]="Eoce",i[i.BufferFull=5]="BufferFull",i))(Tt||{});class g{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsWorkerLine(t,s){return(s||new g).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsWorkerLine(t,s){return t.setPosition(t.position()+c.SIZE_PREFIX_LENGTH),(s||new g).__init(t.readInt32(t.position())+t.position(),t)}relay(t){const s=this.bb.__offset(this.bb_pos,4);return s?(t||new K).__init(this.bb.__indirect(this.bb_pos+s),this.bb):null}kind(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readInt16(this.bb_pos+t):q.Unknown}subId(t){const s=this.bb.__offset(this.bb_pos,8);return s?this.bb.__stringByteString(this.bb_pos+s,t):null}raw(t){const s=this.bb.__offset(this.bb_pos,10);return s?this.bb.readUint8(this.bb.__vector(this.bb_pos+s)+t):0}rawLength(){const t=this.bb.__offset(this.bb_pos,10);return t?this.bb.__vector_len(this.bb_pos+t):0}rawArray(){const t=this.bb.__offset(this.bb_pos,10);return t?new Uint8Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}static startWorkerLine(t){t.startObject(4)}static addRelay(t,s){t.addFieldOffset(0,s,0)}static addKind(t,s){t.addFieldInt16(1,s,q.Unknown)}static addSubId(t,s){t.addFieldOffset(2,s,0)}static addRaw(t,s){t.addFieldOffset(3,s,0)}static createRawVector(t,s){t.startVector(1,s.length,1);for(let e=s.length-1;e>=0;e--)t.addInt8(s[e]);return t.endVector()}static startRawVector(t,s){t.startVector(1,s,1)}static endWorkerLine(t){const s=t.endObject();return t.requiredField(s,4),t.requiredField(s,10),s}static createWorkerLine(t,s,e,n,r){return g.startWorkerLine(t),g.addRelay(t,s),g.addKind(t,e),g.addSubId(t,n),g.addRaw(t,r),g.endWorkerLine(t)}unpack(){return new Et(this.relay()!==null?this.relay().unpack():null,this.kind(),this.subId(),this.bb.createScalarList(this.raw.bind(this),this.rawLength()))}unpackTo(t){t.relay=this.relay()!==null?this.relay().unpack():null,t.kind=this.kind(),t.subId=this.subId(),t.raw=this.bb.createScalarList(this.raw.bind(this),this.rawLength())}}class Et{constructor(t=null,s=q.Unknown,e=null,n=[]){this.relay=t,this.kind=s,this.subId=e,this.raw=n}pack(t){const s=this.relay!==null?this.relay.pack(t):0,e=this.subId!==null?t.createString(this.subId):0,n=g.createRawVector(t,this.raw);return g.createWorkerLine(t,s,this.kind,e,n)}}class w{constructor(){this.bb=null,this.bb_pos=0}__init(t,s){return this.bb_pos=t,this.bb=s,this}static getRootAsWorkerMessage(t,s){return(s||new w).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsWorkerMessage(t,s){return t.setPosition(t.position()+c.SIZE_PREFIX_LENGTH),(s||new w).__init(t.readInt32(t.position())+t.position(),t)}type(){const t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readUint32(this.bb_pos+t):X.ParsedNostrEvent}contentType(){const t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readUint8(this.bb_pos+t):$.NONE}content(t){const s=this.bb.__offset(this.bb_pos,8);return s?this.bb.__union(t,this.bb_pos+s):null}static startWorkerMessage(t){t.startObject(3)}static addType(t,s){t.addFieldInt32(0,s,X.ParsedNostrEvent)}static addContentType(t,s){t.addFieldInt8(1,s,$.NONE)}static addContent(t,s){t.addFieldOffset(2,s,0)}static endWorkerMessage(t){return t.endObject()}static finishWorkerMessageBuffer(t,s){t.finish(s)}static finishSizePrefixedWorkerMessageBuffer(t,s){t.finish(s,void 0,!0)}static createWorkerMessage(t,s,e,n){return w.startWorkerMessage(t),w.addType(t,s),w.addContentType(t,e),w.addContent(t,n),w.endWorkerMessage(t)}unpack(){return new Ct(this.type(),this.contentType(),(()=>{const t=bt(this.contentType(),this.content.bind(this));return t===null?null:t.unpack()})())}unpackTo(t){t.type=this.type(),t.contentType=this.contentType(),t.content=(()=>{const s=bt(this.contentType(),this.content.bind(this));return s===null?null:s.unpack()})()}}class Ct{constructor(t=X.ParsedNostrEvent,s=$.NONE,e=null){this.type=t,this.contentType=s,this.content=e}pack(t){const s=t.createObjectOffset(this.content);return w.createWorkerMessage(t,this.type,this.contentType,s)}}class G{static initializeBuffer(t){new DataView(t).setUint32(0,4,!0)}static writeMessage(t,s){const e=new DataView(t),n=new Uint8Array(t),r=e.getUint32(0,!0),o=4+s.length;if(r+o>t.byteLength)return console.warn("Buffer full, cannot write message"),!1;e.setUint32(r,s.length,!0),n.set(s,r+4);const a=r+o;return e.setUint32(0,a,!0),!0}static readMessages(t,s=0){const e=new DataView(t),n=new Uint8Array(t),r=e.getUint32(0,!0),o=4;let a=s<o?o:s;if(r<=a)return{messages:[],newReadPosition:a,hasNewData:!1};const b=128,h=new Array(b);let _=0;try{for(;a<r&&!(_>=b||a+4>r);){const l=a,Z=e.getUint32(l,!0),j=l+4,B=j+Z;if(B>r)break;const D=n.subarray(j,B),u=new Mt(D),z=w.getRootAsWorkerMessage(u);h[_++]=z,a=B}return h.length=_,{messages:h,newReadPosition:a,hasNewData:_>0}}catch(l){return console.error("Failed to decode FlatBuffer data from SharedArrayBuffer:",l),h.length=_,{messages:h,newReadPosition:s<o?o:s,hasNewData:!1}}}static readAllMessages(t){const s=this.readMessages(t,0);return{messages:s.messages,totalMessages:s.messages.length}}static getCurrentWritePosition(t){return new DataView(t).getUint32(0,!0)}static hasNewData(t,s){const e=this.getCurrentWritePosition(t),n=Math.max(s,4);return e>n}static calculateBufferSize(t=100,s=3072){const e=t*s,n=Math.floor(e*.25);return 4+e+n}}let mt=null,at=null;async function Bt(){return at||(at=fetch(At).then(i=>{if(!i.ok)throw new Error(`Failed to fetch WASM: ${i.status} ${i.statusText}`);return i.arrayBuffer()}).then(i=>{mt=i}).catch(i=>{throw console.error("WASM fetch failed:",i),i}),at)}class Rt{constructor(t){this.textEncoder=new TextEncoder,this.subscriptions=new Map,this.publishes=new Map,this.signers=new Map,this.signCB=e=>{},this.eventTarget=new EventTarget,this.PERPETUAL_SUBSCRIPTIONS=["notifications","starterpack"],this._ready=null,this.config=t;const s=()=>void this.init();"requestIdleCallback"in window?window.requestIdleCallback(s,{timeout:2e3}):setTimeout(s,1500)}init(){return this._ready?this._ready:(this.worker=this.createWorker(),this.setupWorkerListener(),this._ready=(async()=>{await Bt();const t=mt.slice(0);this.worker.postMessage({type:"init",payload:{bufferKey:this.config.bufferKey,maxBufferSize:this.config.maxBufferSize,wasmBuffer:t,inRing:this.config.inRing,outRing:this.config.outRing}},[t])})(),this._ready)}postToWorker(t,s){return this.init().then(()=>{s&&s.length?this.worker.postMessage(t,s):this.worker.postMessage(t)})}createWorker(){return new Lt}setupWorkerListener(){this.worker.onmessage=async t=>{const s=typeof t.data=="string"?t.data:void 0;try{if(t.data.startsWith('{"id":')){const e=JSON.parse(t.data);this.signCB(e)}}catch{}if(s){if(this.subscriptions.has(s)){this.dispatch(`subscription:${s}`,s);return}if(this.publishes.has(s)){this.dispatch(`publish:${s}`,s);return}}},this.worker.onerror=t=>{console.error("Worker error:",t)}}createShortId(t){if(t.length<64)return t;let s=0;for(let e=0;e<t.length;e++){const n=t.charCodeAt(e);s=(s<<5)-s+n,s=s&s}return Math.abs(s).toString(36).substring(0,63)}addEventListener(t,s,e){this.eventTarget.addEventListener(t,s,e)}removeEventListener(t,s,e){this.eventTarget.removeEventListener(t,s,e)}dispatch(t,s){this.eventTarget.dispatchEvent(new CustomEvent(t,{detail:s}))}subscribe(t,s,e){const n=this.createShortId(t),r=this.subscriptions.get(n);if(r)return r.refCount++,r.buffer;const o=s.reduce((u,z)=>u+(z.limit||100),0),a=G.calculateBufferSize(o,e.bytesPerEvent);let b=new Uint8Array;const h=new SharedArrayBuffer(a+b.length);G.initializeBuffer(h),b.length>0&&(G.writeMessage(h,b)||console.error("Failed to write initial message to buffer")),this.subscriptions.set(n,{buffer:h,options:e,refCount:1});const _=new nt(new et(e.pipeline||[]),e.closeOnEose,e.cacheFirst,e.timeoutMs?BigInt(e.timeoutMs):void 0,e.maxEvents,e.skipCache,e.force,e.bytesPerEvent),l=new rt(this.textEncoder.encode(n),s.map(u=>new jt(u.ids,u.authors,u.kinds,Object.entries(u.tags||{}).flatMap(([z,Kt])=>new J([z,...Kt])),u.limit,u.since,u.until,this.textEncoder.encode(u.search),u.relays,u.closeOnEOSE,u.cacheFirst)),_),Z=new L(f.Subscribe,l),j=new c.Builder(2048),B=Z.pack(j);j.finish(B);const D=j.asUint8Array();try{return this.postToWorker({serializedMessage:D,sharedBuffer:h}),h}catch(u){throw this.subscriptions.delete(n),u}}getBuffer(t){const s=this.subscriptions.get(t);if(s)return s.refCount++,s.buffer}unsubscribe(t){const s=t.length<64?t:this.createShortId(t),e=this.subscriptions.get(s);e&&e.refCount--}publish(t,s){const e=new SharedArrayBuffer(3072);G.initializeBuffer(e);try{const n=new W(s.kind,this.textEncoder.encode(s.content),s.tags.map(_=>new J(_))||[]),r=new Y(this.textEncoder.encode(t),n),o=new L(f.Publish,r),a=new c.Builder(2048),b=o.pack(a);a.finish(b);const h=a.asUint8Array();return this.postToWorker({serializedMessage:h,sharedBuffer:e}),this.publishes.set(t,{buffer:e}),e}catch(n){throw console.error("Failed to publish event:",n),n}}setSigner(t,s){console.log("setSigner",t,s);const e=new tt(this.textEncoder.encode(s)),n=new st(U.PrivateKey,e),r=new L(f.SetSigner,n),o=new c.Builder(2048),a=r.pack(o);o.finish(a);const b=o.asUint8Array();this.postToWorker(b),this.signers.set(t,s)}signEvent(t,s){const e=new L(f.SignEvent,new it(new W(t.kind,this.textEncoder.encode(t.content),t.tags.map(a=>new J(a))))),n=new c.Builder(2048),r=e.pack(n);n.finish(r);const o=n.asUint8Array();this.signCB=s,this.worker.postMessage(o)}getPublicKey(){const t=new L(f.GetPublicKey,new Q),s=new c.Builder(2048),e=t.pack(s);s.finish(e);const n=s.asUint8Array();this.worker.postMessage(n)}cleanup(){const t=[];for(const[s,e]of this.subscriptions.entries())e.refCount<=0&&!this.PERPETUAL_SUBSCRIPTIONS.includes(s)&&t.push(s);for(const s of t){const e=this.subscriptions.get(s);if(e){const n=new L(f.Unsubscribe,new ot(this.textEncoder.encode(s))),r=new c.Builder(2048),o=n.pack(r);r.finish(o);const a=r.asUint8Array();this.postToWorker(a),e.closed=!0,this.subscriptions.delete(s)}}}}const Ot=new TextEncoder,vt=new Map;function zt(i){const t=vt.get(i);if(t)return t;const s=Ot.encode(i);return vt.set(i,s),s}function qt(i,t,s){const e=zt(t),n=Ot.encode(s),r=2+e.length+4+n.length,o=new Uint8Array(r),a=new DataView(o.buffer,o.byteOffset,o.byteLength);let b=0;a.setUint16(b,e.length,!1),b+=2,o.set(e,b),b+=e.length,a.setUint32(b,n.length,!1),b+=4,o.set(n,b),i.write(o)}function Gt(i){let t=0,s=i.length;for(;t<s&&i.charCodeAt(t)<=32;)t++;if(t>=s||i[t]!=="[")return null;for(t++;t<s&&i.charCodeAt(t)<=32;)t++;if(t>=s)return null;if(i[t]==='"'){for(t++;t<s&&i[t]!=='"';)t++;if(t>=s)return null;t++}else for(;t<s&&i[t]!==","&&i[t]!=="]";)t++;for(;t<s&&i[t]!==",";)t++;if(t>=s||i[t]!==",")return null;for(t++;t<s&&i.charCodeAt(t)<=32;)t++;if(t>=s)return null;if(i[t]==='"'){t++;const e=t;for(;t<s&&i[t]!=='"';)t++;return t>s?null:i.slice(e,t)}return null}const H=10,Ft=1e3;class Wt{constructor(t){this.inputRings=[],this.outputRings=[],this.registry=null,this.subIdToRing=new Map,this.decoder=new TextDecoder,this.lastRingIndex=0,this.backoffMs=H,this.loopTimer=null,this.scheduleLoop=()=>{this.loopTimer=setTimeout(this.processLoop,this.backoffMs)},this.processLoop=()=>{let n=0;const r=this.inputRings.length;if(r===0)return this.backoffMs=Math.min(this.backoffMs*2,Ft),this.scheduleLoop();let o;do{o=!1;for(let a=0;a<r;a++){const b=(this.lastRingIndex+a)%r,h=this.inputRings[b].read();if(!h)continue;o=!0,n++;const _=this.decoder.decode(h);let l;try{l=JSON.parse(_)}catch{continue}!Array.isArray(l.relays)||!Array.isArray(l.frames)||(this.registry?.sendToRelays(l.relays,l.frames).catch(console.error),this.lastRingIndex=(b+1)%r)}}while(o);this.backoffMs=n>0?H:Math.min(this.backoffMs*2,Ft),this.scheduleLoop()},this.inputRings=t.inRings.map(n=>new ht(n)),this.outputRings=t.outRings.map(n=>new ht(n)),this.registry=new Vt(t.relayConfig||{});const s=(n,r,o)=>{const a=r??Gt(o);a&&qt(this.getOutRingForSubId(a),n,o)},e=this.registry.ensureConnection.bind(this.registry);this.registry.ensureConnection=async n=>{const r=await e(n);return r.messageHandler||r.setMessageHandler(s),r},this.backoffMs=H,this.scheduleLoop()}wake(){this.backoffMs=H,this.loopTimer!==null&&(clearTimeout(this.loopTimer),this.loopTimer=null),this.scheduleLoop()}destroy(){this.loopTimer!==null&&(clearTimeout(this.loopTimer),this.loopTimer=null),this.subIdToRing.clear(),this.registry=null,this.inputRings=[],this.outputRings=[]}hashSubId(t){const s=this.outputRings.length||1,e=t.includes("_")?t.split("_")[1]??"":t;let n=0;for(let r=0;r<e.length;r++)n=(n<<5)-n+e.charCodeAt(r);return Math.abs(n)%s}getOutRingForSubId(t){let s=this.subIdToRing.get(t);return s||(s=this.outputRings[this.hashSubId(t)],this.subIdToRing.set(t,s),s)}}function ct(i){const t=new DataView(i),s=i.byteLength;if(s<32)throw new Error(`Ring buffer too small: ${s} bytes`);if(t.getUint32(0,!0)!==0)return;const e=s-32;if(e<=0)throw new Error(`Invalid ring capacity computed from total=${s}`);t.setUint32(0,e,!0),t.setUint32(4,0,!0),t.setUint32(8,0,!0),t.setUint32(12,0,!0);for(let n=16;n<32;n+=4)t.setUint32(n,0,!0)}class Nt{constructor(t={},s=1){this.inRings=[],this.outRings=[],this.managers=[];for(let e=0;e<s;e++){const n=new SharedArrayBuffer(524288),r=new SharedArrayBuffer(2*1024*1024);ct(n),ct(r),this.inRings.push(n),this.outRings.push(r),this.managers.push(new Rt({bufferKey:e.toString(),maxBufferSize:2e6,inRing:n,outRing:r}))}this.worker=new Wt({inRings:this.inRings,outRings:this.outRings,relayConfig:t})}hashSubId(t){const s=t.includes("_")?t.split("_")[1]??"":t;let e=0;for(let n=0;n<s.length;n++)e=(e<<5)-e+s.charCodeAt(n);return Math.abs(e)%this.managers.length}createShortId(t){const s=(e,n)=>{let r=0;for(let o=0;o<e.length;o++){const a=e.charCodeAt(o);r=(r<<5)-r+a,r=r&r}return Math.abs(r).toString(36).substring(0,Math.max(1,n))};if(t.includes("_")){const[e,...n]=t.split("_"),r=n.join("_"),o=Math.max(1,Math.floor(62/2)),a=s(e??"",o),b=s(r??"",o),h=`${a}_${b}`;return h.length>63?h.substring(0,63):h}return t.length<64?t:s(t,63)}cleanup(){for(const t of this.managers)t.cleanup()}setSigner(t,s){for(const e of this.managers)e.setSigner(t,s)}getManager(t){if(t?.length>64)throw new Error("subId cannot exceed 64 characters");const s=this.hashSubId(t||"");return this.managers[s]}resetInputLoopBackoff(){this.worker.wake()}}const Ht=new Nt({});export{w as $,_t as A,F as B,k as C,Pt as D,S as E,st as F,A as G,O as H,it as I,U as J,T as K,P as L,f as M,Nt as N,rt as O,M as P,Tt as Q,K as R,G as S,d as T,nt as U,p as V,W,N as X,ot as Y,g as Z,Et as _,Rt as a,Ct as a0,ut as b,Q as c,dt as d,m as e,L as f,q as g,y as h,ct as i,lt as j,ft as k,St as l,I as m,Ht as n,wt as o,V as p,E as q,et as r,R as s,tt as t,v as u,gt as v,C as w,Y as x,It as y,x as z};
|