diff --git a/buf.gen.yaml b/buf.gen.yaml index 0c19c5d..e5d5ebc 100755 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -1,4 +1,4 @@ -#!/usr/bin/env -S buf generate buf.build/authzed/api:206ed0aae546729d1bba96f506972b78eab4feeb --template +#!/usr/bin/env -S buf generate buf.build/authzed/api:v1.30.0 --template # To regenerate: # npm install -g grpc-tools # ./buf.gen.yaml diff --git a/js-dist/package.json b/js-dist/package.json index cf856f7..9e8058e 100644 --- a/js-dist/package.json +++ b/js-dist/package.json @@ -1,7 +1,7 @@ { "name": "@authzed/authzed-js-node", "author": "authzed", - "version": "0.13.0", + "version": "0.14.0", "description": "authzed js client for nodejs", "keywords": [ "authorization", diff --git a/package.json b/package.json index 576c254..4ebf2bd 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@authzed/authzed-node", "author": "authzed", - "version": "0.13.0", + "version": "0.14.0", "description": "authzed client for nodejs", "keywords": [ "authorization", diff --git a/src/authzedapi/authzed/api/v1/core.ts b/src/authzedapi/authzed/api/v1/core.ts index 0be06b8..23f1023 100644 --- a/src/authzedapi/authzed/api/v1/core.ts +++ b/src/authzedapi/authzed/api/v1/core.ts @@ -1,4 +1,4 @@ -// @generated by protobuf-ts 2.8.3 with parameter generate_dependencies,long_type_string,client_grpc1 +// @generated by protobuf-ts 2.9.3 with parameter generate_dependencies,long_type_string,client_grpc1 // @generated from protobuf file "authzed/api/v1/core.proto" (package "authzed.api.v1", syntax proto3) // tslint:disable import type { BinaryWriteOptions } from "@protobuf-ts/runtime"; @@ -9,7 +9,6 @@ import type { IBinaryReader } from "@protobuf-ts/runtime"; import { UnknownFieldHandler } from "@protobuf-ts/runtime"; import type { PartialMessage } from "@protobuf-ts/runtime"; import { reflectionMergePartial } from "@protobuf-ts/runtime"; -import { MESSAGE_TYPE } from "@protobuf-ts/runtime"; import { MessageType } from "@protobuf-ts/runtime"; import { Struct } from "../../../google/protobuf/struct"; /** @@ -286,8 +285,8 @@ class Relationship$Type extends MessageType { ]); } create(value?: PartialMessage): Relationship { - const message = { relation: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.relation = ""; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -352,8 +351,8 @@ class ContextualizedCaveat$Type extends MessageType { ]); } create(value?: PartialMessage): ContextualizedCaveat { - const message = { caveatName: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.caveatName = ""; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -406,8 +405,8 @@ class SubjectReference$Type extends MessageType { ]); } create(value?: PartialMessage): SubjectReference { - const message = { optionalRelation: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.optionalRelation = ""; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -460,8 +459,9 @@ class ObjectReference$Type extends MessageType { ]); } create(value?: PartialMessage): ObjectReference { - const message = { objectType: "", objectId: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.objectType = ""; + message.objectId = ""; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -513,8 +513,8 @@ class ZedToken$Type extends MessageType { ]); } create(value?: PartialMessage): ZedToken { - const message = { token: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.token = ""; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -560,8 +560,8 @@ class Cursor$Type extends MessageType { ]); } create(value?: PartialMessage): Cursor { - const message = { token: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.token = ""; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -608,8 +608,8 @@ class RelationshipUpdate$Type extends MessageType { ]); } create(value?: PartialMessage): RelationshipUpdate { - const message = { operation: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.operation = 0; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -664,8 +664,9 @@ class PermissionRelationshipTree$Type extends MessageType): PermissionRelationshipTree { - const message = { treeType: { oneofKind: undefined }, expandedRelation: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.treeType = { oneofKind: undefined }; + message.expandedRelation = ""; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -736,8 +737,9 @@ class AlgebraicSubjectSet$Type extends MessageType { ]); } create(value?: PartialMessage): AlgebraicSubjectSet { - const message = { operation: 0, children: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.operation = 0; + message.children = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -789,8 +791,8 @@ class DirectSubjectSet$Type extends MessageType { ]); } create(value?: PartialMessage): DirectSubjectSet { - const message = { subjects: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.subjects = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -836,8 +838,8 @@ class PartialCaveatInfo$Type extends MessageType { ]); } create(value?: PartialMessage): PartialCaveatInfo { - const message = { missingRequiredContext: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.missingRequiredContext = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; diff --git a/src/authzedapi/authzed/api/v1/debug.ts b/src/authzedapi/authzed/api/v1/debug.ts index 88caa4f..51c1842 100644 --- a/src/authzedapi/authzed/api/v1/debug.ts +++ b/src/authzedapi/authzed/api/v1/debug.ts @@ -1,4 +1,4 @@ -// @generated by protobuf-ts 2.8.3 with parameter generate_dependencies,long_type_string,client_grpc1 +// @generated by protobuf-ts 2.9.3 with parameter generate_dependencies,long_type_string,client_grpc1 // @generated from protobuf file "authzed/api/v1/debug.proto" (package "authzed.api.v1", syntax proto3) // tslint:disable import type { BinaryWriteOptions } from "@protobuf-ts/runtime"; @@ -9,7 +9,6 @@ import type { IBinaryReader } from "@protobuf-ts/runtime"; import { UnknownFieldHandler } from "@protobuf-ts/runtime"; import type { PartialMessage } from "@protobuf-ts/runtime"; import { reflectionMergePartial } from "@protobuf-ts/runtime"; -import { MESSAGE_TYPE } from "@protobuf-ts/runtime"; import { MessageType } from "@protobuf-ts/runtime"; import { PartialCaveatInfo } from "./core"; import { Struct } from "../../../google/protobuf/struct"; @@ -232,8 +231,8 @@ class DebugInformation$Type extends MessageType { ]); } create(value?: PartialMessage): DebugInformation { - const message = { schemaUsed: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.schemaUsed = ""; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -293,8 +292,11 @@ class CheckDebugTrace$Type extends MessageType { ]); } create(value?: PartialMessage): CheckDebugTrace { - const message = { permission: "", permissionType: 0, result: 0, resolution: { oneofKind: undefined } }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.permission = ""; + message.permissionType = 0; + message.result = 0; + message.resolution = { oneofKind: undefined }; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -394,8 +396,8 @@ class CheckDebugTrace_SubProblems$Type extends MessageType): CheckDebugTrace_SubProblems { - const message = { traces: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.traces = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -445,8 +447,10 @@ class CaveatEvalInfo$Type extends MessageType { ]); } create(value?: PartialMessage): CaveatEvalInfo { - const message = { expression: "", result: 0, caveatName: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.expression = ""; + message.result = 0; + message.caveatName = ""; if (value !== undefined) reflectionMergePartial(this, message, value); return message; diff --git a/src/authzedapi/authzed/api/v1/error_reason.ts b/src/authzedapi/authzed/api/v1/error_reason.ts index 74fd063..26fa3b3 100644 --- a/src/authzedapi/authzed/api/v1/error_reason.ts +++ b/src/authzedapi/authzed/api/v1/error_reason.ts @@ -1,4 +1,4 @@ -// @generated by protobuf-ts 2.8.3 with parameter generate_dependencies,long_type_string,client_grpc1 +// @generated by protobuf-ts 2.9.3 with parameter generate_dependencies,long_type_string,client_grpc1 // @generated from protobuf file "authzed/api/v1/error_reason.proto" (package "authzed.api.v1", syntax proto3) // tslint:disable /** @@ -346,5 +346,39 @@ export enum ErrorReason { * * @generated from protobuf enum value: ERROR_REASON_MAXIMUM_DEPTH_EXCEEDED = 19; */ - MAXIMUM_DEPTH_EXCEEDED = 19 + MAXIMUM_DEPTH_EXCEEDED = 19, + /** + * The request failed due to a serialization error in the backend database. + * This typically indicates that various in flight transactions conflicted with each other + * and the database had to abort one or more of them. SpiceDB will retry a few times before returning + * the error to the client. + * + * Example of an ErrorInfo: + * + * { + * "reason": "ERROR_REASON_SERIALIZATION_FAILURE", + * "domain": "authzed.com", + * "metadata": {} + * } + * + * @generated from protobuf enum value: ERROR_REASON_SERIALIZATION_FAILURE = 20; + */ + SERIALIZATION_FAILURE = 20, + /** + * The request contained more check items than the maximum configured. + * + * Example of an ErrorInfo: + * + * { + * "reason": "ERROR_REASON_TOO_MANY_CHECKS_IN_REQUEST", + * "domain": "authzed.com", + * "metadata": { + * "check_count": "525", + * "maximum_checks_allowed": "500", + * } + * } + * + * @generated from protobuf enum value: ERROR_REASON_TOO_MANY_CHECKS_IN_REQUEST = 21; + */ + TOO_MANY_CHECKS_IN_REQUEST = 21 } diff --git a/src/authzedapi/authzed/api/v1/experimental_service.grpc-client.ts b/src/authzedapi/authzed/api/v1/experimental_service.grpc-client.ts index cd7f068..aa4ddd1 100644 --- a/src/authzedapi/authzed/api/v1/experimental_service.grpc-client.ts +++ b/src/authzedapi/authzed/api/v1/experimental_service.grpc-client.ts @@ -1,4 +1,4 @@ -// @generated by protobuf-ts 2.8.3 with parameter generate_dependencies,long_type_string,client_grpc1 +// @generated by protobuf-ts 2.9.3 with parameter generate_dependencies,long_type_string,client_grpc1 // @generated from protobuf file "authzed/api/v1/experimental_service.proto" (package "authzed.api.v1", syntax proto3) // tslint:disable import { ExperimentalService } from "./experimental_service"; @@ -6,8 +6,6 @@ import type { BinaryWriteOptions } from "@protobuf-ts/runtime"; import type { BinaryReadOptions } from "@protobuf-ts/runtime"; import type { BulkCheckPermissionResponse } from "./experimental_service"; import type { BulkCheckPermissionRequest } from "./experimental_service"; -import type { StreamingBulkCheckPermissionResponse } from "./experimental_service"; -import type { StreamingBulkCheckPermissionRequest } from "./experimental_service"; import type { BulkExportRelationshipsResponse } from "./experimental_service"; import type { BulkExportRelationshipsRequest } from "./experimental_service"; import type { BulkImportRelationshipsRequest } from "./experimental_service"; @@ -46,11 +44,6 @@ export interface IExperimentalServiceClient { */ bulkExportRelationships(input: BulkExportRelationshipsRequest, metadata?: grpc.Metadata, options?: grpc.CallOptions): grpc.ClientReadableStream; bulkExportRelationships(input: BulkExportRelationshipsRequest, options?: grpc.CallOptions): grpc.ClientReadableStream; - /** - * @generated from protobuf rpc: StreamingBulkCheckPermission(authzed.api.v1.StreamingBulkCheckPermissionRequest) returns (stream authzed.api.v1.StreamingBulkCheckPermissionResponse); - */ - streamingBulkCheckPermission(input: StreamingBulkCheckPermissionRequest, metadata?: grpc.Metadata, options?: grpc.CallOptions): grpc.ClientReadableStream; - streamingBulkCheckPermission(input: StreamingBulkCheckPermissionRequest, options?: grpc.CallOptions): grpc.ClientReadableStream; /** * @generated from protobuf rpc: BulkCheckPermission(authzed.api.v1.BulkCheckPermissionRequest) returns (authzed.api.v1.BulkCheckPermissionResponse); */ @@ -99,18 +92,11 @@ export class ExperimentalServiceClient extends grpc.Client implements IExperimen const method = ExperimentalService.methods[1]; return this.makeServerStreamRequest(`/${ExperimentalService.typeName}/${method.name}`, (value: BulkExportRelationshipsRequest): Buffer => Buffer.from(method.I.toBinary(value, this._binaryOptions)), (value: Buffer): BulkExportRelationshipsResponse => method.O.fromBinary(value, this._binaryOptions), input, (metadata as any), options); } - /** - * @generated from protobuf rpc: StreamingBulkCheckPermission(authzed.api.v1.StreamingBulkCheckPermissionRequest) returns (stream authzed.api.v1.StreamingBulkCheckPermissionResponse); - */ - streamingBulkCheckPermission(input: StreamingBulkCheckPermissionRequest, metadata?: grpc.Metadata | grpc.CallOptions, options?: grpc.CallOptions): grpc.ClientReadableStream { - const method = ExperimentalService.methods[2]; - return this.makeServerStreamRequest(`/${ExperimentalService.typeName}/${method.name}`, (value: StreamingBulkCheckPermissionRequest): Buffer => Buffer.from(method.I.toBinary(value, this._binaryOptions)), (value: Buffer): StreamingBulkCheckPermissionResponse => method.O.fromBinary(value, this._binaryOptions), input, (metadata as any), options); - } /** * @generated from protobuf rpc: BulkCheckPermission(authzed.api.v1.BulkCheckPermissionRequest) returns (authzed.api.v1.BulkCheckPermissionResponse); */ bulkCheckPermission(input: BulkCheckPermissionRequest, metadata: grpc.Metadata | grpc.CallOptions | ((err: grpc.ServiceError | null, value?: BulkCheckPermissionResponse) => void), options?: grpc.CallOptions | ((err: grpc.ServiceError | null, value?: BulkCheckPermissionResponse) => void), callback?: ((err: grpc.ServiceError | null, value?: BulkCheckPermissionResponse) => void)): grpc.ClientUnaryCall { - const method = ExperimentalService.methods[3]; + const method = ExperimentalService.methods[2]; return this.makeUnaryRequest(`/${ExperimentalService.typeName}/${method.name}`, (value: BulkCheckPermissionRequest): Buffer => Buffer.from(method.I.toBinary(value, this._binaryOptions)), (value: Buffer): BulkCheckPermissionResponse => method.O.fromBinary(value, this._binaryOptions), input, (metadata as any), (options as any), (callback as any)); } } diff --git a/src/authzedapi/authzed/api/v1/experimental_service.ts b/src/authzedapi/authzed/api/v1/experimental_service.ts index d210b2b..83cabec 100644 --- a/src/authzedapi/authzed/api/v1/experimental_service.ts +++ b/src/authzedapi/authzed/api/v1/experimental_service.ts @@ -1,4 +1,4 @@ -// @generated by protobuf-ts 2.8.3 with parameter generate_dependencies,long_type_string,client_grpc1 +// @generated by protobuf-ts 2.9.3 with parameter generate_dependencies,long_type_string,client_grpc1 // @generated from protobuf file "authzed/api/v1/experimental_service.proto" (package "authzed.api.v1", syntax proto3) // tslint:disable import { ServiceType } from "@protobuf-ts/runtime-rpc"; @@ -10,8 +10,8 @@ import type { IBinaryReader } from "@protobuf-ts/runtime"; import { UnknownFieldHandler } from "@protobuf-ts/runtime"; import type { PartialMessage } from "@protobuf-ts/runtime"; import { reflectionMergePartial } from "@protobuf-ts/runtime"; -import { MESSAGE_TYPE } from "@protobuf-ts/runtime"; import { MessageType } from "@protobuf-ts/runtime"; +import { RelationshipFilter } from "./permission_service"; import { Cursor } from "./core"; import { Relationship } from "./core"; import { PartialCaveatInfo } from "./core"; @@ -22,19 +22,6 @@ import { Struct } from "../../../google/protobuf/struct"; import { SubjectReference } from "./core"; import { ObjectReference } from "./core"; import { Consistency } from "./permission_service"; -/** - * @generated from protobuf message authzed.api.v1.StreamingBulkCheckPermissionRequest - */ -export interface StreamingBulkCheckPermissionRequest { - /** - * @generated from protobuf field: authzed.api.v1.Consistency consistency = 1; - */ - consistency?: Consistency; - /** - * @generated from protobuf field: repeated authzed.api.v1.BulkCheckPermissionRequestItem items = 2; - */ - items: BulkCheckPermissionRequestItem[]; -} /** * @generated from protobuf message authzed.api.v1.BulkCheckPermissionRequest */ @@ -82,19 +69,6 @@ export interface BulkCheckPermissionResponse { */ pairs: BulkCheckPermissionPair[]; } -/** - * @generated from protobuf message authzed.api.v1.StreamingBulkCheckPermissionResponse - */ -export interface StreamingBulkCheckPermissionResponse { - /** - * @generated from protobuf field: authzed.api.v1.ZedToken checked_at = 1; - */ - checkedAt?: ZedToken; - /** - * @generated from protobuf field: repeated authzed.api.v1.BulkCheckPermissionPair pairs = 2; - */ - pairs: BulkCheckPermissionPair[]; -} /** * @generated from protobuf message authzed.api.v1.BulkCheckPermissionPair */ @@ -189,6 +163,13 @@ export interface BulkExportRelationshipsRequest { * @generated from protobuf field: authzed.api.v1.Cursor optional_cursor = 3; */ optionalCursor?: Cursor; + /** + * optional_relationship_filter, if specified, indicates the + * filter to apply to each relationship to be exported. + * + * @generated from protobuf field: authzed.api.v1.RelationshipFilter optional_relationship_filter = 4; + */ + optionalRelationshipFilter?: RelationshipFilter; } /** * BulkExportRelationshipsResponse is one page in a stream of relationship @@ -209,60 +190,6 @@ export interface BulkExportRelationshipsResponse { relationships: Relationship[]; } // @generated message type with reflection information, may provide speed optimized methods -class StreamingBulkCheckPermissionRequest$Type extends MessageType { - constructor() { - super("authzed.api.v1.StreamingBulkCheckPermissionRequest", [ - { no: 1, name: "consistency", kind: "message", T: () => Consistency }, - { no: 2, name: "items", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => BulkCheckPermissionRequestItem, options: { "validate.rules": { repeated: { items: { message: { required: true } } } } } } - ]); - } - create(value?: PartialMessage): StreamingBulkCheckPermissionRequest { - const message = { items: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: StreamingBulkCheckPermissionRequest): StreamingBulkCheckPermissionRequest { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* authzed.api.v1.Consistency consistency */ 1: - message.consistency = Consistency.internalBinaryRead(reader, reader.uint32(), options, message.consistency); - break; - case /* repeated authzed.api.v1.BulkCheckPermissionRequestItem items */ 2: - message.items.push(BulkCheckPermissionRequestItem.internalBinaryRead(reader, reader.uint32(), options)); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message: StreamingBulkCheckPermissionRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { - /* authzed.api.v1.Consistency consistency = 1; */ - if (message.consistency) - Consistency.internalBinaryWrite(message.consistency, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* repeated authzed.api.v1.BulkCheckPermissionRequestItem items = 2; */ - for (let i = 0; i < message.items.length; i++) - BulkCheckPermissionRequestItem.internalBinaryWrite(message.items[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message authzed.api.v1.StreamingBulkCheckPermissionRequest - */ -export const StreamingBulkCheckPermissionRequest = new StreamingBulkCheckPermissionRequest$Type(); -// @generated message type with reflection information, may provide speed optimized methods class BulkCheckPermissionRequest$Type extends MessageType { constructor() { super("authzed.api.v1.BulkCheckPermissionRequest", [ @@ -271,8 +198,8 @@ class BulkCheckPermissionRequest$Type extends MessageType): BulkCheckPermissionRequest { - const message = { items: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.items = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -327,8 +254,8 @@ class BulkCheckPermissionRequestItem$Type extends MessageType): BulkCheckPermissionRequestItem { - const message = { permission: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.permission = ""; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -393,8 +320,8 @@ class BulkCheckPermissionResponse$Type extends MessageType): BulkCheckPermissionResponse { - const message = { pairs: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.pairs = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -439,60 +366,6 @@ class BulkCheckPermissionResponse$Type extends MessageType { - constructor() { - super("authzed.api.v1.StreamingBulkCheckPermissionResponse", [ - { no: 1, name: "checked_at", kind: "message", T: () => ZedToken, options: { "validate.rules": { message: { required: false } } } }, - { no: 2, name: "pairs", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => BulkCheckPermissionPair, options: { "validate.rules": { repeated: { items: { message: { required: true } } } } } } - ]); - } - create(value?: PartialMessage): StreamingBulkCheckPermissionResponse { - const message = { pairs: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: StreamingBulkCheckPermissionResponse): StreamingBulkCheckPermissionResponse { - let message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - let [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* authzed.api.v1.ZedToken checked_at */ 1: - message.checkedAt = ZedToken.internalBinaryRead(reader, reader.uint32(), options, message.checkedAt); - break; - case /* repeated authzed.api.v1.BulkCheckPermissionPair pairs */ 2: - message.pairs.push(BulkCheckPermissionPair.internalBinaryRead(reader, reader.uint32(), options)); - break; - default: - let u = options.readUnknownField; - if (u === "throw") - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - let d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } - } - return message; - } - internalBinaryWrite(message: StreamingBulkCheckPermissionResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { - /* authzed.api.v1.ZedToken checked_at = 1; */ - if (message.checkedAt) - ZedToken.internalBinaryWrite(message.checkedAt, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* repeated authzed.api.v1.BulkCheckPermissionPair pairs = 2; */ - for (let i = 0; i < message.pairs.length; i++) - BulkCheckPermissionPair.internalBinaryWrite(message.pairs[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join(); - let u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } -} -/** - * @generated MessageType for protobuf message authzed.api.v1.StreamingBulkCheckPermissionResponse - */ -export const StreamingBulkCheckPermissionResponse = new StreamingBulkCheckPermissionResponse$Type(); -// @generated message type with reflection information, may provide speed optimized methods class BulkCheckPermissionPair$Type extends MessageType { constructor() { super("authzed.api.v1.BulkCheckPermissionPair", [ @@ -502,8 +375,8 @@ class BulkCheckPermissionPair$Type extends MessageType ]); } create(value?: PartialMessage): BulkCheckPermissionPair { - const message = { response: { oneofKind: undefined } }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.response = { oneofKind: undefined }; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -568,8 +441,8 @@ class BulkCheckPermissionResponseItem$Type extends MessageType): BulkCheckPermissionResponseItem { - const message = { permissionship: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.permissionship = 0; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -621,8 +494,8 @@ class BulkImportRelationshipsRequest$Type extends MessageType): BulkImportRelationshipsRequest { - const message = { relationships: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.relationships = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -668,8 +541,8 @@ class BulkImportRelationshipsResponse$Type extends MessageType): BulkImportRelationshipsResponse { - const message = { numLoaded: "0" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.numLoaded = "0"; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -713,12 +586,13 @@ class BulkExportRelationshipsRequest$Type extends MessageType Consistency }, { no: 2, name: "optional_limit", kind: "scalar", T: 13 /*ScalarType.UINT32*/, options: { "validate.rules": { uint32: { lte: 10000, gte: 0 } } } }, - { no: 3, name: "optional_cursor", kind: "message", T: () => Cursor } + { no: 3, name: "optional_cursor", kind: "message", T: () => Cursor }, + { no: 4, name: "optional_relationship_filter", kind: "message", T: () => RelationshipFilter } ]); } create(value?: PartialMessage): BulkExportRelationshipsRequest { - const message = { optionalLimit: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.optionalLimit = 0; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -737,6 +611,9 @@ class BulkExportRelationshipsRequest$Type extends MessageType): BulkExportRelationshipsResponse { - const message = { relationships: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.relationships = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -828,6 +708,5 @@ export const BulkExportRelationshipsResponse = new BulkExportRelationshipsRespon export const ExperimentalService = new ServiceType("authzed.api.v1.ExperimentalService", [ { name: "BulkImportRelationships", clientStreaming: true, options: { "google.api.http": { post: "/v1/experimental/relationships/bulkimport", body: "*" } }, I: BulkImportRelationshipsRequest, O: BulkImportRelationshipsResponse }, { name: "BulkExportRelationships", serverStreaming: true, options: { "google.api.http": { post: "/v1/experimental/relationships/bulkexport", body: "*" } }, I: BulkExportRelationshipsRequest, O: BulkExportRelationshipsResponse }, - { name: "StreamingBulkCheckPermission", serverStreaming: true, options: { "google.api.http": { post: "/v1/experimental/permissions/streamingbulkcheckpermission", body: "*" } }, I: StreamingBulkCheckPermissionRequest, O: StreamingBulkCheckPermissionResponse }, { name: "BulkCheckPermission", options: { "google.api.http": { post: "/v1/experimental/permissions/bulkcheckpermission", body: "*" } }, I: BulkCheckPermissionRequest, O: BulkCheckPermissionResponse } ]); diff --git a/src/authzedapi/authzed/api/v1/permission_service.grpc-client.ts b/src/authzedapi/authzed/api/v1/permission_service.grpc-client.ts index fcd6282..b6d0846 100644 --- a/src/authzedapi/authzed/api/v1/permission_service.grpc-client.ts +++ b/src/authzedapi/authzed/api/v1/permission_service.grpc-client.ts @@ -1,4 +1,4 @@ -// @generated by protobuf-ts 2.8.3 with parameter generate_dependencies,long_type_string,client_grpc1 +// @generated by protobuf-ts 2.9.3 with parameter generate_dependencies,long_type_string,client_grpc1 // @generated from protobuf file "authzed/api/v1/permission_service.proto" (package "authzed.api.v1", syntax proto3) // tslint:disable import { PermissionsService } from "./permission_service"; @@ -10,6 +10,8 @@ import type { LookupResourcesResponse } from "./permission_service"; import type { LookupResourcesRequest } from "./permission_service"; import type { ExpandPermissionTreeResponse } from "./permission_service"; import type { ExpandPermissionTreeRequest } from "./permission_service"; +import type { CheckBulkPermissionsResponse } from "./permission_service"; +import type { CheckBulkPermissionsRequest } from "./permission_service"; import type { CheckPermissionResponse } from "./permission_service"; import type { CheckPermissionRequest } from "./permission_service"; import type { DeleteRelationshipsResponse } from "./permission_service"; @@ -67,6 +69,16 @@ export interface IPermissionsServiceClient { checkPermission(input: CheckPermissionRequest, metadata: grpc.Metadata, callback: (err: grpc.ServiceError | null, value?: CheckPermissionResponse) => void): grpc.ClientUnaryCall; checkPermission(input: CheckPermissionRequest, options: grpc.CallOptions, callback: (err: grpc.ServiceError | null, value?: CheckPermissionResponse) => void): grpc.ClientUnaryCall; checkPermission(input: CheckPermissionRequest, callback: (err: grpc.ServiceError | null, value?: CheckPermissionResponse) => void): grpc.ClientUnaryCall; + /** + * CheckBulkPermissions evaluates the given list of permission checks + * and returns the list of results. + * + * @generated from protobuf rpc: CheckBulkPermissions(authzed.api.v1.CheckBulkPermissionsRequest) returns (authzed.api.v1.CheckBulkPermissionsResponse); + */ + checkBulkPermissions(input: CheckBulkPermissionsRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: (err: grpc.ServiceError | null, value?: CheckBulkPermissionsResponse) => void): grpc.ClientUnaryCall; + checkBulkPermissions(input: CheckBulkPermissionsRequest, metadata: grpc.Metadata, callback: (err: grpc.ServiceError | null, value?: CheckBulkPermissionsResponse) => void): grpc.ClientUnaryCall; + checkBulkPermissions(input: CheckBulkPermissionsRequest, options: grpc.CallOptions, callback: (err: grpc.ServiceError | null, value?: CheckBulkPermissionsResponse) => void): grpc.ClientUnaryCall; + checkBulkPermissions(input: CheckBulkPermissionsRequest, callback: (err: grpc.ServiceError | null, value?: CheckBulkPermissionsResponse) => void): grpc.ClientUnaryCall; /** * ExpandPermissionTree reveals the graph structure for a resource's * permission or relation. This RPC does not recurse infinitely deep and may @@ -150,6 +162,16 @@ export class PermissionsServiceClient extends grpc.Client implements IPermission const method = PermissionsService.methods[3]; return this.makeUnaryRequest(`/${PermissionsService.typeName}/${method.name}`, (value: CheckPermissionRequest): Buffer => Buffer.from(method.I.toBinary(value, this._binaryOptions)), (value: Buffer): CheckPermissionResponse => method.O.fromBinary(value, this._binaryOptions), input, (metadata as any), (options as any), (callback as any)); } + /** + * CheckBulkPermissions evaluates the given list of permission checks + * and returns the list of results. + * + * @generated from protobuf rpc: CheckBulkPermissions(authzed.api.v1.CheckBulkPermissionsRequest) returns (authzed.api.v1.CheckBulkPermissionsResponse); + */ + checkBulkPermissions(input: CheckBulkPermissionsRequest, metadata: grpc.Metadata | grpc.CallOptions | ((err: grpc.ServiceError | null, value?: CheckBulkPermissionsResponse) => void), options?: grpc.CallOptions | ((err: grpc.ServiceError | null, value?: CheckBulkPermissionsResponse) => void), callback?: ((err: grpc.ServiceError | null, value?: CheckBulkPermissionsResponse) => void)): grpc.ClientUnaryCall { + const method = PermissionsService.methods[4]; + return this.makeUnaryRequest(`/${PermissionsService.typeName}/${method.name}`, (value: CheckBulkPermissionsRequest): Buffer => Buffer.from(method.I.toBinary(value, this._binaryOptions)), (value: Buffer): CheckBulkPermissionsResponse => method.O.fromBinary(value, this._binaryOptions), input, (metadata as any), (options as any), (callback as any)); + } /** * ExpandPermissionTree reveals the graph structure for a resource's * permission or relation. This RPC does not recurse infinitely deep and may @@ -158,7 +180,7 @@ export class PermissionsServiceClient extends grpc.Client implements IPermission * @generated from protobuf rpc: ExpandPermissionTree(authzed.api.v1.ExpandPermissionTreeRequest) returns (authzed.api.v1.ExpandPermissionTreeResponse); */ expandPermissionTree(input: ExpandPermissionTreeRequest, metadata: grpc.Metadata | grpc.CallOptions | ((err: grpc.ServiceError | null, value?: ExpandPermissionTreeResponse) => void), options?: grpc.CallOptions | ((err: grpc.ServiceError | null, value?: ExpandPermissionTreeResponse) => void), callback?: ((err: grpc.ServiceError | null, value?: ExpandPermissionTreeResponse) => void)): grpc.ClientUnaryCall { - const method = PermissionsService.methods[4]; + const method = PermissionsService.methods[5]; return this.makeUnaryRequest(`/${PermissionsService.typeName}/${method.name}`, (value: ExpandPermissionTreeRequest): Buffer => Buffer.from(method.I.toBinary(value, this._binaryOptions)), (value: Buffer): ExpandPermissionTreeResponse => method.O.fromBinary(value, this._binaryOptions), input, (metadata as any), (options as any), (callback as any)); } /** @@ -168,7 +190,7 @@ export class PermissionsServiceClient extends grpc.Client implements IPermission * @generated from protobuf rpc: LookupResources(authzed.api.v1.LookupResourcesRequest) returns (stream authzed.api.v1.LookupResourcesResponse); */ lookupResources(input: LookupResourcesRequest, metadata?: grpc.Metadata | grpc.CallOptions, options?: grpc.CallOptions): grpc.ClientReadableStream { - const method = PermissionsService.methods[5]; + const method = PermissionsService.methods[6]; return this.makeServerStreamRequest(`/${PermissionsService.typeName}/${method.name}`, (value: LookupResourcesRequest): Buffer => Buffer.from(method.I.toBinary(value, this._binaryOptions)), (value: Buffer): LookupResourcesResponse => method.O.fromBinary(value, this._binaryOptions), input, (metadata as any), options); } /** @@ -178,7 +200,7 @@ export class PermissionsServiceClient extends grpc.Client implements IPermission * @generated from protobuf rpc: LookupSubjects(authzed.api.v1.LookupSubjectsRequest) returns (stream authzed.api.v1.LookupSubjectsResponse); */ lookupSubjects(input: LookupSubjectsRequest, metadata?: grpc.Metadata | grpc.CallOptions, options?: grpc.CallOptions): grpc.ClientReadableStream { - const method = PermissionsService.methods[6]; + const method = PermissionsService.methods[7]; return this.makeServerStreamRequest(`/${PermissionsService.typeName}/${method.name}`, (value: LookupSubjectsRequest): Buffer => Buffer.from(method.I.toBinary(value, this._binaryOptions)), (value: Buffer): LookupSubjectsResponse => method.O.fromBinary(value, this._binaryOptions), input, (metadata as any), options); } } diff --git a/src/authzedapi/authzed/api/v1/permission_service.ts b/src/authzedapi/authzed/api/v1/permission_service.ts index 6df2019..246c740 100644 --- a/src/authzedapi/authzed/api/v1/permission_service.ts +++ b/src/authzedapi/authzed/api/v1/permission_service.ts @@ -1,4 +1,4 @@ -// @generated by protobuf-ts 2.8.3 with parameter generate_dependencies,long_type_string,client_grpc1 +// @generated by protobuf-ts 2.9.3 with parameter generate_dependencies,long_type_string,client_grpc1 // @generated from protobuf file "authzed/api/v1/permission_service.proto" (package "authzed.api.v1", syntax proto3) // tslint:disable import { ServiceType } from "@protobuf-ts/runtime-rpc"; @@ -10,9 +10,10 @@ import type { IBinaryReader } from "@protobuf-ts/runtime"; import { UnknownFieldHandler } from "@protobuf-ts/runtime"; import type { PartialMessage } from "@protobuf-ts/runtime"; import { reflectionMergePartial } from "@protobuf-ts/runtime"; -import { MESSAGE_TYPE } from "@protobuf-ts/runtime"; import { MessageType } from "@protobuf-ts/runtime"; import { PermissionRelationshipTree } from "./core"; +import { Status } from "../../../google/rpc/status"; +import { DebugInformation } from "./debug"; import { PartialCaveatInfo } from "./core"; import { Struct } from "../../../google/protobuf/struct"; import { SubjectReference } from "./core"; @@ -82,25 +83,46 @@ export interface Consistency { * RelationshipFilter is a collection of filters which when applied to a * relationship will return relationships that have exactly matching fields. * - * resource_type is required. All other fields are optional and if left - * unspecified will not filter relationships. + * All fields are optional and if left unspecified will not filter relationships, + * but at least one field must be specified. + * + * NOTE: The performance of the API will be affected by the selection of fields + * on which to filter. If a field is not indexed, the performance of the API + * can be significantly slower. * * @generated from protobuf message authzed.api.v1.RelationshipFilter */ export interface RelationshipFilter { /** + * resource_type is the *optional* resource type of the relationship. + * NOTE: It is not prefixed with "optional_" for legacy compatibility. + * * @generated from protobuf field: string resource_type = 1; */ resourceType: string; /** + * optional_resource_id is the *optional* resource ID of the relationship. + * If specified, optional_resource_id_prefix cannot be specified. + * * @generated from protobuf field: string optional_resource_id = 2; */ optionalResourceId: string; /** + * optional_resource_id_prefix is the *optional* prefix for the resource ID of the relationship. + * If specified, optional_resource_id cannot be specified. + * + * @generated from protobuf field: string optional_resource_id_prefix = 5; + */ + optionalResourceIdPrefix: string; + /** + * relation is the *optional* relation of the relationship. + * * @generated from protobuf field: string optional_relation = 3; */ optionalRelation: string; /** + * optional_subject_filter is the optional filter for the subjects of the relationships. + * * @generated from protobuf field: authzed.api.v1.SubjectFilter optional_subject_filter = 4; */ optionalSubjectFilter?: SubjectFilter; @@ -379,6 +401,14 @@ export interface CheckPermissionRequest { * @generated from protobuf field: google.protobuf.Struct context = 5; */ context?: Struct; + /** + * with_tracing, if true, indicates that the response should include a debug trace. + * This can be useful for debugging and performance analysis, but adds a small amount + * of compute overhead to the request. + * + * @generated from protobuf field: bool with_tracing = 6; + */ + withTracing: boolean; } /** * @generated from protobuf message authzed.api.v1.CheckPermissionResponse @@ -407,6 +437,12 @@ export interface CheckPermissionResponse { * @generated from protobuf field: authzed.api.v1.PartialCaveatInfo partial_caveat_info = 3; */ partialCaveatInfo?: PartialCaveatInfo; + /** + * debug_trace is the debugging trace of this check, if requested. + * + * @generated from protobuf field: authzed.api.v1.DebugInformation debug_trace = 4; + */ + debugTrace?: DebugInformation; } /** * @generated from protobuf enum authzed.api.v1.CheckPermissionResponse.Permissionship @@ -429,6 +465,99 @@ export enum CheckPermissionResponse_Permissionship { */ CONDITIONAL_PERMISSION = 3 } +/** + * CheckBulkPermissionsRequest issues a check on whether a subject has permission + * or is a member of a relation on a specific resource for each item in the list. + * + * The ordering of the items in the response is maintained in the response. + * Checks with the same subject/permission will automatically be batched for performance optimization. + * + * @generated from protobuf message authzed.api.v1.CheckBulkPermissionsRequest + */ +export interface CheckBulkPermissionsRequest { + /** + * @generated from protobuf field: authzed.api.v1.Consistency consistency = 1; + */ + consistency?: Consistency; + /** + * @generated from protobuf field: repeated authzed.api.v1.CheckBulkPermissionsRequestItem items = 2; + */ + items: CheckBulkPermissionsRequestItem[]; +} +/** + * @generated from protobuf message authzed.api.v1.CheckBulkPermissionsRequestItem + */ +export interface CheckBulkPermissionsRequestItem { + /** + * @generated from protobuf field: authzed.api.v1.ObjectReference resource = 1; + */ + resource?: ObjectReference; + /** + * @generated from protobuf field: string permission = 2; + */ + permission: string; + /** + * @generated from protobuf field: authzed.api.v1.SubjectReference subject = 3; + */ + subject?: SubjectReference; + /** + * @generated from protobuf field: google.protobuf.Struct context = 4; + */ + context?: Struct; +} +/** + * @generated from protobuf message authzed.api.v1.CheckBulkPermissionsResponse + */ +export interface CheckBulkPermissionsResponse { + /** + * @generated from protobuf field: authzed.api.v1.ZedToken checked_at = 1; + */ + checkedAt?: ZedToken; + /** + * @generated from protobuf field: repeated authzed.api.v1.CheckBulkPermissionsPair pairs = 2; + */ + pairs: CheckBulkPermissionsPair[]; +} +/** + * @generated from protobuf message authzed.api.v1.CheckBulkPermissionsPair + */ +export interface CheckBulkPermissionsPair { + /** + * @generated from protobuf field: authzed.api.v1.CheckBulkPermissionsRequestItem request = 1; + */ + request?: CheckBulkPermissionsRequestItem; + /** + * @generated from protobuf oneof: response + */ + response: { + oneofKind: "item"; + /** + * @generated from protobuf field: authzed.api.v1.CheckBulkPermissionsResponseItem item = 2; + */ + item: CheckBulkPermissionsResponseItem; + } | { + oneofKind: "error"; + /** + * @generated from protobuf field: google.rpc.Status error = 3; + */ + error: Status; + } | { + oneofKind: undefined; + }; +} +/** + * @generated from protobuf message authzed.api.v1.CheckBulkPermissionsResponseItem + */ +export interface CheckBulkPermissionsResponseItem { + /** + * @generated from protobuf field: authzed.api.v1.CheckPermissionResponse.Permissionship permissionship = 1; + */ + permissionship: CheckPermissionResponse_Permissionship; + /** + * @generated from protobuf field: authzed.api.v1.PartialCaveatInfo partial_caveat_info = 2; + */ + partialCaveatInfo?: PartialCaveatInfo; +} /** * ExpandPermissionTreeRequest returns a tree representing the expansion of all * relationships found accessible from a permission or relation on a particular @@ -798,8 +927,8 @@ class Consistency$Type extends MessageType { ]); } create(value?: PartialMessage): Consistency { - const message = { requirement: { oneofKind: undefined } }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.requirement = { oneofKind: undefined }; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -871,15 +1000,19 @@ export const Consistency = new Consistency$Type(); class RelationshipFilter$Type extends MessageType { constructor() { super("authzed.api.v1.RelationshipFilter", [ - { no: 1, name: "resource_type", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { maxBytes: "128", pattern: "^([a-z][a-z0-9_]{1,61}[a-z0-9]/)*[a-z][a-z0-9_]{1,62}[a-z0-9]$" } } } }, + { no: 1, name: "resource_type", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { maxBytes: "128", pattern: "^(([a-z][a-z0-9_]{1,61}[a-z0-9]/)*[a-z][a-z0-9_]{1,62}[a-z0-9])?$" } } } }, { no: 2, name: "optional_resource_id", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { maxBytes: "1024", pattern: "^([a-zA-Z0-9/_|\\-=+]{1,})?$" } } } }, + { no: 5, name: "optional_resource_id_prefix", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { maxBytes: "1024", pattern: "^([a-zA-Z0-9/_|\\-=+]{1,})?$" } } } }, { no: 3, name: "optional_relation", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { maxBytes: "64", pattern: "^([a-z][a-z0-9_]{1,62}[a-z0-9])?$" } } } }, { no: 4, name: "optional_subject_filter", kind: "message", T: () => SubjectFilter } ]); } create(value?: PartialMessage): RelationshipFilter { - const message = { resourceType: "", optionalResourceId: "", optionalRelation: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.resourceType = ""; + message.optionalResourceId = ""; + message.optionalResourceIdPrefix = ""; + message.optionalRelation = ""; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -895,6 +1028,9 @@ class RelationshipFilter$Type extends MessageType { case /* string optional_resource_id */ 2: message.optionalResourceId = reader.string(); break; + case /* string optional_resource_id_prefix */ 5: + message.optionalResourceIdPrefix = reader.string(); + break; case /* string optional_relation */ 3: message.optionalRelation = reader.string(); break; @@ -919,6 +1055,9 @@ class RelationshipFilter$Type extends MessageType { /* string optional_resource_id = 2; */ if (message.optionalResourceId !== "") writer.tag(2, WireType.LengthDelimited).string(message.optionalResourceId); + /* string optional_resource_id_prefix = 5; */ + if (message.optionalResourceIdPrefix !== "") + writer.tag(5, WireType.LengthDelimited).string(message.optionalResourceIdPrefix); /* string optional_relation = 3; */ if (message.optionalRelation !== "") writer.tag(3, WireType.LengthDelimited).string(message.optionalRelation); @@ -945,8 +1084,9 @@ class SubjectFilter$Type extends MessageType { ]); } create(value?: PartialMessage): SubjectFilter { - const message = { subjectType: "", optionalSubjectId: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.subjectType = ""; + message.optionalSubjectId = ""; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -1004,8 +1144,8 @@ class SubjectFilter_RelationFilter$Type extends MessageType): SubjectFilter_RelationFilter { - const message = { relation: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.relation = ""; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -1054,8 +1194,8 @@ class ReadRelationshipsRequest$Type extends MessageType): ReadRelationshipsRequest { - const message = { optionalLimit: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.optionalLimit = 0; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -1121,8 +1261,7 @@ class ReadRelationshipsResponse$Type extends MessageType): ReadRelationshipsResponse { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -1181,8 +1320,8 @@ class Precondition$Type extends MessageType { ]); } create(value?: PartialMessage): Precondition { - const message = { operation: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.operation = 0; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -1235,8 +1374,9 @@ class WriteRelationshipsRequest$Type extends MessageType): WriteRelationshipsRequest { - const message = { updates: [], optionalPreconditions: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.updates = []; + message.optionalPreconditions = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -1288,8 +1428,7 @@ class WriteRelationshipsResponse$Type extends MessageType): WriteRelationshipsResponse { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -1338,8 +1477,10 @@ class DeleteRelationshipsRequest$Type extends MessageType): DeleteRelationshipsRequest { - const message = { optionalPreconditions: [], optionalLimit: 0, optionalAllowPartialDeletions: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.optionalPreconditions = []; + message.optionalLimit = 0; + message.optionalAllowPartialDeletions = false; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -1404,8 +1545,8 @@ class DeleteRelationshipsResponse$Type extends MessageType): DeleteRelationshipsResponse { - const message = { deletionProgress: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.deletionProgress = 0; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -1457,12 +1598,14 @@ class CheckPermissionRequest$Type extends MessageType { { no: 2, name: "resource", kind: "message", T: () => ObjectReference, options: { "validate.rules": { message: { required: true } } } }, { no: 3, name: "permission", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { maxBytes: "64", pattern: "^([a-z][a-z0-9_]{1,62}[a-z0-9])?$" } } } }, { no: 4, name: "subject", kind: "message", T: () => SubjectReference, options: { "validate.rules": { message: { required: true } } } }, - { no: 5, name: "context", kind: "message", T: () => Struct, options: { "validate.rules": { message: { required: false } } } } + { no: 5, name: "context", kind: "message", T: () => Struct, options: { "validate.rules": { message: { required: false } } } }, + { no: 6, name: "with_tracing", kind: "scalar", T: 8 /*ScalarType.BOOL*/ } ]); } create(value?: PartialMessage): CheckPermissionRequest { - const message = { permission: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.permission = ""; + message.withTracing = false; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -1487,6 +1630,9 @@ class CheckPermissionRequest$Type extends MessageType { case /* google.protobuf.Struct context */ 5: message.context = Struct.internalBinaryRead(reader, reader.uint32(), options, message.context); break; + case /* bool with_tracing */ 6: + message.withTracing = reader.bool(); + break; default: let u = options.readUnknownField; if (u === "throw") @@ -1514,6 +1660,9 @@ class CheckPermissionRequest$Type extends MessageType { /* google.protobuf.Struct context = 5; */ if (message.context) Struct.internalBinaryWrite(message.context, writer.tag(5, WireType.LengthDelimited).fork(), options).join(); + /* bool with_tracing = 6; */ + if (message.withTracing !== false) + writer.tag(6, WireType.Varint).bool(message.withTracing); let u = options.writeUnknownFields; if (u !== false) (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); @@ -1530,12 +1679,13 @@ class CheckPermissionResponse$Type extends MessageType super("authzed.api.v1.CheckPermissionResponse", [ { no: 1, name: "checked_at", kind: "message", T: () => ZedToken, options: { "validate.rules": { message: { required: false } } } }, { no: 2, name: "permissionship", kind: "enum", T: () => ["authzed.api.v1.CheckPermissionResponse.Permissionship", CheckPermissionResponse_Permissionship, "PERMISSIONSHIP_"], options: { "validate.rules": { enum: { definedOnly: true, notIn: [0] } } } }, - { no: 3, name: "partial_caveat_info", kind: "message", T: () => PartialCaveatInfo, options: { "validate.rules": { message: { required: false } } } } + { no: 3, name: "partial_caveat_info", kind: "message", T: () => PartialCaveatInfo, options: { "validate.rules": { message: { required: false } } } }, + { no: 4, name: "debug_trace", kind: "message", T: () => DebugInformation } ]); } create(value?: PartialMessage): CheckPermissionResponse { - const message = { permissionship: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.permissionship = 0; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -1554,6 +1704,9 @@ class CheckPermissionResponse$Type extends MessageType case /* authzed.api.v1.PartialCaveatInfo partial_caveat_info */ 3: message.partialCaveatInfo = PartialCaveatInfo.internalBinaryRead(reader, reader.uint32(), options, message.partialCaveatInfo); break; + case /* authzed.api.v1.DebugInformation debug_trace */ 4: + message.debugTrace = DebugInformation.internalBinaryRead(reader, reader.uint32(), options, message.debugTrace); + break; default: let u = options.readUnknownField; if (u === "throw") @@ -1575,6 +1728,9 @@ class CheckPermissionResponse$Type extends MessageType /* authzed.api.v1.PartialCaveatInfo partial_caveat_info = 3; */ if (message.partialCaveatInfo) PartialCaveatInfo.internalBinaryWrite(message.partialCaveatInfo, writer.tag(3, WireType.LengthDelimited).fork(), options).join(); + /* authzed.api.v1.DebugInformation debug_trace = 4; */ + if (message.debugTrace) + DebugInformation.internalBinaryWrite(message.debugTrace, writer.tag(4, WireType.LengthDelimited).fork(), options).join(); let u = options.writeUnknownFields; if (u !== false) (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); @@ -1586,6 +1742,303 @@ class CheckPermissionResponse$Type extends MessageType */ export const CheckPermissionResponse = new CheckPermissionResponse$Type(); // @generated message type with reflection information, may provide speed optimized methods +class CheckBulkPermissionsRequest$Type extends MessageType { + constructor() { + super("authzed.api.v1.CheckBulkPermissionsRequest", [ + { no: 1, name: "consistency", kind: "message", T: () => Consistency }, + { no: 2, name: "items", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => CheckBulkPermissionsRequestItem, options: { "validate.rules": { repeated: { items: { message: { required: true } } } } } } + ]); + } + create(value?: PartialMessage): CheckBulkPermissionsRequest { + const message = globalThis.Object.create((this.messagePrototype!)); + message.items = []; + if (value !== undefined) + reflectionMergePartial(this, message, value); + return message; + } + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CheckBulkPermissionsRequest): CheckBulkPermissionsRequest { + let message = target ?? this.create(), end = reader.pos + length; + while (reader.pos < end) { + let [fieldNo, wireType] = reader.tag(); + switch (fieldNo) { + case /* authzed.api.v1.Consistency consistency */ 1: + message.consistency = Consistency.internalBinaryRead(reader, reader.uint32(), options, message.consistency); + break; + case /* repeated authzed.api.v1.CheckBulkPermissionsRequestItem items */ 2: + message.items.push(CheckBulkPermissionsRequestItem.internalBinaryRead(reader, reader.uint32(), options)); + break; + default: + let u = options.readUnknownField; + if (u === "throw") + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); + let d = reader.skip(wireType); + if (u !== false) + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); + } + } + return message; + } + internalBinaryWrite(message: CheckBulkPermissionsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { + /* authzed.api.v1.Consistency consistency = 1; */ + if (message.consistency) + Consistency.internalBinaryWrite(message.consistency, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); + /* repeated authzed.api.v1.CheckBulkPermissionsRequestItem items = 2; */ + for (let i = 0; i < message.items.length; i++) + CheckBulkPermissionsRequestItem.internalBinaryWrite(message.items[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join(); + let u = options.writeUnknownFields; + if (u !== false) + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); + return writer; + } +} +/** + * @generated MessageType for protobuf message authzed.api.v1.CheckBulkPermissionsRequest + */ +export const CheckBulkPermissionsRequest = new CheckBulkPermissionsRequest$Type(); +// @generated message type with reflection information, may provide speed optimized methods +class CheckBulkPermissionsRequestItem$Type extends MessageType { + constructor() { + super("authzed.api.v1.CheckBulkPermissionsRequestItem", [ + { no: 1, name: "resource", kind: "message", T: () => ObjectReference, options: { "validate.rules": { message: { required: true } } } }, + { no: 2, name: "permission", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { maxBytes: "64", pattern: "^([a-z][a-z0-9_]{1,62}[a-z0-9])?$" } } } }, + { no: 3, name: "subject", kind: "message", T: () => SubjectReference, options: { "validate.rules": { message: { required: true } } } }, + { no: 4, name: "context", kind: "message", T: () => Struct, options: { "validate.rules": { message: { required: false } } } } + ]); + } + create(value?: PartialMessage): CheckBulkPermissionsRequestItem { + const message = globalThis.Object.create((this.messagePrototype!)); + message.permission = ""; + if (value !== undefined) + reflectionMergePartial(this, message, value); + return message; + } + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CheckBulkPermissionsRequestItem): CheckBulkPermissionsRequestItem { + let message = target ?? this.create(), end = reader.pos + length; + while (reader.pos < end) { + let [fieldNo, wireType] = reader.tag(); + switch (fieldNo) { + case /* authzed.api.v1.ObjectReference resource */ 1: + message.resource = ObjectReference.internalBinaryRead(reader, reader.uint32(), options, message.resource); + break; + case /* string permission */ 2: + message.permission = reader.string(); + break; + case /* authzed.api.v1.SubjectReference subject */ 3: + message.subject = SubjectReference.internalBinaryRead(reader, reader.uint32(), options, message.subject); + break; + case /* google.protobuf.Struct context */ 4: + message.context = Struct.internalBinaryRead(reader, reader.uint32(), options, message.context); + break; + default: + let u = options.readUnknownField; + if (u === "throw") + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); + let d = reader.skip(wireType); + if (u !== false) + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); + } + } + return message; + } + internalBinaryWrite(message: CheckBulkPermissionsRequestItem, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { + /* authzed.api.v1.ObjectReference resource = 1; */ + if (message.resource) + ObjectReference.internalBinaryWrite(message.resource, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); + /* string permission = 2; */ + if (message.permission !== "") + writer.tag(2, WireType.LengthDelimited).string(message.permission); + /* authzed.api.v1.SubjectReference subject = 3; */ + if (message.subject) + SubjectReference.internalBinaryWrite(message.subject, writer.tag(3, WireType.LengthDelimited).fork(), options).join(); + /* google.protobuf.Struct context = 4; */ + if (message.context) + Struct.internalBinaryWrite(message.context, writer.tag(4, WireType.LengthDelimited).fork(), options).join(); + let u = options.writeUnknownFields; + if (u !== false) + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); + return writer; + } +} +/** + * @generated MessageType for protobuf message authzed.api.v1.CheckBulkPermissionsRequestItem + */ +export const CheckBulkPermissionsRequestItem = new CheckBulkPermissionsRequestItem$Type(); +// @generated message type with reflection information, may provide speed optimized methods +class CheckBulkPermissionsResponse$Type extends MessageType { + constructor() { + super("authzed.api.v1.CheckBulkPermissionsResponse", [ + { no: 1, name: "checked_at", kind: "message", T: () => ZedToken, options: { "validate.rules": { message: { required: false } } } }, + { no: 2, name: "pairs", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => CheckBulkPermissionsPair, options: { "validate.rules": { repeated: { items: { message: { required: true } } } } } } + ]); + } + create(value?: PartialMessage): CheckBulkPermissionsResponse { + const message = globalThis.Object.create((this.messagePrototype!)); + message.pairs = []; + if (value !== undefined) + reflectionMergePartial(this, message, value); + return message; + } + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CheckBulkPermissionsResponse): CheckBulkPermissionsResponse { + let message = target ?? this.create(), end = reader.pos + length; + while (reader.pos < end) { + let [fieldNo, wireType] = reader.tag(); + switch (fieldNo) { + case /* authzed.api.v1.ZedToken checked_at */ 1: + message.checkedAt = ZedToken.internalBinaryRead(reader, reader.uint32(), options, message.checkedAt); + break; + case /* repeated authzed.api.v1.CheckBulkPermissionsPair pairs */ 2: + message.pairs.push(CheckBulkPermissionsPair.internalBinaryRead(reader, reader.uint32(), options)); + break; + default: + let u = options.readUnknownField; + if (u === "throw") + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); + let d = reader.skip(wireType); + if (u !== false) + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); + } + } + return message; + } + internalBinaryWrite(message: CheckBulkPermissionsResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { + /* authzed.api.v1.ZedToken checked_at = 1; */ + if (message.checkedAt) + ZedToken.internalBinaryWrite(message.checkedAt, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); + /* repeated authzed.api.v1.CheckBulkPermissionsPair pairs = 2; */ + for (let i = 0; i < message.pairs.length; i++) + CheckBulkPermissionsPair.internalBinaryWrite(message.pairs[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join(); + let u = options.writeUnknownFields; + if (u !== false) + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); + return writer; + } +} +/** + * @generated MessageType for protobuf message authzed.api.v1.CheckBulkPermissionsResponse + */ +export const CheckBulkPermissionsResponse = new CheckBulkPermissionsResponse$Type(); +// @generated message type with reflection information, may provide speed optimized methods +class CheckBulkPermissionsPair$Type extends MessageType { + constructor() { + super("authzed.api.v1.CheckBulkPermissionsPair", [ + { no: 1, name: "request", kind: "message", T: () => CheckBulkPermissionsRequestItem }, + { no: 2, name: "item", kind: "message", oneof: "response", T: () => CheckBulkPermissionsResponseItem }, + { no: 3, name: "error", kind: "message", oneof: "response", T: () => Status } + ]); + } + create(value?: PartialMessage): CheckBulkPermissionsPair { + const message = globalThis.Object.create((this.messagePrototype!)); + message.response = { oneofKind: undefined }; + if (value !== undefined) + reflectionMergePartial(this, message, value); + return message; + } + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CheckBulkPermissionsPair): CheckBulkPermissionsPair { + let message = target ?? this.create(), end = reader.pos + length; + while (reader.pos < end) { + let [fieldNo, wireType] = reader.tag(); + switch (fieldNo) { + case /* authzed.api.v1.CheckBulkPermissionsRequestItem request */ 1: + message.request = CheckBulkPermissionsRequestItem.internalBinaryRead(reader, reader.uint32(), options, message.request); + break; + case /* authzed.api.v1.CheckBulkPermissionsResponseItem item */ 2: + message.response = { + oneofKind: "item", + item: CheckBulkPermissionsResponseItem.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).item) + }; + break; + case /* google.rpc.Status error */ 3: + message.response = { + oneofKind: "error", + error: Status.internalBinaryRead(reader, reader.uint32(), options, (message.response as any).error) + }; + break; + default: + let u = options.readUnknownField; + if (u === "throw") + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); + let d = reader.skip(wireType); + if (u !== false) + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); + } + } + return message; + } + internalBinaryWrite(message: CheckBulkPermissionsPair, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { + /* authzed.api.v1.CheckBulkPermissionsRequestItem request = 1; */ + if (message.request) + CheckBulkPermissionsRequestItem.internalBinaryWrite(message.request, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); + /* authzed.api.v1.CheckBulkPermissionsResponseItem item = 2; */ + if (message.response.oneofKind === "item") + CheckBulkPermissionsResponseItem.internalBinaryWrite(message.response.item, writer.tag(2, WireType.LengthDelimited).fork(), options).join(); + /* google.rpc.Status error = 3; */ + if (message.response.oneofKind === "error") + Status.internalBinaryWrite(message.response.error, writer.tag(3, WireType.LengthDelimited).fork(), options).join(); + let u = options.writeUnknownFields; + if (u !== false) + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); + return writer; + } +} +/** + * @generated MessageType for protobuf message authzed.api.v1.CheckBulkPermissionsPair + */ +export const CheckBulkPermissionsPair = new CheckBulkPermissionsPair$Type(); +// @generated message type with reflection information, may provide speed optimized methods +class CheckBulkPermissionsResponseItem$Type extends MessageType { + constructor() { + super("authzed.api.v1.CheckBulkPermissionsResponseItem", [ + { no: 1, name: "permissionship", kind: "enum", T: () => ["authzed.api.v1.CheckPermissionResponse.Permissionship", CheckPermissionResponse_Permissionship, "PERMISSIONSHIP_"], options: { "validate.rules": { enum: { definedOnly: true, notIn: [0] } } } }, + { no: 2, name: "partial_caveat_info", kind: "message", T: () => PartialCaveatInfo, options: { "validate.rules": { message: { required: false } } } } + ]); + } + create(value?: PartialMessage): CheckBulkPermissionsResponseItem { + const message = globalThis.Object.create((this.messagePrototype!)); + message.permissionship = 0; + if (value !== undefined) + reflectionMergePartial(this, message, value); + return message; + } + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CheckBulkPermissionsResponseItem): CheckBulkPermissionsResponseItem { + let message = target ?? this.create(), end = reader.pos + length; + while (reader.pos < end) { + let [fieldNo, wireType] = reader.tag(); + switch (fieldNo) { + case /* authzed.api.v1.CheckPermissionResponse.Permissionship permissionship */ 1: + message.permissionship = reader.int32(); + break; + case /* authzed.api.v1.PartialCaveatInfo partial_caveat_info */ 2: + message.partialCaveatInfo = PartialCaveatInfo.internalBinaryRead(reader, reader.uint32(), options, message.partialCaveatInfo); + break; + default: + let u = options.readUnknownField; + if (u === "throw") + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); + let d = reader.skip(wireType); + if (u !== false) + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); + } + } + return message; + } + internalBinaryWrite(message: CheckBulkPermissionsResponseItem, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { + /* authzed.api.v1.CheckPermissionResponse.Permissionship permissionship = 1; */ + if (message.permissionship !== 0) + writer.tag(1, WireType.Varint).int32(message.permissionship); + /* authzed.api.v1.PartialCaveatInfo partial_caveat_info = 2; */ + if (message.partialCaveatInfo) + PartialCaveatInfo.internalBinaryWrite(message.partialCaveatInfo, writer.tag(2, WireType.LengthDelimited).fork(), options).join(); + let u = options.writeUnknownFields; + if (u !== false) + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); + return writer; + } +} +/** + * @generated MessageType for protobuf message authzed.api.v1.CheckBulkPermissionsResponseItem + */ +export const CheckBulkPermissionsResponseItem = new CheckBulkPermissionsResponseItem$Type(); +// @generated message type with reflection information, may provide speed optimized methods class ExpandPermissionTreeRequest$Type extends MessageType { constructor() { super("authzed.api.v1.ExpandPermissionTreeRequest", [ @@ -1595,8 +2048,8 @@ class ExpandPermissionTreeRequest$Type extends MessageType): ExpandPermissionTreeRequest { - const message = { permission: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.permission = ""; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -1655,8 +2108,7 @@ class ExpandPermissionTreeResponse$Type extends MessageType): ExpandPermissionTreeResponse { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -1714,8 +2166,10 @@ class LookupResourcesRequest$Type extends MessageType { ]); } create(value?: PartialMessage): LookupResourcesRequest { - const message = { resourceObjectType: "", permission: "", optionalLimit: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.resourceObjectType = ""; + message.permission = ""; + message.optionalLimit = 0; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -1801,8 +2255,9 @@ class LookupResourcesResponse$Type extends MessageType ]); } create(value?: PartialMessage): LookupResourcesResponse { - const message = { resourceObjectId: "", permissionship: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.resourceObjectId = ""; + message.permissionship = 0; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -1880,8 +2335,12 @@ class LookupSubjectsRequest$Type extends MessageType { ]); } create(value?: PartialMessage): LookupSubjectsRequest { - const message = { permission: "", subjectObjectType: "", optionalSubjectRelation: "", optionalConcreteLimit: 0, wildcardOption: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.permission = ""; + message.subjectObjectType = ""; + message.optionalSubjectRelation = ""; + message.optionalConcreteLimit = 0; + message.wildcardOption = 0; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -1982,8 +2441,11 @@ class LookupSubjectsResponse$Type extends MessageType { ]); } create(value?: PartialMessage): LookupSubjectsResponse { - const message = { subjectObjectId: "", excludedSubjectIds: [], permissionship: 0, excludedSubjects: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.subjectObjectId = ""; + message.excludedSubjectIds = []; + message.permissionship = 0; + message.excludedSubjects = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2073,8 +2535,9 @@ class ResolvedSubject$Type extends MessageType { ]); } create(value?: PartialMessage): ResolvedSubject { - const message = { subjectObjectId: "", permissionship: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.subjectObjectId = ""; + message.permissionship = 0; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2132,6 +2595,7 @@ export const PermissionsService = new ServiceType("authzed.api.v1.PermissionsSer { name: "WriteRelationships", options: { "google.api.http": { post: "/v1/relationships/write", body: "*" } }, I: WriteRelationshipsRequest, O: WriteRelationshipsResponse }, { name: "DeleteRelationships", options: { "google.api.http": { post: "/v1/relationships/delete", body: "*" } }, I: DeleteRelationshipsRequest, O: DeleteRelationshipsResponse }, { name: "CheckPermission", options: { "google.api.http": { post: "/v1/permissions/check", body: "*" } }, I: CheckPermissionRequest, O: CheckPermissionResponse }, + { name: "CheckBulkPermissions", options: { "google.api.http": { post: "/v1/permissions/checkbulk", body: "*" } }, I: CheckBulkPermissionsRequest, O: CheckBulkPermissionsResponse }, { name: "ExpandPermissionTree", options: { "google.api.http": { post: "/v1/permissions/expand", body: "*" } }, I: ExpandPermissionTreeRequest, O: ExpandPermissionTreeResponse }, { name: "LookupResources", serverStreaming: true, options: { "google.api.http": { post: "/v1/permissions/resources", body: "*" } }, I: LookupResourcesRequest, O: LookupResourcesResponse }, { name: "LookupSubjects", serverStreaming: true, options: { "google.api.http": { post: "/v1/permissions/subjects", body: "*" } }, I: LookupSubjectsRequest, O: LookupSubjectsResponse } diff --git a/src/authzedapi/authzed/api/v1/schema_service.grpc-client.ts b/src/authzedapi/authzed/api/v1/schema_service.grpc-client.ts index 33bd112..9098061 100644 --- a/src/authzedapi/authzed/api/v1/schema_service.grpc-client.ts +++ b/src/authzedapi/authzed/api/v1/schema_service.grpc-client.ts @@ -1,4 +1,4 @@ -// @generated by protobuf-ts 2.8.3 with parameter generate_dependencies,long_type_string,client_grpc1 +// @generated by protobuf-ts 2.9.3 with parameter generate_dependencies,long_type_string,client_grpc1 // @generated from protobuf file "authzed/api/v1/schema_service.proto" (package "authzed.api.v1", syntax proto3) // tslint:disable import { SchemaService } from "./schema_service"; diff --git a/src/authzedapi/authzed/api/v1/schema_service.ts b/src/authzedapi/authzed/api/v1/schema_service.ts index afcd027..6e3483b 100644 --- a/src/authzedapi/authzed/api/v1/schema_service.ts +++ b/src/authzedapi/authzed/api/v1/schema_service.ts @@ -1,4 +1,4 @@ -// @generated by protobuf-ts 2.8.3 with parameter generate_dependencies,long_type_string,client_grpc1 +// @generated by protobuf-ts 2.9.3 with parameter generate_dependencies,long_type_string,client_grpc1 // @generated from protobuf file "authzed/api/v1/schema_service.proto" (package "authzed.api.v1", syntax proto3) // tslint:disable import { ServiceType } from "@protobuf-ts/runtime-rpc"; @@ -10,7 +10,6 @@ import type { BinaryReadOptions } from "@protobuf-ts/runtime"; import type { IBinaryReader } from "@protobuf-ts/runtime"; import type { PartialMessage } from "@protobuf-ts/runtime"; import { reflectionMergePartial } from "@protobuf-ts/runtime"; -import { MESSAGE_TYPE } from "@protobuf-ts/runtime"; import { MessageType } from "@protobuf-ts/runtime"; import { ZedToken } from "./core"; /** @@ -53,7 +52,7 @@ export interface WriteSchemaRequest { * * @generated from protobuf field: string schema = 1; */ - schema: string; // 256KiB + schema: string; // 4MiB } /** * WriteSchemaResponse is the resulting data after having written a Schema to @@ -75,8 +74,7 @@ class ReadSchemaRequest$Type extends MessageType { super("authzed.api.v1.ReadSchemaRequest", []); } create(value?: PartialMessage): ReadSchemaRequest { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -104,8 +102,8 @@ class ReadSchemaResponse$Type extends MessageType { ]); } create(value?: PartialMessage): ReadSchemaResponse { - const message = { schemaText: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.schemaText = ""; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -153,12 +151,12 @@ export const ReadSchemaResponse = new ReadSchemaResponse$Type(); class WriteSchemaRequest$Type extends MessageType { constructor() { super("authzed.api.v1.WriteSchemaRequest", [ - { no: 1, name: "schema", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { maxBytes: "262144" } } } } + { no: 1, name: "schema", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { maxBytes: "4194304" } } } } ]); } create(value?: PartialMessage): WriteSchemaRequest { - const message = { schema: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.schema = ""; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -204,8 +202,7 @@ class WriteSchemaResponse$Type extends MessageType { ]); } create(value?: PartialMessage): WriteSchemaResponse { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); if (value !== undefined) reflectionMergePartial(this, message, value); return message; diff --git a/src/authzedapi/authzed/api/v1/watch_service.grpc-client.ts b/src/authzedapi/authzed/api/v1/watch_service.grpc-client.ts index 7cad242..e36cd09 100644 --- a/src/authzedapi/authzed/api/v1/watch_service.grpc-client.ts +++ b/src/authzedapi/authzed/api/v1/watch_service.grpc-client.ts @@ -1,4 +1,4 @@ -// @generated by protobuf-ts 2.8.3 with parameter generate_dependencies,long_type_string,client_grpc1 +// @generated by protobuf-ts 2.9.3 with parameter generate_dependencies,long_type_string,client_grpc1 // @generated from protobuf file "authzed/api/v1/watch_service.proto" (package "authzed.api.v1", syntax proto3) // tslint:disable import { WatchService } from "./watch_service"; diff --git a/src/authzedapi/authzed/api/v1/watch_service.ts b/src/authzedapi/authzed/api/v1/watch_service.ts index 47b3254..e206732 100644 --- a/src/authzedapi/authzed/api/v1/watch_service.ts +++ b/src/authzedapi/authzed/api/v1/watch_service.ts @@ -1,4 +1,4 @@ -// @generated by protobuf-ts 2.8.3 with parameter generate_dependencies,long_type_string,client_grpc1 +// @generated by protobuf-ts 2.9.3 with parameter generate_dependencies,long_type_string,client_grpc1 // @generated from protobuf file "authzed/api/v1/watch_service.proto" (package "authzed.api.v1", syntax proto3) // tslint:disable import { ServiceType } from "@protobuf-ts/runtime-rpc"; @@ -10,9 +10,9 @@ import type { IBinaryReader } from "@protobuf-ts/runtime"; import { UnknownFieldHandler } from "@protobuf-ts/runtime"; import type { PartialMessage } from "@protobuf-ts/runtime"; import { reflectionMergePartial } from "@protobuf-ts/runtime"; -import { MESSAGE_TYPE } from "@protobuf-ts/runtime"; import { MessageType } from "@protobuf-ts/runtime"; import { RelationshipUpdate } from "./core"; +import { RelationshipFilter } from "./permission_service"; import { ZedToken } from "./core"; /** * WatchRequest specifies the object definitions for which we want to start @@ -23,6 +23,10 @@ import { ZedToken } from "./core"; */ export interface WatchRequest { /** + * optional_object_types is a filter of resource object types to watch for changes. + * If specified, only changes to the specified object types will be returned and + * optional_relationship_filters cannot be used. + * * @generated from protobuf field: repeated string optional_object_types = 1; */ optionalObjectTypes: string[]; @@ -38,6 +42,16 @@ export interface WatchRequest { * @generated from protobuf field: authzed.api.v1.ZedToken optional_start_cursor = 2; */ optionalStartCursor?: ZedToken; + /** + * optional_relationship_filters, if specified, indicates the + * filter(s) to apply to each relationship to be returned by watch. + * The relationship will be returned as long as at least one filter matches, + * this allows clients to match relationships on multiple filters on a single watch call. + * If specified, optional_object_types cannot be used. + * + * @generated from protobuf field: repeated authzed.api.v1.RelationshipFilter optional_relationship_filters = 3; + */ + optionalRelationshipFilters: RelationshipFilter[]; } /** * WatchResponse contains all tuple modification events in ascending @@ -62,12 +76,14 @@ class WatchRequest$Type extends MessageType { constructor() { super("authzed.api.v1.WatchRequest", [ { no: 1, name: "optional_object_types", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { repeated: { minItems: "0", items: { string: { maxBytes: "128", pattern: "^([a-z][a-z0-9_]{1,62}[a-z0-9]/)*[a-z][a-z0-9_]{1,62}[a-z0-9]$" } } } } } }, - { no: 2, name: "optional_start_cursor", kind: "message", T: () => ZedToken } + { no: 2, name: "optional_start_cursor", kind: "message", T: () => ZedToken }, + { no: 3, name: "optional_relationship_filters", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => RelationshipFilter } ]); } create(value?: PartialMessage): WatchRequest { - const message = { optionalObjectTypes: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.optionalObjectTypes = []; + message.optionalRelationshipFilters = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -83,6 +99,9 @@ class WatchRequest$Type extends MessageType { case /* authzed.api.v1.ZedToken optional_start_cursor */ 2: message.optionalStartCursor = ZedToken.internalBinaryRead(reader, reader.uint32(), options, message.optionalStartCursor); break; + case /* repeated authzed.api.v1.RelationshipFilter optional_relationship_filters */ 3: + message.optionalRelationshipFilters.push(RelationshipFilter.internalBinaryRead(reader, reader.uint32(), options)); + break; default: let u = options.readUnknownField; if (u === "throw") @@ -101,6 +120,9 @@ class WatchRequest$Type extends MessageType { /* authzed.api.v1.ZedToken optional_start_cursor = 2; */ if (message.optionalStartCursor) ZedToken.internalBinaryWrite(message.optionalStartCursor, writer.tag(2, WireType.LengthDelimited).fork(), options).join(); + /* repeated authzed.api.v1.RelationshipFilter optional_relationship_filters = 3; */ + for (let i = 0; i < message.optionalRelationshipFilters.length; i++) + RelationshipFilter.internalBinaryWrite(message.optionalRelationshipFilters[i], writer.tag(3, WireType.LengthDelimited).fork(), options).join(); let u = options.writeUnknownFields; if (u !== false) (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); @@ -120,8 +142,8 @@ class WatchResponse$Type extends MessageType { ]); } create(value?: PartialMessage): WatchResponse { - const message = { updates: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.updates = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; diff --git a/src/authzedapi/google/api/http.ts b/src/authzedapi/google/api/http.ts index 5218555..c865377 100644 --- a/src/authzedapi/google/api/http.ts +++ b/src/authzedapi/google/api/http.ts @@ -1,4 +1,4 @@ -// @generated by protobuf-ts 2.8.3 with parameter generate_dependencies,long_type_string,client_grpc1 +// @generated by protobuf-ts 2.9.3 with parameter generate_dependencies,long_type_string,client_grpc1 // @generated from protobuf file "google/api/http.proto" (package "google.api", syntax proto3) // tslint:disable // @@ -24,7 +24,6 @@ import type { IBinaryReader } from "@protobuf-ts/runtime"; import { UnknownFieldHandler } from "@protobuf-ts/runtime"; import type { PartialMessage } from "@protobuf-ts/runtime"; import { reflectionMergePartial } from "@protobuf-ts/runtime"; -import { MESSAGE_TYPE } from "@protobuf-ts/runtime"; import { MessageType } from "@protobuf-ts/runtime"; /** * Defines the HTTP configuration for an API service. It contains a list of @@ -453,8 +452,9 @@ class Http$Type extends MessageType { ]); } create(value?: PartialMessage): Http { - const message = { rules: [], fullyDecodeReservedExpansion: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.rules = []; + message.fullyDecodeReservedExpansion = false; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -515,8 +515,12 @@ class HttpRule$Type extends MessageType { ]); } create(value?: PartialMessage): HttpRule { - const message = { selector: "", pattern: { oneofKind: undefined }, body: "", responseBody: "", additionalBindings: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.selector = ""; + message.pattern = { oneofKind: undefined }; + message.body = ""; + message.responseBody = ""; + message.additionalBindings = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -635,8 +639,9 @@ class CustomHttpPattern$Type extends MessageType { ]); } create(value?: PartialMessage): CustomHttpPattern { - const message = { kind: "", path: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.kind = ""; + message.path = ""; if (value !== undefined) reflectionMergePartial(this, message, value); return message; diff --git a/src/authzedapi/google/protobuf/any.ts b/src/authzedapi/google/protobuf/any.ts index 87398ba..3b712e4 100644 --- a/src/authzedapi/google/protobuf/any.ts +++ b/src/authzedapi/google/protobuf/any.ts @@ -1,4 +1,4 @@ -// @generated by protobuf-ts 2.8.3 with parameter generate_dependencies,long_type_string,client_grpc1 +// @generated by protobuf-ts 2.9.3 with parameter generate_dependencies,long_type_string,client_grpc1 // @generated from protobuf file "google/protobuf/any.proto" (package "google.protobuf", syntax proto3) // tslint:disable // @@ -39,7 +39,6 @@ import type { IBinaryReader } from "@protobuf-ts/runtime"; import { UnknownFieldHandler } from "@protobuf-ts/runtime"; import type { PartialMessage } from "@protobuf-ts/runtime"; import { reflectionMergePartial } from "@protobuf-ts/runtime"; -import { MESSAGE_TYPE } from "@protobuf-ts/runtime"; import { isJsonObject } from "@protobuf-ts/runtime"; import { typeofJsonValue } from "@protobuf-ts/runtime"; import type { JsonValue } from "@protobuf-ts/runtime"; @@ -278,8 +277,9 @@ class Any$Type extends MessageType { return name; } create(value?: PartialMessage): Any { - const message = { typeUrl: "", value: new Uint8Array(0) }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.typeUrl = ""; + message.value = new Uint8Array(0); if (value !== undefined) reflectionMergePartial(this, message, value); return message; diff --git a/src/authzedapi/google/protobuf/descriptor.ts b/src/authzedapi/google/protobuf/descriptor.ts index a5eedb4..f4bc252 100644 --- a/src/authzedapi/google/protobuf/descriptor.ts +++ b/src/authzedapi/google/protobuf/descriptor.ts @@ -1,4 +1,4 @@ -// @generated by protobuf-ts 2.8.3 with parameter generate_dependencies,long_type_string,client_grpc1 +// @generated by protobuf-ts 2.9.3 with parameter generate_dependencies,long_type_string,client_grpc1 // @generated from protobuf file "google/protobuf/descriptor.proto" (package "google.protobuf", syntax proto2) // tslint:disable // @@ -49,7 +49,6 @@ import type { IBinaryReader } from "@protobuf-ts/runtime"; import { UnknownFieldHandler } from "@protobuf-ts/runtime"; import type { PartialMessage } from "@protobuf-ts/runtime"; import { reflectionMergePartial } from "@protobuf-ts/runtime"; -import { MESSAGE_TYPE } from "@protobuf-ts/runtime"; import { MessageType } from "@protobuf-ts/runtime"; /** * The protocol compiler can output a FileDescriptorSet containing the .proto @@ -1625,8 +1624,8 @@ class FileDescriptorSet$Type extends MessageType { ]); } create(value?: PartialMessage): FileDescriptorSet { - const message = { file: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.file = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -1684,8 +1683,14 @@ class FileDescriptorProto$Type extends MessageType { ]); } create(value?: PartialMessage): FileDescriptorProto { - const message = { dependency: [], publicDependency: [], weakDependency: [], messageType: [], enumType: [], service: [], extension: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.dependency = []; + message.publicDependency = []; + message.weakDependency = []; + message.messageType = []; + message.enumType = []; + message.service = []; + message.extension = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -1820,8 +1825,15 @@ class DescriptorProto$Type extends MessageType { ]); } create(value?: PartialMessage): DescriptorProto { - const message = { field: [], extension: [], nestedType: [], enumType: [], extensionRange: [], oneofDecl: [], reservedRange: [], reservedName: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.field = []; + message.extension = []; + message.nestedType = []; + message.enumType = []; + message.extensionRange = []; + message.oneofDecl = []; + message.reservedRange = []; + message.reservedName = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -1923,8 +1935,7 @@ class DescriptorProto_ExtensionRange$Type extends MessageType): DescriptorProto_ExtensionRange { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -1983,8 +1994,7 @@ class DescriptorProto_ReservedRange$Type extends MessageType): DescriptorProto_ReservedRange { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2036,8 +2046,8 @@ class ExtensionRangeOptions$Type extends MessageType { ]); } create(value?: PartialMessage): ExtensionRangeOptions { - const message = { uninterpretedOption: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.uninterpretedOption = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2093,8 +2103,7 @@ class FieldDescriptorProto$Type extends MessageType { ]); } create(value?: PartialMessage): FieldDescriptorProto { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2201,8 +2210,7 @@ class OneofDescriptorProto$Type extends MessageType { ]); } create(value?: PartialMessage): OneofDescriptorProto { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2258,8 +2266,10 @@ class EnumDescriptorProto$Type extends MessageType { ]); } create(value?: PartialMessage): EnumDescriptorProto { - const message = { value: [], reservedRange: [], reservedName: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.value = []; + message.reservedRange = []; + message.reservedName = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2330,8 +2340,7 @@ class EnumDescriptorProto_EnumReservedRange$Type extends MessageType): EnumDescriptorProto_EnumReservedRange { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2385,8 +2394,7 @@ class EnumValueDescriptorProto$Type extends MessageType): EnumValueDescriptorProto { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2446,8 +2454,8 @@ class ServiceDescriptorProto$Type extends MessageType { ]); } create(value?: PartialMessage): ServiceDescriptorProto { - const message = { method: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.method = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2510,8 +2518,7 @@ class MethodDescriptorProto$Type extends MessageType { ]); } create(value?: PartialMessage): MethodDescriptorProto { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2607,8 +2614,8 @@ class FileOptions$Type extends MessageType { ]); } create(value?: PartialMessage): FileOptions { - const message = { uninterpretedOption: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.uninterpretedOption = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2779,8 +2786,8 @@ class MessageOptions$Type extends MessageType { ]); } create(value?: PartialMessage): MessageOptions { - const message = { uninterpretedOption: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.uninterpretedOption = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2866,8 +2873,8 @@ class FieldOptions$Type extends MessageType { ]); } create(value?: PartialMessage): FieldOptions { - const message = { uninterpretedOption: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.uninterpretedOption = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2973,8 +2980,8 @@ class OneofOptions$Type extends MessageType { ]); } create(value?: PartialMessage): OneofOptions { - const message = { uninterpretedOption: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.uninterpretedOption = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -3023,8 +3030,8 @@ class EnumOptions$Type extends MessageType { ]); } create(value?: PartialMessage): EnumOptions { - const message = { uninterpretedOption: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.uninterpretedOption = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -3089,8 +3096,8 @@ class EnumValueOptions$Type extends MessageType { ]); } create(value?: PartialMessage): EnumValueOptions { - const message = { uninterpretedOption: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.uninterpretedOption = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -3143,8 +3150,8 @@ class ServiceOptions$Type extends MessageType { ]); } create(value?: PartialMessage): ServiceOptions { - const message = { uninterpretedOption: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.uninterpretedOption = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -3198,8 +3205,8 @@ class MethodOptions$Type extends MessageType { ]); } create(value?: PartialMessage): MethodOptions { - const message = { uninterpretedOption: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.uninterpretedOption = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -3263,8 +3270,8 @@ class UninterpretedOption$Type extends MessageType { ]); } create(value?: PartialMessage): UninterpretedOption { - const message = { name: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.name = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -3347,8 +3354,9 @@ class UninterpretedOption_NamePart$Type extends MessageType): UninterpretedOption_NamePart { - const message = { namePart: "", isExtension: false }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.namePart = ""; + message.isExtension = false; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -3400,8 +3408,8 @@ class SourceCodeInfo$Type extends MessageType { ]); } create(value?: PartialMessage): SourceCodeInfo { - const message = { location: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.location = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -3451,8 +3459,10 @@ class SourceCodeInfo_Location$Type extends MessageType ]); } create(value?: PartialMessage): SourceCodeInfo_Location { - const message = { path: [], span: [], leadingDetachedComments: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.path = []; + message.span = []; + message.leadingDetachedComments = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -3538,8 +3548,8 @@ class GeneratedCodeInfo$Type extends MessageType { ]); } create(value?: PartialMessage): GeneratedCodeInfo { - const message = { annotation: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.annotation = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -3589,8 +3599,8 @@ class GeneratedCodeInfo_Annotation$Type extends MessageType): GeneratedCodeInfo_Annotation { - const message = { path: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.path = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; diff --git a/src/authzedapi/google/protobuf/duration.ts b/src/authzedapi/google/protobuf/duration.ts index 627eb3b..9670c60 100644 --- a/src/authzedapi/google/protobuf/duration.ts +++ b/src/authzedapi/google/protobuf/duration.ts @@ -1,4 +1,4 @@ -// @generated by protobuf-ts 2.8.3 with parameter generate_dependencies,long_type_string,client_grpc1 +// @generated by protobuf-ts 2.9.3 with parameter generate_dependencies,long_type_string,client_grpc1 // @generated from protobuf file "google/protobuf/duration.proto" (package "google.protobuf", syntax proto3) // tslint:disable // @@ -40,7 +40,6 @@ import type { IBinaryReader } from "@protobuf-ts/runtime"; import { UnknownFieldHandler } from "@protobuf-ts/runtime"; import type { PartialMessage } from "@protobuf-ts/runtime"; import { reflectionMergePartial } from "@protobuf-ts/runtime"; -import { MESSAGE_TYPE } from "@protobuf-ts/runtime"; import { typeofJsonValue } from "@protobuf-ts/runtime"; import type { JsonValue } from "@protobuf-ts/runtime"; import type { JsonReadOptions } from "@protobuf-ts/runtime"; @@ -147,6 +146,8 @@ class Duration$Type extends MessageType { if (s > 315576000000 || s < -315576000000) throw new Error("Duration value out of range."); let text = message.seconds.toString(); + if (s === 0 && message.nanos < 0) + text = "-" + text; if (message.nanos !== 0) { let nanosStr = Math.abs(message.nanos).toString(); nanosStr = "0".repeat(9 - nanosStr.length) + nanosStr; @@ -164,27 +165,26 @@ class Duration$Type extends MessageType { internalJsonRead(json: JsonValue, options: JsonReadOptions, target?: Duration): Duration { if (typeof json !== "string") throw new Error("Unable to parse Duration from JSON " + typeofJsonValue(json) + ". Expected string."); - let match = json.match(/^(-?[0-9]+)(?:\.([0-9]+))?s/); + let match = json.match(/^(-?)([0-9]+)(?:\.([0-9]+))?s/); if (match === null) throw new Error("Unable to parse Duration from JSON string. Invalid format."); if (!target) target = this.create(); - let longSeconds = PbLong.from(match[1]); + let [, sign, secs, nanos] = match; + let longSeconds = PbLong.from(sign + secs); if (longSeconds.toNumber() > 315576000000 || longSeconds.toNumber() < -315576000000) throw new Error("Unable to parse Duration from JSON string. Value out of range."); target.seconds = longSeconds.toString(); - if (typeof match[2] == "string") { - let nanosStr = match[2] + "0".repeat(9 - match[2].length); + if (typeof nanos == "string") { + let nanosStr = sign + nanos + "0".repeat(9 - nanos.length); target.nanos = parseInt(nanosStr); - if (longSeconds.isNegative()) { - target.nanos = -target.nanos; - } } return target; } create(value?: PartialMessage): Duration { - const message = { seconds: "0", nanos: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.seconds = "0"; + message.nanos = 0; if (value !== undefined) reflectionMergePartial(this, message, value); return message; diff --git a/src/authzedapi/google/protobuf/struct.ts b/src/authzedapi/google/protobuf/struct.ts index 0ec3d93..1c231b4 100644 --- a/src/authzedapi/google/protobuf/struct.ts +++ b/src/authzedapi/google/protobuf/struct.ts @@ -1,4 +1,4 @@ -// @generated by protobuf-ts 2.8.3 with parameter generate_dependencies,long_type_string,client_grpc1 +// @generated by protobuf-ts 2.9.3 with parameter generate_dependencies,long_type_string,client_grpc1 // @generated from protobuf file "google/protobuf/struct.proto" (package "google.protobuf", syntax proto3) // tslint:disable // @@ -40,7 +40,6 @@ import type { IBinaryReader } from "@protobuf-ts/runtime"; import { UnknownFieldHandler } from "@protobuf-ts/runtime"; import type { PartialMessage } from "@protobuf-ts/runtime"; import { reflectionMergePartial } from "@protobuf-ts/runtime"; -import { MESSAGE_TYPE } from "@protobuf-ts/runtime"; import { isJsonObject } from "@protobuf-ts/runtime"; import { typeofJsonValue } from "@protobuf-ts/runtime"; import type { JsonValue } from "@protobuf-ts/runtime"; @@ -198,8 +197,8 @@ class Struct$Type extends MessageType { return target; } create(value?: PartialMessage): Struct { - const message = { fields: {} }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.fields = {}; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -241,7 +240,7 @@ class Struct$Type extends MessageType { } internalBinaryWrite(message: Struct, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { /* map fields = 1; */ - for (let k of Object.keys(message.fields)) { + for (let k of globalThis.Object.keys(message.fields)) { writer.tag(1, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k); writer.tag(2, WireType.LengthDelimited).fork(); Value.internalBinaryWrite(message.fields[k], writer, options); @@ -279,7 +278,11 @@ class Value$Type extends MessageType { case undefined: throw new globalThis.Error(); case "boolValue": return message.kind.boolValue; case "nullValue": return null; - case "numberValue": return message.kind.numberValue; + case "numberValue": + let numberValue = message.kind.numberValue; + if (typeof numberValue == "number" && !Number.isFinite(numberValue)) + throw new globalThis.Error(); + return numberValue; case "stringValue": return message.kind.stringValue; case "listValue": let listValueField = this.fields.find(f => f.no === 6); @@ -325,8 +328,8 @@ class Value$Type extends MessageType { return target; } create(value?: PartialMessage): Value { - const message = { kind: { oneofKind: undefined } }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.kind = { oneofKind: undefined }; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -438,8 +441,8 @@ class ListValue$Type extends MessageType { return target; } create(value?: PartialMessage): ListValue { - const message = { values: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.values = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; diff --git a/src/authzedapi/google/protobuf/timestamp.ts b/src/authzedapi/google/protobuf/timestamp.ts index fcde34c..71c3304 100644 --- a/src/authzedapi/google/protobuf/timestamp.ts +++ b/src/authzedapi/google/protobuf/timestamp.ts @@ -1,4 +1,4 @@ -// @generated by protobuf-ts 2.8.3 with parameter generate_dependencies,long_type_string,client_grpc1 +// @generated by protobuf-ts 2.9.3 with parameter generate_dependencies,long_type_string,client_grpc1 // @generated from protobuf file "google/protobuf/timestamp.proto" (package "google.protobuf", syntax proto3) // tslint:disable // @@ -40,7 +40,6 @@ import type { IBinaryReader } from "@protobuf-ts/runtime"; import { UnknownFieldHandler } from "@protobuf-ts/runtime"; import type { PartialMessage } from "@protobuf-ts/runtime"; import { reflectionMergePartial } from "@protobuf-ts/runtime"; -import { MESSAGE_TYPE } from "@protobuf-ts/runtime"; import { typeofJsonValue } from "@protobuf-ts/runtime"; import type { JsonValue } from "@protobuf-ts/runtime"; import type { JsonReadOptions } from "@protobuf-ts/runtime"; @@ -240,8 +239,9 @@ class Timestamp$Type extends MessageType { return target; } create(value?: PartialMessage): Timestamp { - const message = { seconds: "0", nanos: 0 }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.seconds = "0"; + message.nanos = 0; if (value !== undefined) reflectionMergePartial(this, message, value); return message; diff --git a/src/authzedapi/google/rpc/status.ts b/src/authzedapi/google/rpc/status.ts index ccbb762..3009bd2 100644 --- a/src/authzedapi/google/rpc/status.ts +++ b/src/authzedapi/google/rpc/status.ts @@ -1,4 +1,4 @@ -// @generated by protobuf-ts 2.8.3 with parameter generate_dependencies,long_type_string,client_grpc1 +// @generated by protobuf-ts 2.9.3 with parameter generate_dependencies,long_type_string,client_grpc1 // @generated from protobuf file "google/rpc/status.proto" (package "google.rpc", syntax proto3) // tslint:disable // @@ -24,7 +24,6 @@ import type { IBinaryReader } from "@protobuf-ts/runtime"; import { UnknownFieldHandler } from "@protobuf-ts/runtime"; import type { PartialMessage } from "@protobuf-ts/runtime"; import { reflectionMergePartial } from "@protobuf-ts/runtime"; -import { MESSAGE_TYPE } from "@protobuf-ts/runtime"; import { MessageType } from "@protobuf-ts/runtime"; import { Any } from "../protobuf/any"; /** @@ -71,8 +70,10 @@ class Status$Type extends MessageType { ]); } create(value?: PartialMessage): Status { - const message = { code: 0, message: "", details: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.code = 0; + message.message = ""; + message.details = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; diff --git a/src/authzedapi/protoc-gen-openapiv2/options/openapiv2.ts b/src/authzedapi/protoc-gen-openapiv2/options/openapiv2.ts index ba78bac..30c26c3 100644 --- a/src/authzedapi/protoc-gen-openapiv2/options/openapiv2.ts +++ b/src/authzedapi/protoc-gen-openapiv2/options/openapiv2.ts @@ -1,4 +1,4 @@ -// @generated by protobuf-ts 2.8.3 with parameter generate_dependencies,long_type_string,client_grpc1 +// @generated by protobuf-ts 2.9.3 with parameter generate_dependencies,long_type_string,client_grpc1 // @generated from protobuf file "protoc-gen-openapiv2/options/openapiv2.proto" (package "grpc.gateway.protoc_gen_openapiv2.options", syntax proto3) // tslint:disable import type { BinaryWriteOptions } from "@protobuf-ts/runtime"; @@ -9,7 +9,6 @@ import { UnknownFieldHandler } from "@protobuf-ts/runtime"; import { WireType } from "@protobuf-ts/runtime"; import type { PartialMessage } from "@protobuf-ts/runtime"; import { reflectionMergePartial } from "@protobuf-ts/runtime"; -import { MESSAGE_TYPE } from "@protobuf-ts/runtime"; import { MessageType } from "@protobuf-ts/runtime"; import { Value } from "../../google/protobuf/struct"; /** @@ -1122,8 +1121,16 @@ class Swagger$Type extends MessageType { ]); } create(value?: PartialMessage): Swagger { - const message = { swagger: "", host: "", basePath: "", schemes: [], consumes: [], produces: [], responses: {}, security: [], extensions: {} }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.swagger = ""; + message.host = ""; + message.basePath = ""; + message.schemes = []; + message.consumes = []; + message.produces = []; + message.responses = {}; + message.security = []; + message.extensions = {}; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -1243,7 +1250,7 @@ class Swagger$Type extends MessageType { for (let i = 0; i < message.produces.length; i++) writer.tag(7, WireType.LengthDelimited).string(message.produces[i]); /* map responses = 10; */ - for (let k of Object.keys(message.responses)) { + for (let k of globalThis.Object.keys(message.responses)) { writer.tag(10, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k); writer.tag(2, WireType.LengthDelimited).fork(); Response.internalBinaryWrite(message.responses[k], writer, options); @@ -1259,7 +1266,7 @@ class Swagger$Type extends MessageType { if (message.externalDocs) ExternalDocumentation.internalBinaryWrite(message.externalDocs, writer.tag(14, WireType.LengthDelimited).fork(), options).join(); /* map extensions = 15; */ - for (let k of Object.keys(message.extensions)) { + for (let k of globalThis.Object.keys(message.extensions)) { writer.tag(15, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k); writer.tag(2, WireType.LengthDelimited).fork(); Value.internalBinaryWrite(message.extensions[k], writer, options); @@ -1294,8 +1301,18 @@ class Operation$Type extends MessageType { ]); } create(value?: PartialMessage): Operation { - const message = { tags: [], summary: "", description: "", operationId: "", consumes: [], produces: [], responses: {}, schemes: [], deprecated: false, security: [], extensions: {} }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.tags = []; + message.summary = ""; + message.description = ""; + message.operationId = ""; + message.consumes = []; + message.produces = []; + message.responses = {}; + message.schemes = []; + message.deprecated = false; + message.security = []; + message.extensions = {}; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -1411,7 +1428,7 @@ class Operation$Type extends MessageType { for (let i = 0; i < message.produces.length; i++) writer.tag(7, WireType.LengthDelimited).string(message.produces[i]); /* map responses = 9; */ - for (let k of Object.keys(message.responses)) { + for (let k of globalThis.Object.keys(message.responses)) { writer.tag(9, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k); writer.tag(2, WireType.LengthDelimited).fork(); Response.internalBinaryWrite(message.responses[k], writer, options); @@ -1431,7 +1448,7 @@ class Operation$Type extends MessageType { for (let i = 0; i < message.security.length; i++) SecurityRequirement.internalBinaryWrite(message.security[i], writer.tag(12, WireType.LengthDelimited).fork(), options).join(); /* map extensions = 13; */ - for (let k of Object.keys(message.extensions)) { + for (let k of globalThis.Object.keys(message.extensions)) { writer.tag(13, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k); writer.tag(2, WireType.LengthDelimited).fork(); Value.internalBinaryWrite(message.extensions[k], writer, options); @@ -1459,8 +1476,12 @@ class Header$Type extends MessageType
{ ]); } create(value?: PartialMessage
): Header { - const message = { description: "", type: "", format: "", default: "", pattern: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.description = ""; + message.type = ""; + message.format = ""; + message.default = ""; + message.pattern = ""; if (value !== undefined) reflectionMergePartial
(this, message, value); return message; @@ -1534,8 +1555,11 @@ class Response$Type extends MessageType { ]); } create(value?: PartialMessage): Response { - const message = { description: "", headers: {}, examples: {}, extensions: {} }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.description = ""; + message.headers = {}; + message.examples = {}; + message.extensions = {}; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -1627,17 +1651,17 @@ class Response$Type extends MessageType { if (message.schema) Schema.internalBinaryWrite(message.schema, writer.tag(2, WireType.LengthDelimited).fork(), options).join(); /* map headers = 3; */ - for (let k of Object.keys(message.headers)) { + for (let k of globalThis.Object.keys(message.headers)) { writer.tag(3, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k); writer.tag(2, WireType.LengthDelimited).fork(); Header.internalBinaryWrite(message.headers[k], writer, options); writer.join().join(); } /* map examples = 4; */ - for (let k of Object.keys(message.examples)) + for (let k of globalThis.Object.keys(message.examples)) writer.tag(4, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k).tag(2, WireType.LengthDelimited).string(message.examples[k]).join(); /* map extensions = 5; */ - for (let k of Object.keys(message.extensions)) { + for (let k of globalThis.Object.keys(message.extensions)) { writer.tag(5, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k); writer.tag(2, WireType.LengthDelimited).fork(); Value.internalBinaryWrite(message.extensions[k], writer, options); @@ -1667,8 +1691,12 @@ class Info$Type extends MessageType { ]); } create(value?: PartialMessage): Info { - const message = { title: "", description: "", termsOfService: "", version: "", extensions: {} }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.title = ""; + message.description = ""; + message.termsOfService = ""; + message.version = ""; + message.extensions = {}; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -1746,7 +1774,7 @@ class Info$Type extends MessageType { if (message.version !== "") writer.tag(6, WireType.LengthDelimited).string(message.version); /* map extensions = 7; */ - for (let k of Object.keys(message.extensions)) { + for (let k of globalThis.Object.keys(message.extensions)) { writer.tag(7, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k); writer.tag(2, WireType.LengthDelimited).fork(); Value.internalBinaryWrite(message.extensions[k], writer, options); @@ -1772,8 +1800,10 @@ class Contact$Type extends MessageType { ]); } create(value?: PartialMessage): Contact { - const message = { name: "", url: "", email: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.name = ""; + message.url = ""; + message.email = ""; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -1832,8 +1862,9 @@ class License$Type extends MessageType { ]); } create(value?: PartialMessage): License { - const message = { name: "", url: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.name = ""; + message.url = ""; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -1886,8 +1917,9 @@ class ExternalDocumentation$Type extends MessageType { ]); } create(value?: PartialMessage): ExternalDocumentation { - const message = { description: "", url: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.description = ""; + message.url = ""; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -1943,8 +1975,10 @@ class Schema$Type extends MessageType { ]); } create(value?: PartialMessage): Schema { - const message = { discriminator: "", readOnly: false, example: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.discriminator = ""; + message.readOnly = false; + message.example = ""; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2039,8 +2073,32 @@ class JSONSchema$Type extends MessageType { ]); } create(value?: PartialMessage): JSONSchema { - const message = { ref: "", title: "", description: "", default: "", readOnly: false, example: "", multipleOf: 0, maximum: 0, exclusiveMaximum: false, minimum: 0, exclusiveMinimum: false, maxLength: "0", minLength: "0", pattern: "", maxItems: "0", minItems: "0", uniqueItems: false, maxProperties: "0", minProperties: "0", required: [], array: [], type: [], format: "", enum: [], extensions: {} }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.ref = ""; + message.title = ""; + message.description = ""; + message.default = ""; + message.readOnly = false; + message.example = ""; + message.multipleOf = 0; + message.maximum = 0; + message.exclusiveMaximum = false; + message.minimum = 0; + message.exclusiveMinimum = false; + message.maxLength = "0"; + message.minLength = "0"; + message.pattern = ""; + message.maxItems = "0"; + message.minItems = "0"; + message.uniqueItems = false; + message.maxProperties = "0"; + message.minProperties = "0"; + message.required = []; + message.array = []; + message.type = []; + message.format = ""; + message.enum = []; + message.extensions = {}; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2240,7 +2298,7 @@ class JSONSchema$Type extends MessageType { if (message.fieldConfiguration) JSONSchema_FieldConfiguration.internalBinaryWrite(message.fieldConfiguration, writer.tag(1001, WireType.LengthDelimited).fork(), options).join(); /* map extensions = 48; */ - for (let k of Object.keys(message.extensions)) { + for (let k of globalThis.Object.keys(message.extensions)) { writer.tag(48, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k); writer.tag(2, WireType.LengthDelimited).fork(); Value.internalBinaryWrite(message.extensions[k], writer, options); @@ -2264,8 +2322,8 @@ class JSONSchema_FieldConfiguration$Type extends MessageType): JSONSchema_FieldConfiguration { - const message = { pathParamName: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.pathParamName = ""; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2312,8 +2370,8 @@ class Tag$Type extends MessageType { ]); } create(value?: PartialMessage): Tag { - const message = { description: "" }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.description = ""; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2365,8 +2423,8 @@ class SecurityDefinitions$Type extends MessageType { ]); } create(value?: PartialMessage): SecurityDefinitions { - const message = { security: {} }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.security = {}; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2408,7 +2466,7 @@ class SecurityDefinitions$Type extends MessageType { } internalBinaryWrite(message: SecurityDefinitions, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { /* map security = 1; */ - for (let k of Object.keys(message.security)) { + for (let k of globalThis.Object.keys(message.security)) { writer.tag(1, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k); writer.tag(2, WireType.LengthDelimited).fork(); SecurityScheme.internalBinaryWrite(message.security[k], writer, options); @@ -2440,8 +2498,15 @@ class SecurityScheme$Type extends MessageType { ]); } create(value?: PartialMessage): SecurityScheme { - const message = { type: 0, description: "", name: "", in: 0, flow: 0, authorizationUrl: "", tokenUrl: "", extensions: {} }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.type = 0; + message.description = ""; + message.name = ""; + message.in = 0; + message.flow = 0; + message.authorizationUrl = ""; + message.tokenUrl = ""; + message.extensions = {}; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2531,7 +2596,7 @@ class SecurityScheme$Type extends MessageType { if (message.scopes) Scopes.internalBinaryWrite(message.scopes, writer.tag(8, WireType.LengthDelimited).fork(), options).join(); /* map extensions = 9; */ - for (let k of Object.keys(message.extensions)) { + for (let k of globalThis.Object.keys(message.extensions)) { writer.tag(9, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k); writer.tag(2, WireType.LengthDelimited).fork(); Value.internalBinaryWrite(message.extensions[k], writer, options); @@ -2555,8 +2620,8 @@ class SecurityRequirement$Type extends MessageType { ]); } create(value?: PartialMessage): SecurityRequirement { - const message = { securityRequirement: {} }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.securityRequirement = {}; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2598,7 +2663,7 @@ class SecurityRequirement$Type extends MessageType { } internalBinaryWrite(message: SecurityRequirement, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { /* map security_requirement = 1; */ - for (let k of Object.keys(message.securityRequirement)) { + for (let k of globalThis.Object.keys(message.securityRequirement)) { writer.tag(1, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k); writer.tag(2, WireType.LengthDelimited).fork(); SecurityRequirement_SecurityRequirementValue.internalBinaryWrite(message.securityRequirement[k], writer, options); @@ -2622,8 +2687,8 @@ class SecurityRequirement_SecurityRequirementValue$Type extends MessageType): SecurityRequirement_SecurityRequirementValue { - const message = { scope: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.scope = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2669,8 +2734,8 @@ class Scopes$Type extends MessageType { ]); } create(value?: PartialMessage): Scopes { - const message = { scope: {} }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.scope = {}; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2712,7 +2777,7 @@ class Scopes$Type extends MessageType { } internalBinaryWrite(message: Scopes, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { /* map scope = 1; */ - for (let k of Object.keys(message.scope)) + for (let k of globalThis.Object.keys(message.scope)) writer.tag(1, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k).tag(2, WireType.LengthDelimited).string(message.scope[k]).join(); let u = options.writeUnknownFields; if (u !== false) diff --git a/src/authzedapi/validate/validate.ts b/src/authzedapi/validate/validate.ts index c395305..4717372 100644 --- a/src/authzedapi/validate/validate.ts +++ b/src/authzedapi/validate/validate.ts @@ -1,4 +1,4 @@ -// @generated by protobuf-ts 2.8.3 with parameter generate_dependencies,long_type_string,client_grpc1 +// @generated by protobuf-ts 2.9.3 with parameter generate_dependencies,long_type_string,client_grpc1 // @generated from protobuf file "validate/validate.proto" (package "validate", syntax proto2) // tslint:disable import type { BinaryWriteOptions } from "@protobuf-ts/runtime"; @@ -9,7 +9,6 @@ import type { IBinaryReader } from "@protobuf-ts/runtime"; import { UnknownFieldHandler } from "@protobuf-ts/runtime"; import type { PartialMessage } from "@protobuf-ts/runtime"; import { reflectionMergePartial } from "@protobuf-ts/runtime"; -import { MESSAGE_TYPE } from "@protobuf-ts/runtime"; import { MessageType } from "@protobuf-ts/runtime"; import { Timestamp } from "../google/protobuf/timestamp"; import { Duration } from "../google/protobuf/duration"; @@ -1640,8 +1639,8 @@ class FieldRules$Type extends MessageType { ]); } create(value?: PartialMessage): FieldRules { - const message = { type: { oneofKind: undefined } }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.type = { oneofKind: undefined }; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -1883,8 +1882,9 @@ class FloatRules$Type extends MessageType { ]); } create(value?: PartialMessage): FloatRules { - const message = { in: [], notIn: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.in = []; + message.notIn = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -1987,8 +1987,9 @@ class DoubleRules$Type extends MessageType { ]); } create(value?: PartialMessage): DoubleRules { - const message = { in: [], notIn: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.in = []; + message.notIn = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2091,8 +2092,9 @@ class Int32Rules$Type extends MessageType { ]); } create(value?: PartialMessage): Int32Rules { - const message = { in: [], notIn: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.in = []; + message.notIn = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2195,8 +2197,9 @@ class Int64Rules$Type extends MessageType { ]); } create(value?: PartialMessage): Int64Rules { - const message = { in: [], notIn: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.in = []; + message.notIn = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2299,8 +2302,9 @@ class UInt32Rules$Type extends MessageType { ]); } create(value?: PartialMessage): UInt32Rules { - const message = { in: [], notIn: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.in = []; + message.notIn = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2403,8 +2407,9 @@ class UInt64Rules$Type extends MessageType { ]); } create(value?: PartialMessage): UInt64Rules { - const message = { in: [], notIn: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.in = []; + message.notIn = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2507,8 +2512,9 @@ class SInt32Rules$Type extends MessageType { ]); } create(value?: PartialMessage): SInt32Rules { - const message = { in: [], notIn: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.in = []; + message.notIn = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2611,8 +2617,9 @@ class SInt64Rules$Type extends MessageType { ]); } create(value?: PartialMessage): SInt64Rules { - const message = { in: [], notIn: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.in = []; + message.notIn = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2715,8 +2722,9 @@ class Fixed32Rules$Type extends MessageType { ]); } create(value?: PartialMessage): Fixed32Rules { - const message = { in: [], notIn: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.in = []; + message.notIn = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2819,8 +2827,9 @@ class Fixed64Rules$Type extends MessageType { ]); } create(value?: PartialMessage): Fixed64Rules { - const message = { in: [], notIn: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.in = []; + message.notIn = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -2923,8 +2932,9 @@ class SFixed32Rules$Type extends MessageType { ]); } create(value?: PartialMessage): SFixed32Rules { - const message = { in: [], notIn: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.in = []; + message.notIn = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -3027,8 +3037,9 @@ class SFixed64Rules$Type extends MessageType { ]); } create(value?: PartialMessage): SFixed64Rules { - const message = { in: [], notIn: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.in = []; + message.notIn = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -3124,8 +3135,7 @@ class BoolRules$Type extends MessageType { ]); } create(value?: PartialMessage): BoolRules { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -3196,8 +3206,10 @@ class StringRules$Type extends MessageType { ]); } create(value?: PartialMessage): StringRules { - const message = { in: [], notIn: [], wellKnown: { oneofKind: undefined } }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.in = []; + message.notIn = []; + message.wellKnown = { oneofKind: undefined }; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -3436,8 +3448,10 @@ class BytesRules$Type extends MessageType { ]); } create(value?: PartialMessage): BytesRules { - const message = { in: [], notIn: [], wellKnown: { oneofKind: undefined } }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.in = []; + message.notIn = []; + message.wellKnown = { oneofKind: undefined }; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -3573,8 +3587,9 @@ class EnumRules$Type extends MessageType { ]); } create(value?: PartialMessage): EnumRules { - const message = { in: [], notIn: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.in = []; + message.notIn = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -3647,8 +3662,7 @@ class MessageRules$Type extends MessageType { ]); } create(value?: PartialMessage): MessageRules { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -3704,8 +3718,7 @@ class RepeatedRules$Type extends MessageType { ]); } create(value?: PartialMessage): RepeatedRules { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -3780,8 +3793,7 @@ class MapRules$Type extends MessageType { ]); } create(value?: PartialMessage): MapRules { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -3859,8 +3871,9 @@ class AnyRules$Type extends MessageType { ]); } create(value?: PartialMessage): AnyRules { - const message = { in: [], notIn: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.in = []; + message.notIn = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -3925,8 +3938,9 @@ class DurationRules$Type extends MessageType { ]); } create(value?: PartialMessage): DurationRules { - const message = { in: [], notIn: [] }; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); + message.in = []; + message.notIn = []; if (value !== undefined) reflectionMergePartial(this, message, value); return message; @@ -4022,8 +4036,7 @@ class TimestampRules$Type extends MessageType { ]); } create(value?: PartialMessage): TimestampRules { - const message = {}; - globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); + const message = globalThis.Object.create((this.messagePrototype!)); if (value !== undefined) reflectionMergePartial(this, message, value); return message;