@aptre/common 0.28.0 → 0.29.0

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/deps.go.tools CHANGED
@@ -11,6 +11,8 @@ import (
11
11
  _ "github.com/aperturerobotics/protobuf-go-lite/cmd/protoc-gen-go-lite"
12
12
  // _ imports protoc-gen-starpc
13
13
  _ "github.com/aperturerobotics/starpc/cmd/protoc-gen-go-starpc"
14
+ // _ imports protoc-gen-starpc-cpp
15
+ _ "github.com/aperturerobotics/starpc/cmd/protoc-gen-starpc-cpp"
14
16
 
15
17
  // _ imports golangci-lint
16
18
  _ "github.com/golangci/golangci-lint/v2/pkg/golinters"
@@ -21,3 +21,15 @@ export interface ExampleMsg {
21
21
  otherMsg?: OtherMsg;
22
22
  }
23
23
  export declare const ExampleMsg: MessageType<ExampleMsg>;
24
+ /**
25
+ * EchoMsg is the message body for Echo.
26
+ *
27
+ * @generated from message example.EchoMsg
28
+ */
29
+ export interface EchoMsg {
30
+ /**
31
+ * @generated from field: string body = 1;
32
+ */
33
+ body?: string;
34
+ }
35
+ export declare const EchoMsg: MessageType<EchoMsg>;
@@ -13,3 +13,11 @@ export const ExampleMsg = createMessageType({
13
13
  ],
14
14
  packedByDefault: true,
15
15
  });
16
+ // EchoMsg contains the message type declaration for EchoMsg.
17
+ export const EchoMsg = createMessageType({
18
+ typeName: 'example.EchoMsg',
19
+ fields: [
20
+ { no: 1, name: 'body', kind: 'scalar', T: ScalarType.STRING },
21
+ ],
22
+ packedByDefault: true,
23
+ });
@@ -0,0 +1,51 @@
1
+ import { EchoMsg } from './example.pb.js';
2
+ import { MethodKind } from '@aptre/protobuf-es-lite';
3
+ import { ProtoRpc } from 'starpc';
4
+ /**
5
+ * Echoer service returns the given message.
6
+ *
7
+ * @generated from service example.Echoer
8
+ */
9
+ export declare const EchoerDefinition: {
10
+ readonly typeName: "example.Echoer";
11
+ readonly methods: {
12
+ /**
13
+ * Echo returns the given message.
14
+ *
15
+ * @generated from rpc example.Echoer.Echo
16
+ */
17
+ readonly Echo: {
18
+ readonly name: "Echo";
19
+ readonly I: import("@aptre/protobuf-es-lite").MessageType<EchoMsg>;
20
+ readonly O: import("@aptre/protobuf-es-lite").MessageType<EchoMsg>;
21
+ readonly kind: MethodKind.Unary;
22
+ };
23
+ };
24
+ };
25
+ /**
26
+ * Echoer service returns the given message.
27
+ *
28
+ * @generated from service example.Echoer
29
+ */
30
+ export interface Echoer {
31
+ /**
32
+ * Echo returns the given message.
33
+ *
34
+ * @generated from rpc example.Echoer.Echo
35
+ */
36
+ Echo(request: EchoMsg, abortSignal?: AbortSignal): Promise<EchoMsg>;
37
+ }
38
+ export declare const EchoerServiceName: "example.Echoer";
39
+ export declare class EchoerClient implements Echoer {
40
+ private readonly rpc;
41
+ private readonly service;
42
+ constructor(rpc: ProtoRpc, opts?: {
43
+ service?: string;
44
+ });
45
+ /**
46
+ * Echo returns the given message.
47
+ *
48
+ * @generated from rpc example.Echoer.Echo
49
+ */
50
+ Echo(request: EchoMsg, abortSignal?: AbortSignal): Promise<EchoMsg>;
51
+ }
@@ -0,0 +1,46 @@
1
+ // @generated by protoc-gen-es-starpc none with parameter "target=ts,ts_nocheck=false"
2
+ // @generated from file github.com/aperturerobotics/common/example/example.proto (package example, syntax proto3)
3
+ /* eslint-disable */
4
+ import { EchoMsg } from './example.pb.js';
5
+ import { MethodKind } from '@aptre/protobuf-es-lite';
6
+ /**
7
+ * Echoer service returns the given message.
8
+ *
9
+ * @generated from service example.Echoer
10
+ */
11
+ export const EchoerDefinition = {
12
+ typeName: 'example.Echoer',
13
+ methods: {
14
+ /**
15
+ * Echo returns the given message.
16
+ *
17
+ * @generated from rpc example.Echoer.Echo
18
+ */
19
+ Echo: {
20
+ name: 'Echo',
21
+ I: EchoMsg,
22
+ O: EchoMsg,
23
+ kind: MethodKind.Unary,
24
+ },
25
+ },
26
+ };
27
+ export const EchoerServiceName = EchoerDefinition.typeName;
28
+ export class EchoerClient {
29
+ rpc;
30
+ service;
31
+ constructor(rpc, opts) {
32
+ this.service = opts?.service || EchoerServiceName;
33
+ this.rpc = rpc;
34
+ this.Echo = this.Echo.bind(this);
35
+ }
36
+ /**
37
+ * Echo returns the given message.
38
+ *
39
+ * @generated from rpc example.Echoer.Echo
40
+ */
41
+ async Echo(request, abortSignal) {
42
+ const requestMsg = EchoMsg.create(request);
43
+ const result = await this.rpc.request(this.service, EchoerDefinition.methods.Echo.name, EchoMsg.toBinary(requestMsg), abortSignal || undefined);
44
+ return EchoMsg.fromBinary(result);
45
+ }
46
+ }
package/go.mod CHANGED
@@ -11,15 +11,41 @@ require (
11
11
  github.com/aperturerobotics/abseil-cpp v0.0.0-20260131110040-4bb56e2f9017 // aperture-2
12
12
  github.com/aperturerobotics/cli v1.1.0
13
13
  github.com/aperturerobotics/go-protoc-wasi v0.0.0-20260131050911-b5f94b044584
14
- github.com/aperturerobotics/protobuf v0.0.0-20260131033322-bd4a2148b9c4 // wasi
14
+ github.com/aperturerobotics/protobuf v0.0.0-20260131105503-b82131c27d52 // wasi
15
15
  github.com/aperturerobotics/protobuf-go-lite v0.12.0 // latest
16
16
  )
17
17
 
18
- require github.com/aperturerobotics/json-iterator-lite v1.0.1-0.20240713111131-be6bf89c3008 // indirect
18
+ require github.com/aperturerobotics/starpc v0.44.0
19
+
20
+ require (
21
+ github.com/aperturerobotics/json-iterator-lite v1.0.1-0.20251104042408-0c9eb8a3f726 // indirect
22
+ github.com/aperturerobotics/util v1.32.3 // indirect
23
+ github.com/coder/websocket v1.8.14 // indirect
24
+ github.com/ipfs/go-cid v0.4.1 // indirect
25
+ github.com/klauspost/cpuid/v2 v2.2.8 // indirect
26
+ github.com/libp2p/go-buffer-pool v0.1.0 // indirect
27
+ github.com/libp2p/go-libp2p v0.47.0 // indirect
28
+ github.com/libp2p/go-yamux/v4 v4.0.2 // indirect
29
+ github.com/minio/sha256-simd v1.0.1 // indirect
30
+ github.com/mr-tron/base58 v1.2.0 // indirect
31
+ github.com/multiformats/go-base32 v0.1.0 // indirect
32
+ github.com/multiformats/go-base36 v0.2.0 // indirect
33
+ github.com/multiformats/go-multiaddr v0.13.0 // indirect
34
+ github.com/multiformats/go-multibase v0.2.0 // indirect
35
+ github.com/multiformats/go-multihash v0.2.3 // indirect
36
+ github.com/multiformats/go-multistream v0.5.0 // indirect
37
+ github.com/multiformats/go-varint v0.0.7 // indirect
38
+ github.com/pkg/errors v0.9.1 // indirect
39
+ github.com/sirupsen/logrus v1.9.4 // indirect
40
+ github.com/spaolacci/murmur3 v1.1.0 // indirect
41
+ golang.org/x/crypto v0.45.0 // indirect
42
+ golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 // indirect
43
+ lukechampine.com/blake3 v1.3.0 // indirect
44
+ )
19
45
 
20
46
  require (
21
47
  github.com/tetratelabs/wazero v1.11.0
22
48
  github.com/xrash/smetrics v0.0.0-20250705151800-55b8f293f342 // indirect
23
49
  golang.org/x/mod v0.32.0
24
- golang.org/x/sys v0.38.0 // indirect
50
+ golang.org/x/sys v0.40.0 // indirect
25
51
  )
package/go.sum CHANGED
@@ -2,29 +2,78 @@ github.com/aperturerobotics/abseil-cpp v0.0.0-20260131110040-4bb56e2f9017 h1:3U7
2
2
  github.com/aperturerobotics/abseil-cpp v0.0.0-20260131110040-4bb56e2f9017/go.mod h1:lNSJTKECIUFAnfeSqy01kXYTYe1BHubW7198jNX3nEw=
3
3
  github.com/aperturerobotics/cli v1.1.0 h1:7a+YRC+EY3npAnTzhHV5gLCiw91KS0Ts3XwLILGOsT8=
4
4
  github.com/aperturerobotics/cli v1.1.0/go.mod h1:M7BFP9wow5ytTzMyJQOOO991fGfsUqdTI7gGEsHfTQ8=
5
+ github.com/aperturerobotics/go-libp2p v0.37.1-0.20241111002741-5cfbb50b74e0 h1:tGwbeDoEeQCrUQL+ClUywldqvz9eRmhcVrGwGxz2xJg=
6
+ github.com/aperturerobotics/go-libp2p v0.37.1-0.20241111002741-5cfbb50b74e0/go.mod h1:FJkAtQcP9XxqG1NNLNHKm+wLVIGSCQX2s6CEoD+w97g=
5
7
  github.com/aperturerobotics/go-protoc-wasi v0.0.0-20260131050911-b5f94b044584 h1:ER8DYYL71cTg39uZ+Gi699tL/hZoscUWDOw4DbizqhI=
6
8
  github.com/aperturerobotics/go-protoc-wasi v0.0.0-20260131050911-b5f94b044584/go.mod h1:vEq8i7EKb32+KXGtIEZjjhNns+BdsL2dUMw4uhy3578=
7
- github.com/aperturerobotics/json-iterator-lite v1.0.1-0.20240713111131-be6bf89c3008 h1:So9JeziaWKx2Fw8sK4AUN/szqKtJ0jEMhS6bU4sHbxs=
8
- github.com/aperturerobotics/json-iterator-lite v1.0.1-0.20240713111131-be6bf89c3008/go.mod h1:snaApCEDtrHHP6UWSLKiYNOZU9A5NyzccKenx9oZEzg=
9
- github.com/aperturerobotics/protobuf v0.0.0-20260131033322-bd4a2148b9c4 h1:hiNtIrSdy6EbxSVNYjyLJGAUD7j2wFNLqOMzetw2ddQ=
10
- github.com/aperturerobotics/protobuf v0.0.0-20260131033322-bd4a2148b9c4/go.mod h1:tMgO7y6SJo/d9ZcvrpNqIQtdYT9de+QmYaHOZ4KnhOg=
9
+ github.com/aperturerobotics/json-iterator-lite v1.0.1-0.20251104042408-0c9eb8a3f726 h1:4B1F0DzuqPzb6WqgCjWaqDD7JU9RDsevQG5OP0DFBgs=
10
+ github.com/aperturerobotics/json-iterator-lite v1.0.1-0.20251104042408-0c9eb8a3f726/go.mod h1:SvGGBv3OVxUyqO0ZxA/nvs6z3cg7NIbZ64TnbV2OISo=
11
+ github.com/aperturerobotics/protobuf v0.0.0-20260131105503-b82131c27d52 h1:MUKCOkpUgTnqYG6546CGrHgBgoCkBUxTDKrWieJRQAo=
12
+ github.com/aperturerobotics/protobuf v0.0.0-20260131105503-b82131c27d52/go.mod h1:tMgO7y6SJo/d9ZcvrpNqIQtdYT9de+QmYaHOZ4KnhOg=
11
13
  github.com/aperturerobotics/protobuf-go-lite v0.12.0 h1:ZPPokQtm/NPhgGv+vYD9AhInvkrzQal6MDnqcYLWvlg=
12
14
  github.com/aperturerobotics/protobuf-go-lite v0.12.0/go.mod h1:lGH3s5ArCTXKI4wJdlNpaybUtwSjfAG0vdWjxOfMcF8=
15
+ github.com/aperturerobotics/starpc v0.44.0 h1:h9ZzagtrKoQseUWhokuQBWyL/NeYUH5W1aWAcVZfcpE=
16
+ github.com/aperturerobotics/starpc v0.44.0/go.mod h1:3v2j0a1Z1olzkIFUOX1M4L+9jFp4pIbbuuZbk9ZoPRc=
17
+ github.com/aperturerobotics/util v1.32.3 h1:wBc6L2guYMgLEzFwORH3CLMoMpfEqbV6pDqYervo3S0=
18
+ github.com/aperturerobotics/util v1.32.3/go.mod h1:qfRZZUDn0sEfc43JRA6rKP8bwFxliqGqJZX+p1jeOnQ=
19
+ github.com/coder/websocket v1.8.14 h1:9L0p0iKiNOibykf283eHkKUHHrpG7f65OE3BhhO7v9g=
20
+ github.com/coder/websocket v1.8.14/go.mod h1:NX3SzP+inril6yawo5CQXx8+fk145lPDC6pumgx0mVg=
13
21
  github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
14
22
  github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
15
23
  github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
16
24
  github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
25
+ github.com/ipfs/go-cid v0.4.1 h1:A/T3qGvxi4kpKWWcPC/PgbvDA2bjVLO7n4UeVwnbs/s=
26
+ github.com/ipfs/go-cid v0.4.1/go.mod h1:uQHwDeX4c6CtyrFwdqyhpNcxVewur1M7l7fNU7LKwZk=
27
+ github.com/klauspost/cpuid/v2 v2.2.8 h1:+StwCXwm9PdpiEkPyzBXIy+M9KUb4ODm0Zarf1kS5BM=
28
+ github.com/klauspost/cpuid/v2 v2.2.8/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws=
29
+ github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8=
30
+ github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg=
31
+ github.com/libp2p/go-libp2p-testing v0.12.0 h1:EPvBb4kKMWO29qP4mZGyhVzUyR25dvfUIK5WDu6iPUA=
32
+ github.com/libp2p/go-libp2p-testing v0.12.0/go.mod h1:KcGDRXyN7sQCllucn1cOOS+Dmm7ujhfEyXQL5lvkcPg=
33
+ github.com/libp2p/go-yamux/v4 v4.0.2 h1:nrLh89LN/LEiqcFiqdKDRHjGstN300C1269K/EX0CPU=
34
+ github.com/libp2p/go-yamux/v4 v4.0.2/go.mod h1:C808cCRgOs1iBwY4S71T5oxgMxgLmqUw56qh4AeBW2o=
35
+ github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dzMM=
36
+ github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8=
37
+ github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o=
38
+ github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc=
39
+ github.com/multiformats/go-base32 v0.1.0 h1:pVx9xoSPqEIQG8o+UbAe7DNi51oej1NtK+aGkbLYxPE=
40
+ github.com/multiformats/go-base32 v0.1.0/go.mod h1:Kj3tFY6zNr+ABYMqeUNeGvkIC/UYgtWibDcT0rExnbI=
41
+ github.com/multiformats/go-base36 v0.2.0 h1:lFsAbNOGeKtuKozrtBsAkSVhv1p9D0/qedU9rQyccr0=
42
+ github.com/multiformats/go-base36 v0.2.0/go.mod h1:qvnKE++v+2MWCfePClUEjE78Z7P2a1UV0xHgWc0hkp4=
43
+ github.com/multiformats/go-multiaddr v0.13.0 h1:BCBzs61E3AGHcYYTv8dqRH43ZfyrqM8RXVPT8t13tLQ=
44
+ github.com/multiformats/go-multiaddr v0.13.0/go.mod h1:sBXrNzucqkFJhvKOiwwLyqamGa/P5EIXNPLovyhQCII=
45
+ github.com/multiformats/go-multibase v0.2.0 h1:isdYCVLvksgWlMW9OZRYJEa9pZETFivncJHmHnnd87g=
46
+ github.com/multiformats/go-multibase v0.2.0/go.mod h1:bFBZX4lKCA/2lyOFSAoKH5SS6oPyjtnzK/XTFDPkNuk=
47
+ github.com/multiformats/go-multihash v0.2.3 h1:7Lyc8XfX/IY2jWb/gI7JP+o7JEq9hOa7BFvVU9RSh+U=
48
+ github.com/multiformats/go-multihash v0.2.3/go.mod h1:dXgKXCXjBzdscBLk9JkjINiEsCKRVch90MdaGiKsvSM=
49
+ github.com/multiformats/go-multistream v0.5.0 h1:5htLSLl7lvJk3xx3qT/8Zm9J4K8vEOf/QGkvOGQAyiE=
50
+ github.com/multiformats/go-multistream v0.5.0/go.mod h1:n6tMZiwiP2wUsR8DgfDWw1dydlEqV3l6N3/GBsX6ILA=
51
+ github.com/multiformats/go-varint v0.0.7 h1:sWSGR+f/eu5ABZA2ZpYKBILXTTs9JWpdEM/nEGOHFS8=
52
+ github.com/multiformats/go-varint v0.0.7/go.mod h1:r8PUYw/fD/SjBCiKOoDlGF6QawOELpZAu9eioSos/OU=
53
+ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
54
+ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
17
55
  github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
18
56
  github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
57
+ github.com/sirupsen/logrus v1.9.4 h1:TsZE7l11zFCLZnZ+teH4Umoq5BhEIfIzfRDZ1Uzql2w=
58
+ github.com/sirupsen/logrus v1.9.4/go.mod h1:ftWc9WdOfJ0a92nsE2jF5u5ZwH8Bv2zdeOC42RjbV2g=
59
+ github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI=
60
+ github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
19
61
  github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
20
62
  github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
21
63
  github.com/tetratelabs/wazero v1.11.0 h1:+gKemEuKCTevU4d7ZTzlsvgd1uaToIDtlQlmNbwqYhA=
22
64
  github.com/tetratelabs/wazero v1.11.0/go.mod h1:eV28rsN8Q+xwjogd7f4/Pp4xFxO7uOGbLcD/LzB1wiU=
23
65
  github.com/xrash/smetrics v0.0.0-20250705151800-55b8f293f342 h1:FnBeRrxr7OU4VvAzt5X7s6266i6cSVkkFPS0TuXWbIg=
24
66
  github.com/xrash/smetrics v0.0.0-20250705151800-55b8f293f342/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM=
67
+ golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q=
68
+ golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4=
69
+ golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 h1:nDVHiLt8aIbd/VzvPWN6kSOPE7+F/fNFDSXLVYkE/Iw=
70
+ golang.org/x/exp v0.0.0-20250305212735-054e65f0b394/go.mod h1:sIifuuw/Yco/y6yb6+bDNfyeQ/MdPUy/hKEMYQV17cM=
25
71
  golang.org/x/mod v0.32.0 h1:9F4d3PHLljb6x//jOyokMv3eX+YDeepZSEo3mFJy93c=
26
72
  golang.org/x/mod v0.32.0/go.mod h1:SgipZ/3h2Ci89DlEtEXWUk/HteuRin+HHhN+WbNhguU=
27
- golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=
28
- golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
73
+ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
74
+ golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ=
75
+ golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
29
76
  gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
30
77
  gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
78
+ lukechampine.com/blake3 v1.3.0 h1:sJ3XhFINmHSrYCgl958hscfIa3bw8x4DqMP3u1YvoYE=
79
+ lukechampine.com/blake3 v1.3.0/go.mod h1:0OFRp7fBtAylGVCO40o87sbupkyIGgbpv1+M1k1LM6k=
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aptre/common",
3
3
  "description": "Common project configuration files and dependencies.",
4
- "version": "0.28.0",
4
+ "version": "0.29.0",
5
5
  "license": "MIT",
6
6
  "author": {
7
7
  "name": "Aperture Robotics LLC.",