@bufbuild/protobuf 0.0.1-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/README.md +6 -0
  2. package/dist/cjs/binary-encoding.js +434 -0
  3. package/dist/cjs/binary-format.js +2 -0
  4. package/dist/cjs/descriptor-registry.js +518 -0
  5. package/dist/cjs/descriptor-set.js +557 -0
  6. package/dist/cjs/enum.js +2 -0
  7. package/dist/cjs/field-list.js +2 -0
  8. package/dist/cjs/field.js +40 -0
  9. package/dist/cjs/google/protobuf/any_pb.js +280 -0
  10. package/dist/cjs/google/protobuf/api_pb.js +383 -0
  11. package/dist/cjs/google/protobuf/compiler/plugin_pb.js +334 -0
  12. package/dist/cjs/google/protobuf/descriptor_pb.js +2311 -0
  13. package/dist/cjs/google/protobuf/duration_pb.js +201 -0
  14. package/dist/cjs/google/protobuf/empty_pb.js +72 -0
  15. package/dist/cjs/google/protobuf/field_mask_pb.js +347 -0
  16. package/dist/cjs/google/protobuf/source_context_pb.js +74 -0
  17. package/dist/cjs/google/protobuf/struct_pb.js +288 -0
  18. package/dist/cjs/google/protobuf/timestamp_pb.js +271 -0
  19. package/dist/cjs/google/protobuf/type_pb.js +613 -0
  20. package/dist/cjs/google/protobuf/wrappers_pb.js +658 -0
  21. package/dist/cjs/google/varint.js +280 -0
  22. package/dist/cjs/index.js +148 -0
  23. package/dist/cjs/json-format.js +2 -0
  24. package/dist/cjs/message-type.js +2 -0
  25. package/dist/cjs/message.js +98 -0
  26. package/dist/cjs/private/assert.js +52 -0
  27. package/dist/cjs/private/base64.js +118 -0
  28. package/dist/cjs/private/binary-format-common.js +253 -0
  29. package/dist/cjs/private/binary-format-proto2.js +120 -0
  30. package/dist/cjs/private/binary-format-proto3.js +102 -0
  31. package/dist/cjs/private/enum.js +70 -0
  32. package/dist/cjs/private/field-list.js +62 -0
  33. package/dist/cjs/private/field-wrapper.js +25 -0
  34. package/dist/cjs/private/field.js +34 -0
  35. package/dist/cjs/private/json-format-common.js +482 -0
  36. package/dist/cjs/private/json-format-proto2.js +100 -0
  37. package/dist/cjs/private/json-format-proto3.js +103 -0
  38. package/dist/cjs/private/message-type.js +37 -0
  39. package/dist/cjs/private/names.js +101 -0
  40. package/dist/cjs/private/options-map.js +2 -0
  41. package/dist/cjs/private/proto-runtime.js +24 -0
  42. package/dist/cjs/private/scalars.js +138 -0
  43. package/dist/cjs/private/util-common.js +229 -0
  44. package/dist/cjs/private/util.js +2 -0
  45. package/dist/cjs/proto-int64.js +121 -0
  46. package/dist/cjs/proto2.js +86 -0
  47. package/dist/cjs/proto3.js +99 -0
  48. package/dist/cjs/service-type.js +43 -0
  49. package/dist/cjs/type-registry.js +42 -0
  50. package/dist/esm/binary-encoding.js +434 -0
  51. package/dist/esm/binary-format.js +1 -0
  52. package/dist/esm/descriptor-registry.js +521 -0
  53. package/dist/esm/descriptor-set.js +517 -0
  54. package/dist/esm/enum.js +1 -0
  55. package/dist/esm/field-list.js +1 -0
  56. package/dist/esm/field.js +37 -0
  57. package/dist/esm/google/protobuf/any_pb.js +276 -0
  58. package/dist/esm/google/protobuf/api_pb.js +350 -0
  59. package/dist/esm/google/protobuf/compiler/plugin_pb.js +318 -0
  60. package/dist/esm/google/protobuf/descriptor_pb.js +2213 -0
  61. package/dist/esm/google/protobuf/duration_pb.js +197 -0
  62. package/dist/esm/google/protobuf/empty_pb.js +68 -0
  63. package/dist/esm/google/protobuf/field_mask_pb.js +343 -0
  64. package/dist/esm/google/protobuf/source_context_pb.js +70 -0
  65. package/dist/esm/google/protobuf/struct_pb.js +282 -0
  66. package/dist/esm/google/protobuf/timestamp_pb.js +267 -0
  67. package/dist/esm/google/protobuf/type_pb.js +569 -0
  68. package/dist/esm/google/protobuf/wrappers_pb.js +574 -0
  69. package/dist/esm/google/varint.js +265 -0
  70. package/dist/esm/index.js +24 -0
  71. package/dist/esm/json-format.js +1 -0
  72. package/dist/esm/message-type.js +1 -0
  73. package/dist/esm/message.js +94 -0
  74. package/dist/esm/private/assert.js +41 -0
  75. package/dist/esm/private/base64.js +113 -0
  76. package/dist/esm/private/binary-format-common.js +243 -0
  77. package/dist/esm/private/binary-format-proto2.js +87 -0
  78. package/dist/esm/private/binary-format-proto3.js +74 -0
  79. package/dist/esm/private/enum.js +64 -0
  80. package/dist/esm/private/field-list.js +58 -0
  81. package/dist/esm/private/field-wrapper.js +20 -0
  82. package/dist/esm/private/field.js +27 -0
  83. package/dist/esm/private/json-format-common.js +473 -0
  84. package/dist/esm/private/json-format-proto2.js +90 -0
  85. package/dist/esm/private/json-format-proto3.js +89 -0
  86. package/dist/esm/private/message-type.js +33 -0
  87. package/dist/esm/private/names.js +90 -0
  88. package/dist/esm/private/options-map.js +1 -0
  89. package/dist/esm/private/proto-runtime.js +15 -0
  90. package/dist/esm/private/scalars.js +129 -0
  91. package/dist/esm/private/util-common.js +207 -0
  92. package/dist/esm/private/util.js +1 -0
  93. package/dist/esm/proto-int64.js +118 -0
  94. package/dist/esm/proto2.js +77 -0
  95. package/dist/esm/proto3.js +90 -0
  96. package/dist/esm/service-type.js +37 -0
  97. package/dist/esm/type-registry.js +38 -0
  98. package/dist/types/binary-encoding.d.ts +421 -0
  99. package/dist/types/binary-format.d.ts +109 -0
  100. package/dist/types/descriptor-registry.d.ts +42 -0
  101. package/dist/types/descriptor-set.d.ts +171 -0
  102. package/dist/types/enum.d.ts +31 -0
  103. package/dist/types/field-list.d.ts +27 -0
  104. package/dist/types/field.d.ts +295 -0
  105. package/dist/types/google/protobuf/any_pb.d.ts +167 -0
  106. package/dist/types/google/protobuf/api_pb.d.ts +296 -0
  107. package/dist/types/google/protobuf/compiler/plugin_pb.d.ts +294 -0
  108. package/dist/types/google/protobuf/descriptor_pb.d.ts +1959 -0
  109. package/dist/types/google/protobuf/duration_pb.d.ts +117 -0
  110. package/dist/types/google/protobuf/empty_pb.d.ts +44 -0
  111. package/dist/types/google/protobuf/field_mask_pb.d.ts +243 -0
  112. package/dist/types/google/protobuf/source_context_pb.d.ts +44 -0
  113. package/dist/types/google/protobuf/struct_pb.d.ts +205 -0
  114. package/dist/types/google/protobuf/timestamp_pb.d.ts +151 -0
  115. package/dist/types/google/protobuf/type_pb.d.ts +482 -0
  116. package/dist/types/google/protobuf/wrappers_pb.d.ts +379 -0
  117. package/dist/types/google/varint.d.ts +65 -0
  118. package/dist/types/index.d.ts +53 -0
  119. package/dist/types/json-format.d.ts +129 -0
  120. package/dist/types/message-type.d.ts +58 -0
  121. package/dist/types/message.d.ts +124 -0
  122. package/dist/types/private/assert.d.ts +19 -0
  123. package/dist/types/private/base64.d.ts +18 -0
  124. package/dist/types/private/binary-format-common.d.ts +38 -0
  125. package/dist/types/private/binary-format-proto2.d.ts +2 -0
  126. package/dist/types/private/binary-format-proto3.d.ts +2 -0
  127. package/dist/types/private/enum.d.ts +29 -0
  128. package/dist/types/private/field-list.d.ts +25 -0
  129. package/dist/types/private/field-wrapper.d.ts +27 -0
  130. package/dist/types/private/field.d.ts +15 -0
  131. package/dist/types/private/json-format-common.d.ts +30 -0
  132. package/dist/types/private/json-format-proto2.d.ts +2 -0
  133. package/dist/types/private/json-format-proto3.d.ts +2 -0
  134. package/dist/types/private/message-type.d.ts +15 -0
  135. package/dist/types/private/names.d.ts +19 -0
  136. package/dist/types/private/options-map.d.ts +7 -0
  137. package/dist/types/private/proto-runtime.d.ts +55 -0
  138. package/dist/types/private/scalars.d.ts +33 -0
  139. package/dist/types/private/util-common.d.ts +5 -0
  140. package/dist/types/private/util.d.ts +55 -0
  141. package/dist/types/proto-int64.d.ts +94 -0
  142. package/dist/types/proto2.d.ts +4 -0
  143. package/dist/types/proto3.d.ts +4 -0
  144. package/dist/types/service-type.d.ts +118 -0
  145. package/dist/types/type-registry.d.ts +37 -0
  146. package/package.json +31 -0
@@ -0,0 +1,118 @@
1
+ import type { AnyMessage, Message } from "./message.js";
2
+ import type { MessageType } from "./message-type.js";
3
+ /**
4
+ * ServiceType represents a protobuf services. It provides metadata for
5
+ * reflection-based operations.
6
+ */
7
+ export interface ServiceType {
8
+ /**
9
+ * The fully qualified name of the service.
10
+ */
11
+ readonly typeName: string;
12
+ /**
13
+ * A map of local name (safe to use in ECMAScript) to method.
14
+ */
15
+ readonly methods: {
16
+ [localName: string]: MethodInfo;
17
+ };
18
+ }
19
+ /**
20
+ * MethodInfo represents a method of a protobuf service, a remote procedure
21
+ * call. All methods provide the following properties:
22
+ *
23
+ * - "name": The original name of the protobuf rpc.
24
+ * - "localName": A variation of the name that follows the lowerCamelCase
25
+ * naming convention in ECMAScript.
26
+ * - "I": The input message type.
27
+ * - "O": The output message type.
28
+ * - "kind": The method type.
29
+ * - "idempotency": User-provided indication whether the method will cause
30
+ * the same effect every time it is called.
31
+ */
32
+ export declare type MethodInfo<
33
+ I extends Message<I> = AnyMessage,
34
+ O extends Message<O> = AnyMessage
35
+ > =
36
+ | MethodInfoUnary<I, O>
37
+ | MethodInfoServerStreaming<I, O>
38
+ | MethodInfoClientStreaming<I, O>
39
+ | MethodInfoBiDiStreaming<I, O>;
40
+ /**
41
+ * A unary method: rpc (Input) returns (Output)
42
+ */
43
+ export interface MethodInfoUnary<I extends Message<I>, O extends Message<O>>
44
+ extends miShared<I, O> {
45
+ readonly kind: MethodKind.Unary;
46
+ }
47
+ /**
48
+ * A server streaming method: rpc (Input) returns (stream Output)
49
+ */
50
+ export interface MethodInfoServerStreaming<
51
+ I extends Message<I>,
52
+ O extends Message<O>
53
+ > extends miShared<I, O> {
54
+ readonly kind: MethodKind.ServerStreaming;
55
+ }
56
+ /**
57
+ * A client streaming method: rpc (stream Input) returns (Output)
58
+ */
59
+ export interface MethodInfoClientStreaming<
60
+ I extends Message<I>,
61
+ O extends Message<O>
62
+ > extends miShared<I, O> {
63
+ readonly kind: MethodKind.ClientStreaming;
64
+ }
65
+ /**
66
+ * A method that streams bi-directionally: rpc (stream Input) returns (stream Output)
67
+ */
68
+ export interface MethodInfoBiDiStreaming<
69
+ I extends Message<I>,
70
+ O extends Message<O>
71
+ > extends miShared<I, O> {
72
+ readonly kind: MethodKind.BiDiStreaming;
73
+ }
74
+ interface miShared<
75
+ I extends Message<I> = AnyMessage,
76
+ O extends Message<O> = AnyMessage
77
+ > {
78
+ readonly name: string;
79
+ readonly I: MessageType<I>;
80
+ readonly O: MessageType<O>;
81
+ readonly idempotency?: MethodIdempotency;
82
+ }
83
+ /**
84
+ * MethodKind represents the four method types that can be declared in
85
+ * protobuf with the `stream` keyword:
86
+ *
87
+ * 1. Unary: rpc (Input) returns (Output)
88
+ * 2. ServerStreaming: rpc (Input) returns (stream Output)
89
+ * 3. ClientStreaming: rpc (stream Input) returns (Output)
90
+ * 4. BiDiStreaming: rpc (stream Input) returns (stream Output)
91
+ */
92
+ export declare enum MethodKind {
93
+ Unary = 0,
94
+ ServerStreaming = 1,
95
+ ClientStreaming = 2,
96
+ BiDiStreaming = 3,
97
+ }
98
+ /**
99
+ * Is this method side-effect-free (or safe in HTTP parlance), or just
100
+ * idempotent, or neither? HTTP based RPC implementation may choose GET verb
101
+ * for safe methods, and PUT verb for idempotent methods instead of the
102
+ * default POST.
103
+ *
104
+ * This enum matches the protobuf enum google.protobuf.MethodOptions.IdempotencyLevel,
105
+ * defined in the well-known type google/protobuf/descriptor.proto, but
106
+ * drops UNKNOWN.
107
+ */
108
+ export declare enum MethodIdempotency {
109
+ /**
110
+ * Idempotent, no side effects.
111
+ */
112
+ NoSideEffects = 1,
113
+ /**
114
+ * Idempotent, but may have side effects.
115
+ */
116
+ Idempotent = 2,
117
+ }
118
+ export {};
@@ -0,0 +1,37 @@
1
+ import type { MessageType } from "./message-type.js";
2
+ import type { EnumType } from "./enum.js";
3
+ import type { ServiceType } from "./service-type.js";
4
+ /**
5
+ * IMessageTypeRegistry provides look-up for message types.
6
+ */
7
+ export interface IMessageTypeRegistry {
8
+ findMessage(typeName: string): MessageType | undefined;
9
+ }
10
+ /**
11
+ * IEnumTypeRegistry provides look-up for enum types.
12
+ */
13
+ export interface IEnumTypeRegistry {
14
+ findEnum(typeName: string): EnumType | undefined;
15
+ }
16
+ /**
17
+ * IServiceTypeRegistry provides look-up for service types.
18
+ */
19
+ export interface IServiceTypeRegistry {
20
+ findService(typeName: string): ServiceType | undefined;
21
+ }
22
+ /**
23
+ * TypeRegistry is a basic type registry
24
+ */
25
+ export declare class TypeRegistry
26
+ implements IMessageTypeRegistry, IEnumTypeRegistry, IServiceTypeRegistry
27
+ {
28
+ private readonly messages;
29
+ private readonly enums;
30
+ private readonly services;
31
+ findMessage(typeName: string): MessageType | undefined;
32
+ findEnum(typeName: string): EnumType | undefined;
33
+ findService(typeName: string): ServiceType | undefined;
34
+ private add;
35
+ static fromIterable(types: Iterable<MessageType>): TypeRegistry;
36
+ static fromTypes(...types: MessageType[]): TypeRegistry;
37
+ }
package/package.json ADDED
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "@bufbuild/protobuf",
3
+ "version": "0.0.1-alpha.1",
4
+ "license": "(Apache-2.0 AND BSD-3-Clause)",
5
+ "description": "A complete implementation of protocol buffers in TypeScript, suitable for web browsers and Node.js.",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/bufbuild/protobuf-es.git",
9
+ "directory": "packages/protobuf"
10
+ },
11
+ "scripts": {
12
+ "clean": "rm -rf ./dist/cjs/* ./dist/esm/* ./dist/types/*",
13
+ "build": "npm run build:cjs && npm run build:esm+types",
14
+ "build:cjs": "npx tsc --project tsconfig.json --module commonjs --outDir ./dist/cjs",
15
+ "build:esm+types": "npx tsc --project tsconfig.json --module ES2015 --outDir ./dist/esm --declaration --declarationDir ./dist/types"
16
+ },
17
+ "type": "module",
18
+ "main": "./dist/cjs/index.js",
19
+ "types": "./dist/types/index.d.ts",
20
+ "exports": {
21
+ "import": "./dist/esm/index.js",
22
+ "require": "./dist/cjs/index.js",
23
+ "default": "./dist/esm/index.js"
24
+ },
25
+ "devDependencies": {
26
+ "typescript": "^4.5.4"
27
+ },
28
+ "files": [
29
+ "dist/**/"
30
+ ]
31
+ }