ts-proto 2.8.2 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,64 @@
1
1
  import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
2
+ /** The full set of known editions. */
3
+ export declare enum Edition {
4
+ /** EDITION_UNKNOWN - A placeholder for an unknown edition value. */
5
+ EDITION_UNKNOWN = 0,
6
+ /**
7
+ * EDITION_LEGACY - A placeholder edition for specifying default behaviors *before* a feature
8
+ * was first introduced. This is effectively an "infinite past".
9
+ */
10
+ EDITION_LEGACY = 900,
11
+ /**
12
+ * EDITION_PROTO2 - Legacy syntax "editions". These pre-date editions, but behave much like
13
+ * distinct editions. These can't be used to specify the edition of proto
14
+ * files, but feature definitions must supply proto2/proto3 defaults for
15
+ * backwards compatibility.
16
+ */
17
+ EDITION_PROTO2 = 998,
18
+ EDITION_PROTO3 = 999,
19
+ /**
20
+ * EDITION_2023 - Editions that have been released. The specific values are arbitrary and
21
+ * should not be depended on, but they will always be time-ordered for easy
22
+ * comparison.
23
+ */
24
+ EDITION_2023 = 1000,
25
+ EDITION_2024 = 1001,
26
+ /** EDITION_UNSTABLE - A placeholder edition for developing and testing unscheduled features. */
27
+ EDITION_UNSTABLE = 9999,
28
+ /**
29
+ * EDITION_1_TEST_ONLY - Placeholder editions for testing feature resolution. These should not be
30
+ * used or relied on outside of tests.
31
+ */
32
+ EDITION_1_TEST_ONLY = 1,
33
+ EDITION_2_TEST_ONLY = 2,
34
+ EDITION_99997_TEST_ONLY = 99997,
35
+ EDITION_99998_TEST_ONLY = 99998,
36
+ EDITION_99999_TEST_ONLY = 99999,
37
+ /**
38
+ * EDITION_MAX - Placeholder for specifying unbounded edition support. This should only
39
+ * ever be used by plugins that can expect to never require any changes to
40
+ * support a new edition.
41
+ */
42
+ EDITION_MAX = 2147483647,
43
+ UNRECOGNIZED = -1
44
+ }
45
+ export declare function editionFromJSON(object: any): Edition;
46
+ export declare function editionToJSON(object: Edition): string;
47
+ /**
48
+ * Describes the 'visibility' of a symbol with respect to the proto import
49
+ * system. Symbols can only be imported when the visibility rules do not prevent
50
+ * it (ex: local symbols cannot be imported). Visibility modifiers can only set
51
+ * on `message` and `enum` as they are the only types available to be referenced
52
+ * from other files.
53
+ */
54
+ export declare enum SymbolVisibility {
55
+ VISIBILITY_UNSET = 0,
56
+ VISIBILITY_LOCAL = 1,
57
+ VISIBILITY_EXPORT = 2,
58
+ UNRECOGNIZED = -1
59
+ }
60
+ export declare function symbolVisibilityFromJSON(object: any): SymbolVisibility;
61
+ export declare function symbolVisibilityToJSON(object: SymbolVisibility): string;
2
62
  /**
3
63
  * The protocol compiler can output a FileDescriptorSet containing the .proto
4
64
  * files it parses.
@@ -24,6 +84,11 @@ export interface FileDescriptorProto {
24
84
  * For Google-internal migration only. Do not use.
25
85
  */
26
86
  weakDependency: number[];
87
+ /**
88
+ * Names of files imported by this file purely for the purpose of providing
89
+ * option extensions. These are excluded from the dependency list above.
90
+ */
91
+ optionDependency: string[];
27
92
  /** All top-level definitions in this file. */
28
93
  messageType: DescriptorProto[];
29
94
  enumType: EnumDescriptorProto[];
@@ -39,9 +104,21 @@ export interface FileDescriptorProto {
39
104
  sourceCodeInfo: SourceCodeInfo | undefined;
40
105
  /**
41
106
  * The syntax of the proto file.
42
- * The supported values are "proto2" and "proto3".
107
+ * The supported values are "proto2", "proto3", and "editions".
108
+ *
109
+ * If `edition` is present, this value must be "editions".
110
+ * WARNING: This field should only be used by protobuf plugins or special
111
+ * cases like the proto compiler. Other uses are discouraged and
112
+ * developers should rely on the protoreflect APIs for their client language.
43
113
  */
44
114
  syntax: string;
115
+ /**
116
+ * The edition of the proto file.
117
+ * WARNING: This field should only be used by protobuf plugins or special
118
+ * cases like the proto compiler. Other uses are discouraged and
119
+ * developers should rely on the protoreflect APIs for their client language.
120
+ */
121
+ edition: Edition;
45
122
  _unknownFields?: {
46
123
  [key: number]: Uint8Array[];
47
124
  } | undefined;
@@ -62,6 +139,8 @@ export interface DescriptorProto {
62
139
  * A given name may only be reserved once.
63
140
  */
64
141
  reservedName: string[];
142
+ /** Support for `export` and `local` keywords on enums. */
143
+ visibility: SymbolVisibility;
65
144
  _unknownFields?: {
66
145
  [key: number]: Uint8Array[];
67
146
  } | undefined;
@@ -93,6 +172,58 @@ export interface DescriptorProto_ReservedRange {
93
172
  export interface ExtensionRangeOptions {
94
173
  /** The parser stores options it doesn't recognize here. See above. */
95
174
  uninterpretedOption: UninterpretedOption[];
175
+ /**
176
+ * For external users: DO NOT USE. We are in the process of open sourcing
177
+ * extension declaration and executing internal cleanups before it can be
178
+ * used externally.
179
+ */
180
+ declaration: ExtensionRangeOptions_Declaration[];
181
+ /** Any features defined in the specific edition. */
182
+ features: FeatureSet | undefined;
183
+ /**
184
+ * The verification state of the range.
185
+ * TODO: flip the default to DECLARATION once all empty ranges
186
+ * are marked as UNVERIFIED.
187
+ */
188
+ verification: ExtensionRangeOptions_VerificationState;
189
+ _unknownFields?: {
190
+ [key: number]: Uint8Array[];
191
+ } | undefined;
192
+ }
193
+ /** The verification state of the extension range. */
194
+ export declare enum ExtensionRangeOptions_VerificationState {
195
+ /** DECLARATION - All the extensions of the range must be declared. */
196
+ DECLARATION = 0,
197
+ UNVERIFIED = 1,
198
+ UNRECOGNIZED = -1
199
+ }
200
+ export declare function extensionRangeOptions_VerificationStateFromJSON(object: any): ExtensionRangeOptions_VerificationState;
201
+ export declare function extensionRangeOptions_VerificationStateToJSON(object: ExtensionRangeOptions_VerificationState): string;
202
+ export interface ExtensionRangeOptions_Declaration {
203
+ /** The extension number declared within the extension range. */
204
+ number: number;
205
+ /**
206
+ * The fully-qualified name of the extension field. There must be a leading
207
+ * dot in front of the full name.
208
+ */
209
+ fullName: string;
210
+ /**
211
+ * The fully-qualified type name of the extension field. Unlike
212
+ * Metadata.type, Declaration.type must have a leading dot for messages
213
+ * and enums.
214
+ */
215
+ type: string;
216
+ /**
217
+ * If true, indicates that the number is reserved in the extension range,
218
+ * and any extension field with the number will fail to compile. Set this
219
+ * when a declared extension field is deleted.
220
+ */
221
+ reserved: boolean;
222
+ /**
223
+ * If true, indicates that the extension must be defined as repeated.
224
+ * Otherwise the extension must be defined as optional.
225
+ */
226
+ repeated: boolean;
96
227
  _unknownFields?: {
97
228
  [key: number]: Uint8Array[];
98
229
  } | undefined;
@@ -125,7 +256,6 @@ export interface FieldDescriptorProto {
125
256
  * For booleans, "true" or "false".
126
257
  * For strings, contains the default text contents (not escaped in any way).
127
258
  * For bytes, contains the C escaped value. All bytes >= 128 are escaped.
128
- * TODO(kenton): Base-64 encode?
129
259
  */
130
260
  defaultValue: string;
131
261
  /**
@@ -145,12 +275,12 @@ export interface FieldDescriptorProto {
145
275
  * If true, this is a proto3 "optional". When a proto3 field is optional, it
146
276
  * tracks presence regardless of field type.
147
277
  *
148
- * When proto3_optional is true, this field must be belong to a oneof to
149
- * signal to old proto3 clients that presence is tracked for this field. This
150
- * oneof is known as a "synthetic" oneof, and this field must be its sole
151
- * member (each proto3 optional field gets its own synthetic oneof). Synthetic
152
- * oneofs exist in the descriptor only, and do not generate any API. Synthetic
153
- * oneofs must be ordered after all "real" oneofs.
278
+ * When proto3_optional is true, this field must belong to a oneof to signal
279
+ * to old proto3 clients that presence is tracked for this field. This oneof
280
+ * is known as a "synthetic" oneof, and this field must be its sole member
281
+ * (each proto3 optional field gets its own synthetic oneof). Synthetic oneofs
282
+ * exist in the descriptor only, and do not generate any API. Synthetic oneofs
283
+ * must be ordered after all "real" oneofs.
154
284
  *
155
285
  * For message fields, proto3_optional doesn't create any semantic change,
156
286
  * since non-repeated message fields always track presence. However it still
@@ -193,9 +323,10 @@ export declare enum FieldDescriptorProto_Type {
193
323
  TYPE_STRING = 9,
194
324
  /**
195
325
  * TYPE_GROUP - Tag-delimited aggregate.
196
- * Group type is deprecated and not supported in proto3. However, Proto3
326
+ * Group type is deprecated and not supported after google.protobuf. However, Proto3
197
327
  * implementations should still be able to parse the group wire format and
198
- * treat group fields as unknown fields.
328
+ * treat group fields as unknown fields. In Editions, the group wire format
329
+ * can be enabled via the `message_encoding` feature.
199
330
  */
200
331
  TYPE_GROUP = 10,
201
332
  /** TYPE_MESSAGE - Length-delimited aggregate. */
@@ -217,8 +348,13 @@ export declare function fieldDescriptorProto_TypeToJSON(object: FieldDescriptorP
217
348
  export declare enum FieldDescriptorProto_Label {
218
349
  /** LABEL_OPTIONAL - 0 is reserved for errors */
219
350
  LABEL_OPTIONAL = 1,
220
- LABEL_REQUIRED = 2,
221
351
  LABEL_REPEATED = 3,
352
+ /**
353
+ * LABEL_REQUIRED - The required label is only allowed in google.protobuf. In proto3 and Editions
354
+ * it's explicitly prohibited. In Editions, the `field_presence` feature
355
+ * can be used to get this behavior.
356
+ */
357
+ LABEL_REQUIRED = 2,
222
358
  UNRECOGNIZED = -1
223
359
  }
224
360
  export declare function fieldDescriptorProto_LabelFromJSON(object: any): FieldDescriptorProto_Label;
@@ -247,6 +383,8 @@ export interface EnumDescriptorProto {
247
383
  * be reserved once.
248
384
  */
249
385
  reservedName: string[];
386
+ /** Support for `export` and `local` keywords on enums. */
387
+ visibility: SymbolVisibility;
250
388
  _unknownFields?: {
251
389
  [key: number]: Uint8Array[];
252
390
  } | undefined;
@@ -313,18 +451,18 @@ export interface FileOptions {
313
451
  */
314
452
  javaPackage: string;
315
453
  /**
316
- * If set, all the classes from the .proto file are wrapped in a single
317
- * outer class with the given name. This applies to both Proto1
318
- * (equivalent to the old "--one_java_file" option) and Proto2 (where
319
- * a .proto always translates to a single class, but you may want to
320
- * explicitly choose the class name).
454
+ * Controls the name of the wrapper Java class generated for the .proto file.
455
+ * That class will always contain the .proto file's getDescriptor() method as
456
+ * well as any top-level extensions defined in the .proto file.
457
+ * If java_multiple_files is disabled, then all the other classes from the
458
+ * .proto file will be nested inside the single wrapper outer class.
321
459
  */
322
460
  javaOuterClassname: string;
323
461
  /**
324
- * If set true, then the Java code generator will generate a separate .java
462
+ * If enabled, then the Java code generator will generate a separate .java
325
463
  * file for each top-level message, enum, and service defined in the .proto
326
- * file. Thus, these types will *not* be nested inside the outer class
327
- * named by java_outer_classname. However, the outer class will still be
464
+ * file. Thus, these types will *not* be nested inside the wrapper class
465
+ * named by java_outer_classname. However, the wrapper class will still be
328
466
  * generated to contain the file's getDescriptor() method as well as any
329
467
  * top-level extensions defined in the file.
330
468
  */
@@ -336,12 +474,16 @@ export interface FileOptions {
336
474
  */
337
475
  javaGenerateEqualsAndHash: boolean;
338
476
  /**
339
- * If set true, then the Java2 code generator will generate code that
340
- * throws an exception whenever an attempt is made to assign a non-UTF-8
341
- * byte sequence to a string field.
342
- * Message reflection will do the same.
343
- * However, an extension field still accepts non-UTF-8 byte sequences.
344
- * This option has no effect on when used with the lite runtime.
477
+ * A proto2 file can set this to true to opt in to UTF-8 checking for Java,
478
+ * which will throw an exception if invalid UTF-8 is parsed from the wire or
479
+ * assigned to a string field.
480
+ *
481
+ * TODO: clarify exactly what kinds of field types this option
482
+ * applies to, and update these docs accordingly.
483
+ *
484
+ * Proto3 files already perform these checks. Setting the option explicitly to
485
+ * false has no effect: it cannot be used to opt proto3 files out of UTF-8
486
+ * checks.
345
487
  */
346
488
  javaStringCheckUtf8: boolean;
347
489
  optimizeFor: FileOptions_OptimizeMode;
@@ -368,7 +510,6 @@ export interface FileOptions {
368
510
  ccGenericServices: boolean;
369
511
  javaGenericServices: boolean;
370
512
  pyGenericServices: boolean;
371
- phpGenericServices: boolean;
372
513
  /**
373
514
  * Is this file deprecated?
374
515
  * Depending on the target platform, this can emit Deprecated annotations
@@ -418,6 +559,13 @@ export interface FileOptions {
418
559
  * determining the ruby package.
419
560
  */
420
561
  rubyPackage: string;
562
+ /**
563
+ * Any features defined in the specific edition.
564
+ * WARNING: This field should only be used by protobuf plugins or special
565
+ * cases like the proto compiler. Other uses are discouraged and
566
+ * developers should rely on the protoreflect APIs for their client language.
567
+ */
568
+ features: FeatureSet | undefined;
421
569
  /**
422
570
  * The parser stores options it doesn't recognize here.
423
571
  * See the documentation for the "Options" section above.
@@ -498,6 +646,28 @@ export interface MessageOptions {
498
646
  * parser.
499
647
  */
500
648
  mapEntry: boolean;
649
+ /**
650
+ * Enable the legacy handling of JSON field name conflicts. This lowercases
651
+ * and strips underscored from the fields before comparison in proto3 only.
652
+ * The new behavior takes `json_name` into account and applies to proto2 as
653
+ * well.
654
+ *
655
+ * This should only be used as a temporary measure against broken builds due
656
+ * to the change in behavior for JSON field name conflicts.
657
+ *
658
+ * TODO This is legacy behavior we plan to remove once downstream
659
+ * teams have had time to migrate.
660
+ *
661
+ * @deprecated
662
+ */
663
+ deprecatedLegacyJsonFieldConflicts: boolean;
664
+ /**
665
+ * Any features defined in the specific edition.
666
+ * WARNING: This field should only be used by protobuf plugins or special
667
+ * cases like the proto compiler. Other uses are discouraged and
668
+ * developers should rely on the protoreflect APIs for their client language.
669
+ */
670
+ features: FeatureSet | undefined;
501
671
  /** The parser stores options it doesn't recognize here. See above. */
502
672
  uninterpretedOption: UninterpretedOption[];
503
673
  _unknownFields?: {
@@ -506,10 +676,13 @@ export interface MessageOptions {
506
676
  }
507
677
  export interface FieldOptions {
508
678
  /**
679
+ * NOTE: ctype is deprecated. Use `features.(pb.cpp).string_type` instead.
509
680
  * The ctype option instructs the C++ code generator to use a different
510
681
  * representation of the field than it normally would. See the specific
511
- * options below. This option is not yet implemented in the open source
512
- * release -- sorry, we'll try to include it in a future version!
682
+ * options below. This option is only implemented to support use of
683
+ * [ctype=CORD] and [ctype=STRING] (the default) on non-repeated fields of
684
+ * type "bytes" in the open source release.
685
+ * TODO: make ctype actually deprecated.
513
686
  */
514
687
  ctype: FieldOptions_CType;
515
688
  /**
@@ -517,7 +690,9 @@ export interface FieldOptions {
517
690
  * a more efficient representation on the wire. Rather than repeatedly
518
691
  * writing the tag and type for each element, the entire array is encoded as
519
692
  * a single length-delimited blob. In proto3, only explicit setting it to
520
- * false will avoid using packed encoding.
693
+ * false will avoid using packed encoding. This option is prohibited in
694
+ * Editions, but the `repeated_field_encoding` feature can be used to control
695
+ * the behavior.
521
696
  */
522
697
  packed: boolean;
523
698
  /**
@@ -552,18 +727,19 @@ export interface FieldOptions {
552
727
  * call from multiple threads concurrently, while non-const methods continue
553
728
  * to require exclusive access.
554
729
  *
555
- * Note that implementations may choose not to check required fields within
556
- * a lazy sub-message. That is, calling IsInitialized() on the outer message
557
- * may return true even if the inner message has missing required fields.
558
- * This is necessary because otherwise the inner message would have to be
559
- * parsed in order to perform the check, defeating the purpose of lazy
560
- * parsing. An implementation which chooses not to check required fields
561
- * must be consistent about it. That is, for any particular sub-message, the
562
- * implementation must either *always* check its required fields, or *never*
563
- * check its required fields, regardless of whether or not the message has
564
- * been parsed.
730
+ * Note that lazy message fields are still eagerly verified to check
731
+ * ill-formed wireformat or missing required fields. Calling IsInitialized()
732
+ * on the outer message would fail if the inner message has missing required
733
+ * fields. Failed verification would result in parsing failure (except when
734
+ * uninitialized messages are acceptable).
565
735
  */
566
736
  lazy: boolean;
737
+ /**
738
+ * unverified_lazy does no correctness checks on the byte stream. This should
739
+ * only be used where lazy with verification is prohibitive for performance
740
+ * reasons.
741
+ */
742
+ unverifiedLazy: boolean;
567
743
  /**
568
744
  * Is this field deprecated?
569
745
  * Depending on the target platform, this can emit Deprecated annotations
@@ -571,8 +747,29 @@ export interface FieldOptions {
571
747
  * is a formalization for deprecating fields.
572
748
  */
573
749
  deprecated: boolean;
574
- /** For Google-internal migration only. Do not use. */
750
+ /**
751
+ * DEPRECATED. DO NOT USE!
752
+ * For Google-internal migration only. Do not use.
753
+ *
754
+ * @deprecated
755
+ */
575
756
  weak: boolean;
757
+ /**
758
+ * Indicate that the field value should not be printed out when using debug
759
+ * formats, e.g. when the field contains sensitive credentials.
760
+ */
761
+ debugRedact: boolean;
762
+ retention: FieldOptions_OptionRetention;
763
+ targets: FieldOptions_OptionTargetType[];
764
+ editionDefaults: FieldOptions_EditionDefault[];
765
+ /**
766
+ * Any features defined in the specific edition.
767
+ * WARNING: This field should only be used by protobuf plugins or special
768
+ * cases like the proto compiler. Other uses are discouraged and
769
+ * developers should rely on the protoreflect APIs for their client language.
770
+ */
771
+ features: FeatureSet | undefined;
772
+ featureSupport: FieldOptions_FeatureSupport | undefined;
576
773
  /** The parser stores options it doesn't recognize here. See above. */
577
774
  uninterpretedOption: UninterpretedOption[];
578
775
  _unknownFields?: {
@@ -582,6 +779,14 @@ export interface FieldOptions {
582
779
  export declare enum FieldOptions_CType {
583
780
  /** STRING - Default mode. */
584
781
  STRING = 0,
782
+ /**
783
+ * CORD - The option [ctype=CORD] may be applied to a non-repeated field of type
784
+ * "bytes". It indicates that in C++, the data should be stored in a Cord
785
+ * instead of a string. For very large strings, this may reduce memory
786
+ * fragmentation. It may also allow better performance when parsing from a
787
+ * Cord, or when parsing with aliasing enabled, as the parsed Cord may then
788
+ * alias the original buffer.
789
+ */
585
790
  CORD = 1,
586
791
  STRING_PIECE = 2,
587
792
  UNRECOGNIZED = -1
@@ -599,7 +804,79 @@ export declare enum FieldOptions_JSType {
599
804
  }
600
805
  export declare function fieldOptions_JSTypeFromJSON(object: any): FieldOptions_JSType;
601
806
  export declare function fieldOptions_JSTypeToJSON(object: FieldOptions_JSType): string;
807
+ /** If set to RETENTION_SOURCE, the option will be omitted from the binary. */
808
+ export declare enum FieldOptions_OptionRetention {
809
+ RETENTION_UNKNOWN = 0,
810
+ RETENTION_RUNTIME = 1,
811
+ RETENTION_SOURCE = 2,
812
+ UNRECOGNIZED = -1
813
+ }
814
+ export declare function fieldOptions_OptionRetentionFromJSON(object: any): FieldOptions_OptionRetention;
815
+ export declare function fieldOptions_OptionRetentionToJSON(object: FieldOptions_OptionRetention): string;
816
+ /**
817
+ * This indicates the types of entities that the field may apply to when used
818
+ * as an option. If it is unset, then the field may be freely used as an
819
+ * option on any kind of entity.
820
+ */
821
+ export declare enum FieldOptions_OptionTargetType {
822
+ TARGET_TYPE_UNKNOWN = 0,
823
+ TARGET_TYPE_FILE = 1,
824
+ TARGET_TYPE_EXTENSION_RANGE = 2,
825
+ TARGET_TYPE_MESSAGE = 3,
826
+ TARGET_TYPE_FIELD = 4,
827
+ TARGET_TYPE_ONEOF = 5,
828
+ TARGET_TYPE_ENUM = 6,
829
+ TARGET_TYPE_ENUM_ENTRY = 7,
830
+ TARGET_TYPE_SERVICE = 8,
831
+ TARGET_TYPE_METHOD = 9,
832
+ UNRECOGNIZED = -1
833
+ }
834
+ export declare function fieldOptions_OptionTargetTypeFromJSON(object: any): FieldOptions_OptionTargetType;
835
+ export declare function fieldOptions_OptionTargetTypeToJSON(object: FieldOptions_OptionTargetType): string;
836
+ export interface FieldOptions_EditionDefault {
837
+ edition: Edition;
838
+ /** Textproto value. */
839
+ value: string;
840
+ _unknownFields?: {
841
+ [key: number]: Uint8Array[];
842
+ } | undefined;
843
+ }
844
+ /** Information about the support window of a feature. */
845
+ export interface FieldOptions_FeatureSupport {
846
+ /**
847
+ * The edition that this feature was first available in. In editions
848
+ * earlier than this one, the default assigned to EDITION_LEGACY will be
849
+ * used, and proto files will not be able to override it.
850
+ */
851
+ editionIntroduced: Edition;
852
+ /**
853
+ * The edition this feature becomes deprecated in. Using this after this
854
+ * edition may trigger warnings.
855
+ */
856
+ editionDeprecated: Edition;
857
+ /**
858
+ * The deprecation warning text if this feature is used after the edition it
859
+ * was marked deprecated in.
860
+ */
861
+ deprecationWarning: string;
862
+ /**
863
+ * The edition this feature is no longer available in. In editions after
864
+ * this one, the last default assigned will be used, and proto files will
865
+ * not be able to override it.
866
+ */
867
+ editionRemoved: Edition;
868
+ _unknownFields?: {
869
+ [key: number]: Uint8Array[];
870
+ } | undefined;
871
+ }
602
872
  export interface OneofOptions {
873
+ /**
874
+ * Any features defined in the specific edition.
875
+ * WARNING: This field should only be used by protobuf plugins or special
876
+ * cases like the proto compiler. Other uses are discouraged and
877
+ * developers should rely on the protoreflect APIs for their client language.
878
+ */
879
+ features: FeatureSet | undefined;
603
880
  /** The parser stores options it doesn't recognize here. See above. */
604
881
  uninterpretedOption: UninterpretedOption[];
605
882
  _unknownFields?: {
@@ -619,6 +896,24 @@ export interface EnumOptions {
619
896
  * is a formalization for deprecating enums.
620
897
  */
621
898
  deprecated: boolean;
899
+ /**
900
+ * Enable the legacy handling of JSON field name conflicts. This lowercases
901
+ * and strips underscored from the fields before comparison in proto3 only.
902
+ * The new behavior takes `json_name` into account and applies to proto2 as
903
+ * well.
904
+ * TODO Remove this legacy behavior once downstream teams have
905
+ * had time to migrate.
906
+ *
907
+ * @deprecated
908
+ */
909
+ deprecatedLegacyJsonFieldConflicts: boolean;
910
+ /**
911
+ * Any features defined in the specific edition.
912
+ * WARNING: This field should only be used by protobuf plugins or special
913
+ * cases like the proto compiler. Other uses are discouraged and
914
+ * developers should rely on the protoreflect APIs for their client language.
915
+ */
916
+ features: FeatureSet | undefined;
622
917
  /** The parser stores options it doesn't recognize here. See above. */
623
918
  uninterpretedOption: UninterpretedOption[];
624
919
  _unknownFields?: {
@@ -633,6 +928,21 @@ export interface EnumValueOptions {
633
928
  * this is a formalization for deprecating enum values.
634
929
  */
635
930
  deprecated: boolean;
931
+ /**
932
+ * Any features defined in the specific edition.
933
+ * WARNING: This field should only be used by protobuf plugins or special
934
+ * cases like the proto compiler. Other uses are discouraged and
935
+ * developers should rely on the protoreflect APIs for their client language.
936
+ */
937
+ features: FeatureSet | undefined;
938
+ /**
939
+ * Indicate that fields annotated with this enum value should not be printed
940
+ * out when using debug formats, e.g. when the field contains sensitive
941
+ * credentials.
942
+ */
943
+ debugRedact: boolean;
944
+ /** Information about the support window of a feature value. */
945
+ featureSupport: FieldOptions_FeatureSupport | undefined;
636
946
  /** The parser stores options it doesn't recognize here. See above. */
637
947
  uninterpretedOption: UninterpretedOption[];
638
948
  _unknownFields?: {
@@ -640,6 +950,13 @@ export interface EnumValueOptions {
640
950
  } | undefined;
641
951
  }
642
952
  export interface ServiceOptions {
953
+ /**
954
+ * Any features defined in the specific edition.
955
+ * WARNING: This field should only be used by protobuf plugins or special
956
+ * cases like the proto compiler. Other uses are discouraged and
957
+ * developers should rely on the protoreflect APIs for their client language.
958
+ */
959
+ features: FeatureSet | undefined;
643
960
  /**
644
961
  * Is this service deprecated?
645
962
  * Depending on the target platform, this can emit Deprecated annotations
@@ -662,6 +979,13 @@ export interface MethodOptions {
662
979
  */
663
980
  deprecated: boolean;
664
981
  idempotencyLevel: MethodOptions_IdempotencyLevel;
982
+ /**
983
+ * Any features defined in the specific edition.
984
+ * WARNING: This field should only be used by protobuf plugins or special
985
+ * cases like the proto compiler. Other uses are discouraged and
986
+ * developers should rely on the protoreflect APIs for their client language.
987
+ */
988
+ features: FeatureSet | undefined;
665
989
  /** The parser stores options it doesn't recognize here. See above. */
666
990
  uninterpretedOption: UninterpretedOption[];
667
991
  _unknownFields?: {
@@ -711,8 +1035,8 @@ export interface UninterpretedOption {
711
1035
  * The name of the uninterpreted option. Each string represents a segment in
712
1036
  * a dot-separated name. is_extension is true iff a segment represents an
713
1037
  * extension (denoted with parentheses in options specs in .proto files).
714
- * E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents
715
- * "foo.(bar.baz).qux".
1038
+ * E.g.,{ ["foo", false], ["bar.baz", true], ["moo", false] } represents
1039
+ * "foo.(bar.baz).moo".
716
1040
  */
717
1041
  export interface UninterpretedOption_NamePart {
718
1042
  namePart: string;
@@ -721,6 +1045,145 @@ export interface UninterpretedOption_NamePart {
721
1045
  [key: number]: Uint8Array[];
722
1046
  } | undefined;
723
1047
  }
1048
+ /**
1049
+ * TODO Enums in C++ gencode (and potentially other languages) are
1050
+ * not well scoped. This means that each of the feature enums below can clash
1051
+ * with each other. The short names we've chosen maximize call-site
1052
+ * readability, but leave us very open to this scenario. A future feature will
1053
+ * be designed and implemented to handle this, hopefully before we ever hit a
1054
+ * conflict here.
1055
+ */
1056
+ export interface FeatureSet {
1057
+ fieldPresence: FeatureSet_FieldPresence;
1058
+ enumType: FeatureSet_EnumType;
1059
+ repeatedFieldEncoding: FeatureSet_RepeatedFieldEncoding;
1060
+ utf8Validation: FeatureSet_Utf8Validation;
1061
+ messageEncoding: FeatureSet_MessageEncoding;
1062
+ jsonFormat: FeatureSet_JsonFormat;
1063
+ enforceNamingStyle: FeatureSet_EnforceNamingStyle;
1064
+ defaultSymbolVisibility: FeatureSet_VisibilityFeature_DefaultSymbolVisibility;
1065
+ _unknownFields?: {
1066
+ [key: number]: Uint8Array[];
1067
+ } | undefined;
1068
+ }
1069
+ export declare enum FeatureSet_FieldPresence {
1070
+ FIELD_PRESENCE_UNKNOWN = 0,
1071
+ EXPLICIT = 1,
1072
+ IMPLICIT = 2,
1073
+ LEGACY_REQUIRED = 3,
1074
+ UNRECOGNIZED = -1
1075
+ }
1076
+ export declare function featureSet_FieldPresenceFromJSON(object: any): FeatureSet_FieldPresence;
1077
+ export declare function featureSet_FieldPresenceToJSON(object: FeatureSet_FieldPresence): string;
1078
+ export declare enum FeatureSet_EnumType {
1079
+ ENUM_TYPE_UNKNOWN = 0,
1080
+ OPEN = 1,
1081
+ CLOSED = 2,
1082
+ UNRECOGNIZED = -1
1083
+ }
1084
+ export declare function featureSet_EnumTypeFromJSON(object: any): FeatureSet_EnumType;
1085
+ export declare function featureSet_EnumTypeToJSON(object: FeatureSet_EnumType): string;
1086
+ export declare enum FeatureSet_RepeatedFieldEncoding {
1087
+ REPEATED_FIELD_ENCODING_UNKNOWN = 0,
1088
+ PACKED = 1,
1089
+ EXPANDED = 2,
1090
+ UNRECOGNIZED = -1
1091
+ }
1092
+ export declare function featureSet_RepeatedFieldEncodingFromJSON(object: any): FeatureSet_RepeatedFieldEncoding;
1093
+ export declare function featureSet_RepeatedFieldEncodingToJSON(object: FeatureSet_RepeatedFieldEncoding): string;
1094
+ export declare enum FeatureSet_Utf8Validation {
1095
+ UTF8_VALIDATION_UNKNOWN = 0,
1096
+ VERIFY = 2,
1097
+ NONE = 3,
1098
+ UNRECOGNIZED = -1
1099
+ }
1100
+ export declare function featureSet_Utf8ValidationFromJSON(object: any): FeatureSet_Utf8Validation;
1101
+ export declare function featureSet_Utf8ValidationToJSON(object: FeatureSet_Utf8Validation): string;
1102
+ export declare enum FeatureSet_MessageEncoding {
1103
+ MESSAGE_ENCODING_UNKNOWN = 0,
1104
+ LENGTH_PREFIXED = 1,
1105
+ DELIMITED = 2,
1106
+ UNRECOGNIZED = -1
1107
+ }
1108
+ export declare function featureSet_MessageEncodingFromJSON(object: any): FeatureSet_MessageEncoding;
1109
+ export declare function featureSet_MessageEncodingToJSON(object: FeatureSet_MessageEncoding): string;
1110
+ export declare enum FeatureSet_JsonFormat {
1111
+ JSON_FORMAT_UNKNOWN = 0,
1112
+ ALLOW = 1,
1113
+ LEGACY_BEST_EFFORT = 2,
1114
+ UNRECOGNIZED = -1
1115
+ }
1116
+ export declare function featureSet_JsonFormatFromJSON(object: any): FeatureSet_JsonFormat;
1117
+ export declare function featureSet_JsonFormatToJSON(object: FeatureSet_JsonFormat): string;
1118
+ export declare enum FeatureSet_EnforceNamingStyle {
1119
+ ENFORCE_NAMING_STYLE_UNKNOWN = 0,
1120
+ STYLE2024 = 1,
1121
+ STYLE_LEGACY = 2,
1122
+ UNRECOGNIZED = -1
1123
+ }
1124
+ export declare function featureSet_EnforceNamingStyleFromJSON(object: any): FeatureSet_EnforceNamingStyle;
1125
+ export declare function featureSet_EnforceNamingStyleToJSON(object: FeatureSet_EnforceNamingStyle): string;
1126
+ export interface FeatureSet_VisibilityFeature {
1127
+ _unknownFields?: {
1128
+ [key: number]: Uint8Array[];
1129
+ } | undefined;
1130
+ }
1131
+ export declare enum FeatureSet_VisibilityFeature_DefaultSymbolVisibility {
1132
+ DEFAULT_SYMBOL_VISIBILITY_UNKNOWN = 0,
1133
+ /** EXPORT_ALL - Default pre-EDITION_2024, all UNSET visibility are export. */
1134
+ EXPORT_ALL = 1,
1135
+ /** EXPORT_TOP_LEVEL - All top-level symbols default to export, nested default to local. */
1136
+ EXPORT_TOP_LEVEL = 2,
1137
+ /** LOCAL_ALL - All symbols default to local. */
1138
+ LOCAL_ALL = 3,
1139
+ /**
1140
+ * STRICT - All symbols local by default. Nested types cannot be exported.
1141
+ * With special case caveat for message { enum {} reserved 1 to max; }
1142
+ * This is the recommended setting for new protos.
1143
+ */
1144
+ STRICT = 4,
1145
+ UNRECOGNIZED = -1
1146
+ }
1147
+ export declare function featureSet_VisibilityFeature_DefaultSymbolVisibilityFromJSON(object: any): FeatureSet_VisibilityFeature_DefaultSymbolVisibility;
1148
+ export declare function featureSet_VisibilityFeature_DefaultSymbolVisibilityToJSON(object: FeatureSet_VisibilityFeature_DefaultSymbolVisibility): string;
1149
+ /**
1150
+ * A compiled specification for the defaults of a set of features. These
1151
+ * messages are generated from FeatureSet extensions and can be used to seed
1152
+ * feature resolution. The resolution with this object becomes a simple search
1153
+ * for the closest matching edition, followed by proto merges.
1154
+ */
1155
+ export interface FeatureSetDefaults {
1156
+ defaults: FeatureSetDefaults_FeatureSetEditionDefault[];
1157
+ /**
1158
+ * The minimum supported edition (inclusive) when this was constructed.
1159
+ * Editions before this will not have defaults.
1160
+ */
1161
+ minimumEdition: Edition;
1162
+ /**
1163
+ * The maximum known edition (inclusive) when this was constructed. Editions
1164
+ * after this will not have reliable defaults.
1165
+ */
1166
+ maximumEdition: Edition;
1167
+ _unknownFields?: {
1168
+ [key: number]: Uint8Array[];
1169
+ } | undefined;
1170
+ }
1171
+ /**
1172
+ * A map from every known edition with a unique set of defaults to its
1173
+ * defaults. Not all editions may be contained here. For a given edition,
1174
+ * the defaults at the closest matching edition ordered at or before it should
1175
+ * be used. This field must be in strict ascending order by edition.
1176
+ */
1177
+ export interface FeatureSetDefaults_FeatureSetEditionDefault {
1178
+ edition: Edition;
1179
+ /** Defaults of features that can be overridden in this edition. */
1180
+ overridableFeatures: FeatureSet | undefined;
1181
+ /** Defaults of features that can't be overridden in this edition. */
1182
+ fixedFeatures: FeatureSet | undefined;
1183
+ _unknownFields?: {
1184
+ [key: number]: Uint8Array[];
1185
+ } | undefined;
1186
+ }
724
1187
  /**
725
1188
  * Encapsulates information about the original source file from which a
726
1189
  * FileDescriptorProto was generated.
@@ -782,8 +1245,8 @@ export interface SourceCodeInfo_Location {
782
1245
  * location.
783
1246
  *
784
1247
  * Each element is a field number or an index. They form a path from
785
- * the root FileDescriptorProto to the place where the definition. For
786
- * example, this path:
1248
+ * the root FileDescriptorProto to the place where the definition appears.
1249
+ * For example, this path:
787
1250
  * [ 4, 3, 2, 7, 1 ]
788
1251
  * refers to:
789
1252
  * file.message_type(3) // 4, 3
@@ -839,13 +1302,13 @@ export interface SourceCodeInfo_Location {
839
1302
  * // Comment attached to baz.
840
1303
  * // Another line attached to baz.
841
1304
  *
842
- * // Comment attached to qux.
1305
+ * // Comment attached to moo.
843
1306
  * //
844
- * // Another line attached to qux.
845
- * optional double qux = 4;
1307
+ * // Another line attached to moo.
1308
+ * optional double moo = 4;
846
1309
  *
847
1310
  * // Detached comment for corge. This is not leading or trailing comments
848
- * // to qux or corge because there are blank lines separating it from
1311
+ * // to moo or corge because there are blank lines separating it from
849
1312
  * // both.
850
1313
  *
851
1314
  * // Detached comment for corge paragraph 2.
@@ -897,17 +1360,35 @@ export interface GeneratedCodeInfo_Annotation {
897
1360
  begin: number;
898
1361
  /**
899
1362
  * Identifies the ending offset in bytes in the generated code that
900
- * relates to the identified offset. The end offset should be one past
1363
+ * relates to the identified object. The end offset should be one past
901
1364
  * the last relevant byte (so the length of the text = end - begin).
902
1365
  */
903
1366
  end: number;
1367
+ semantic: GeneratedCodeInfo_Annotation_Semantic;
904
1368
  _unknownFields?: {
905
1369
  [key: number]: Uint8Array[];
906
1370
  } | undefined;
907
1371
  }
1372
+ /**
1373
+ * Represents the identified object's effect on the element in the original
1374
+ * .proto file.
1375
+ */
1376
+ export declare enum GeneratedCodeInfo_Annotation_Semantic {
1377
+ /** NONE - There is no effect or the effect is indescribable. */
1378
+ NONE = 0,
1379
+ /** SET - The element is set or otherwise mutated. */
1380
+ SET = 1,
1381
+ /** ALIAS - An alias to the element is returned. */
1382
+ ALIAS = 2,
1383
+ UNRECOGNIZED = -1
1384
+ }
1385
+ export declare function generatedCodeInfo_Annotation_SemanticFromJSON(object: any): GeneratedCodeInfo_Annotation_Semantic;
1386
+ export declare function generatedCodeInfo_Annotation_SemanticToJSON(object: GeneratedCodeInfo_Annotation_Semantic): string;
908
1387
  export declare const FileDescriptorSet: {
909
1388
  encode(message: FileDescriptorSet, writer?: BinaryWriter): BinaryWriter;
1389
+ setExtension<T>(message: FileDescriptorSet, extension: Extension<T>, value: T): void;
910
1390
  decode(input: BinaryReader | Uint8Array, length?: number): FileDescriptorSet;
1391
+ getExtension<T>(message: FileDescriptorSet, extension: Extension<T>): T | undefined;
911
1392
  fromJSON(object: any): FileDescriptorSet;
912
1393
  toJSON(message: FileDescriptorSet): unknown;
913
1394
  create(base?: DeepPartial<FileDescriptorSet>): FileDescriptorSet;
@@ -955,6 +1436,14 @@ export declare const ExtensionRangeOptions: {
955
1436
  create(base?: DeepPartial<ExtensionRangeOptions>): ExtensionRangeOptions;
956
1437
  fromPartial(object: DeepPartial<ExtensionRangeOptions>): ExtensionRangeOptions;
957
1438
  };
1439
+ export declare const ExtensionRangeOptions_Declaration: {
1440
+ encode(message: ExtensionRangeOptions_Declaration, writer?: BinaryWriter): BinaryWriter;
1441
+ decode(input: BinaryReader | Uint8Array, length?: number): ExtensionRangeOptions_Declaration;
1442
+ fromJSON(object: any): ExtensionRangeOptions_Declaration;
1443
+ toJSON(message: ExtensionRangeOptions_Declaration): unknown;
1444
+ create(base?: DeepPartial<ExtensionRangeOptions_Declaration>): ExtensionRangeOptions_Declaration;
1445
+ fromPartial(object: DeepPartial<ExtensionRangeOptions_Declaration>): ExtensionRangeOptions_Declaration;
1446
+ };
958
1447
  export declare const FieldDescriptorProto: {
959
1448
  encode(message: FieldDescriptorProto, writer?: BinaryWriter): BinaryWriter;
960
1449
  decode(input: BinaryReader | Uint8Array, length?: number): FieldDescriptorProto;
@@ -1041,6 +1530,22 @@ export declare const FieldOptions: {
1041
1530
  create(base?: DeepPartial<FieldOptions>): FieldOptions;
1042
1531
  fromPartial(object: DeepPartial<FieldOptions>): FieldOptions;
1043
1532
  };
1533
+ export declare const FieldOptions_EditionDefault: {
1534
+ encode(message: FieldOptions_EditionDefault, writer?: BinaryWriter): BinaryWriter;
1535
+ decode(input: BinaryReader | Uint8Array, length?: number): FieldOptions_EditionDefault;
1536
+ fromJSON(object: any): FieldOptions_EditionDefault;
1537
+ toJSON(message: FieldOptions_EditionDefault): unknown;
1538
+ create(base?: DeepPartial<FieldOptions_EditionDefault>): FieldOptions_EditionDefault;
1539
+ fromPartial(object: DeepPartial<FieldOptions_EditionDefault>): FieldOptions_EditionDefault;
1540
+ };
1541
+ export declare const FieldOptions_FeatureSupport: {
1542
+ encode(message: FieldOptions_FeatureSupport, writer?: BinaryWriter): BinaryWriter;
1543
+ decode(input: BinaryReader | Uint8Array, length?: number): FieldOptions_FeatureSupport;
1544
+ fromJSON(object: any): FieldOptions_FeatureSupport;
1545
+ toJSON(message: FieldOptions_FeatureSupport): unknown;
1546
+ create(base?: DeepPartial<FieldOptions_FeatureSupport>): FieldOptions_FeatureSupport;
1547
+ fromPartial(object: DeepPartial<FieldOptions_FeatureSupport>): FieldOptions_FeatureSupport;
1548
+ };
1044
1549
  export declare const OneofOptions: {
1045
1550
  encode(message: OneofOptions, writer?: BinaryWriter): BinaryWriter;
1046
1551
  setExtension<T>(message: OneofOptions, extension: Extension<T>, value: T): void;
@@ -1107,9 +1612,45 @@ export declare const UninterpretedOption_NamePart: {
1107
1612
  create(base?: DeepPartial<UninterpretedOption_NamePart>): UninterpretedOption_NamePart;
1108
1613
  fromPartial(object: DeepPartial<UninterpretedOption_NamePart>): UninterpretedOption_NamePart;
1109
1614
  };
1615
+ export declare const FeatureSet: {
1616
+ encode(message: FeatureSet, writer?: BinaryWriter): BinaryWriter;
1617
+ setExtension<T>(message: FeatureSet, extension: Extension<T>, value: T): void;
1618
+ decode(input: BinaryReader | Uint8Array, length?: number): FeatureSet;
1619
+ getExtension<T>(message: FeatureSet, extension: Extension<T>): T | undefined;
1620
+ fromJSON(object: any): FeatureSet;
1621
+ toJSON(message: FeatureSet): unknown;
1622
+ create(base?: DeepPartial<FeatureSet>): FeatureSet;
1623
+ fromPartial(object: DeepPartial<FeatureSet>): FeatureSet;
1624
+ };
1625
+ export declare const FeatureSet_VisibilityFeature: {
1626
+ encode(message: FeatureSet_VisibilityFeature, writer?: BinaryWriter): BinaryWriter;
1627
+ decode(input: BinaryReader | Uint8Array, length?: number): FeatureSet_VisibilityFeature;
1628
+ fromJSON(_: any): FeatureSet_VisibilityFeature;
1629
+ toJSON(_: FeatureSet_VisibilityFeature): unknown;
1630
+ create(base?: DeepPartial<FeatureSet_VisibilityFeature>): FeatureSet_VisibilityFeature;
1631
+ fromPartial(_: DeepPartial<FeatureSet_VisibilityFeature>): FeatureSet_VisibilityFeature;
1632
+ };
1633
+ export declare const FeatureSetDefaults: {
1634
+ encode(message: FeatureSetDefaults, writer?: BinaryWriter): BinaryWriter;
1635
+ decode(input: BinaryReader | Uint8Array, length?: number): FeatureSetDefaults;
1636
+ fromJSON(object: any): FeatureSetDefaults;
1637
+ toJSON(message: FeatureSetDefaults): unknown;
1638
+ create(base?: DeepPartial<FeatureSetDefaults>): FeatureSetDefaults;
1639
+ fromPartial(object: DeepPartial<FeatureSetDefaults>): FeatureSetDefaults;
1640
+ };
1641
+ export declare const FeatureSetDefaults_FeatureSetEditionDefault: {
1642
+ encode(message: FeatureSetDefaults_FeatureSetEditionDefault, writer?: BinaryWriter): BinaryWriter;
1643
+ decode(input: BinaryReader | Uint8Array, length?: number): FeatureSetDefaults_FeatureSetEditionDefault;
1644
+ fromJSON(object: any): FeatureSetDefaults_FeatureSetEditionDefault;
1645
+ toJSON(message: FeatureSetDefaults_FeatureSetEditionDefault): unknown;
1646
+ create(base?: DeepPartial<FeatureSetDefaults_FeatureSetEditionDefault>): FeatureSetDefaults_FeatureSetEditionDefault;
1647
+ fromPartial(object: DeepPartial<FeatureSetDefaults_FeatureSetEditionDefault>): FeatureSetDefaults_FeatureSetEditionDefault;
1648
+ };
1110
1649
  export declare const SourceCodeInfo: {
1111
1650
  encode(message: SourceCodeInfo, writer?: BinaryWriter): BinaryWriter;
1651
+ setExtension<T>(message: SourceCodeInfo, extension: Extension<T>, value: T): void;
1112
1652
  decode(input: BinaryReader | Uint8Array, length?: number): SourceCodeInfo;
1653
+ getExtension<T>(message: SourceCodeInfo, extension: Extension<T>): T | undefined;
1113
1654
  fromJSON(object: any): SourceCodeInfo;
1114
1655
  toJSON(message: SourceCodeInfo): unknown;
1115
1656
  create(base?: DeepPartial<SourceCodeInfo>): SourceCodeInfo;