From 5be413a44d242edf437bac3bd67e3070e5b5c090 Mon Sep 17 00:00:00 2001 From: Bilawal Hameed Date: Wed, 5 Feb 2020 15:49:58 +0100 Subject: [PATCH 1/9] Added a @backstage/protobuf-definitions package --- frontend/packages/proto/package.json | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 frontend/packages/proto/package.json diff --git a/frontend/packages/proto/package.json b/frontend/packages/proto/package.json new file mode 100644 index 0000000000..ec3f152a7a --- /dev/null +++ b/frontend/packages/proto/package.json @@ -0,0 +1,7 @@ +{ + "name": "@backstage/protobuf-definitions", + "version": "0.0.0", + "devDependencies": { + "ts-protoc-gen": "^0.12.0" + } +} From 94c72a5ea0c82c42aee676b2a68422f71ad8fd93 Mon Sep 17 00:00:00 2001 From: Bilawal Hameed Date: Wed, 5 Feb 2020 15:50:15 +0100 Subject: [PATCH 2/9] Ran yarn install --- frontend/yarn.lock | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/frontend/yarn.lock b/frontend/yarn.lock index d52677c0d4..09e79a8aca 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -7577,6 +7577,11 @@ google-protobuf@^3.11.2: resolved "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.11.2.tgz#43272974521a5cec35a21f62730cf517a5a8e38c" integrity sha512-T4fin7lcYLUPj2ChUZ4DvfuuHtg3xi1621qeRZt2J7SvOQusOzq+sDT4vbotWTCjUXJoR36CA016LlhtPy80uQ== +google-protobuf@^3.6.1: + version "3.11.3" + resolved "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.11.3.tgz#660977f5de29cc8f647172a170602887102fa677" + integrity sha512-Sp8E+0AJLxmiPwAk9VH3MkYAmYYheNUhywIyXOS7wvRkqbIYcHtGzJzIYicNqYsqgKmY35F9hxRkI+ZTqTB4Tg== + got@^6.7.1: version "6.7.1" resolved "https://registry.npmjs.org/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" @@ -15712,7 +15717,14 @@ ts-pnp@1.1.5, ts-pnp@^1.1.2: resolved "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.1.5.tgz#840e0739c89fce5f3abd9037bb091dbff16d9dec" integrity sha512-ti7OGMOUOzo66wLF3liskw6YQIaSsBgc4GOAlWRnIEj8htCxJUxskanMUoJOD6MDCRAXo36goXJZch+nOS0VMA== -tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0: +ts-protoc-gen@^0.12.0: + version "0.12.0" + resolved "https://registry.npmjs.org/ts-protoc-gen/-/ts-protoc-gen-0.12.0.tgz#932e5738f14b67e7202825b06f8c548cb7d8ef34" + integrity sha512-V7jnICJxKqalBrnJSMTW5tB9sGi48gOC325bfcM7TDNUItVOlaMM//rQmuo49ybipk/SyJTnWXgtJnhHCevNJw== + dependencies: + google-protobuf "^3.6.1" + +tslib@^1.8.1, tslib@^1.9.0: version "1.10.0" resolved "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== From b6be0d0f25c03ce759c073d963076b16e8f93f37 Mon Sep 17 00:00:00 2001 From: Bilawal Hameed Date: Wed, 5 Feb 2020 15:50:34 +0100 Subject: [PATCH 3/9] Added protobuf-gen-ts to prototool.yaml --- proto/prototool.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/proto/prototool.yaml b/proto/prototool.yaml index 458431a36c..b22c4b26eb 100644 --- a/proto/prototool.yaml +++ b/proto/prototool.yaml @@ -1,4 +1,3 @@ - protoc: version: 3.8.0 lint: @@ -16,3 +15,6 @@ generate: type: go flags: plugins=grpc output: ../backend/proto + - name: ts + path: ../frontend/node_modules/ts-protoc-gen/bin/protoc-gen-ts + output: ../frontend/packages/proto/src/generated From 7b039442841844beb049351dba90b520606f8893 Mon Sep 17 00:00:00 2001 From: Bilawal Hameed Date: Wed, 5 Feb 2020 15:56:12 +0100 Subject: [PATCH 4/9] Added service=grpc-web flag --- proto/prototool.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/proto/prototool.yaml b/proto/prototool.yaml index b22c4b26eb..44c532aa13 100644 --- a/proto/prototool.yaml +++ b/proto/prototool.yaml @@ -18,3 +18,4 @@ generate: - name: ts path: ../frontend/node_modules/ts-protoc-gen/bin/protoc-gen-ts output: ../frontend/packages/proto/src/generated + flags: service=grpc-web From fdfcdae4e4cd3a8a4a2cba572e72492d7ab842bc Mon Sep 17 00:00:00 2001 From: Bilawal Hameed Date: Wed, 5 Feb 2020 15:56:22 +0100 Subject: [PATCH 5/9] Added generated files --- .../generated/identity/v1/identity_pb.d.ts | 151 ++++++++++++++++++ .../identity/v1/identity_pb_service.d.ts | 82 ++++++++++ .../identity/v1/identity_pb_service.js | 101 ++++++++++++ .../generated/inventory/v1/inventory_pb.d.ts | 149 +++++++++++++++++ .../inventory/v1/inventory_pb_service.d.ts | 82 ++++++++++ .../inventory/v1/inventory_pb_service.js | 101 ++++++++++++ .../scaffolder/v1/scaffolder_pb.d.ts | 74 +++++++++ .../scaffolder/v1/scaffolder_pb_service.d.ts | 63 ++++++++ .../scaffolder/v1/scaffolder_pb_service.js | 61 +++++++ 9 files changed, 864 insertions(+) create mode 100644 frontend/packages/proto/src/generated/identity/v1/identity_pb.d.ts create mode 100644 frontend/packages/proto/src/generated/identity/v1/identity_pb_service.d.ts create mode 100644 frontend/packages/proto/src/generated/identity/v1/identity_pb_service.js create mode 100644 frontend/packages/proto/src/generated/inventory/v1/inventory_pb.d.ts create mode 100644 frontend/packages/proto/src/generated/inventory/v1/inventory_pb_service.d.ts create mode 100644 frontend/packages/proto/src/generated/inventory/v1/inventory_pb_service.js create mode 100644 frontend/packages/proto/src/generated/scaffolder/v1/scaffolder_pb.d.ts create mode 100644 frontend/packages/proto/src/generated/scaffolder/v1/scaffolder_pb_service.d.ts create mode 100644 frontend/packages/proto/src/generated/scaffolder/v1/scaffolder_pb_service.js diff --git a/frontend/packages/proto/src/generated/identity/v1/identity_pb.d.ts b/frontend/packages/proto/src/generated/identity/v1/identity_pb.d.ts new file mode 100644 index 0000000000..163e30b52c --- /dev/null +++ b/frontend/packages/proto/src/generated/identity/v1/identity_pb.d.ts @@ -0,0 +1,151 @@ +// package: spotify.backstage.identity.v1 +// file: identity/v1/identity.proto + +import * as jspb from "google-protobuf"; + +export class GetUserRequest extends jspb.Message { + getId(): string; + setId(value: string): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetUserRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetUserRequest): GetUserRequest.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetUserRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetUserRequest; + static deserializeBinaryFromReader(message: GetUserRequest, reader: jspb.BinaryReader): GetUserRequest; +} + +export namespace GetUserRequest { + export type AsObject = { + id: string, + } +} + +export class GetUserReply extends jspb.Message { + hasUser(): boolean; + clearUser(): void; + getUser(): User | undefined; + setUser(value?: User): void; + + clearGroupsList(): void; + getGroupsList(): Array; + setGroupsList(value: Array): void; + addGroups(value?: Group, index?: number): Group; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetUserReply.AsObject; + static toObject(includeInstance: boolean, msg: GetUserReply): GetUserReply.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetUserReply, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetUserReply; + static deserializeBinaryFromReader(message: GetUserReply, reader: jspb.BinaryReader): GetUserReply; +} + +export namespace GetUserReply { + export type AsObject = { + user?: User.AsObject, + groupsList: Array, + } +} + +export class GetGroupRequest extends jspb.Message { + getId(): string; + setId(value: string): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetGroupRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetGroupRequest): GetGroupRequest.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetGroupRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetGroupRequest; + static deserializeBinaryFromReader(message: GetGroupRequest, reader: jspb.BinaryReader): GetGroupRequest; +} + +export namespace GetGroupRequest { + export type AsObject = { + id: string, + } +} + +export class GetGroupReply extends jspb.Message { + hasGroup(): boolean; + clearGroup(): void; + getGroup(): Group | undefined; + setGroup(value?: Group): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetGroupReply.AsObject; + static toObject(includeInstance: boolean, msg: GetGroupReply): GetGroupReply.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetGroupReply, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetGroupReply; + static deserializeBinaryFromReader(message: GetGroupReply, reader: jspb.BinaryReader): GetGroupReply; +} + +export namespace GetGroupReply { + export type AsObject = { + group?: Group.AsObject, + } +} + +export class User extends jspb.Message { + getId(): string; + setId(value: string): void; + + getName(): string; + setName(value: string): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): User.AsObject; + static toObject(includeInstance: boolean, msg: User): User.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: User, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): User; + static deserializeBinaryFromReader(message: User, reader: jspb.BinaryReader): User; +} + +export namespace User { + export type AsObject = { + id: string, + name: string, + } +} + +export class Group extends jspb.Message { + getId(): string; + setId(value: string): void; + + clearUsersList(): void; + getUsersList(): Array; + setUsersList(value: Array): void; + addUsers(value?: User, index?: number): User; + + clearGroupsList(): void; + getGroupsList(): Array; + setGroupsList(value: Array): void; + addGroups(value?: Group, index?: number): Group; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Group.AsObject; + static toObject(includeInstance: boolean, msg: Group): Group.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: Group, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Group; + static deserializeBinaryFromReader(message: Group, reader: jspb.BinaryReader): Group; +} + +export namespace Group { + export type AsObject = { + id: string, + usersList: Array, + groupsList: Array, + } +} + diff --git a/frontend/packages/proto/src/generated/identity/v1/identity_pb_service.d.ts b/frontend/packages/proto/src/generated/identity/v1/identity_pb_service.d.ts new file mode 100644 index 0000000000..9c9e80f37f --- /dev/null +++ b/frontend/packages/proto/src/generated/identity/v1/identity_pb_service.d.ts @@ -0,0 +1,82 @@ +// package: spotify.backstage.identity.v1 +// file: identity/v1/identity.proto + +import * as identity_v1_identity_pb from "../../identity/v1/identity_pb"; +import {grpc} from "@improbable-eng/grpc-web"; + +type IdentityGetUser = { + readonly methodName: string; + readonly service: typeof Identity; + readonly requestStream: false; + readonly responseStream: false; + readonly requestType: typeof identity_v1_identity_pb.GetUserRequest; + readonly responseType: typeof identity_v1_identity_pb.GetUserReply; +}; + +type IdentityGetGroup = { + readonly methodName: string; + readonly service: typeof Identity; + readonly requestStream: false; + readonly responseStream: false; + readonly requestType: typeof identity_v1_identity_pb.GetGroupRequest; + readonly responseType: typeof identity_v1_identity_pb.GetGroupReply; +}; + +export class Identity { + static readonly serviceName: string; + static readonly GetUser: IdentityGetUser; + static readonly GetGroup: IdentityGetGroup; +} + +export type ServiceError = { message: string, code: number; metadata: grpc.Metadata } +export type Status = { details: string, code: number; metadata: grpc.Metadata } + +interface UnaryResponse { + cancel(): void; +} +interface ResponseStream { + cancel(): void; + on(type: 'data', handler: (message: T) => void): ResponseStream; + on(type: 'end', handler: (status?: Status) => void): ResponseStream; + on(type: 'status', handler: (status: Status) => void): ResponseStream; +} +interface RequestStream { + write(message: T): RequestStream; + end(): void; + cancel(): void; + on(type: 'end', handler: (status?: Status) => void): RequestStream; + on(type: 'status', handler: (status: Status) => void): RequestStream; +} +interface BidirectionalStream { + write(message: ReqT): BidirectionalStream; + end(): void; + cancel(): void; + on(type: 'data', handler: (message: ResT) => void): BidirectionalStream; + on(type: 'end', handler: (status?: Status) => void): BidirectionalStream; + on(type: 'status', handler: (status: Status) => void): BidirectionalStream; +} + +export class IdentityClient { + readonly serviceHost: string; + + constructor(serviceHost: string, options?: grpc.RpcOptions); + getUser( + requestMessage: identity_v1_identity_pb.GetUserRequest, + metadata: grpc.Metadata, + callback: (error: ServiceError|null, responseMessage: identity_v1_identity_pb.GetUserReply|null) => void + ): UnaryResponse; + getUser( + requestMessage: identity_v1_identity_pb.GetUserRequest, + callback: (error: ServiceError|null, responseMessage: identity_v1_identity_pb.GetUserReply|null) => void + ): UnaryResponse; + getGroup( + requestMessage: identity_v1_identity_pb.GetGroupRequest, + metadata: grpc.Metadata, + callback: (error: ServiceError|null, responseMessage: identity_v1_identity_pb.GetGroupReply|null) => void + ): UnaryResponse; + getGroup( + requestMessage: identity_v1_identity_pb.GetGroupRequest, + callback: (error: ServiceError|null, responseMessage: identity_v1_identity_pb.GetGroupReply|null) => void + ): UnaryResponse; +} + diff --git a/frontend/packages/proto/src/generated/identity/v1/identity_pb_service.js b/frontend/packages/proto/src/generated/identity/v1/identity_pb_service.js new file mode 100644 index 0000000000..3fa97ae125 --- /dev/null +++ b/frontend/packages/proto/src/generated/identity/v1/identity_pb_service.js @@ -0,0 +1,101 @@ +// package: spotify.backstage.identity.v1 +// file: identity/v1/identity.proto + +var identity_v1_identity_pb = require("../../identity/v1/identity_pb"); +var grpc = require("@improbable-eng/grpc-web").grpc; + +var Identity = (function () { + function Identity() {} + Identity.serviceName = "spotify.backstage.identity.v1.Identity"; + return Identity; +}()); + +Identity.GetUser = { + methodName: "GetUser", + service: Identity, + requestStream: false, + responseStream: false, + requestType: identity_v1_identity_pb.GetUserRequest, + responseType: identity_v1_identity_pb.GetUserReply +}; + +Identity.GetGroup = { + methodName: "GetGroup", + service: Identity, + requestStream: false, + responseStream: false, + requestType: identity_v1_identity_pb.GetGroupRequest, + responseType: identity_v1_identity_pb.GetGroupReply +}; + +exports.Identity = Identity; + +function IdentityClient(serviceHost, options) { + this.serviceHost = serviceHost; + this.options = options || {}; +} + +IdentityClient.prototype.getUser = function getUser(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + var client = grpc.unary(Identity.GetUser, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); + return { + cancel: function () { + callback = null; + client.close(); + } + }; +}; + +IdentityClient.prototype.getGroup = function getGroup(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + var client = grpc.unary(Identity.GetGroup, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); + return { + cancel: function () { + callback = null; + client.close(); + } + }; +}; + +exports.IdentityClient = IdentityClient; + diff --git a/frontend/packages/proto/src/generated/inventory/v1/inventory_pb.d.ts b/frontend/packages/proto/src/generated/inventory/v1/inventory_pb.d.ts new file mode 100644 index 0000000000..754c935c2e --- /dev/null +++ b/frontend/packages/proto/src/generated/inventory/v1/inventory_pb.d.ts @@ -0,0 +1,149 @@ +// package: spotify.backstage.inventory.v1 +// file: inventory/v1/inventory.proto + +import * as jspb from "google-protobuf"; + +export class GetEntityRequest extends jspb.Message { + hasEntity(): boolean; + clearEntity(): void; + getEntity(): Entity | undefined; + setEntity(value?: Entity): void; + + clearIncludeFactsList(): void; + getIncludeFactsList(): Array; + setIncludeFactsList(value: Array): void; + addIncludeFacts(value: string, index?: number): string; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetEntityRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetEntityRequest): GetEntityRequest.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetEntityRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetEntityRequest; + static deserializeBinaryFromReader(message: GetEntityRequest, reader: jspb.BinaryReader): GetEntityRequest; +} + +export namespace GetEntityRequest { + export type AsObject = { + entity?: Entity.AsObject, + includeFactsList: Array, + } +} + +export class GetEntityReply extends jspb.Message { + hasEntity(): boolean; + clearEntity(): void; + getEntity(): Entity | undefined; + setEntity(value?: Entity): void; + + clearFactsList(): void; + getFactsList(): Array; + setFactsList(value: Array): void; + addFacts(value?: Fact, index?: number): Fact; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetEntityReply.AsObject; + static toObject(includeInstance: boolean, msg: GetEntityReply): GetEntityReply.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: GetEntityReply, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetEntityReply; + static deserializeBinaryFromReader(message: GetEntityReply, reader: jspb.BinaryReader): GetEntityReply; +} + +export namespace GetEntityReply { + export type AsObject = { + entity?: Entity.AsObject, + factsList: Array, + } +} + +export class CreateEntityRequest extends jspb.Message { + hasEntity(): boolean; + clearEntity(): void; + getEntity(): Entity | undefined; + setEntity(value?: Entity): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): CreateEntityRequest.AsObject; + static toObject(includeInstance: boolean, msg: CreateEntityRequest): CreateEntityRequest.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: CreateEntityRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): CreateEntityRequest; + static deserializeBinaryFromReader(message: CreateEntityRequest, reader: jspb.BinaryReader): CreateEntityRequest; +} + +export namespace CreateEntityRequest { + export type AsObject = { + entity?: Entity.AsObject, + } +} + +export class CreateEntityReply extends jspb.Message { + hasEntity(): boolean; + clearEntity(): void; + getEntity(): Entity | undefined; + setEntity(value?: Entity): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): CreateEntityReply.AsObject; + static toObject(includeInstance: boolean, msg: CreateEntityReply): CreateEntityReply.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: CreateEntityReply, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): CreateEntityReply; + static deserializeBinaryFromReader(message: CreateEntityReply, reader: jspb.BinaryReader): CreateEntityReply; +} + +export namespace CreateEntityReply { + export type AsObject = { + entity?: Entity.AsObject, + } +} + +export class Entity extends jspb.Message { + getUri(): string; + setUri(value: string): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Entity.AsObject; + static toObject(includeInstance: boolean, msg: Entity): Entity.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: Entity, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Entity; + static deserializeBinaryFromReader(message: Entity, reader: jspb.BinaryReader): Entity; +} + +export namespace Entity { + export type AsObject = { + uri: string, + } +} + +export class Fact extends jspb.Message { + getName(): string; + setName(value: string): void; + + getValue(): string; + setValue(value: string): void; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Fact.AsObject; + static toObject(includeInstance: boolean, msg: Fact): Fact.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: Fact, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Fact; + static deserializeBinaryFromReader(message: Fact, reader: jspb.BinaryReader): Fact; +} + +export namespace Fact { + export type AsObject = { + name: string, + value: string, + } +} + diff --git a/frontend/packages/proto/src/generated/inventory/v1/inventory_pb_service.d.ts b/frontend/packages/proto/src/generated/inventory/v1/inventory_pb_service.d.ts new file mode 100644 index 0000000000..1b7ef69516 --- /dev/null +++ b/frontend/packages/proto/src/generated/inventory/v1/inventory_pb_service.d.ts @@ -0,0 +1,82 @@ +// package: spotify.backstage.inventory.v1 +// file: inventory/v1/inventory.proto + +import * as inventory_v1_inventory_pb from "../../inventory/v1/inventory_pb"; +import {grpc} from "@improbable-eng/grpc-web"; + +type InventoryGetEntity = { + readonly methodName: string; + readonly service: typeof Inventory; + readonly requestStream: false; + readonly responseStream: false; + readonly requestType: typeof inventory_v1_inventory_pb.GetEntityRequest; + readonly responseType: typeof inventory_v1_inventory_pb.GetEntityReply; +}; + +type InventoryCreateEntity = { + readonly methodName: string; + readonly service: typeof Inventory; + readonly requestStream: false; + readonly responseStream: false; + readonly requestType: typeof inventory_v1_inventory_pb.CreateEntityRequest; + readonly responseType: typeof inventory_v1_inventory_pb.CreateEntityReply; +}; + +export class Inventory { + static readonly serviceName: string; + static readonly GetEntity: InventoryGetEntity; + static readonly CreateEntity: InventoryCreateEntity; +} + +export type ServiceError = { message: string, code: number; metadata: grpc.Metadata } +export type Status = { details: string, code: number; metadata: grpc.Metadata } + +interface UnaryResponse { + cancel(): void; +} +interface ResponseStream { + cancel(): void; + on(type: 'data', handler: (message: T) => void): ResponseStream; + on(type: 'end', handler: (status?: Status) => void): ResponseStream; + on(type: 'status', handler: (status: Status) => void): ResponseStream; +} +interface RequestStream { + write(message: T): RequestStream; + end(): void; + cancel(): void; + on(type: 'end', handler: (status?: Status) => void): RequestStream; + on(type: 'status', handler: (status: Status) => void): RequestStream; +} +interface BidirectionalStream { + write(message: ReqT): BidirectionalStream; + end(): void; + cancel(): void; + on(type: 'data', handler: (message: ResT) => void): BidirectionalStream; + on(type: 'end', handler: (status?: Status) => void): BidirectionalStream; + on(type: 'status', handler: (status: Status) => void): BidirectionalStream; +} + +export class InventoryClient { + readonly serviceHost: string; + + constructor(serviceHost: string, options?: grpc.RpcOptions); + getEntity( + requestMessage: inventory_v1_inventory_pb.GetEntityRequest, + metadata: grpc.Metadata, + callback: (error: ServiceError|null, responseMessage: inventory_v1_inventory_pb.GetEntityReply|null) => void + ): UnaryResponse; + getEntity( + requestMessage: inventory_v1_inventory_pb.GetEntityRequest, + callback: (error: ServiceError|null, responseMessage: inventory_v1_inventory_pb.GetEntityReply|null) => void + ): UnaryResponse; + createEntity( + requestMessage: inventory_v1_inventory_pb.CreateEntityRequest, + metadata: grpc.Metadata, + callback: (error: ServiceError|null, responseMessage: inventory_v1_inventory_pb.CreateEntityReply|null) => void + ): UnaryResponse; + createEntity( + requestMessage: inventory_v1_inventory_pb.CreateEntityRequest, + callback: (error: ServiceError|null, responseMessage: inventory_v1_inventory_pb.CreateEntityReply|null) => void + ): UnaryResponse; +} + diff --git a/frontend/packages/proto/src/generated/inventory/v1/inventory_pb_service.js b/frontend/packages/proto/src/generated/inventory/v1/inventory_pb_service.js new file mode 100644 index 0000000000..02f48d037d --- /dev/null +++ b/frontend/packages/proto/src/generated/inventory/v1/inventory_pb_service.js @@ -0,0 +1,101 @@ +// package: spotify.backstage.inventory.v1 +// file: inventory/v1/inventory.proto + +var inventory_v1_inventory_pb = require("../../inventory/v1/inventory_pb"); +var grpc = require("@improbable-eng/grpc-web").grpc; + +var Inventory = (function () { + function Inventory() {} + Inventory.serviceName = "spotify.backstage.inventory.v1.Inventory"; + return Inventory; +}()); + +Inventory.GetEntity = { + methodName: "GetEntity", + service: Inventory, + requestStream: false, + responseStream: false, + requestType: inventory_v1_inventory_pb.GetEntityRequest, + responseType: inventory_v1_inventory_pb.GetEntityReply +}; + +Inventory.CreateEntity = { + methodName: "CreateEntity", + service: Inventory, + requestStream: false, + responseStream: false, + requestType: inventory_v1_inventory_pb.CreateEntityRequest, + responseType: inventory_v1_inventory_pb.CreateEntityReply +}; + +exports.Inventory = Inventory; + +function InventoryClient(serviceHost, options) { + this.serviceHost = serviceHost; + this.options = options || {}; +} + +InventoryClient.prototype.getEntity = function getEntity(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + var client = grpc.unary(Inventory.GetEntity, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); + return { + cancel: function () { + callback = null; + client.close(); + } + }; +}; + +InventoryClient.prototype.createEntity = function createEntity(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + var client = grpc.unary(Inventory.CreateEntity, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); + return { + cancel: function () { + callback = null; + client.close(); + } + }; +}; + +exports.InventoryClient = InventoryClient; + diff --git a/frontend/packages/proto/src/generated/scaffolder/v1/scaffolder_pb.d.ts b/frontend/packages/proto/src/generated/scaffolder/v1/scaffolder_pb.d.ts new file mode 100644 index 0000000000..a04b41d40a --- /dev/null +++ b/frontend/packages/proto/src/generated/scaffolder/v1/scaffolder_pb.d.ts @@ -0,0 +1,74 @@ +// package: spotify.backstage.scaffolder.v1 +// file: scaffolder/v1/scaffolder.proto + +import * as jspb from "google-protobuf"; +import * as identity_v1_identity_pb from "../../identity/v1/identity_pb"; + +export class Empty extends jspb.Message { + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Empty.AsObject; + static toObject(includeInstance: boolean, msg: Empty): Empty.AsObject; + static extensions: {[key: number]: jspb.ExtensionFieldInfo}; + static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; + static serializeBinaryToWriter(message: Empty, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Empty; + static deserializeBinaryFromReader(message: Empty, reader: jspb.BinaryReader): Empty; +} + +export namespace Empty { + export type AsObject = { + } +} + +export class GetAllTemplatesResponse extends jspb.Message { + clearTemplatesList(): void; + getTemplatesList(): Array