@vworlds/vecs-client 1.0.16

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.
Files changed (81) hide show
  1. package/node_modules/@vworlds/vecs-protocol/package.json +14 -0
  2. package/node_modules/@vworlds/vecs-protocol/src/cid.d.ts +14 -0
  3. package/node_modules/@vworlds/vecs-protocol/src/cid.js +58 -0
  4. package/node_modules/@vworlds/vecs-protocol/src/cid.js.map +1 -0
  5. package/node_modules/@vworlds/vecs-protocol/src/index.d.ts +5 -0
  6. package/node_modules/@vworlds/vecs-protocol/src/index.js +5 -0
  7. package/node_modules/@vworlds/vecs-protocol/src/index.js.map +1 -0
  8. package/node_modules/@vworlds/vecs-protocol/src/messages.d.ts +42 -0
  9. package/node_modules/@vworlds/vecs-protocol/src/messages.js +149 -0
  10. package/node_modules/@vworlds/vecs-protocol/src/messages.js.map +1 -0
  11. package/node_modules/@vworlds/vecs-protocol/src/network_world.d.ts +18 -0
  12. package/node_modules/@vworlds/vecs-protocol/src/network_world.js +93 -0
  13. package/node_modules/@vworlds/vecs-protocol/src/network_world.js.map +1 -0
  14. package/node_modules/@vworlds/vecs-protocol/src/rpc.d.ts +36 -0
  15. package/node_modules/@vworlds/vecs-protocol/src/rpc.js +140 -0
  16. package/node_modules/@vworlds/vecs-protocol/src/rpc.js.map +1 -0
  17. package/node_modules/@vworlds/vecs-protocol/src/transport.d.ts +21 -0
  18. package/node_modules/@vworlds/vecs-protocol/src/transport.js +2 -0
  19. package/node_modules/@vworlds/vecs-protocol/src/transport.js.map +1 -0
  20. package/node_modules/@vworlds/vecs-wire/package.json +14 -0
  21. package/node_modules/@vworlds/vecs-wire/src/any.d.ts +27 -0
  22. package/node_modules/@vworlds/vecs-wire/src/any.js +43 -0
  23. package/node_modules/@vworlds/vecs-wire/src/any.js.map +1 -0
  24. package/node_modules/@vworlds/vecs-wire/src/decoder.d.ts +31 -0
  25. package/node_modules/@vworlds/vecs-wire/src/decoder.js +180 -0
  26. package/node_modules/@vworlds/vecs-wire/src/decoder.js.map +1 -0
  27. package/node_modules/@vworlds/vecs-wire/src/decorators.d.ts +4 -0
  28. package/node_modules/@vworlds/vecs-wire/src/decorators.js +139 -0
  29. package/node_modules/@vworlds/vecs-wire/src/decorators.js.map +1 -0
  30. package/node_modules/@vworlds/vecs-wire/src/encoder.d.ts +32 -0
  31. package/node_modules/@vworlds/vecs-wire/src/encoder.js +230 -0
  32. package/node_modules/@vworlds/vecs-wire/src/encoder.js.map +1 -0
  33. package/node_modules/@vworlds/vecs-wire/src/index.d.ts +5 -0
  34. package/node_modules/@vworlds/vecs-wire/src/index.js +5 -0
  35. package/node_modules/@vworlds/vecs-wire/src/index.js.map +1 -0
  36. package/package.json +28 -0
  37. package/vecs-client/src/client_world.d.ts +46 -0
  38. package/vecs-client/src/client_world.js +129 -0
  39. package/vecs-client/src/client_world.js.map +1 -0
  40. package/vecs-client/src/index.d.ts +4 -0
  41. package/vecs-client/src/index.js +4 -0
  42. package/vecs-client/src/index.js.map +1 -0
  43. package/vecs-client/src/interpolator.d.ts +51 -0
  44. package/vecs-client/src/interpolator.js +305 -0
  45. package/vecs-client/src/interpolator.js.map +1 -0
  46. package/vecs-client/src/world_path.d.ts +1 -0
  47. package/vecs-client/src/world_path.js +4 -0
  48. package/vecs-client/src/world_path.js.map +1 -0
  49. package/vecs-protocol/src/cid.d.ts +14 -0
  50. package/vecs-protocol/src/cid.js +58 -0
  51. package/vecs-protocol/src/cid.js.map +1 -0
  52. package/vecs-protocol/src/index.d.ts +5 -0
  53. package/vecs-protocol/src/index.js +5 -0
  54. package/vecs-protocol/src/index.js.map +1 -0
  55. package/vecs-protocol/src/messages.d.ts +42 -0
  56. package/vecs-protocol/src/messages.js +149 -0
  57. package/vecs-protocol/src/messages.js.map +1 -0
  58. package/vecs-protocol/src/network_world.d.ts +18 -0
  59. package/vecs-protocol/src/network_world.js +93 -0
  60. package/vecs-protocol/src/network_world.js.map +1 -0
  61. package/vecs-protocol/src/rpc.d.ts +36 -0
  62. package/vecs-protocol/src/rpc.js +140 -0
  63. package/vecs-protocol/src/rpc.js.map +1 -0
  64. package/vecs-protocol/src/transport.d.ts +21 -0
  65. package/vecs-protocol/src/transport.js +2 -0
  66. package/vecs-protocol/src/transport.js.map +1 -0
  67. package/vecs-wire/src/any.d.ts +27 -0
  68. package/vecs-wire/src/any.js +43 -0
  69. package/vecs-wire/src/any.js.map +1 -0
  70. package/vecs-wire/src/decoder.d.ts +31 -0
  71. package/vecs-wire/src/decoder.js +180 -0
  72. package/vecs-wire/src/decoder.js.map +1 -0
  73. package/vecs-wire/src/decorators.d.ts +4 -0
  74. package/vecs-wire/src/decorators.js +139 -0
  75. package/vecs-wire/src/decorators.js.map +1 -0
  76. package/vecs-wire/src/encoder.d.ts +32 -0
  77. package/vecs-wire/src/encoder.js +230 -0
  78. package/vecs-wire/src/encoder.js.map +1 -0
  79. package/vecs-wire/src/index.d.ts +5 -0
  80. package/vecs-wire/src/index.js +5 -0
  81. package/vecs-wire/src/index.js.map +1 -0
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "@vworlds/vecs-wire",
3
+ "version": "1.0.16",
4
+ "type": "module",
5
+ "main": "./src/index.js",
6
+ "types": "./src/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./src/index.d.ts",
10
+ "default": "./src/index.js"
11
+ }
12
+ },
13
+ "license": "UNLICENSED"
14
+ }
@@ -0,0 +1,27 @@
1
+ import { Decoder } from "./decoder.js";
2
+ import { Encoder } from "./encoder.js";
3
+ export declare enum AnyType {
4
+ null = 0,
5
+ boolean = 1,
6
+ undefined = 2,
7
+ object = 3,
8
+ empty_object = 4,
9
+ array = 5,
10
+ empty_array = 6,
11
+ bigint_integer = 7,
12
+ string = 8,
13
+ empty_string = 9,
14
+ number_integer = 10,
15
+ number_unsigned = 11,
16
+ number_float = 12,
17
+ binary = 13,
18
+ empty_binary = 14,
19
+ bigint_unsigned = 15
20
+ }
21
+ export declare class TagSize {
22
+ tag: AnyType;
23
+ size: number;
24
+ constructor(tag: AnyType, size: number);
25
+ wireEncode(encoder: Encoder): void;
26
+ static wireDecode(decoder: Decoder): TagSize;
27
+ }
@@ -0,0 +1,43 @@
1
+ export var AnyType;
2
+ (function (AnyType) {
3
+ AnyType[AnyType["null"] = 0] = "null";
4
+ AnyType[AnyType["boolean"] = 1] = "boolean";
5
+ AnyType[AnyType["undefined"] = 2] = "undefined";
6
+ AnyType[AnyType["object"] = 3] = "object";
7
+ AnyType[AnyType["empty_object"] = 4] = "empty_object";
8
+ AnyType[AnyType["array"] = 5] = "array";
9
+ AnyType[AnyType["empty_array"] = 6] = "empty_array";
10
+ AnyType[AnyType["bigint_integer"] = 7] = "bigint_integer";
11
+ AnyType[AnyType["string"] = 8] = "string";
12
+ AnyType[AnyType["empty_string"] = 9] = "empty_string";
13
+ AnyType[AnyType["number_integer"] = 10] = "number_integer";
14
+ AnyType[AnyType["number_unsigned"] = 11] = "number_unsigned";
15
+ AnyType[AnyType["number_float"] = 12] = "number_float";
16
+ AnyType[AnyType["binary"] = 13] = "binary";
17
+ AnyType[AnyType["empty_binary"] = 14] = "empty_binary";
18
+ AnyType[AnyType["bigint_unsigned"] = 15] = "bigint_unsigned";
19
+ })(AnyType || (AnyType = {}));
20
+ export class TagSize {
21
+ constructor(tag, size) {
22
+ this.tag = tag;
23
+ this.size = size;
24
+ }
25
+ wireEncode(encoder) {
26
+ if (this.size > 15) {
27
+ encoder.write_u8(this.tag << 4);
28
+ encoder.write_u32(this.size - 16);
29
+ }
30
+ else {
31
+ encoder.write_u8((this.tag << 4) + this.size);
32
+ }
33
+ }
34
+ static wireDecode(decoder) {
35
+ const byte = decoder.read_u8();
36
+ const ts = new TagSize(byte >> 4, byte & 0x0f);
37
+ if (ts.size === 0) {
38
+ ts.size = decoder.read_u32() + 16;
39
+ }
40
+ return ts;
41
+ }
42
+ }
43
+ //# sourceMappingURL=any.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"any.js","sourceRoot":"","sources":["../../../../vecs-wire/src/any.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAY,OAiBX;AAjBD,WAAY,OAAO;IACjB,qCAAQ,CAAA;IACR,2CAAW,CAAA;IACX,+CAAa,CAAA;IACb,yCAAU,CAAA;IACV,qDAAgB,CAAA;IAChB,uCAAS,CAAA;IACT,mDAAe,CAAA;IACf,yDAAkB,CAAA;IAClB,yCAAU,CAAA;IACV,qDAAgB,CAAA;IAChB,0DAAmB,CAAA;IACnB,4DAAoB,CAAA;IACpB,sDAAiB,CAAA;IACjB,0CAAW,CAAA;IACX,sDAAiB,CAAA;IACjB,4DAAoB,CAAA;AACtB,CAAC,EAjBW,OAAO,KAAP,OAAO,QAiBlB;AAED,MAAM,OAAO,OAAO;IAClB,YACS,GAAY,EACZ,IAAY;QADZ,QAAG,GAAH,GAAG,CAAS;QACZ,SAAI,GAAJ,IAAI,CAAQ;IAClB,CAAC;IAEJ,UAAU,CAAC,OAAgB;QACzB,IAAI,IAAI,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC;YACnB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YAChC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,OAAgB;QAChC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;QAC/C,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAClB,EAAE,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
@@ -0,0 +1,31 @@
1
+ export interface IDecodable<T> {
2
+ wireDecode(decoder: Decoder): T;
3
+ }
4
+ export type DecodableType<T> = IDecodable<T> | (new () => T);
5
+ export declare class Decoder {
6
+ private readonly _buffer;
7
+ private _cursor;
8
+ constructor(buffer: Uint8Array);
9
+ get EOF(): boolean;
10
+ read_varint_u32(): number;
11
+ read_varint_u64(): bigint;
12
+ decode_zz_u32(value: number): number;
13
+ decode_zz_u64(value: bigint): bigint;
14
+ read_u8(): number;
15
+ read_i8(): number;
16
+ read_bool(): boolean;
17
+ read_u16(): number;
18
+ read_u32(): number;
19
+ read_u64(): bigint;
20
+ read_i16(): number;
21
+ read_i32(): number;
22
+ read_enum(): number;
23
+ read_i64(): bigint;
24
+ read_f32(): number;
25
+ read_f64(): number;
26
+ read_buffer_raw(len: number): Uint8Array;
27
+ read_string(): string;
28
+ read_bytes(): Uint8Array;
29
+ read_any(): unknown;
30
+ read<T>(C: DecodableType<T>): T;
31
+ }
@@ -0,0 +1,180 @@
1
+ import { AnyType, TagSize } from "./any.js";
2
+ const maxSafeBigInt = BigInt(Number.MAX_SAFE_INTEGER);
3
+ const minSafeBigInt = BigInt(Number.MIN_SAFE_INTEGER);
4
+ function canConvertToNumber(bigintValue) {
5
+ return bigintValue <= maxSafeBigInt && bigintValue >= minSafeBigInt;
6
+ }
7
+ export class Decoder {
8
+ constructor(buffer) {
9
+ this._cursor = 0;
10
+ this._buffer = buffer;
11
+ }
12
+ get EOF() {
13
+ return this._cursor >= this._buffer.length;
14
+ }
15
+ read_varint_u32() {
16
+ let result = 0;
17
+ let shift = 0;
18
+ let byte;
19
+ do {
20
+ if (this._cursor >= this._buffer.length) {
21
+ throw new RangeError("vecs-wire/decoder read_u32: Attempt to read beyond buffer size");
22
+ }
23
+ byte = this._buffer[this._cursor++];
24
+ result |= (byte & 0x7f) << shift;
25
+ shift += 7;
26
+ } while (byte & 0x80);
27
+ return result >>> 0;
28
+ }
29
+ read_varint_u64() {
30
+ let result = BigInt(0);
31
+ let shift = 0;
32
+ let byte;
33
+ do {
34
+ if (this._cursor >= this._buffer.length) {
35
+ throw new RangeError("vecs-wire/decoder read_u64: Attempt to read beyond buffer size");
36
+ }
37
+ byte = this._buffer[this._cursor++];
38
+ result |= BigInt(byte & 0x7f) << BigInt(shift);
39
+ shift += 7;
40
+ } while (byte & 0x80);
41
+ return result;
42
+ }
43
+ decode_zz_u32(value) {
44
+ return (value >>> 1) ^ -(value & 1);
45
+ }
46
+ decode_zz_u64(value) {
47
+ return (value >> BigInt(1)) ^ -(value & BigInt(1));
48
+ }
49
+ read_u8() {
50
+ if (this._cursor >= this._buffer.length) {
51
+ throw new RangeError("vecs-wire/decoder read_u8: Attempt to read beyond buffer size");
52
+ }
53
+ return this._buffer[this._cursor++];
54
+ }
55
+ read_i8() {
56
+ return (this.read_u8() << 24) >> 24;
57
+ }
58
+ read_bool() {
59
+ return this.read_u8() !== 0;
60
+ }
61
+ read_u16() {
62
+ return this.read_varint_u32();
63
+ }
64
+ read_u32() {
65
+ return this.read_varint_u32();
66
+ }
67
+ read_u64() {
68
+ return this.read_varint_u64();
69
+ }
70
+ read_i16() {
71
+ return this.decode_zz_u32(this.read_varint_u32());
72
+ }
73
+ read_i32() {
74
+ return this.decode_zz_u32(this.read_varint_u32());
75
+ }
76
+ read_enum() {
77
+ return this.read_i32();
78
+ }
79
+ read_i64() {
80
+ return this.decode_zz_u64(this.read_varint_u64());
81
+ }
82
+ read_f32() {
83
+ if (this._cursor + 4 > this._buffer.length) {
84
+ throw new RangeError("vecs-wire/decoder read_f32: Attempt to read beyond buffer size");
85
+ }
86
+ const value = new DataView(this._buffer.buffer, this._buffer.byteOffset + this._cursor, 4).getFloat32(0, true);
87
+ this._cursor += 4;
88
+ return value;
89
+ }
90
+ read_f64() {
91
+ if (this._cursor + 8 > this._buffer.length) {
92
+ throw new RangeError("vecs-wire/decoder read_f64: Attempt to read beyond buffer size");
93
+ }
94
+ const value = new DataView(this._buffer.buffer, this._buffer.byteOffset + this._cursor, 8).getFloat64(0, true);
95
+ this._cursor += 8;
96
+ return value;
97
+ }
98
+ read_buffer_raw(len) {
99
+ if (this._cursor + len > this._buffer.length) {
100
+ throw new RangeError("vecs-wire/decoder read_buffer_raw: Attempt to read beyond buffer size");
101
+ }
102
+ const buf = this._buffer.subarray(this._cursor, this._cursor + len);
103
+ this._cursor += len;
104
+ return buf;
105
+ }
106
+ read_string() {
107
+ const len = this.read_u32();
108
+ if (len === 0) {
109
+ return "";
110
+ }
111
+ return new TextDecoder().decode(this.read_buffer_raw(len));
112
+ }
113
+ read_bytes() {
114
+ const len = this.read_u32();
115
+ return this.read_buffer_raw(len);
116
+ }
117
+ read_any() {
118
+ const ts = this.read(TagSize);
119
+ switch (ts.tag) {
120
+ case AnyType.null:
121
+ return null;
122
+ case AnyType.undefined:
123
+ return undefined;
124
+ case AnyType.boolean:
125
+ return ts.size === 1;
126
+ case AnyType.empty_object:
127
+ return {};
128
+ case AnyType.object: {
129
+ const obj = {};
130
+ for (let i = 0; i < ts.size; i++) {
131
+ const key = this.read_string();
132
+ const value = this.read_any();
133
+ obj[key] = value;
134
+ }
135
+ return obj;
136
+ }
137
+ case AnyType.empty_array:
138
+ return [];
139
+ case AnyType.array: {
140
+ const arr = [];
141
+ for (let i = 0; i < ts.size; i++) {
142
+ arr.push(this.read_any());
143
+ }
144
+ return arr;
145
+ }
146
+ case AnyType.empty_string:
147
+ return "";
148
+ case AnyType.string:
149
+ return new TextDecoder().decode(this.read_buffer_raw(ts.size));
150
+ case AnyType.number_integer: {
151
+ const bi = this.read_i64();
152
+ return canConvertToNumber(bi) ? Number(bi) : bi;
153
+ }
154
+ case AnyType.number_unsigned: {
155
+ const bi = this.read_u64();
156
+ return canConvertToNumber(bi) ? Number(bi) : bi;
157
+ }
158
+ case AnyType.number_float:
159
+ return ts.size === 4 ? this.read_f32() : this.read_f64();
160
+ case AnyType.bigint_integer:
161
+ return this.read_i64();
162
+ case AnyType.bigint_unsigned:
163
+ return this.read_u64();
164
+ case AnyType.empty_binary:
165
+ return this.read_buffer_raw(0);
166
+ case AnyType.binary:
167
+ return this.read_buffer_raw(ts.size);
168
+ default:
169
+ throw new Error(`Unsupported any tag ${ts.tag}`);
170
+ }
171
+ }
172
+ read(C) {
173
+ const decodable = C;
174
+ if (typeof decodable.wireDecode !== "function") {
175
+ throw new TypeError("vecs-wire/decoder read requires a wireDecode method");
176
+ }
177
+ return decodable.wireDecode(this);
178
+ }
179
+ }
180
+ //# sourceMappingURL=decoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decoder.js","sourceRoot":"","sources":["../../../../vecs-wire/src/decoder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export type WireScalarType = "bool" | "u8" | "i8" | "u16" | "i16" | "u32" | "i32" | "u64" | "i64" | "enum" | "f32" | "f64" | "string" | "bytes" | "any";
2
+ export type WireConstructor<T = unknown> = new () => T;
3
+ export type WireTypeSpec = WireScalarType | WireConstructor | readonly [WireScalarType | WireConstructor];
4
+ export declare function type(spec: WireTypeSpec): PropertyDecorator;
@@ -0,0 +1,139 @@
1
+ const scalarMethods = {
2
+ bool: { read: "read_bool", write: "write_bool" },
3
+ u8: { read: "read_u8", write: "write_u8" },
4
+ i8: { read: "read_i8", write: "write_i8" },
5
+ u16: { read: "read_u16", write: "write_u16" },
6
+ i16: { read: "read_i16", write: "write_i16" },
7
+ u32: { read: "read_u32", write: "write_u32" },
8
+ i32: { read: "read_i32", write: "write_i32" },
9
+ u64: { read: "read_u64", write: "write_u64" },
10
+ i64: { read: "read_i64", write: "write_i64" },
11
+ enum: { read: "read_enum", write: "write_enum" },
12
+ f32: { read: "read_f32", write: "write_f32" },
13
+ f64: { read: "read_f64", write: "write_f64" },
14
+ string: { read: "read_string", write: "write_string" },
15
+ bytes: { read: "read_bytes", write: "write_buffer" },
16
+ any: { read: "read_any", write: "write_any" },
17
+ };
18
+ const fieldsByConstructor = new WeakMap();
19
+ const compiledConstructors = new WeakSet();
20
+ export function type(spec) {
21
+ assertValidSpec(spec);
22
+ return (target, propertyKey) => {
23
+ if (typeof propertyKey !== "string") {
24
+ throw new TypeError("vecs-wire/type only supports string property keys");
25
+ }
26
+ const C = target.constructor;
27
+ const fields = fieldsByConstructor.get(C) ?? [];
28
+ if (fields.some((field) => field.key === propertyKey)) {
29
+ throw new Error(`vecs-wire/type duplicate field ${propertyKey}`);
30
+ }
31
+ fields.push({ key: propertyKey, spec });
32
+ fieldsByConstructor.set(C, fields);
33
+ compiledConstructors.delete(C);
34
+ installTrampolines(C);
35
+ };
36
+ }
37
+ function installTrampolines(C) {
38
+ if (!Object.prototype.hasOwnProperty.call(C.prototype, "wireEncode")) {
39
+ C.prototype.wireEncode = function wireEncode(encoder) {
40
+ compileWireType(C);
41
+ this.wireEncode(encoder);
42
+ };
43
+ }
44
+ if (!Object.prototype.hasOwnProperty.call(C, "wireDecode")) {
45
+ C.wireDecode = function wireDecode(decoder) {
46
+ compileWireType(C);
47
+ return C.wireDecode(decoder);
48
+ };
49
+ }
50
+ }
51
+ function compileWireType(C) {
52
+ if (compiledConstructors.has(C)) {
53
+ return;
54
+ }
55
+ const fields = fieldsByConstructor.get(C);
56
+ if (fields === undefined || fields.length === 0) {
57
+ throw new Error(`vecs-wire/type ${C.name || "anonymous class"} has no decorated fields`);
58
+ }
59
+ const nestedTypes = [];
60
+ const encodeLines = [];
61
+ const decodeLines = ["const value = new C();"];
62
+ fields.forEach((field, index) => {
63
+ emitEncodeField(encodeLines, field, index, nestedTypes);
64
+ emitDecodeField(decodeLines, field, index, nestedTypes);
65
+ });
66
+ decodeLines.push("return value;");
67
+ const encodeFactory = new Function("C", ...nestedTypes.map((_, index) => `T${index}`), `return function wireEncode(encoder) {\n${encodeLines.join("\n")}\n};`);
68
+ const decodeFactory = new Function("C", ...nestedTypes.map((_, index) => `T${index}`), `return function wireDecode(decoder) {\n${decodeLines.join("\n")}\n};`);
69
+ const args = [C, ...nestedTypes];
70
+ C.prototype.wireEncode = encodeFactory(...args);
71
+ C.wireDecode = decodeFactory(...args);
72
+ compiledConstructors.add(C);
73
+ }
74
+ function emitEncodeField(lines, field, index, nestedTypes) {
75
+ const access = `this[${JSON.stringify(field.key)}]`;
76
+ if (isArraySpec(field.spec)) {
77
+ const valueName = `a${index}`;
78
+ lines.push(`const ${valueName} = ${access};`);
79
+ lines.push(`if (!Array.isArray(${valueName})) throw new TypeError(${JSON.stringify(field.key)} + " must be an array");`);
80
+ lines.push(`encoder.write_u32(${valueName}.length);`);
81
+ lines.push(`for (let i${index} = 0; i${index} < ${valueName}.length; i${index}++) {`);
82
+ lines.push(emitEncodeValue(`${valueName}[i${index}]`, field.spec[0], nestedTypes));
83
+ lines.push("}");
84
+ return;
85
+ }
86
+ lines.push(emitEncodeValue(access, field.spec, nestedTypes));
87
+ }
88
+ function emitDecodeField(lines, field, index, nestedTypes) {
89
+ const access = `value[${JSON.stringify(field.key)}]`;
90
+ if (isArraySpec(field.spec)) {
91
+ const lengthName = `len${index}`;
92
+ const valueName = `a${index}`;
93
+ lines.push(`const ${lengthName} = decoder.read_u32();`);
94
+ lines.push(`const ${valueName} = new Array(${lengthName});`);
95
+ lines.push(`for (let i${index} = 0; i${index} < ${lengthName}; i${index}++) {`);
96
+ lines.push(`${valueName}[i${index}] = ${emitDecodeValue(field.spec[0], nestedTypes)};`);
97
+ lines.push("}");
98
+ lines.push(`${access} = ${valueName};`);
99
+ return;
100
+ }
101
+ lines.push(`${access} = ${emitDecodeValue(field.spec, nestedTypes)};`);
102
+ }
103
+ function emitEncodeValue(valueExpr, spec, nestedTypes) {
104
+ if (isScalarSpec(spec)) {
105
+ return `encoder.${scalarMethods[spec].write}(${valueExpr});`;
106
+ }
107
+ return `encoder.write(${valueExpr});`;
108
+ }
109
+ function emitDecodeValue(spec, nestedTypes) {
110
+ if (isScalarSpec(spec)) {
111
+ return `decoder.${scalarMethods[spec].read}()`;
112
+ }
113
+ const nestedIndex = nestedTypes.length;
114
+ nestedTypes.push(spec);
115
+ return `decoder.read(T${nestedIndex})`;
116
+ }
117
+ function assertValidSpec(spec) {
118
+ if (isArraySpec(spec)) {
119
+ if (spec.length !== 1) {
120
+ throw new TypeError("vecs-wire/type array specs must contain exactly one element type");
121
+ }
122
+ assertValidElementSpec(spec[0]);
123
+ return;
124
+ }
125
+ assertValidElementSpec(spec);
126
+ }
127
+ function assertValidElementSpec(spec) {
128
+ if (isScalarSpec(spec) || typeof spec === "function") {
129
+ return;
130
+ }
131
+ throw new TypeError(`vecs-wire/type unsupported type spec ${String(spec)}`);
132
+ }
133
+ function isArraySpec(spec) {
134
+ return Array.isArray(spec);
135
+ }
136
+ function isScalarSpec(spec) {
137
+ return typeof spec === "string" && Object.prototype.hasOwnProperty.call(scalarMethods, spec);
138
+ }
139
+ //# sourceMappingURL=decorators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../vecs-wire/src/decorators.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ export interface IEncodable {
2
+ wireEncode(encoder: Encoder): void;
3
+ }
4
+ export declare class Encoder {
5
+ private readonly _buffer;
6
+ private _cursor;
7
+ constructor(buffer: Uint8Array);
8
+ getBuffer(): Uint8Array;
9
+ reset(): void;
10
+ get length(): number;
11
+ write_varint_u32(value: number): void;
12
+ write_varint_u64(value: bigint): void;
13
+ encode_zz_u32(value: number): number;
14
+ encode_zz_u64(value: bigint): bigint;
15
+ write_u8(value: number): void;
16
+ write_i8(value: number): void;
17
+ write_bool(value: boolean): void;
18
+ write_u16(value: number): void;
19
+ write_u32(value: number): void;
20
+ write_u64(value: bigint): void;
21
+ write_i16(value: number): void;
22
+ write_i32(value: number): void;
23
+ write_enum(value: number): void;
24
+ write_i64(value: bigint): void;
25
+ write_f32(value: number): void;
26
+ write_f64(value: number): void;
27
+ private _write_buffer_raw;
28
+ write_buffer(data: Uint8Array, len?: number): void;
29
+ write_string(value: string): void;
30
+ write_any(value: unknown): void;
31
+ write(value: IEncodable | object): void;
32
+ }