From 0228b1bbc0becf0eeaa788f84845790238492423 Mon Sep 17 00:00:00 2001 From: Sacha Froment Date: Tue, 29 Oct 2024 03:15:22 +0100 Subject: [PATCH 1/3] fix: double vertex only declare once (#205) Signed-off-by: Sacha Froment Co-authored-by: droak --- buf.gen.yaml | 6 +- buf.yaml | 14 +- package.json | 4 +- packages/network/src/index.ts | 2 +- packages/network/src/node.ts | 2 +- .../src/proto/google/protobuf}/struct_pb.ts | 64 ++- packages/network/src/proto/messages.proto | 47 --- .../src/proto/topology/network/messages.proto | 38 ++ .../topology/network/messages_grpc_pb.js | 1 + .../{ => topology/network}/messages_pb.ts | 250 ++---------- .../src/proto/topology/object}/object_pb.ts | 51 ++- packages/node/src/handlers.ts | 4 +- packages/object/src/hashgraph/index.ts | 5 +- packages/object/src/index.ts | 4 +- .../src/proto/google/protobuf}/struct_pb.ts | 64 ++- .../proto/{ => topology/object}/object.proto | 1 + .../proto/topology/object/object_grpc_pb.js | 1 + .../src/proto/topology/object/object_pb.ts | 377 ++++++++++++++++++ 18 files changed, 609 insertions(+), 326 deletions(-) rename packages/{object/src/proto => network/src/proto/google/protobuf}/struct_pb.ts (92%) delete mode 100644 packages/network/src/proto/messages.proto create mode 100644 packages/network/src/proto/topology/network/messages.proto create mode 100644 packages/network/src/proto/topology/network/messages_grpc_pb.js rename packages/network/src/proto/{ => topology/network}/messages_pb.ts (69%) rename packages/{object/src/proto => network/src/proto/topology/object}/object_pb.ts (91%) rename packages/{network/src/proto => object/src/proto/google/protobuf}/struct_pb.ts (92%) rename packages/object/src/proto/{ => topology/object}/object.proto (99%) create mode 100644 packages/object/src/proto/topology/object/object_grpc_pb.js create mode 100644 packages/object/src/proto/topology/object/object_pb.ts diff --git a/buf.gen.yaml b/buf.gen.yaml index 9d37ce63..ef940fe0 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -3,18 +3,18 @@ managed: enabled: true plugins: - local: ./node_modules/ts-proto/protoc-gen-ts_proto - out: ./packages + out: . opt: - esModuleInterop=true - fileSuffix=_pb - ts_proto_opt=outputServices=grpc-js - remote: buf.build/grpc/node - out: ./packages + out: . opt: - ts_proto_opt=esModuleInterop=true inputs: - directory: ./packages exclude_paths: - - packages/node/node_modules + - packages/node - packages/network/node_modules - packages/object/node_modules diff --git a/buf.yaml b/buf.yaml index 2b850d0c..3b4484ca 100644 --- a/buf.yaml +++ b/buf.yaml @@ -1,11 +1,7 @@ version: v2 modules: - # - path: packages/node - # excludes: - # - packages/node/node_modules - - path: packages/network - excludes: - - packages/network/node_modules - - path: packages/object - excludes: - - packages/object/node_modules + - path: packages/object/src/proto + name: buf.build/topology/object + + - path: packages/network/src/proto + name: buf.build/topology/network diff --git a/package.json b/package.json index 6bac12b6..75d1f01f 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,9 @@ "clean": "pnpm --filter '@topology-foundation/*' clean", "docs": "typedoc", "postinstall": "pnpm --filter '@topology-foundation/*' build", - "proto-gen": "buf generate", + "proto-gen": "pnpm proto-gen:object && pnpm proto-gen:network", + "proto-gen:object": "buf generate packages/object/src/proto -o packages/object/src/proto", + "proto-gen:network": "buf generate packages/network/src/proto -o packages/network/src/proto", "release": "release-it", "test": "vitest" }, diff --git a/packages/network/src/index.ts b/packages/network/src/index.ts index c550a43d..961baf83 100644 --- a/packages/network/src/index.ts +++ b/packages/network/src/index.ts @@ -1,2 +1,2 @@ export * from "./node.js"; -export * as NetworkPb from "./proto/messages_pb.js"; +export * as NetworkPb from "./proto/topology/network/messages_pb.js"; diff --git a/packages/network/src/node.ts b/packages/network/src/node.ts index 3ac8ead7..998d9345 100644 --- a/packages/network/src/node.ts +++ b/packages/network/src/node.ts @@ -29,7 +29,7 @@ import { webTransport } from "@libp2p/webtransport"; import { multiaddr } from "@multiformats/multiaddr"; import { type Libp2p, createLibp2p } from "libp2p"; import { fromString as uint8ArrayFromString } from "uint8arrays/from-string"; -import { Message } from "./proto/messages_pb.js"; +import { Message } from "./proto/topology/network/messages_pb.js"; import { uint8ArrayToStream } from "./stream.js"; export * from "./stream.js"; diff --git a/packages/object/src/proto/struct_pb.ts b/packages/network/src/proto/google/protobuf/struct_pb.ts similarity index 92% rename from packages/object/src/proto/struct_pb.ts rename to packages/network/src/proto/google/protobuf/struct_pb.ts index d03c7af8..a9703110 100644 --- a/packages/object/src/proto/struct_pb.ts +++ b/packages/network/src/proto/google/protobuf/struct_pb.ts @@ -1,6 +1,6 @@ // Code generated by protoc-gen-ts_proto. DO NOT EDIT. // versions: -// protoc-gen-ts_proto v2.0.3 +// protoc-gen-ts_proto v2.2.5 // protoc unknown // source: google/protobuf/struct.proto @@ -110,7 +110,7 @@ function createBaseStruct(): Struct { return { fields: {} }; } -export const Struct = { +export const Struct: MessageFns & StructWrapperFns = { encode(message: Struct, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { Object.entries(message.fields).forEach(([key, value]) => { if (value !== undefined) { @@ -127,7 +127,7 @@ export const Struct = { while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } @@ -137,6 +137,7 @@ export const Struct = { message.fields[entry1.key] = entry1.value; } continue; + } } if ((tag & 7) === 4 || tag === 0) { break; @@ -214,7 +215,7 @@ function createBaseStruct_FieldsEntry(): Struct_FieldsEntry { return { key: "", value: undefined }; } -export const Struct_FieldsEntry = { +export const Struct_FieldsEntry: MessageFns = { encode(message: Struct_FieldsEntry, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.key !== "") { writer.uint32(10).string(message.key); @@ -232,20 +233,22 @@ export const Struct_FieldsEntry = { while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.key = reader.string(); continue; - case 2: + } + case 2: { if (tag !== 18) { break; } message.value = Value.unwrap(Value.decode(reader, reader.uint32())); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; @@ -295,7 +298,7 @@ function createBaseValue(): Value { }; } -export const Value = { +export const Value: MessageFns & AnyValueWrapperFns = { encode(message: Value, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.nullValue !== undefined) { writer.uint32(8).int32(message.nullValue); @@ -325,48 +328,54 @@ export const Value = { while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 8) { break; } message.nullValue = reader.int32() as any; continue; - case 2: + } + case 2: { if (tag !== 17) { break; } message.numberValue = reader.double(); continue; - case 3: + } + case 3: { if (tag !== 26) { break; } message.stringValue = reader.string(); continue; - case 4: + } + case 4: { if (tag !== 32) { break; } message.boolValue = reader.bool(); continue; - case 5: + } + case 5: { if (tag !== 42) { break; } message.structValue = Struct.unwrap(Struct.decode(reader, reader.uint32())); continue; - case 6: + } + case 6: { if (tag !== 50) { break; } message.listValue = ListValue.unwrap(ListValue.decode(reader, reader.uint32())); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; @@ -466,7 +475,7 @@ function createBaseListValue(): ListValue { return { values: [] }; } -export const ListValue = { +export const ListValue: MessageFns & ListValueWrapperFns = { encode(message: ListValue, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { for (const v of message.values) { Value.encode(Value.wrap(v!), writer.uint32(10).fork()).join(); @@ -481,13 +490,14 @@ export const ListValue = { while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.values.push(Value.unwrap(Value.decode(reader, reader.uint32()))); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; @@ -552,3 +562,27 @@ function isObject(value: any): boolean { function isSet(value: any): boolean { return value !== null && value !== undefined; } + +export interface MessageFns { + encode(message: T, writer?: BinaryWriter): BinaryWriter; + decode(input: BinaryReader | Uint8Array, length?: number): T; + fromJSON(object: any): T; + toJSON(message: T): unknown; + create, I>>(base?: I): T; + fromPartial, I>>(object: I): T; +} + +export interface StructWrapperFns { + wrap(object: { [key: string]: any } | undefined): Struct; + unwrap(message: Struct): { [key: string]: any }; +} + +export interface AnyValueWrapperFns { + wrap(value: any): Value; + unwrap(message: any): string | number | boolean | Object | null | Array | undefined; +} + +export interface ListValueWrapperFns { + wrap(array: Array | undefined): ListValue; + unwrap(message: ListValue): Array; +} diff --git a/packages/network/src/proto/messages.proto b/packages/network/src/proto/messages.proto deleted file mode 100644 index 23cb9d74..00000000 --- a/packages/network/src/proto/messages.proto +++ /dev/null @@ -1,47 +0,0 @@ -syntax = "proto3"; -package topology.network; -import "google/protobuf/struct.proto"; - -// Supposed to be the RIBLT stuff -message Vertex { - message Operation { - string type = 1; - google.protobuf.Value value = 2; - } - string hash = 1; - string nodeId = 2; - Operation operation = 3; - repeated string dependencies = 4; -}; - -message Message { - enum MessageType { - UPDATE = 0; - SYNC = 1; - SYNC_ACCEPT = 2; - SYNC_REJECT = 3; - CUSTOM = 4; - } - - string sender = 1; - MessageType type = 2; - bytes data = 3; -} - -message Update { - string objectId = 1; - repeated Vertex vertices = 2; -} - -message Sync { - string objectId = 1; - repeated string vertex_hashes = 2; -} - -message SyncAccept { - string objectId = 1; - repeated Vertex requested = 2; - repeated string requesting = 3; -} - -message SyncReject { } diff --git a/packages/network/src/proto/topology/network/messages.proto b/packages/network/src/proto/topology/network/messages.proto new file mode 100644 index 00000000..521b436a --- /dev/null +++ b/packages/network/src/proto/topology/network/messages.proto @@ -0,0 +1,38 @@ +syntax = "proto3"; +package topology.network; + +import "google/protobuf/struct.proto"; +import "topology/object/object.proto"; + + +message Message { + enum MessageType { + UPDATE = 0; + SYNC = 1; + SYNC_ACCEPT = 2; + SYNC_REJECT = 3; + CUSTOM = 4; + } + + string sender = 1; + MessageType type = 2; + bytes data = 3; +} + +message Update { + string objectId = 1; + repeated topology.object.Vertex vertices = 2; +} + +message Sync { + string objectId = 1; + repeated string vertex_hashes = 2; +} + +message SyncAccept { + string objectId = 1; + repeated topology.object.Vertex requested = 2; + repeated string requesting = 3; +} + +message SyncReject {} diff --git a/packages/network/src/proto/topology/network/messages_grpc_pb.js b/packages/network/src/proto/topology/network/messages_grpc_pb.js new file mode 100644 index 00000000..97b3a246 --- /dev/null +++ b/packages/network/src/proto/topology/network/messages_grpc_pb.js @@ -0,0 +1 @@ +// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/packages/network/src/proto/messages_pb.ts b/packages/network/src/proto/topology/network/messages_pb.ts similarity index 69% rename from packages/network/src/proto/messages_pb.ts rename to packages/network/src/proto/topology/network/messages_pb.ts index 086d3358..1be595de 100644 --- a/packages/network/src/proto/messages_pb.ts +++ b/packages/network/src/proto/topology/network/messages_pb.ts @@ -1,28 +1,15 @@ // Code generated by protoc-gen-ts_proto. DO NOT EDIT. // versions: -// protoc-gen-ts_proto v2.0.3 +// protoc-gen-ts_proto v2.2.5 // protoc unknown -// source: network/src/proto/messages.proto +// source: topology/network/messages.proto /* eslint-disable */ import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire"; -import { Value } from "./struct_pb.js"; +import { Vertex } from "../object/object_pb.js"; export const protobufPackage = "topology.network"; -/** Supposed to be the RIBLT stuff */ -export interface Vertex { - hash: string; - nodeId: string; - operation: Vertex_Operation | undefined; - dependencies: string[]; -} - -export interface Vertex_Operation { - type: string; - value: any | undefined; -} - export interface Message { sender: string; type: Message_MessageType; @@ -99,193 +86,11 @@ export interface SyncAccept { export interface SyncReject { } -function createBaseVertex(): Vertex { - return { hash: "", nodeId: "", operation: undefined, dependencies: [] }; -} - -export const Vertex = { - encode(message: Vertex, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { - if (message.hash !== "") { - writer.uint32(10).string(message.hash); - } - if (message.nodeId !== "") { - writer.uint32(18).string(message.nodeId); - } - if (message.operation !== undefined) { - Vertex_Operation.encode(message.operation, writer.uint32(26).fork()).join(); - } - for (const v of message.dependencies) { - writer.uint32(34).string(v!); - } - return writer; - }, - - decode(input: BinaryReader | Uint8Array, length?: number): Vertex { - const reader = input instanceof BinaryReader ? input : new BinaryReader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseVertex(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (tag !== 10) { - break; - } - - message.hash = reader.string(); - continue; - case 2: - if (tag !== 18) { - break; - } - - message.nodeId = reader.string(); - continue; - case 3: - if (tag !== 26) { - break; - } - - message.operation = Vertex_Operation.decode(reader, reader.uint32()); - continue; - case 4: - if (tag !== 34) { - break; - } - - message.dependencies.push(reader.string()); - continue; - } - if ((tag & 7) === 4 || tag === 0) { - break; - } - reader.skip(tag & 7); - } - return message; - }, - - fromJSON(object: any): Vertex { - return { - hash: isSet(object.hash) ? globalThis.String(object.hash) : "", - nodeId: isSet(object.nodeId) ? globalThis.String(object.nodeId) : "", - operation: isSet(object.operation) ? Vertex_Operation.fromJSON(object.operation) : undefined, - dependencies: globalThis.Array.isArray(object?.dependencies) - ? object.dependencies.map((e: any) => globalThis.String(e)) - : [], - }; - }, - - toJSON(message: Vertex): unknown { - const obj: any = {}; - if (message.hash !== "") { - obj.hash = message.hash; - } - if (message.nodeId !== "") { - obj.nodeId = message.nodeId; - } - if (message.operation !== undefined) { - obj.operation = Vertex_Operation.toJSON(message.operation); - } - if (message.dependencies?.length) { - obj.dependencies = message.dependencies; - } - return obj; - }, - - create, I>>(base?: I): Vertex { - return Vertex.fromPartial(base ?? ({} as any)); - }, - fromPartial, I>>(object: I): Vertex { - const message = createBaseVertex(); - message.hash = object.hash ?? ""; - message.nodeId = object.nodeId ?? ""; - message.operation = (object.operation !== undefined && object.operation !== null) - ? Vertex_Operation.fromPartial(object.operation) - : undefined; - message.dependencies = object.dependencies?.map((e) => e) || []; - return message; - }, -}; - -function createBaseVertex_Operation(): Vertex_Operation { - return { type: "", value: undefined }; -} - -export const Vertex_Operation = { - encode(message: Vertex_Operation, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { - if (message.type !== "") { - writer.uint32(10).string(message.type); - } - if (message.value !== undefined) { - Value.encode(Value.wrap(message.value), writer.uint32(18).fork()).join(); - } - return writer; - }, - - decode(input: BinaryReader | Uint8Array, length?: number): Vertex_Operation { - const reader = input instanceof BinaryReader ? input : new BinaryReader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseVertex_Operation(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - if (tag !== 10) { - break; - } - - message.type = reader.string(); - continue; - case 2: - if (tag !== 18) { - break; - } - - message.value = Value.unwrap(Value.decode(reader, reader.uint32())); - continue; - } - if ((tag & 7) === 4 || tag === 0) { - break; - } - reader.skip(tag & 7); - } - return message; - }, - - fromJSON(object: any): Vertex_Operation { - return { - type: isSet(object.type) ? globalThis.String(object.type) : "", - value: isSet(object?.value) ? object.value : undefined, - }; - }, - - toJSON(message: Vertex_Operation): unknown { - const obj: any = {}; - if (message.type !== "") { - obj.type = message.type; - } - if (message.value !== undefined) { - obj.value = message.value; - } - return obj; - }, - - create, I>>(base?: I): Vertex_Operation { - return Vertex_Operation.fromPartial(base ?? ({} as any)); - }, - fromPartial, I>>(object: I): Vertex_Operation { - const message = createBaseVertex_Operation(); - message.type = object.type ?? ""; - message.value = object.value ?? undefined; - return message; - }, -}; - function createBaseMessage(): Message { return { sender: "", type: 0, data: new Uint8Array(0) }; } -export const Message = { +export const Message: MessageFns = { encode(message: Message, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.sender !== "") { writer.uint32(10).string(message.sender); @@ -306,27 +111,30 @@ export const Message = { while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.sender = reader.string(); continue; - case 2: + } + case 2: { if (tag !== 16) { break; } message.type = reader.int32() as any; continue; - case 3: + } + case 3: { if (tag !== 26) { break; } message.data = reader.bytes(); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; @@ -374,7 +182,7 @@ function createBaseUpdate(): Update { return { objectId: "", vertices: [] }; } -export const Update = { +export const Update: MessageFns = { encode(message: Update, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.objectId !== "") { writer.uint32(10).string(message.objectId); @@ -392,20 +200,22 @@ export const Update = { while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.objectId = reader.string(); continue; - case 2: + } + case 2: { if (tag !== 18) { break; } message.vertices.push(Vertex.decode(reader, reader.uint32())); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; @@ -448,7 +258,7 @@ function createBaseSync(): Sync { return { objectId: "", vertexHashes: [] }; } -export const Sync = { +export const Sync: MessageFns = { encode(message: Sync, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.objectId !== "") { writer.uint32(10).string(message.objectId); @@ -466,20 +276,22 @@ export const Sync = { while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.objectId = reader.string(); continue; - case 2: + } + case 2: { if (tag !== 18) { break; } message.vertexHashes.push(reader.string()); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; @@ -524,7 +336,7 @@ function createBaseSyncAccept(): SyncAccept { return { objectId: "", requested: [], requesting: [] }; } -export const SyncAccept = { +export const SyncAccept: MessageFns = { encode(message: SyncAccept, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.objectId !== "") { writer.uint32(10).string(message.objectId); @@ -545,27 +357,30 @@ export const SyncAccept = { while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.objectId = reader.string(); continue; - case 2: + } + case 2: { if (tag !== 18) { break; } message.requested.push(Vertex.decode(reader, reader.uint32())); continue; - case 3: + } + case 3: { if (tag !== 26) { break; } message.requesting.push(reader.string()); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; @@ -617,7 +432,7 @@ function createBaseSyncReject(): SyncReject { return {}; } -export const SyncReject = { +export const SyncReject: MessageFns = { encode(_: SyncReject, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { return writer; }, @@ -696,3 +511,12 @@ export type Exact = P extends Builtin ? P function isSet(value: any): boolean { return value !== null && value !== undefined; } + +export interface MessageFns { + encode(message: T, writer?: BinaryWriter): BinaryWriter; + decode(input: BinaryReader | Uint8Array, length?: number): T; + fromJSON(object: any): T; + toJSON(message: T): unknown; + create, I>>(base?: I): T; + fromPartial, I>>(object: I): T; +} diff --git a/packages/object/src/proto/object_pb.ts b/packages/network/src/proto/topology/object/object_pb.ts similarity index 91% rename from packages/object/src/proto/object_pb.ts rename to packages/network/src/proto/topology/object/object_pb.ts index 0166d10c..e73d21e0 100644 --- a/packages/object/src/proto/object_pb.ts +++ b/packages/network/src/proto/topology/object/object_pb.ts @@ -1,12 +1,12 @@ // Code generated by protoc-gen-ts_proto. DO NOT EDIT. // versions: -// protoc-gen-ts_proto v2.0.3 +// protoc-gen-ts_proto v2.2.5 // protoc unknown -// source: blueprints/node_modules/@topology-foundation/object/src/proto/object.proto +// source: topology/object/object.proto /* eslint-disable */ import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire"; -import { Value } from "./struct_pb.js"; +import { Value } from "../../google/protobuf/struct_pb.js"; export const protobufPackage = "topology.object"; @@ -34,7 +34,7 @@ function createBaseVertex(): Vertex { return { hash: "", nodeId: "", operation: undefined, dependencies: [] }; } -export const Vertex = { +export const Vertex: MessageFns = { encode(message: Vertex, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.hash !== "") { writer.uint32(10).string(message.hash); @@ -58,34 +58,38 @@ export const Vertex = { while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.hash = reader.string(); continue; - case 2: + } + case 2: { if (tag !== 18) { break; } message.nodeId = reader.string(); continue; - case 3: + } + case 3: { if (tag !== 26) { break; } message.operation = Vertex_Operation.decode(reader, reader.uint32()); continue; - case 4: + } + case 4: { if (tag !== 34) { break; } message.dependencies.push(reader.string()); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; @@ -142,7 +146,7 @@ function createBaseVertex_Operation(): Vertex_Operation { return { type: "", value: undefined }; } -export const Vertex_Operation = { +export const Vertex_Operation: MessageFns = { encode(message: Vertex_Operation, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.type !== "") { writer.uint32(10).string(message.type); @@ -160,20 +164,22 @@ export const Vertex_Operation = { while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.type = reader.string(); continue; - case 2: + } + case 2: { if (tag !== 18) { break; } message.value = Value.unwrap(Value.decode(reader, reader.uint32())); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; @@ -216,7 +222,7 @@ function createBaseTopologyObjectBase(): TopologyObjectBase { return { id: "", abi: undefined, bytecode: undefined, vertices: [] }; } -export const TopologyObjectBase = { +export const TopologyObjectBase: MessageFns = { encode(message: TopologyObjectBase, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.id !== "") { writer.uint32(10).string(message.id); @@ -240,34 +246,38 @@ export const TopologyObjectBase = { while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.id = reader.string(); continue; - case 2: + } + case 2: { if (tag !== 18) { break; } message.abi = reader.string(); continue; - case 3: + } + case 3: { if (tag !== 26) { break; } message.bytecode = reader.bytes(); continue; - case 4: + } + case 4: { if (tag !== 34) { break; } message.vertices.push(Vertex.decode(reader, reader.uint32())); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; @@ -356,3 +366,12 @@ export type Exact = P extends Builtin ? P function isSet(value: any): boolean { return value !== null && value !== undefined; } + +export interface MessageFns { + encode(message: T, writer?: BinaryWriter): BinaryWriter; + decode(input: BinaryReader | Uint8Array, length?: number): T; + fromJSON(object: any): T; + toJSON(message: T): unknown; + create, I>>(base?: I): T; + fromPartial, I>>(object: I): T; +} diff --git a/packages/node/src/handlers.ts b/packages/node/src/handlers.ts index afdd3f80..560d87fb 100644 --- a/packages/node/src/handlers.ts +++ b/packages/node/src/handlers.ts @@ -115,7 +115,7 @@ function syncHandler( return; } - const requested: Set = new Set(object.vertices); + const requested: Set = new Set(object.vertices); const requesting: string[] = []; for (const h of syncMessage.vertexHashes) { const vertex = object.vertices.find((v) => v.hash === h); @@ -178,7 +178,7 @@ function syncAcceptHandler( } // send missing vertices - const requested: NetworkPb.Vertex[] = []; + const requested: ObjectPb.Vertex[] = []; for (const h of syncAcceptMessage.requesting) { const vertex = object.vertices.find((v) => v.hash === h); if (vertex) { diff --git a/packages/object/src/hashgraph/index.ts b/packages/object/src/hashgraph/index.ts index 760b0064..8c49534b 100644 --- a/packages/object/src/hashgraph/index.ts +++ b/packages/object/src/hashgraph/index.ts @@ -1,7 +1,10 @@ import * as crypto from "node:crypto"; import { linearizeMultiple } from "../linearize/multipleSemantics.js"; import { linearizePair } from "../linearize/pairSemantics.js"; -import { Vertex_Operation as Operation, Vertex } from "../proto/object_pb.js"; +import { + Vertex_Operation as Operation, + Vertex, +} from "../proto/topology/object/object_pb.js"; import { BitSet } from "./bitset.js"; // Reexporting the Vertex and Operation types from the protobuf file diff --git a/packages/object/src/index.ts b/packages/object/src/index.ts index 91de19fd..baf19fd8 100644 --- a/packages/object/src/index.ts +++ b/packages/object/src/index.ts @@ -6,9 +6,9 @@ import { type SemanticsType, type Vertex, } from "./hashgraph/index.js"; -import * as ObjectPb from "./proto/object_pb.js"; +import * as ObjectPb from "./proto/topology/object/object_pb.js"; -export * as ObjectPb from "./proto/object_pb.js"; +export * as ObjectPb from "./proto/topology/object/object_pb.js"; export * from "./hashgraph/index.js"; export interface CRO { diff --git a/packages/network/src/proto/struct_pb.ts b/packages/object/src/proto/google/protobuf/struct_pb.ts similarity index 92% rename from packages/network/src/proto/struct_pb.ts rename to packages/object/src/proto/google/protobuf/struct_pb.ts index d03c7af8..a9703110 100644 --- a/packages/network/src/proto/struct_pb.ts +++ b/packages/object/src/proto/google/protobuf/struct_pb.ts @@ -1,6 +1,6 @@ // Code generated by protoc-gen-ts_proto. DO NOT EDIT. // versions: -// protoc-gen-ts_proto v2.0.3 +// protoc-gen-ts_proto v2.2.5 // protoc unknown // source: google/protobuf/struct.proto @@ -110,7 +110,7 @@ function createBaseStruct(): Struct { return { fields: {} }; } -export const Struct = { +export const Struct: MessageFns & StructWrapperFns = { encode(message: Struct, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { Object.entries(message.fields).forEach(([key, value]) => { if (value !== undefined) { @@ -127,7 +127,7 @@ export const Struct = { while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } @@ -137,6 +137,7 @@ export const Struct = { message.fields[entry1.key] = entry1.value; } continue; + } } if ((tag & 7) === 4 || tag === 0) { break; @@ -214,7 +215,7 @@ function createBaseStruct_FieldsEntry(): Struct_FieldsEntry { return { key: "", value: undefined }; } -export const Struct_FieldsEntry = { +export const Struct_FieldsEntry: MessageFns = { encode(message: Struct_FieldsEntry, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.key !== "") { writer.uint32(10).string(message.key); @@ -232,20 +233,22 @@ export const Struct_FieldsEntry = { while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.key = reader.string(); continue; - case 2: + } + case 2: { if (tag !== 18) { break; } message.value = Value.unwrap(Value.decode(reader, reader.uint32())); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; @@ -295,7 +298,7 @@ function createBaseValue(): Value { }; } -export const Value = { +export const Value: MessageFns & AnyValueWrapperFns = { encode(message: Value, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { if (message.nullValue !== undefined) { writer.uint32(8).int32(message.nullValue); @@ -325,48 +328,54 @@ export const Value = { while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 8) { break; } message.nullValue = reader.int32() as any; continue; - case 2: + } + case 2: { if (tag !== 17) { break; } message.numberValue = reader.double(); continue; - case 3: + } + case 3: { if (tag !== 26) { break; } message.stringValue = reader.string(); continue; - case 4: + } + case 4: { if (tag !== 32) { break; } message.boolValue = reader.bool(); continue; - case 5: + } + case 5: { if (tag !== 42) { break; } message.structValue = Struct.unwrap(Struct.decode(reader, reader.uint32())); continue; - case 6: + } + case 6: { if (tag !== 50) { break; } message.listValue = ListValue.unwrap(ListValue.decode(reader, reader.uint32())); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; @@ -466,7 +475,7 @@ function createBaseListValue(): ListValue { return { values: [] }; } -export const ListValue = { +export const ListValue: MessageFns & ListValueWrapperFns = { encode(message: ListValue, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { for (const v of message.values) { Value.encode(Value.wrap(v!), writer.uint32(10).fork()).join(); @@ -481,13 +490,14 @@ export const ListValue = { while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: + case 1: { if (tag !== 10) { break; } message.values.push(Value.unwrap(Value.decode(reader, reader.uint32()))); continue; + } } if ((tag & 7) === 4 || tag === 0) { break; @@ -552,3 +562,27 @@ function isObject(value: any): boolean { function isSet(value: any): boolean { return value !== null && value !== undefined; } + +export interface MessageFns { + encode(message: T, writer?: BinaryWriter): BinaryWriter; + decode(input: BinaryReader | Uint8Array, length?: number): T; + fromJSON(object: any): T; + toJSON(message: T): unknown; + create, I>>(base?: I): T; + fromPartial, I>>(object: I): T; +} + +export interface StructWrapperFns { + wrap(object: { [key: string]: any } | undefined): Struct; + unwrap(message: Struct): { [key: string]: any }; +} + +export interface AnyValueWrapperFns { + wrap(value: any): Value; + unwrap(message: any): string | number | boolean | Object | null | Array | undefined; +} + +export interface ListValueWrapperFns { + wrap(array: Array | undefined): ListValue; + unwrap(message: ListValue): Array; +} diff --git a/packages/object/src/proto/object.proto b/packages/object/src/proto/topology/object/object.proto similarity index 99% rename from packages/object/src/proto/object.proto rename to packages/object/src/proto/topology/object/object.proto index 6d9c1a21..0f561065 100644 --- a/packages/object/src/proto/object.proto +++ b/packages/object/src/proto/topology/object/object.proto @@ -1,4 +1,5 @@ syntax = "proto3"; + package topology.object; option go_package = "ts-topology/packages/object"; diff --git a/packages/object/src/proto/topology/object/object_grpc_pb.js b/packages/object/src/proto/topology/object/object_grpc_pb.js new file mode 100644 index 00000000..97b3a246 --- /dev/null +++ b/packages/object/src/proto/topology/object/object_grpc_pb.js @@ -0,0 +1 @@ +// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/packages/object/src/proto/topology/object/object_pb.ts b/packages/object/src/proto/topology/object/object_pb.ts new file mode 100644 index 00000000..e73d21e0 --- /dev/null +++ b/packages/object/src/proto/topology/object/object_pb.ts @@ -0,0 +1,377 @@ +// Code generated by protoc-gen-ts_proto. DO NOT EDIT. +// versions: +// protoc-gen-ts_proto v2.2.5 +// protoc unknown +// source: topology/object/object.proto + +/* eslint-disable */ +import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire"; +import { Value } from "../../google/protobuf/struct_pb.js"; + +export const protobufPackage = "topology.object"; + +/** Supposed to be the RIBLT stuff */ +export interface Vertex { + hash: string; + nodeId: string; + operation: Vertex_Operation | undefined; + dependencies: string[]; +} + +export interface Vertex_Operation { + type: string; + value: any | undefined; +} + +export interface TopologyObjectBase { + id: string; + abi?: string | undefined; + bytecode?: Uint8Array | undefined; + vertices: Vertex[]; +} + +function createBaseVertex(): Vertex { + return { hash: "", nodeId: "", operation: undefined, dependencies: [] }; +} + +export const Vertex: MessageFns = { + encode(message: Vertex, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { + if (message.hash !== "") { + writer.uint32(10).string(message.hash); + } + if (message.nodeId !== "") { + writer.uint32(18).string(message.nodeId); + } + if (message.operation !== undefined) { + Vertex_Operation.encode(message.operation, writer.uint32(26).fork()).join(); + } + for (const v of message.dependencies) { + writer.uint32(34).string(v!); + } + return writer; + }, + + decode(input: BinaryReader | Uint8Array, length?: number): Vertex { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseVertex(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + if (tag !== 10) { + break; + } + + message.hash = reader.string(); + continue; + } + case 2: { + if (tag !== 18) { + break; + } + + message.nodeId = reader.string(); + continue; + } + case 3: { + if (tag !== 26) { + break; + } + + message.operation = Vertex_Operation.decode(reader, reader.uint32()); + continue; + } + case 4: { + if (tag !== 34) { + break; + } + + message.dependencies.push(reader.string()); + continue; + } + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skip(tag & 7); + } + return message; + }, + + fromJSON(object: any): Vertex { + return { + hash: isSet(object.hash) ? globalThis.String(object.hash) : "", + nodeId: isSet(object.nodeId) ? globalThis.String(object.nodeId) : "", + operation: isSet(object.operation) ? Vertex_Operation.fromJSON(object.operation) : undefined, + dependencies: globalThis.Array.isArray(object?.dependencies) + ? object.dependencies.map((e: any) => globalThis.String(e)) + : [], + }; + }, + + toJSON(message: Vertex): unknown { + const obj: any = {}; + if (message.hash !== "") { + obj.hash = message.hash; + } + if (message.nodeId !== "") { + obj.nodeId = message.nodeId; + } + if (message.operation !== undefined) { + obj.operation = Vertex_Operation.toJSON(message.operation); + } + if (message.dependencies?.length) { + obj.dependencies = message.dependencies; + } + return obj; + }, + + create, I>>(base?: I): Vertex { + return Vertex.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): Vertex { + const message = createBaseVertex(); + message.hash = object.hash ?? ""; + message.nodeId = object.nodeId ?? ""; + message.operation = (object.operation !== undefined && object.operation !== null) + ? Vertex_Operation.fromPartial(object.operation) + : undefined; + message.dependencies = object.dependencies?.map((e) => e) || []; + return message; + }, +}; + +function createBaseVertex_Operation(): Vertex_Operation { + return { type: "", value: undefined }; +} + +export const Vertex_Operation: MessageFns = { + encode(message: Vertex_Operation, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { + if (message.type !== "") { + writer.uint32(10).string(message.type); + } + if (message.value !== undefined) { + Value.encode(Value.wrap(message.value), writer.uint32(18).fork()).join(); + } + return writer; + }, + + decode(input: BinaryReader | Uint8Array, length?: number): Vertex_Operation { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseVertex_Operation(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + if (tag !== 10) { + break; + } + + message.type = reader.string(); + continue; + } + case 2: { + if (tag !== 18) { + break; + } + + message.value = Value.unwrap(Value.decode(reader, reader.uint32())); + continue; + } + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skip(tag & 7); + } + return message; + }, + + fromJSON(object: any): Vertex_Operation { + return { + type: isSet(object.type) ? globalThis.String(object.type) : "", + value: isSet(object?.value) ? object.value : undefined, + }; + }, + + toJSON(message: Vertex_Operation): unknown { + const obj: any = {}; + if (message.type !== "") { + obj.type = message.type; + } + if (message.value !== undefined) { + obj.value = message.value; + } + return obj; + }, + + create, I>>(base?: I): Vertex_Operation { + return Vertex_Operation.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): Vertex_Operation { + const message = createBaseVertex_Operation(); + message.type = object.type ?? ""; + message.value = object.value ?? undefined; + return message; + }, +}; + +function createBaseTopologyObjectBase(): TopologyObjectBase { + return { id: "", abi: undefined, bytecode: undefined, vertices: [] }; +} + +export const TopologyObjectBase: MessageFns = { + encode(message: TopologyObjectBase, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { + if (message.id !== "") { + writer.uint32(10).string(message.id); + } + if (message.abi !== undefined) { + writer.uint32(18).string(message.abi); + } + if (message.bytecode !== undefined) { + writer.uint32(26).bytes(message.bytecode); + } + for (const v of message.vertices) { + Vertex.encode(v!, writer.uint32(34).fork()).join(); + } + return writer; + }, + + decode(input: BinaryReader | Uint8Array, length?: number): TopologyObjectBase { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTopologyObjectBase(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + if (tag !== 10) { + break; + } + + message.id = reader.string(); + continue; + } + case 2: { + if (tag !== 18) { + break; + } + + message.abi = reader.string(); + continue; + } + case 3: { + if (tag !== 26) { + break; + } + + message.bytecode = reader.bytes(); + continue; + } + case 4: { + if (tag !== 34) { + break; + } + + message.vertices.push(Vertex.decode(reader, reader.uint32())); + continue; + } + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skip(tag & 7); + } + return message; + }, + + fromJSON(object: any): TopologyObjectBase { + return { + id: isSet(object.id) ? globalThis.String(object.id) : "", + abi: isSet(object.abi) ? globalThis.String(object.abi) : undefined, + bytecode: isSet(object.bytecode) ? bytesFromBase64(object.bytecode) : undefined, + vertices: globalThis.Array.isArray(object?.vertices) ? object.vertices.map((e: any) => Vertex.fromJSON(e)) : [], + }; + }, + + toJSON(message: TopologyObjectBase): unknown { + const obj: any = {}; + if (message.id !== "") { + obj.id = message.id; + } + if (message.abi !== undefined) { + obj.abi = message.abi; + } + if (message.bytecode !== undefined) { + obj.bytecode = base64FromBytes(message.bytecode); + } + if (message.vertices?.length) { + obj.vertices = message.vertices.map((e) => Vertex.toJSON(e)); + } + return obj; + }, + + create, I>>(base?: I): TopologyObjectBase { + return TopologyObjectBase.fromPartial(base ?? ({} as any)); + }, + fromPartial, I>>(object: I): TopologyObjectBase { + const message = createBaseTopologyObjectBase(); + message.id = object.id ?? ""; + message.abi = object.abi ?? undefined; + message.bytecode = object.bytecode ?? undefined; + message.vertices = object.vertices?.map((e) => Vertex.fromPartial(e)) || []; + return message; + }, +}; + +function bytesFromBase64(b64: string): Uint8Array { + if ((globalThis as any).Buffer) { + return Uint8Array.from(globalThis.Buffer.from(b64, "base64")); + } else { + const bin = globalThis.atob(b64); + const arr = new Uint8Array(bin.length); + for (let i = 0; i < bin.length; ++i) { + arr[i] = bin.charCodeAt(i); + } + return arr; + } +} + +function base64FromBytes(arr: Uint8Array): string { + if ((globalThis as any).Buffer) { + return globalThis.Buffer.from(arr).toString("base64"); + } else { + const bin: string[] = []; + arr.forEach((byte) => { + bin.push(globalThis.String.fromCharCode(byte)); + }); + return globalThis.btoa(bin.join("")); + } +} + +type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; + +export type DeepPartial = T extends Builtin ? T + : T extends globalThis.Array ? globalThis.Array> + : T extends ReadonlyArray ? ReadonlyArray> + : T extends {} ? { [K in keyof T]?: DeepPartial } + : Partial; + +type KeysOfUnion = T extends T ? keyof T : never; +export type Exact = P extends Builtin ? P + : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never }; + +function isSet(value: any): boolean { + return value !== null && value !== undefined; +} + +export interface MessageFns { + encode(message: T, writer?: BinaryWriter): BinaryWriter; + decode(input: BinaryReader | Uint8Array, length?: number): T; + fromJSON(object: any): T; + toJSON(message: T): unknown; + create, I>>(base?: I): T; + fromPartial, I>>(object: I): T; +} From a74fa9fac3fb2fcf62a4f9b139afa6a36d748aac Mon Sep 17 00:00:00 2001 From: Oak Date: Tue, 29 Oct 2024 07:21:03 +0000 Subject: [PATCH 2/3] ci: add buf registry deploy on the ci (#216) --- .github/workflows/buf-registry.yml | 14 ++++++++++++++ .github/workflows/release.yml | 8 ++++++++ 2 files changed, 22 insertions(+) create mode 100644 .github/workflows/buf-registry.yml diff --git a/.github/workflows/buf-registry.yml b/.github/workflows/buf-registry.yml new file mode 100644 index 00000000..3d5b3294 --- /dev/null +++ b/.github/workflows/buf-registry.yml @@ -0,0 +1,14 @@ +name: Publish buf files +on: + workflow_call: +permissions: + contents: read +jobs: + buf: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: bufbuild/buf-action@v1 + with: + token: ${{ secrets.BUF_TOKEN }} + tpr_comment: false diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 044cc9a5..6ba85cdf 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,6 +11,14 @@ jobs: packages: write uses: ./.github/workflows/npm-publish.yml + publish_buf_registry: + name: Publish buf files + permissions: + contents: read + needs: + - npm_publish + uses: ./.github/workflows/buf-registry.yml + build_docker_images: name: Build Docker Images permissions: From 12d8c3135a992c69dedf1e6d10821972745d1c97 Mon Sep 17 00:00:00 2001 From: droak Date: Tue, 29 Oct 2024 16:21:57 +0900 Subject: [PATCH 3/3] chore: release v0.2.1-0 --- examples/canvas/package.json | 10 +-- examples/chat/package.json | 10 +-- examples/grid/package.json | 8 +- examples/local-bootstrap/package.json | 10 +-- package.json | 112 +++++++++++++------------- packages/blueprints/package.json | 4 +- packages/network/package.json | 2 +- packages/node/package.json | 8 +- packages/object/package.json | 2 +- 9 files changed, 83 insertions(+), 83 deletions(-) diff --git a/examples/canvas/package.json b/examples/canvas/package.json index 203e962c..d08680b8 100644 --- a/examples/canvas/package.json +++ b/examples/canvas/package.json @@ -1,6 +1,6 @@ { "name": "ts-topology-examples-canvas", - "version": "0.2.0", + "version": "0.2.1-0", "license": "MIT", "scripts": { "build": "vite build", @@ -9,10 +9,10 @@ "start": "ts-node ./src/index.ts" }, "dependencies": { - "@topology-foundation/blueprints": "0.2.0", - "@topology-foundation/network": "0.2.0", - "@topology-foundation/node": "0.2.0", - "@topology-foundation/object": "0.2.0", + "@topology-foundation/blueprints": "0.2.1-0", + "@topology-foundation/network": "0.2.1-0", + "@topology-foundation/node": "0.2.1-0", + "@topology-foundation/object": "0.2.1-0", "crypto-browserify": "^3.12.0", "process": "^0.11.10", "stream-browserify": "^3.0.0", diff --git a/examples/chat/package.json b/examples/chat/package.json index 1d4e5edf..05ef8f89 100644 --- a/examples/chat/package.json +++ b/examples/chat/package.json @@ -1,6 +1,6 @@ { "name": "topology-example-chat", - "version": "0.2.0", + "version": "0.2.1-0", "description": "Topology Protocol Chat Example", "main": "src/index.ts", "repository": "https://github.com/topology-foundation/ts-topology.git", @@ -13,10 +13,10 @@ "start": "ts-node ./src/index.ts" }, "dependencies": { - "@topology-foundation/blueprints": "0.2.0", - "@topology-foundation/network": "0.2.0", - "@topology-foundation/node": "0.2.0", - "@topology-foundation/object": "0.2.0", + "@topology-foundation/blueprints": "0.2.1-0", + "@topology-foundation/network": "0.2.1-0", + "@topology-foundation/node": "0.2.1-0", + "@topology-foundation/object": "0.2.1-0", "assemblyscript": "^0.27.29", "crypto-browserify": "^3.12.0", "process": "^0.11.10", diff --git a/examples/grid/package.json b/examples/grid/package.json index 3b675214..964b03f3 100644 --- a/examples/grid/package.json +++ b/examples/grid/package.json @@ -1,6 +1,6 @@ { "name": "topology-example-grid", - "version": "0.2.0", + "version": "0.2.1-0", "description": "Topology Protocol Grid Exmaple", "main": "src/index.ts", "repository": "https://github.com/topology-foundation/ts-topology.git", @@ -13,9 +13,9 @@ "start": "ts-node ./src/index.ts" }, "dependencies": { - "@topology-foundation/network": "0.2.0", - "@topology-foundation/node": "0.2.0", - "@topology-foundation/object": "0.2.0", + "@topology-foundation/network": "0.2.1-0", + "@topology-foundation/node": "0.2.1-0", + "@topology-foundation/object": "0.2.1-0", "assemblyscript": "^0.27.29", "crypto-browserify": "^3.12.0", "memfs": "^4.11.1", diff --git a/examples/local-bootstrap/package.json b/examples/local-bootstrap/package.json index 785d82b6..62ab5226 100644 --- a/examples/local-bootstrap/package.json +++ b/examples/local-bootstrap/package.json @@ -1,6 +1,6 @@ { "name": "topology-example-localdev", - "version": "0.2.0", + "version": "0.2.1-0", "description": "Topology Protocol Local Dev Example", "main": "src/index.ts", "repository": "https://github.com/topology-foundation/ts-topology.git", @@ -13,10 +13,10 @@ "start": "ts-node ./src/index.ts" }, "dependencies": { - "@topology-foundation/blueprints": "0.2.0", - "@topology-foundation/network": "0.2.0", - "@topology-foundation/node": "0.2.0", - "@topology-foundation/object": "0.2.0", + "@topology-foundation/blueprints": "0.2.1-0", + "@topology-foundation/network": "0.2.1-0", + "@topology-foundation/node": "0.2.1-0", + "@topology-foundation/object": "0.2.1-0", "assemblyscript": "^0.27.29", "crypto-browserify": "^3.12.0", "process": "^0.11.10", diff --git a/package.json b/package.json index 75d1f01f..1bf57b18 100644 --- a/package.json +++ b/package.json @@ -1,58 +1,58 @@ { - "name": "ts-topology", - "description": "The official TypeScript implementation of Topology Protocol", - "version": "0.2.0", - "license": "MIT", - "homepage": "https://topology.gg/", - "repository": { - "type": "git", - "url": "git+https://github.com/topology-foundation/ts-topology.git" - }, - "bugs": { - "url": "https://github.com/topology-foundation/ts-topology/issues" - }, - "workspaces": [ - "packages/*", - "examples/*" - ], - "scripts": { - "bench": "vitest bench", - "biome-check": "biome check", - "clean": "pnpm --filter '@topology-foundation/*' clean", - "docs": "typedoc", - "postinstall": "pnpm --filter '@topology-foundation/*' build", - "proto-gen": "pnpm proto-gen:object && pnpm proto-gen:network", - "proto-gen:object": "buf generate packages/object/src/proto -o packages/object/src/proto", - "proto-gen:network": "buf generate packages/network/src/proto -o packages/network/src/proto", - "release": "release-it", - "test": "vitest" - }, - "devDependencies": { - "@biomejs/biome": "^1.8.3", - "@release-it-plugins/workspaces": "^4.2.0", - "@types/node": "^22.5.4", - "assemblyscript": "^0.27.29", - "release-it": "^17.6.0", - "ts-proto": "^2.2.4", - "typedoc": "^0.26.6", - "typescript": "^5.5.4", - "vite": "^5.4.9", - "vite-tsconfig-paths": "^5.0.1", - "vitest": "^2.1.1" - }, - "private": true, - "release-it": { - "plugins": { - "@release-it-plugins/workspaces": { - "publish": false - } - }, - "npm": false, - "git": { - "commitMessage": "chore: release v${version}" - }, - "github": { - "release": true - } - } + "name": "ts-topology", + "description": "The official TypeScript implementation of Topology Protocol", + "version": "0.2.1-0", + "license": "MIT", + "homepage": "https://topology.gg/", + "repository": { + "type": "git", + "url": "git+https://github.com/topology-foundation/ts-topology.git" + }, + "bugs": { + "url": "https://github.com/topology-foundation/ts-topology/issues" + }, + "workspaces": [ + "packages/*", + "examples/*" + ], + "scripts": { + "bench": "vitest bench", + "biome-check": "biome check", + "clean": "pnpm --filter '@topology-foundation/*' clean", + "docs": "typedoc", + "postinstall": "pnpm --filter '@topology-foundation/*' build", + "proto-gen": "pnpm proto-gen:object && pnpm proto-gen:network", + "proto-gen:object": "buf generate packages/object/src/proto -o packages/object/src/proto", + "proto-gen:network": "buf generate packages/network/src/proto -o packages/network/src/proto", + "release": "release-it", + "test": "vitest" + }, + "devDependencies": { + "@biomejs/biome": "^1.8.3", + "@release-it-plugins/workspaces": "^4.2.0", + "@types/node": "^22.5.4", + "assemblyscript": "^0.27.29", + "release-it": "^17.6.0", + "ts-proto": "^2.2.4", + "typedoc": "^0.26.6", + "typescript": "^5.5.4", + "vite": "^5.4.9", + "vite-tsconfig-paths": "^5.0.1", + "vitest": "^2.1.1" + }, + "private": true, + "release-it": { + "plugins": { + "@release-it-plugins/workspaces": { + "publish": false + } + }, + "npm": false, + "git": { + "commitMessage": "chore: release v${version}" + }, + "github": { + "release": true + } + } } diff --git a/packages/blueprints/package.json b/packages/blueprints/package.json index 8204c5c2..f337c6b8 100644 --- a/packages/blueprints/package.json +++ b/packages/blueprints/package.json @@ -1,6 +1,6 @@ { "name": "@topology-foundation/blueprints", - "version": "0.2.0", + "version": "0.2.1-0", "license": "MIT", "repository": { "type": "git", @@ -34,7 +34,7 @@ "test": "vitest" }, "devDependencies": { - "@topology-foundation/object": "0.2.0", + "@topology-foundation/object": "0.2.1-0", "assemblyscript": "^0.27.29" }, "dependencies": { diff --git a/packages/network/package.json b/packages/network/package.json index f013867c..785ce6ba 100644 --- a/packages/network/package.json +++ b/packages/network/package.json @@ -1,6 +1,6 @@ { "name": "@topology-foundation/network", - "version": "0.2.0", + "version": "0.2.1-0", "license": "MIT", "repository": { "type": "git", diff --git a/packages/node/package.json b/packages/node/package.json index 5f5aef44..00da6915 100644 --- a/packages/node/package.json +++ b/packages/node/package.json @@ -1,6 +1,6 @@ { "name": "@topology-foundation/node", - "version": "0.2.0", + "version": "0.2.1-0", "license": "MIT", "repository": { "type": "git", @@ -39,9 +39,9 @@ "@chainsafe/libp2p-gossipsub": "^14.1.0", "@grpc/grpc-js": "^1.12.2", "@libp2p/interface": "^2.1.3", - "@topology-foundation/blueprints": "0.2.0", - "@topology-foundation/network": "0.2.0", - "@topology-foundation/object": "0.2.0", + "@topology-foundation/blueprints": "0.2.1-0", + "@topology-foundation/network": "0.2.1-0", + "@topology-foundation/object": "0.2.1-0", "commander": "^12.1.0", "google-protobuf": "^3.21.2" } diff --git a/packages/object/package.json b/packages/object/package.json index 0daf3eb5..91b25b78 100644 --- a/packages/object/package.json +++ b/packages/object/package.json @@ -1,6 +1,6 @@ { "name": "@topology-foundation/object", - "version": "0.2.0", + "version": "0.2.1-0", "license": "MIT", "repository": { "type": "git",