@code0-tech/tucana 0.0.62 → 0.0.64

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import { Value } from "../pb/shared";
2
- type PlainValue = null | number | string | boolean | Array<PlainValue> | object;
2
+ type PlainValue = null | bigint | number | string | boolean | Array<PlainValue> | object;
3
3
  declare function toAllowedValue(value: Value): PlainValue;
4
4
  declare function constructValue(value: PlainValue): Value;
5
5
  export { toAllowedValue, constructValue, PlainValue };
@@ -3,7 +3,16 @@ function toAllowedValue(value) {
3
3
  case "nullValue":
4
4
  return null;
5
5
  case "numberValue":
6
- return value.kind.numberValue;
6
+ const numberValue = value.kind.numberValue;
7
+ if (numberValue.number.oneofKind === "integer") {
8
+ return numberValue.number.integer;
9
+ }
10
+ else if (numberValue.number.oneofKind === "float") {
11
+ return numberValue.number.float;
12
+ }
13
+ else {
14
+ throw new Error("Unsupported NumberValue number kind: " + numberValue.number.oneofKind);
15
+ }
7
16
  case "stringValue":
8
17
  return value.kind.stringValue;
9
18
  case "boolValue":
@@ -24,8 +33,29 @@ function constructValue(value) {
24
33
  if (value === null) {
25
34
  return { kind: { oneofKind: "nullValue", nullValue: 0 } };
26
35
  }
27
- if (typeof value === "number") {
28
- return { kind: { oneofKind: "numberValue", numberValue: value } };
36
+ if (typeof value === "number" || typeof value === "bigint") {
37
+ if (Number.isInteger(value) || typeof value === "bigint") {
38
+ return {
39
+ kind: {
40
+ oneofKind: "numberValue", numberValue: {
41
+ number: {
42
+ oneofKind: "integer",
43
+ integer: BigInt(value)
44
+ }
45
+ }
46
+ }
47
+ };
48
+ }
49
+ return {
50
+ kind: {
51
+ oneofKind: "numberValue", numberValue: {
52
+ number: {
53
+ oneofKind: "float",
54
+ float: value
55
+ }
56
+ }
57
+ }
58
+ };
29
59
  }
30
60
  if (typeof value === "string") {
31
61
  return { kind: { oneofKind: "stringValue", stringValue: value } };
@@ -1,13 +1,20 @@
1
1
  import {Value} from "../pb/shared";
2
2
 
3
- type PlainValue = null | number | string | boolean | Array<PlainValue> | object;
3
+ type PlainValue = null | bigint | number | string | boolean | Array<PlainValue> | object;
4
4
 
5
5
  function toAllowedValue(value: Value): PlainValue {
6
6
  switch (value.kind.oneofKind) {
7
7
  case "nullValue":
8
8
  return null;
9
9
  case "numberValue":
10
- return value.kind.numberValue;
10
+ const numberValue = value.kind.numberValue;
11
+ if (numberValue.number.oneofKind === "integer") {
12
+ return numberValue.number.integer;
13
+ } else if (numberValue.number.oneofKind === "float") {
14
+ return numberValue.number.float;
15
+ } else {
16
+ throw new Error("Unsupported NumberValue number kind: " + numberValue.number.oneofKind);
17
+ }
11
18
  case "stringValue":
12
19
  return value.kind.stringValue;
13
20
  case "boolValue":
@@ -30,8 +37,30 @@ function constructValue(value: PlainValue): Value {
30
37
  if (value === null) {
31
38
  return {kind: {oneofKind: "nullValue", nullValue: 0}};
32
39
  }
33
- if (typeof value === "number") {
34
- return {kind: {oneofKind: "numberValue", numberValue: value}};
40
+ if (typeof value === "number" || typeof value === "bigint") {
41
+ if (Number.isInteger(value) || typeof value === "bigint") {
42
+ return {
43
+ kind: {
44
+ oneofKind: "numberValue", numberValue: {
45
+ number: {
46
+ oneofKind: "integer",
47
+ integer: BigInt(value)
48
+ }
49
+ }
50
+ }
51
+ };
52
+ }
53
+
54
+ return {
55
+ kind: {
56
+ oneofKind: "numberValue", numberValue: {
57
+ number: {
58
+ oneofKind: "float",
59
+ float: value
60
+ }
61
+ }
62
+ }
63
+ };
35
64
  }
36
65
  if (typeof value === "string") {
37
66
  return {kind: {oneofKind: "stringValue", stringValue: value}};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code0-tech/tucana",
3
- "version": "0.0.62",
3
+ "version": "0.0.64",
4
4
  "description": "Code0 GRPC Protocol",
5
5
  "homepage": "https://github.com/code0-tech/tucana#readme",
6
6
  "bugs": {
@@ -92,11 +92,11 @@ export interface Value {
92
92
  } | {
93
93
  oneofKind: "numberValue";
94
94
  /**
95
- * Represents a double value.
95
+ * Represents a numberic value.
96
96
  *
97
- * @generated from protobuf field: double number_value = 2
97
+ * @generated from protobuf field: shared.NumberValue number_value = 2
98
98
  */
99
- numberValue: number;
99
+ numberValue: NumberValue;
100
100
  } | {
101
101
  oneofKind: "stringValue";
102
102
  /**
@@ -133,6 +133,38 @@ export interface Value {
133
133
  oneofKind: undefined;
134
134
  };
135
135
  }
136
+ /**
137
+ * `NumberValue` represents a numeric value which can be either an
138
+ * integer or a floating-point number.
139
+ *
140
+ * The JSON representation for `NumberValue` is JSON number.
141
+ *
142
+ * @generated from protobuf message shared.NumberValue
143
+ */
144
+ export interface NumberValue {
145
+ /**
146
+ * @generated from protobuf oneof: number
147
+ */
148
+ number: {
149
+ oneofKind: "integer";
150
+ /**
151
+ * Represents an integer value.
152
+ *
153
+ * @generated from protobuf field: int64 integer = 1
154
+ */
155
+ integer: bigint;
156
+ } | {
157
+ oneofKind: "float";
158
+ /**
159
+ * Represents a floating-point value.
160
+ *
161
+ * @generated from protobuf field: double float = 2
162
+ */
163
+ float: number;
164
+ } | {
165
+ oneofKind: undefined;
166
+ };
167
+ }
136
168
  /**
137
169
  * `ListValue` is a wrapper around a repeated field of values.
138
170
  *
@@ -176,6 +208,16 @@ declare class Value$Type extends MessageType<Value> {
176
208
  * @generated MessageType for protobuf message shared.Value
177
209
  */
178
210
  export declare const Value: Value$Type;
211
+ declare class NumberValue$Type extends MessageType<NumberValue> {
212
+ constructor();
213
+ create(value?: PartialMessage<NumberValue>): NumberValue;
214
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NumberValue): NumberValue;
215
+ internalBinaryWrite(message: NumberValue, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
216
+ }
217
+ /**
218
+ * @generated MessageType for protobuf message shared.NumberValue
219
+ */
220
+ export declare const NumberValue: NumberValue$Type;
179
221
  declare class ListValue$Type extends MessageType<ListValue> {
180
222
  constructor();
181
223
  create(value?: PartialMessage<ListValue>): ListValue;
@@ -130,7 +130,7 @@ class Value$Type extends MessageType {
130
130
  constructor() {
131
131
  super("shared.Value", [
132
132
  { no: 1, name: "null_value", kind: "enum", oneof: "kind", T: () => ["shared.NullValue", NullValue] },
133
- { no: 2, name: "number_value", kind: "scalar", oneof: "kind", T: 1 /*ScalarType.DOUBLE*/ },
133
+ { no: 2, name: "number_value", kind: "message", oneof: "kind", T: () => NumberValue },
134
134
  { no: 3, name: "string_value", kind: "scalar", oneof: "kind", T: 9 /*ScalarType.STRING*/ },
135
135
  { no: 4, name: "bool_value", kind: "scalar", oneof: "kind", T: 8 /*ScalarType.BOOL*/ },
136
136
  { no: 5, name: "struct_value", kind: "message", oneof: "kind", T: () => Struct },
@@ -155,10 +155,10 @@ class Value$Type extends MessageType {
155
155
  nullValue: reader.int32()
156
156
  };
157
157
  break;
158
- case /* double number_value */ 2:
158
+ case /* shared.NumberValue number_value */ 2:
159
159
  message.kind = {
160
160
  oneofKind: "numberValue",
161
- numberValue: reader.double()
161
+ numberValue: NumberValue.internalBinaryRead(reader, reader.uint32(), options, message.kind.numberValue)
162
162
  };
163
163
  break;
164
164
  case /* string string_value */ 3:
@@ -200,9 +200,9 @@ class Value$Type extends MessageType {
200
200
  /* shared.NullValue null_value = 1; */
201
201
  if (message.kind.oneofKind === "nullValue")
202
202
  writer.tag(1, WireType.Varint).int32(message.kind.nullValue);
203
- /* double number_value = 2; */
203
+ /* shared.NumberValue number_value = 2; */
204
204
  if (message.kind.oneofKind === "numberValue")
205
- writer.tag(2, WireType.Bit64).double(message.kind.numberValue);
205
+ NumberValue.internalBinaryWrite(message.kind.numberValue, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
206
206
  /* string string_value = 3; */
207
207
  if (message.kind.oneofKind === "stringValue")
208
208
  writer.tag(3, WireType.LengthDelimited).string(message.kind.stringValue);
@@ -226,6 +226,66 @@ class Value$Type extends MessageType {
226
226
  */
227
227
  export const Value = new Value$Type();
228
228
  // @generated message type with reflection information, may provide speed optimized methods
229
+ class NumberValue$Type extends MessageType {
230
+ constructor() {
231
+ super("shared.NumberValue", [
232
+ { no: 1, name: "integer", kind: "scalar", oneof: "number", T: 3 /*ScalarType.INT64*/, L: 0 /*LongType.BIGINT*/ },
233
+ { no: 2, name: "float", kind: "scalar", oneof: "number", T: 1 /*ScalarType.DOUBLE*/ }
234
+ ]);
235
+ }
236
+ create(value) {
237
+ const message = globalThis.Object.create((this.messagePrototype));
238
+ message.number = { oneofKind: undefined };
239
+ if (value !== undefined)
240
+ reflectionMergePartial(this, message, value);
241
+ return message;
242
+ }
243
+ internalBinaryRead(reader, length, options, target) {
244
+ let message = target ?? this.create(), end = reader.pos + length;
245
+ while (reader.pos < end) {
246
+ let [fieldNo, wireType] = reader.tag();
247
+ switch (fieldNo) {
248
+ case /* int64 integer */ 1:
249
+ message.number = {
250
+ oneofKind: "integer",
251
+ integer: reader.int64().toBigInt()
252
+ };
253
+ break;
254
+ case /* double float */ 2:
255
+ message.number = {
256
+ oneofKind: "float",
257
+ float: reader.double()
258
+ };
259
+ break;
260
+ default:
261
+ let u = options.readUnknownField;
262
+ if (u === "throw")
263
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
264
+ let d = reader.skip(wireType);
265
+ if (u !== false)
266
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
267
+ }
268
+ }
269
+ return message;
270
+ }
271
+ internalBinaryWrite(message, writer, options) {
272
+ /* int64 integer = 1; */
273
+ if (message.number.oneofKind === "integer")
274
+ writer.tag(1, WireType.Varint).int64(message.number.integer);
275
+ /* double float = 2; */
276
+ if (message.number.oneofKind === "float")
277
+ writer.tag(2, WireType.Bit64).double(message.number.float);
278
+ let u = options.writeUnknownFields;
279
+ if (u !== false)
280
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
281
+ return writer;
282
+ }
283
+ }
284
+ /**
285
+ * @generated MessageType for protobuf message shared.NumberValue
286
+ */
287
+ export const NumberValue = new NumberValue$Type();
288
+ // @generated message type with reflection information, may provide speed optimized methods
229
289
  class ListValue$Type extends MessageType {
230
290
  constructor() {
231
291
  super("shared.ListValue", [