1- /*! js-yaml 3.14.2 https://github.com/nodeca/js-yaml */ ( function ( f ) { if ( typeof exports === "object" && typeof module !== "undefined" ) { module . exports = f ( ) } else if ( typeof define === "function" && define . amd ) { define ( [ ] , f ) } else { var g ; if ( typeof window !== "undefined" ) { g = window } else if ( typeof global !== "undefined" ) { g = global } else if ( typeof self !== "undefined" ) { g = self } else { g = this } g . jsyaml = f ( ) } } ) ( function ( ) { var define , module , exports ; return ( function ( ) { function r ( e , n , t ) { function o ( i , f ) { if ( ! n [ i ] ) { if ( ! e [ i ] ) { var c = "function" == typeof require && require ; if ( ! f && c ) return c ( i , ! 0 ) ; if ( u ) return u ( i , ! 0 ) ; var a = new Error ( "Cannot find module '" + i + "'" ) ; throw a . code = "MODULE_NOT_FOUND" , a } var p = n [ i ] = { exports :{ } } ; e [ i ] [ 0 ] . call ( p . exports , function ( r ) { var n = e [ i ] [ 1 ] [ r ] ; return o ( n || r ) } , p , p . exports , r , e , n , t ) } return n [ i ] . exports } for ( var u = "function" == typeof require && require , i = 0 ; i < t . length ; i ++ ) o ( t [ i ] ) ; return o } return r } ) ( ) ( { 1 :[ function ( require , module , exports ) {
1+ /*! js-yaml 3.15.0 https://github.com/nodeca/js-yaml */ ( function ( f ) { if ( typeof exports === "object" && typeof module !== "undefined" ) { module . exports = f ( ) } else if ( typeof define === "function" && define . amd ) { define ( [ ] , f ) } else { var g ; if ( typeof window !== "undefined" ) { g = window } else if ( typeof global !== "undefined" ) { g = global } else if ( typeof self !== "undefined" ) { g = self } else { g = this } g . jsyaml = f ( ) } } ) ( function ( ) { var define , module , exports ; return ( function ( ) { function r ( e , n , t ) { function o ( i , f ) { if ( ! n [ i ] ) { if ( ! e [ i ] ) { var c = "function" == typeof require && require ; if ( ! f && c ) return c ( i , ! 0 ) ; if ( u ) return u ( i , ! 0 ) ; var a = new Error ( "Cannot find module '" + i + "'" ) ; throw a . code = "MODULE_NOT_FOUND" , a } var p = n [ i ] = { exports :{ } } ; e [ i ] [ 0 ] . call ( p . exports , function ( r ) { var n = e [ i ] [ 1 ] [ r ] ; return o ( n || r ) } , p , p . exports , r , e , n , t ) } return n [ i ] . exports } for ( var u = "function" == typeof require && require , i = 0 ; i < t . length ; i ++ ) o ( t [ i ] ) ; return o } return r } ) ( ) ( { 1 :[ function ( require , module , exports ) {
22'use strict' ;
33
44
@@ -1154,6 +1154,7 @@ function State(input, options) {
11541154 this . legacy = options [ 'legacy' ] || false ;
11551155 this . json = options [ 'json' ] || false ;
11561156 this . listener = options [ 'listener' ] || null ;
1157+ this . maxTotalMergeKeys = typeof options [ 'maxTotalMergeKeys' ] === 'number' ? options [ 'maxTotalMergeKeys' ] : 10000 ;
11571158
11581159 this . implicitTypes = this . schema . compiledImplicit ;
11591160 this . typeMap = this . schema . compiledTypeMap ;
@@ -1163,6 +1164,7 @@ function State(input, options) {
11631164 this . line = 0 ;
11641165 this . lineStart = 0 ;
11651166 this . lineIndent = 0 ;
1167+ this . totalMergeKeys = 0 ;
11661168
11671169 this . documents = [ ] ;
11681170
@@ -1293,6 +1295,10 @@ function mergeMappings(state, destination, source, overridableKeys) {
12931295 for ( index = 0 , quantity = sourceKeys . length ; index < quantity ; index += 1 ) {
12941296 key = sourceKeys [ index ] ;
12951297
1298+ if ( state . maxTotalMergeKeys !== - 1 && ++ state . totalMergeKeys > state . maxTotalMergeKeys ) {
1299+ throwError ( state , 'merge keys exceeded maxTotalMergeKeys (' + state . maxTotalMergeKeys + ')' ) ;
1300+ }
1301+
12961302 if ( ! _hasOwnProperty . call ( destination , key ) ) {
12971303 setProperty ( destination , key , source [ key ] ) ;
12981304 overridableKeys [ key ] = true ;
0 commit comments