@@ -18,49 +18,49 @@ export interface FieldNumberManager {
1818 * @returns The next available field number
1919 */
2020 getNextFieldNumber ( messageName : string ) : number ;
21-
21+
2222 /**
2323 * Assigns a specific field number to a field in a message
2424 * @param messageName - The name of the message
2525 * @param fieldName - The name of the field
2626 * @param fieldNumber - The field number to assign
2727 */
2828 assignFieldNumber ( messageName : string , fieldName : string , fieldNumber : number ) : void ;
29-
29+
3030 /**
3131 * Gets the field number for a specific field if it exists
3232 * @param messageName - The name of the message
3333 * @param fieldName - The name of the field
3434 * @returns The field number or undefined if not assigned
3535 */
3636 getFieldNumber ( messageName : string , fieldName : string ) : number | undefined ;
37-
37+
3838 /**
3939 * Resets field numbering for a specific message
4040 * @param messageName - The name of the message to reset
4141 */
4242 resetMessage ( messageName : string ) : void ;
43-
43+
4444 /**
4545 * Resets all field numbering
4646 */
4747 resetAll ( ) : void ;
48-
48+
4949 /**
5050 * Gets all field mappings for a message
5151 * @param messageName - The name of the message
5252 * @returns Record of field names to field numbers
5353 */
5454 getMessageFields ( messageName : string ) : Record < string , number > ;
55-
55+
5656 /**
5757 * Reconciles field order for a message using lock data
5858 * @param messageName - The name of the message
5959 * @param fieldNames - The field names to reconcile
6060 * @returns Ordered array of field names
6161 */
6262 reconcileFieldOrder ( messageName : string , fieldNames : string [ ] ) : string [ ] ;
63-
63+
6464 /**
6565 * Gets the lock manager if available
6666 */
@@ -76,115 +76,115 @@ export interface FieldNumberManager {
7676export function createFieldNumberManager ( lockManager ?: ProtoLockManager ) : FieldNumberManager {
7777 // Map of message name to field name to field number
7878 const fieldNumbers = new Map < string , Map < string , number > > ( ) ;
79-
79+
8080 // Map of message name to the next available field number
8181 const nextFieldNumbers = new Map < string , number > ( ) ;
82-
82+
8383 return {
8484 getNextFieldNumber ( messageName : string ) : number {
8585 // If we have a lock manager and this message has been reconciled,
8686 // check if we already have a field number assigned
8787 if ( lockManager ) {
8888 const lockData = lockManager . getLockData ( ) ;
8989 const messageData = lockData . messages [ messageName ] ;
90-
90+
9191 if ( messageData ) {
9292 // Find the highest assigned number
9393 const assignedNumbers = Object . values ( messageData . fields ) ;
9494 const reservedNumbers = messageData . reservedNumbers || [ ] ;
9595 const allNumbers = [ ...assignedNumbers , ...reservedNumbers ] ;
96-
96+
9797 if ( allNumbers . length > 0 ) {
9898 const maxNumber = Math . max ( ...allNumbers ) ;
99-
99+
100100 // Initialize next field number to be after the max
101101 if ( ! nextFieldNumbers . has ( messageName ) ) {
102102 nextFieldNumbers . set ( messageName , maxNumber + 1 ) ;
103103 }
104104 }
105105 }
106106 }
107-
107+
108108 // Initialize if needed
109109 if ( ! nextFieldNumbers . has ( messageName ) ) {
110110 nextFieldNumbers . set ( messageName , 1 ) ;
111111 }
112-
112+
113113 const current = nextFieldNumbers . get ( messageName ) ! ;
114114 nextFieldNumbers . set ( messageName , current + 1 ) ;
115115 return current ;
116116 } ,
117-
117+
118118 assignFieldNumber ( messageName : string , fieldName : string , fieldNumber : number ) : void {
119119 // Initialize message map if needed
120120 if ( ! fieldNumbers . has ( messageName ) ) {
121121 fieldNumbers . set ( messageName , new Map ( ) ) ;
122122 }
123-
123+
124124 const messageFields = fieldNumbers . get ( messageName ) ! ;
125125 messageFields . set ( fieldName , fieldNumber ) ;
126-
126+
127127 // Update next field number if this assignment affects it
128128 const currentNext = nextFieldNumbers . get ( messageName ) || 1 ;
129129 if ( fieldNumber >= currentNext ) {
130130 nextFieldNumbers . set ( messageName , fieldNumber + 1 ) ;
131131 }
132132 } ,
133-
133+
134134 getFieldNumber ( messageName : string , fieldName : string ) : number | undefined {
135135 return fieldNumbers . get ( messageName ) ?. get ( fieldName ) ;
136136 } ,
137-
137+
138138 resetMessage ( messageName : string ) : void {
139139 fieldNumbers . delete ( messageName ) ;
140140 nextFieldNumbers . set ( messageName , 1 ) ;
141141 } ,
142-
142+
143143 resetAll ( ) : void {
144144 fieldNumbers . clear ( ) ;
145145 nextFieldNumbers . clear ( ) ;
146146 } ,
147-
147+
148148 getMessageFields ( messageName : string ) : Record < string , number > {
149149 const messageFields = fieldNumbers . get ( messageName ) ;
150150 if ( ! messageFields ) {
151151 return { } ;
152152 }
153-
153+
154154 const result : Record < string , number > = { } ;
155155 for ( const [ fieldName , fieldNumber ] of messageFields . entries ( ) ) {
156156 result [ fieldName ] = fieldNumber ;
157157 }
158158 return result ;
159159 } ,
160-
160+
161161 reconcileFieldOrder ( messageName : string , fieldNames : string [ ] ) : string [ ] {
162162 if ( ! lockManager ) {
163163 // No lock manager, return fields in original order
164164 return fieldNames ;
165165 }
166-
166+
167167 // Use lock manager to reconcile field order
168168 const orderedFields = lockManager . reconcileMessageFieldOrder ( messageName , fieldNames ) ;
169-
169+
170170 // Update our internal tracking with the reconciled numbers
171171 const lockData = lockManager . getLockData ( ) ;
172172 const messageData = lockData . messages [ messageName ] ;
173-
173+
174174 if ( messageData ) {
175175 // Initialize message map if needed
176176 if ( ! fieldNumbers . has ( messageName ) ) {
177177 fieldNumbers . set ( messageName , new Map ( ) ) ;
178178 }
179-
179+
180180 const messageFields = fieldNumbers . get ( messageName ) ! ;
181-
181+
182182 // Update field numbers from lock data
183183 for ( const fieldName of orderedFields ) {
184184 const fieldNumber = messageData . fields [ fieldName ] ;
185185 if ( fieldNumber !== undefined ) {
186186 messageFields . set ( fieldName , fieldNumber ) ;
187-
187+
188188 // Update next field number
189189 const currentNext = nextFieldNumbers . get ( messageName ) || 1 ;
190190 if ( fieldNumber >= currentNext ) {
@@ -193,13 +193,12 @@ export function createFieldNumberManager(lockManager?: ProtoLockManager): FieldN
193193 }
194194 }
195195 }
196-
196+
197197 return orderedFields ;
198198 } ,
199-
199+
200200 getLockManager ( ) : ProtoLockManager | undefined {
201201 return lockManager ;
202202 } ,
203203 } ;
204204}
205-
0 commit comments