2022-11-10 11:43:16 +01:00
"use strict" ;
// dist/_third-party.js.cjs.js
var _ _getOwnPropNames = Object . getOwnPropertyNames ;
var _ _commonJS = ( cb , mod ) => function _ _require ( ) {
return mod || ( 0 , cb [ _ _getOwnPropNames ( cb ) [ 0 ] ] ) ( ( mod = {
exports : { }
} ) . exports , mod ) , mod . exports ;
} ;
var require _resolve _from = _ _commonJS ( {
"node_modules/import-fresh/node_modules/resolve-from/index.js" ( exports2 , module2 ) {
"use strict" ;
var path = require ( "path" ) ;
var Module = require ( "module" ) ;
var fs = require ( "fs" ) ;
var resolveFrom = ( fromDir , moduleId , silent ) => {
if ( typeof fromDir !== "string" ) {
throw new TypeError ( ` Expected \` fromDir \` to be of type \` string \` , got \` ${ typeof fromDir } \` ` ) ;
}
if ( typeof moduleId !== "string" ) {
throw new TypeError ( ` Expected \` moduleId \` to be of type \` string \` , got \` ${ typeof moduleId } \` ` ) ;
}
try {
fromDir = fs . realpathSync ( fromDir ) ;
} catch ( err ) {
if ( err . code === "ENOENT" ) {
fromDir = path . resolve ( fromDir ) ;
} else if ( silent ) {
return null ;
} else {
throw err ;
}
}
const fromFile = path . join ( fromDir , "noop.js" ) ;
const resolveFileName = ( ) => Module . _resolveFilename ( moduleId , {
id : fromFile ,
filename : fromFile ,
paths : Module . _nodeModulePaths ( fromDir )
} ) ;
if ( silent ) {
try {
return resolveFileName ( ) ;
} catch ( err ) {
return null ;
}
}
2020-08-26 01:57:08 +02:00
return resolveFileName ( ) ;
2022-11-10 11:43:16 +01:00
} ;
module2 . exports = ( fromDir , moduleId ) => resolveFrom ( fromDir , moduleId ) ;
module2 . exports . silent = ( fromDir , moduleId ) => resolveFrom ( fromDir , moduleId , true ) ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
} ) ;
var require _parent _module = _ _commonJS ( {
"scripts/build/shims/parent-module.cjs" ( exports2 , module2 ) {
"use strict" ;
module2 . exports = ( file ) => file ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
} ) ;
var require _import _fresh = _ _commonJS ( {
"node_modules/import-fresh/index.js" ( exports2 , module2 ) {
"use strict" ;
var path = require ( "path" ) ;
var resolveFrom = require _resolve _from ( ) ;
var parentModule = require _parent _module ( ) ;
module2 . exports = ( moduleId ) => {
if ( typeof moduleId !== "string" ) {
throw new TypeError ( "Expected a string" ) ;
}
const parentPath = parentModule ( _ _filename ) ;
const cwd = parentPath ? path . dirname ( parentPath ) : _ _dirname ;
const filePath = resolveFrom ( cwd , moduleId ) ;
const oldModule = require . cache [ filePath ] ;
if ( oldModule && oldModule . parent ) {
let i = oldModule . parent . children . length ;
while ( i -- ) {
if ( oldModule . parent . children [ i ] . id === filePath ) {
oldModule . parent . children . splice ( i , 1 ) ;
}
}
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
delete require . cache [ filePath ] ;
const parent = require . cache [ parentPath ] ;
return parent === void 0 ? require ( filePath ) : parent . require ( filePath ) ;
} ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
} ) ;
var require _is _arrayish = _ _commonJS ( {
"node_modules/is-arrayish/index.js" ( exports2 , module2 ) {
"use strict" ;
module2 . exports = function isArrayish ( obj ) {
if ( ! obj ) {
return false ;
}
return obj instanceof Array || Array . isArray ( obj ) || obj . length >= 0 && obj . splice instanceof Function ;
} ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
} ) ;
var require _error _ex = _ _commonJS ( {
"node_modules/error-ex/index.js" ( exports2 , module2 ) {
"use strict" ;
var util = require ( "util" ) ;
var isArrayish = require _is _arrayish ( ) ;
var errorEx = function errorEx2 ( name , properties ) {
if ( ! name || name . constructor !== String ) {
properties = name || { } ;
name = Error . name ;
}
var errorExError = function ErrorEXError ( message ) {
if ( ! this ) {
return new ErrorEXError ( message ) ;
}
message = message instanceof Error ? message . message : message || this . message ;
Error . call ( this , message ) ;
Error . captureStackTrace ( this , errorExError ) ;
this . name = name ;
Object . defineProperty ( this , "message" , {
configurable : true ,
enumerable : false ,
get : function ( ) {
var newMessage = message . split ( /\r?\n/g ) ;
for ( var key in properties ) {
if ( ! properties . hasOwnProperty ( key ) ) {
continue ;
}
var modifier = properties [ key ] ;
if ( "message" in modifier ) {
newMessage = modifier . message ( this [ key ] , newMessage ) || newMessage ;
if ( ! isArrayish ( newMessage ) ) {
newMessage = [ newMessage ] ;
}
}
}
return newMessage . join ( "\n" ) ;
} ,
set : function ( v ) {
message = v ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
} ) ;
var overwrittenStack = null ;
var stackDescriptor = Object . getOwnPropertyDescriptor ( this , "stack" ) ;
var stackGetter = stackDescriptor . get ;
var stackValue = stackDescriptor . value ;
delete stackDescriptor . value ;
delete stackDescriptor . writable ;
stackDescriptor . set = function ( newstack ) {
overwrittenStack = newstack ;
} ;
stackDescriptor . get = function ( ) {
var stack = ( overwrittenStack || ( stackGetter ? stackGetter . call ( this ) : stackValue ) ) . split ( /\r?\n+/g ) ;
if ( ! overwrittenStack ) {
stack [ 0 ] = this . name + ": " + this . message ;
}
var lineCount = 1 ;
for ( var key in properties ) {
if ( ! properties . hasOwnProperty ( key ) ) {
continue ;
}
var modifier = properties [ key ] ;
if ( "line" in modifier ) {
var line = modifier . line ( this [ key ] ) ;
if ( line ) {
stack . splice ( lineCount ++ , 0 , " " + line ) ;
}
}
if ( "stack" in modifier ) {
modifier . stack ( this [ key ] , stack ) ;
2020-08-26 01:57:08 +02:00
}
}
2022-11-10 11:43:16 +01:00
return stack . join ( "\n" ) ;
} ;
Object . defineProperty ( this , "stack" , stackDescriptor ) ;
} ;
if ( Object . setPrototypeOf ) {
Object . setPrototypeOf ( errorExError . prototype , Error . prototype ) ;
Object . setPrototypeOf ( errorExError , Error ) ;
} else {
util . inherits ( errorExError , Error ) ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
return errorExError ;
2020-08-26 01:57:08 +02:00
} ;
2022-11-10 11:43:16 +01:00
errorEx . append = function ( str , def ) {
return {
message : function ( v , message ) {
v = v || def ;
if ( v ) {
message [ 0 ] += " " + str . replace ( "%s" , v . toString ( ) ) ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
return message ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
} ;
} ;
errorEx . line = function ( str , def ) {
return {
line : function ( v ) {
v = v || def ;
if ( v ) {
return str . replace ( "%s" , v . toString ( ) ) ;
}
return null ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
} ;
2020-08-26 01:57:08 +02:00
} ;
2022-11-10 11:43:16 +01:00
module2 . exports = errorEx ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
} ) ;
var require _json _parse _even _better _errors = _ _commonJS ( {
"node_modules/json-parse-even-better-errors/index.js" ( exports2 , module2 ) {
"use strict" ;
var hexify = ( char ) => {
const h = char . charCodeAt ( 0 ) . toString ( 16 ) . toUpperCase ( ) ;
return "0x" + ( h . length % 2 ? "0" : "" ) + h ;
} ;
var parseError = ( e , txt , context ) => {
if ( ! txt ) {
return {
message : e . message + " while parsing empty string" ,
position : 0
} ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
const badToken = e . message . match ( /^Unexpected token (.) .*position\s+(\d+)/i ) ;
const errIdx = badToken ? + badToken [ 2 ] : e . message . match ( /^Unexpected end of JSON.*/i ) ? txt . length - 1 : null ;
const msg = badToken ? e . message . replace ( /^Unexpected token ./ , ` Unexpected token ${ JSON . stringify ( badToken [ 1 ] ) } ( ${ hexify ( badToken [ 1 ] ) } ) ` ) : e . message ;
if ( errIdx !== null && errIdx !== void 0 ) {
const start = errIdx <= context ? 0 : errIdx - context ;
const end = errIdx + context >= txt . length ? txt . length : errIdx + context ;
const slice = ( start === 0 ? "" : "..." ) + txt . slice ( start , end ) + ( end === txt . length ? "" : "..." ) ;
const near = txt === slice ? "" : "near " ;
return {
message : msg + ` while parsing ${ near } ${ JSON . stringify ( slice ) } ` ,
position : errIdx
} ;
} else {
return {
message : msg + ` while parsing ' ${ txt . slice ( 0 , context * 2 ) } ' ` ,
position : 0
} ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
} ;
var JSONParseError = class extends SyntaxError {
constructor ( er , txt , context , caller ) {
context = context || 20 ;
const metadata = parseError ( er , txt , context ) ;
super ( metadata . message ) ;
Object . assign ( this , metadata ) ;
this . code = "EJSONPARSE" ;
this . systemError = er ;
Error . captureStackTrace ( this , caller || this . constructor ) ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
get name ( ) {
return this . constructor . name ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
set name ( n ) {
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
get [ Symbol . toStringTag ] ( ) {
return this . constructor . name ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
} ;
var kIndent = Symbol . for ( "indent" ) ;
var kNewline = Symbol . for ( "newline" ) ;
var formatRE = /^\s*[{\[]((?:\r?\n)+)([\s\t]*)/ ;
var emptyRE = /^(?:\{\}|\[\])((?:\r?\n)+)?$/ ;
var parseJson = ( txt , reviver , context ) => {
const parseText = stripBOM ( txt ) ;
context = context || 20 ;
try {
const [ , newline = "\n" , indent = " " ] = parseText . match ( emptyRE ) || parseText . match ( formatRE ) || [ , "" , "" ] ;
const result = JSON . parse ( parseText , reviver ) ;
if ( result && typeof result === "object" ) {
result [ kNewline ] = newline ;
result [ kIndent ] = indent ;
}
return result ;
} catch ( e ) {
if ( typeof txt !== "string" && ! Buffer . isBuffer ( txt ) ) {
const isEmptyArray = Array . isArray ( txt ) && txt . length === 0 ;
throw Object . assign ( new TypeError ( ` Cannot parse ${ isEmptyArray ? "an empty array" : String ( txt ) } ` ) , {
code : "EJSONPARSE" ,
systemError : e
} ) ;
}
throw new JSONParseError ( e , parseText , context , parseJson ) ;
2020-08-27 10:23:33 +02:00
}
} ;
2022-11-10 11:43:16 +01:00
var stripBOM = ( txt ) => String ( txt ) . replace ( /^\uFEFF/ , "" ) ;
module2 . exports = parseJson ;
parseJson . JSONParseError = JSONParseError ;
parseJson . noExceptions = ( txt , reviver ) => {
try {
return JSON . parse ( stripBOM ( txt ) , reviver ) ;
} catch ( e ) {
}
2020-08-27 10:23:33 +02:00
} ;
2022-11-10 11:43:16 +01:00
}
2020-08-26 01:57:08 +02:00
} ) ;
2022-11-10 11:43:16 +01:00
var require _build = _ _commonJS ( {
"node_modules/parse-json/node_modules/lines-and-columns/build/index.js" ( exports2 ) {
"use strict" ;
exports2 . _ _esModule = true ;
exports2 . LinesAndColumns = void 0 ;
var LF = "\n" ;
var CR = "\r" ;
var LinesAndColumns = function ( ) {
function LinesAndColumns2 ( string ) {
this . string = string ;
var offsets = [ 0 ] ;
for ( var offset = 0 ; offset < string . length ; ) {
switch ( string [ offset ] ) {
case LF :
offset += LF . length ;
offsets . push ( offset ) ;
break ;
case CR :
offset += CR . length ;
if ( string [ offset ] === LF ) {
offset += LF . length ;
}
offsets . push ( offset ) ;
break ;
default :
offset ++ ;
break ;
}
}
this . offsets = offsets ;
}
LinesAndColumns2 . prototype . locationForIndex = function ( index ) {
if ( index < 0 || index > this . string . length ) {
return null ;
}
var line = 0 ;
var offsets = this . offsets ;
while ( offsets [ line + 1 ] <= index ) {
line ++ ;
}
var column = index - offsets [ line ] ;
return {
line ,
column
} ;
} ;
LinesAndColumns2 . prototype . indexForLocation = function ( location ) {
var line = location . line , column = location . column ;
if ( line < 0 || line >= this . offsets . length ) {
return null ;
}
if ( column < 0 || column > this . lengthOfLine ( line ) ) {
return null ;
}
return this . offsets [ line ] + column ;
} ;
LinesAndColumns2 . prototype . lengthOfLine = function ( line ) {
var offset = this . offsets [ line ] ;
var nextOffset = line === this . offsets . length - 1 ? this . string . length : this . offsets [ line + 1 ] ;
return nextOffset - offset ;
} ;
return LinesAndColumns2 ;
} ( ) ;
exports2 . LinesAndColumns = LinesAndColumns ;
exports2 [ "default" ] = LinesAndColumns ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
} ) ;
var require _js _tokens = _ _commonJS ( {
"node_modules/js-tokens/index.js" ( exports2 ) {
Object . defineProperty ( exports2 , "__esModule" , {
value : true
} ) ;
exports2 . default = /((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g ;
exports2 . matchToToken = function ( match ) {
var token = {
type : "invalid" ,
value : match [ 0 ] ,
closed : void 0
} ;
if ( match [ 1 ] )
token . type = "string" , token . closed = ! ! ( match [ 3 ] || match [ 4 ] ) ;
else if ( match [ 5 ] )
token . type = "comment" ;
else if ( match [ 6 ] )
token . type = "comment" , token . closed = ! ! match [ 7 ] ;
else if ( match [ 8 ] )
token . type = "regex" ;
else if ( match [ 9 ] )
token . type = "number" ;
else if ( match [ 10 ] )
token . type = "name" ;
else if ( match [ 11 ] )
token . type = "punctuator" ;
else if ( match [ 12 ] )
token . type = "whitespace" ;
return token ;
} ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
} ) ;
var require _identifier = _ _commonJS ( {
"node_modules/@babel/helper-validator-identifier/lib/identifier.js" ( exports2 ) {
"use strict" ;
Object . defineProperty ( exports2 , "__esModule" , {
value : true
} ) ;
exports2 . isIdentifierChar = isIdentifierChar ;
exports2 . isIdentifierName = isIdentifierName ;
exports2 . isIdentifierStart = isIdentifierStart ;
var nonASCIIidentifierStartChars = " \ xAA \ xB5 \ xBA \ xC0 - \ xD6 \ xD8 - \ xF6 \ xF8 - \u02C1\u02C6 - \u02D1\u02E0 - \u02E4\u02EC\u02EE\u0370 - \u0374\u0376\u0377\u037A - \u037D\u037F\u0386\u0388 - \u038A\u038C\u038E - \u03A1\u03A3 - \u03F5\u03F7 - \u0481\u048A - \u052F\u0531 - \u0556\u0559\u0560 - \u0588\u05D0 - \u05EA\u05EF - \u05F2\u0620 - \u064A\u066E\u066F\u0671 - \u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA - \u06FC\u06FF\u0710\u0712 - \u072F\u074D - \u07A5\u07B1\u07CA - \u07EA\u07F4\u07F5\u07FA\u0800 - \u0815\u081A\u0824\u0828\u0840 - \u0858\u0860 - \u086A\u0870 - \u0887\u0889 - \u088E\u08A0 - \u08C9\u0904 - \u0939\u093D\u0950\u0958 - \u0961\u0971 - \u0980\u0985 - \u098C\u098F\u0990\u0993 - \u09A8\u09AA - \u09B0\u09B2\u09B6 - \u09B9\u09BD\u09CE\u09DC\u09DD\u09DF - \u09E1\u09F0\u09F1\u09FC\u0A05 - \u0A0A\u0A0F\u0A10\u0A13 - \u0A28\u0A2A - \u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59 - \u0A5C\u0A5E\u0A72 - \u0A74\u0A85 - \u0A8D\u0A8F - \u0A91\u0A93 - \u0AA8\u0AAA - \u0AB0\u0AB2\u0AB3\u0AB5 - \u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05 - \u0B0C\u0B0F\u0B10\u0B13 - \u0B28\u0B2A - \u0B30\u0B32\u0B33\u0B35 - \u0B39\u0B3D\u0B5C\u0B5D\u0B5F - \u0B61\u0B71\u0B83\u0B85 - \u0B8A\u0B8E - \u0B90\u0B92 - \u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8 - \u0BAA\u0BAE - \u0BB9\u0BD0\u0C05 - \u0C0C\u0C0E - \u0C10\u0C12 - \u0C28\u0C2A - \u0C39\u0C3D\u0C58 - \u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85 - \u0C8C\u0C8E - \u0C90\u0C92 - \u0CA8\u0CAA - \u0CB3\u0CB5 - \u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04 - \u0D0C\u0D0E - \u0D10\u0D12 - \u0D3A\u0D3D\u0D4E\u0D54 - \u0D56\u0D5F - \u0D61\u0D7A - \u0D7F\u0D85 - \u0D96\u0D9A - \u0DB1\u0DB3 - \u0DBB\u0DBD\u0DC0 - \u0DC6\u0E01 - \u0E30\u0E32\u0E33\u0E40 - \u0E46\u0E81\u0E82\u0E84\u0E86 - \u0E8A\u0E8C - \u0EA3\u0EA5\u0EA7 - \u0EB0\u0EB2\u0EB3\u0EBD\u0EC0 - \u0EC4\u0EC6\u0EDC - \u0EDF\u0F00\u0F40 - \u0F47\u0F49 - \u0F6C\u0F88 - \u0F8C\u1000 - \u102A\u103F\u1050 - \u1055\u105A - \u105D\u1061\u1065\u1066\u106E - \u1070\u1075 - \u1081\u108E\u10A0 - \u10C5\u10C7\u10CD\u10D0 - \u10FA\u10FC - \u1248\u124A - \u124D\u1250 - \u1256\u1258\u125A - \u125D\u1260 - \u1288\u128A - \u128D\u1290 - \u12B0\u12B2 - \u12B5\u12B8 - \u12BE\u12C0\u12C2 - \u12C5\u12C8 - \u12D6\u12D8 - \u1310\u1312 - \u1315\u1318 - \u135A\u1380 - \u138F\u13A0 - \u13F5\u13F8 - \u13FD\u1401 - \u166C\u166F - \u167F\u1681 - \u169A\u16A0 - \u16EA\u16EE - \u16F8\u1700 - \u1711\u171F - \u1731\u1740 - \u1751\u1760 - \u176C\u176E - \u1770\u1780 - \u17B3\u17D7\u17DC\u1820 - \u1878\u1880 - \u18A8\u18AA\u18B0 - \u18F5\u1900 - \u191E\u1950 - \u196D\u1970 - \u1974\u1980 - \u19AB\u19B0 - \u19C9\u1A00 - \u1A16\u1A20 - \u1A54\u1AA7\u1B05 - \u1B33\u1B45 - \u1B4C\u1B83 - \u1BA0\u1BAE\u1BAF\u1BBA - \u1BE5\u1C00 - \u1C23\u1C4D - \u1C4F\u1C5A - \u1C7D\u1C80 - \u1C88\u1C90 - \u1CBA\u1CBD - \u1CBF\u1CE9 - \u1CEC\u1CEE - \u1CF3\u1CF5\u1CF6\u1CFA\u1D00 - \u1DBF\u1E00 - \u1F15\u1F18 - \u1F1D\u1F20 - \u1F45\u1F48 - \u1F4D\u1F50 - \u1F57\u1F59\u1F5B\u1F5D\u1F5F - \u1F7D\u1F80 - \u1FB4\u1FB6 - \u1FBC\u1FBE\u1FC2 - \u1FC4\u1FC6 - \u1FCC\u1FD0 - \u1FD3\u1FD6 - \u1FDB\u1FE0 - \u1FEC\u1FF2 - \u1FF4\u1FF6 - \u1FFC\u2071\u207F\u2090 - \u209C\u2102\u2107\u210A - \u2113\u2115\u2118 - \u211D\u2124\u2126\u2128\u212A - \u2139\u213C - \u213F\u2145 - \u2149\u214E\u2160 - \u2188\u2C00 - \u2CE4\u2CEB - \u2CEE\u2CF2\u2CF3\u2D00 - \u2D25\u2D27\u2D2D\u2D30 - \u2D67\u2D6F\u2D80 - \u2D96\u2DA0 - \u2DA6\u2DA8 - \u2DAE\u2DB0 - \u2DB6\u2DB8 - \u2DBE\u2DC0 - \u2DC6\u2DC8 - \u2DCE\u2DD0 - \u2DD6\u2DD8 - \u2DDE\u3005 - \u3007\u3021 - \u3029\u3031 - \u3035\u3038 - \u303C\u3041 - \u3096\u309B - \u309F\u30A1 - \u30FA\u30FC - \u30FF\u3105 - \u312F\u3131 - \u318E\u31A0 - \u31BF\u31F0 - \u31FF\u3400 - \u4DBF\u4E00 - \uA48C\uA4D0 - \uA4FD\uA500 - \uA60C\uA610 - \uA61F\uA62A\uA62B\uA640 - \uA66E\uA67F - \uA69D\uA6A0 - \uA6EF\uA717 - \uA71F\uA722 - \uA788\uA78B - \uA7CA\uA7D0\uA7D1\uA7D3\uA7D5 - \uA7D9\uA7F2 - \uA801\uA803 - \uA805\uA807 - \uA80A\uA80C - \uA822\uA840 - \uA873\uA882 - \uA8B3\uA8F2 - \uA8F7\uA8FB\uA8FD\uA8FE\uA90A - \uA925\uA930 - \uA946\uA960 - \uA97C\uA984 - \uA9B2\uA9CF\uA9E0 - \uA9E4\uA9E6 - \uA9EF\uA9FA - \uA9FE\uAA00 - \uAA28\uAA40 - \uAA42\uAA44 - \uAA4B\uAA60 - \uAA76\uAA7A\uAA7E - \uAAAF\uAAB1\uAAB5\uAAB6\uAAB9 - \uAABD\uAAC0\uAAC2\uAADB - \uAADD\uAAE0 - \uAAEA\uAAF2 - \uAAF4\uAB01 - \uAB06\uAB09 - \uAB0E\uAB11 - \uAB16\uAB20 - \uAB26\uAB28 - \uAB2E\uAB30 - \uAB5A\uAB5C - \uAB69\uAB70 - \uABE2\uAC00 - \uD7A3\uD7B0 - \uD7C6\uD7CB - \uD7FB\uF900 - \uFA6D\uFA70 - \uFAD9\uFB00 - \uFB06\uFB13 - \uFB17\uFB1D\uFB1F - \uFB28\uFB2A - \uFB36\uFB38 - \ uFB3
var nonASCIIidentifierChars = "\u200C\u200D\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0898-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECD\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F" ;
var nonASCIIidentifierStart = new RegExp ( "[" + nonASCIIidentifierStartChars + "]" ) ;
var nonASCIIidentifier = new RegExp ( "[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]" ) ;
nonASCIIidentifierStartChars = nonASCIIidentifierChars = null ;
var astralIdentifierStartCodes = [ 0 , 11 , 2 , 25 , 2 , 18 , 2 , 1 , 2 , 14 , 3 , 13 , 35 , 122 , 70 , 52 , 268 , 28 , 4 , 48 , 48 , 31 , 14 , 29 , 6 , 37 , 11 , 29 , 3 , 35 , 5 , 7 , 2 , 4 , 43 , 157 , 19 , 35 , 5 , 35 , 5 , 39 , 9 , 51 , 13 , 10 , 2 , 14 , 2 , 6 , 2 , 1 , 2 , 10 , 2 , 14 , 2 , 6 , 2 , 1 , 68 , 310 , 10 , 21 , 11 , 7 , 25 , 5 , 2 , 41 , 2 , 8 , 70 , 5 , 3 , 0 , 2 , 43 , 2 , 1 , 4 , 0 , 3 , 22 , 11 , 22 , 10 , 30 , 66 , 18 , 2 , 1 , 11 , 21 , 11 , 25 , 71 , 55 , 7 , 1 , 65 , 0 , 16 , 3 , 2 , 2 , 2 , 28 , 43 , 28 , 4 , 28 , 36 , 7 , 2 , 27 , 28 , 53 , 11 , 21 , 11 , 18 , 14 , 17 , 111 , 72 , 56 , 50 , 14 , 50 , 14 , 35 , 349 , 41 , 7 , 1 , 79 , 28 , 11 , 0 , 9 , 21 , 43 , 17 , 47 , 20 , 28 , 22 , 13 , 52 , 58 , 1 , 3 , 0 , 14 , 44 , 33 , 24 , 27 , 35 , 30 , 0 , 3 , 0 , 9 , 34 , 4 , 0 , 13 , 47 , 15 , 3 , 22 , 0 , 2 , 0 , 36 , 17 , 2 , 24 , 85 , 6 , 2 , 0 , 2 , 3 , 2 , 14 , 2 , 9 , 8 , 46 , 39 , 7 , 3 , 1 , 3 , 21 , 2 , 6 , 2 , 1 , 2 , 4 , 4 , 0 , 19 , 0 , 13 , 4 , 159 , 52 , 19 , 3 , 21 , 2 , 31 , 47 , 21 , 1 , 2 , 0 , 185 , 46 , 42 , 3 , 37 , 47 , 21 , 0 , 60 , 42 , 14 , 0 , 72 , 26 , 38 , 6 , 186 , 43 , 117 , 63 , 32 , 7 , 3 , 0 , 3 , 7 , 2 , 1 , 2 , 23 , 16 , 0 , 2 , 0 , 95 , 7 , 3 , 38 , 17 , 0 , 2 , 0 , 29 , 0 , 11 , 39 , 8 , 0 , 22 , 0 , 12 , 45 , 20 , 0 , 19 , 72 , 264 , 8 , 2 , 36 , 18 , 0 , 50 , 29 , 113 , 6 , 2 , 1 , 2 , 37 , 22 , 0 , 26 , 5 , 2 , 1 , 2 , 31 , 15 , 0 , 328 , 18 , 190 , 0 , 80 , 921 , 103 , 110 , 18 , 195 , 2637 , 96 , 16 , 1070 , 4050 , 582 , 8634 , 568 , 8 , 30 , 18 , 78 , 18 , 29 , 19 , 47 , 17 , 3 , 32 , 20 , 6 , 18 , 689 , 63 , 129 , 74 , 6 , 0 , 67 , 12 , 65 , 1 , 2 , 0 , 29 , 6135 , 9 , 1237 , 43 , 8 , 8936 , 3 , 2 , 6 , 2 , 1 , 2 , 290 , 46 , 2 , 18 , 3 , 9 , 395 , 2309 , 106 , 6 , 12 , 4 , 8 , 8 , 9 , 5991 , 84 , 2 , 70 , 2 , 1 , 3 , 0 , 3 , 1 , 3 , 3 , 2 , 11 , 2 , 0 , 2 , 6 , 2 , 64 , 2 , 3 , 3 , 7 , 2 , 6 , 2 , 27 , 2 , 3 , 2 , 4 , 2 , 0 , 4 , 6 , 2 , 339 , 3 , 24 , 2 , 24 , 2 , 30 , 2 , 24 , 2 , 30 , 2 , 24 , 2 , 30 , 2 , 24 , 2 , 30 , 2 , 24 , 2 , 7 , 1845 , 30 , 482 , 44 , 11 , 6 , 17 , 0 , 322 , 29 , 19 , 43 , 1269 , 6 , 2 , 3 , 2 , 1 , 2 , 14 , 2 , 196 , 60 , 67 , 8 , 0 , 1205 , 3 , 2 , 26 , 2 , 1 , 2 , 0 , 3 , 0 , 2 , 9 , 2 , 3 , 2 , 0 , 2 , 0 , 7 , 0 , 5 , 0 , 2 , 0 , 2 , 0 , 2 , 2 , 2 , 1 , 2 , 0 , 3 , 0 , 2 , 0 , 2 , 0 , 2 , 0 , 2 , 0 , 2 , 1 , 2 , 0 , 3 , 3 , 2 , 6 , 2 , 3 , 2 , 3 , 2 , 0 , 2 , 9 , 2 , 16 , 6 , 2 , 2 , 4 , 2 , 16 , 4421 , 42719 , 33 , 4152 , 8 , 221 , 3 , 5761 , 15 , 7472 , 3104 , 541 , 1507 , 4938 ] ;
var astralIdentifierCodes = [ 509 , 0 , 227 , 0 , 150 , 4 , 294 , 9 , 1368 , 2 , 2 , 1 , 6 , 3 , 41 , 2 , 5 , 0 , 166 , 1 , 574 , 3 , 9 , 9 , 370 , 1 , 154 , 10 , 50 , 3 , 123 , 2 , 54 , 14 , 32 , 10 , 3 , 1 , 11 , 3 , 46 , 10 , 8 , 0 , 46 , 9 , 7 , 2 , 37 , 13 , 2 , 9 , 6 , 1 , 45 , 0 , 13 , 2 , 49 , 13 , 9 , 3 , 2 , 11 , 83 , 11 , 7 , 0 , 161 , 11 , 6 , 9 , 7 , 3 , 56 , 1 , 2 , 6 , 3 , 1 , 3 , 2 , 10 , 0 , 11 , 1 , 3 , 6 , 4 , 4 , 193 , 17 , 10 , 9 , 5 , 0 , 82 , 19 , 13 , 9 , 214 , 6 , 3 , 8 , 28 , 1 , 83 , 16 , 16 , 9 , 82 , 12 , 9 , 9 , 84 , 14 , 5 , 9 , 243 , 14 , 166 , 9 , 71 , 5 , 2 , 1 , 3 , 3 , 2 , 0 , 2 , 1 , 13 , 9 , 120 , 6 , 3 , 6 , 4 , 0 , 29 , 9 , 41 , 6 , 2 , 3 , 9 , 0 , 10 , 10 , 47 , 15 , 406 , 7 , 2 , 7 , 17 , 9 , 57 , 21 , 2 , 13 , 123 , 5 , 4 , 0 , 2 , 1 , 2 , 6 , 2 , 0 , 9 , 9 , 49 , 4 , 2 , 1 , 2 , 4 , 9 , 9 , 330 , 3 , 19306 , 9 , 87 , 9 , 39 , 4 , 60 , 6 , 26 , 9 , 1014 , 0 , 2 , 54 , 8 , 3 , 82 , 0 , 12 , 1 , 19628 , 1 , 4706 , 45 , 3 , 22 , 543 , 4 , 4 , 5 , 9 , 7 , 3 , 6 , 31 , 3 , 149 , 2 , 1418 , 49 , 513 , 54 , 5 , 49 , 9 , 0 , 15 , 0 , 23 , 4 , 2 , 14 , 1361 , 6 , 2 , 16 , 3 , 6 , 2 , 1 , 2 , 4 , 262 , 6 , 10 , 9 , 357 , 0 , 62 , 13 , 1495 , 6 , 110 , 6 , 6 , 9 , 4759 , 9 , 787719 , 239 ] ;
function isInAstralSet ( code , set ) {
let pos = 65536 ;
for ( let i = 0 , length = set . length ; i < length ; i += 2 ) {
pos += set [ i ] ;
if ( pos > code )
return false ;
pos += set [ i + 1 ] ;
if ( pos >= code )
return true ;
}
return false ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
function isIdentifierStart ( code ) {
if ( code < 65 )
return code === 36 ;
if ( code <= 90 )
return true ;
if ( code < 97 )
return code === 95 ;
if ( code <= 122 )
return true ;
if ( code <= 65535 ) {
return code >= 170 && nonASCIIidentifierStart . test ( String . fromCharCode ( code ) ) ;
}
return isInAstralSet ( code , astralIdentifierStartCodes ) ;
}
function isIdentifierChar ( code ) {
if ( code < 48 )
return code === 36 ;
if ( code < 58 )
return true ;
if ( code < 65 )
return false ;
if ( code <= 90 )
return true ;
if ( code < 97 )
return code === 95 ;
if ( code <= 122 )
return true ;
if ( code <= 65535 ) {
return code >= 170 && nonASCIIidentifier . test ( String . fromCharCode ( code ) ) ;
}
return isInAstralSet ( code , astralIdentifierStartCodes ) || isInAstralSet ( code , astralIdentifierCodes ) ;
}
function isIdentifierName ( name ) {
let isFirst = true ;
for ( let i = 0 ; i < name . length ; i ++ ) {
let cp = name . charCodeAt ( i ) ;
if ( ( cp & 64512 ) === 55296 && i + 1 < name . length ) {
const trail = name . charCodeAt ( ++ i ) ;
if ( ( trail & 64512 ) === 56320 ) {
cp = 65536 + ( ( cp & 1023 ) << 10 ) + ( trail & 1023 ) ;
}
}
if ( isFirst ) {
isFirst = false ;
if ( ! isIdentifierStart ( cp ) ) {
return false ;
}
} else if ( ! isIdentifierChar ( cp ) ) {
2020-08-27 10:23:33 +02:00
return false ;
}
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
return ! isFirst ;
2020-08-26 01:57:08 +02:00
}
2020-08-27 10:23:33 +02:00
}
2020-08-26 01:57:08 +02:00
} ) ;
2022-11-10 11:43:16 +01:00
var require _keyword = _ _commonJS ( {
"node_modules/@babel/helper-validator-identifier/lib/keyword.js" ( exports2 ) {
"use strict" ;
Object . defineProperty ( exports2 , "__esModule" , {
value : true
} ) ;
exports2 . isKeyword = isKeyword ;
exports2 . isReservedWord = isReservedWord ;
exports2 . isStrictBindOnlyReservedWord = isStrictBindOnlyReservedWord ;
exports2 . isStrictBindReservedWord = isStrictBindReservedWord ;
exports2 . isStrictReservedWord = isStrictReservedWord ;
var reservedWords = {
keyword : [ "break" , "case" , "catch" , "continue" , "debugger" , "default" , "do" , "else" , "finally" , "for" , "function" , "if" , "return" , "switch" , "throw" , "try" , "var" , "const" , "while" , "with" , "new" , "this" , "super" , "class" , "extends" , "export" , "import" , "null" , "true" , "false" , "in" , "instanceof" , "typeof" , "void" , "delete" ] ,
strict : [ "implements" , "interface" , "let" , "package" , "private" , "protected" , "public" , "static" , "yield" ] ,
strictBind : [ "eval" , "arguments" ]
} ;
var keywords = new Set ( reservedWords . keyword ) ;
var reservedWordsStrictSet = new Set ( reservedWords . strict ) ;
var reservedWordsStrictBindSet = new Set ( reservedWords . strictBind ) ;
function isReservedWord ( word , inModule ) {
return inModule && word === "await" || word === "enum" ;
}
function isStrictReservedWord ( word , inModule ) {
return isReservedWord ( word , inModule ) || reservedWordsStrictSet . has ( word ) ;
}
function isStrictBindOnlyReservedWord ( word ) {
return reservedWordsStrictBindSet . has ( word ) ;
}
function isStrictBindReservedWord ( word , inModule ) {
return isStrictReservedWord ( word , inModule ) || isStrictBindOnlyReservedWord ( word ) ;
}
function isKeyword ( word ) {
return keywords . has ( word ) ;
}
2020-08-27 10:23:33 +02:00
}
2020-08-26 01:57:08 +02:00
} ) ;
2022-11-10 11:43:16 +01:00
var require _lib = _ _commonJS ( {
"node_modules/@babel/helper-validator-identifier/lib/index.js" ( exports2 ) {
"use strict" ;
Object . defineProperty ( exports2 , "__esModule" , {
value : true
} ) ;
Object . defineProperty ( exports2 , "isIdentifierChar" , {
enumerable : true ,
get : function ( ) {
return _identifier . isIdentifierChar ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
} ) ;
Object . defineProperty ( exports2 , "isIdentifierName" , {
enumerable : true ,
get : function ( ) {
return _identifier . isIdentifierName ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
} ) ;
Object . defineProperty ( exports2 , "isIdentifierStart" , {
enumerable : true ,
get : function ( ) {
return _identifier . isIdentifierStart ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
} ) ;
Object . defineProperty ( exports2 , "isKeyword" , {
enumerable : true ,
get : function ( ) {
return _keyword . isKeyword ;
}
} ) ;
Object . defineProperty ( exports2 , "isReservedWord" , {
enumerable : true ,
get : function ( ) {
return _keyword . isReservedWord ;
}
} ) ;
Object . defineProperty ( exports2 , "isStrictBindOnlyReservedWord" , {
enumerable : true ,
get : function ( ) {
return _keyword . isStrictBindOnlyReservedWord ;
}
} ) ;
Object . defineProperty ( exports2 , "isStrictBindReservedWord" , {
enumerable : true ,
get : function ( ) {
return _keyword . isStrictBindReservedWord ;
}
} ) ;
Object . defineProperty ( exports2 , "isStrictReservedWord" , {
enumerable : true ,
get : function ( ) {
return _keyword . isStrictReservedWord ;
}
} ) ;
var _identifier = require _identifier ( ) ;
var _keyword = require _keyword ( ) ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
} ) ;
var require _escape _string _regexp = _ _commonJS ( {
"node_modules/@babel/highlight/node_modules/escape-string-regexp/index.js" ( exports2 , module2 ) {
"use strict" ;
var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g ;
module2 . exports = function ( str ) {
if ( typeof str !== "string" ) {
throw new TypeError ( "Expected a string" ) ;
}
return str . replace ( matchOperatorsRe , "\\$&" ) ;
} ;
}
} ) ;
var require _color _name = _ _commonJS ( {
"node_modules/color-name/index.js" ( exports2 , module2 ) {
"use strict" ;
module2 . exports = {
"aliceblue" : [ 240 , 248 , 255 ] ,
"antiquewhite" : [ 250 , 235 , 215 ] ,
"aqua" : [ 0 , 255 , 255 ] ,
"aquamarine" : [ 127 , 255 , 212 ] ,
"azure" : [ 240 , 255 , 255 ] ,
"beige" : [ 245 , 245 , 220 ] ,
"bisque" : [ 255 , 228 , 196 ] ,
"black" : [ 0 , 0 , 0 ] ,
"blanchedalmond" : [ 255 , 235 , 205 ] ,
"blue" : [ 0 , 0 , 255 ] ,
"blueviolet" : [ 138 , 43 , 226 ] ,
"brown" : [ 165 , 42 , 42 ] ,
"burlywood" : [ 222 , 184 , 135 ] ,
"cadetblue" : [ 95 , 158 , 160 ] ,
"chartreuse" : [ 127 , 255 , 0 ] ,
"chocolate" : [ 210 , 105 , 30 ] ,
"coral" : [ 255 , 127 , 80 ] ,
"cornflowerblue" : [ 100 , 149 , 237 ] ,
"cornsilk" : [ 255 , 248 , 220 ] ,
"crimson" : [ 220 , 20 , 60 ] ,
"cyan" : [ 0 , 255 , 255 ] ,
"darkblue" : [ 0 , 0 , 139 ] ,
"darkcyan" : [ 0 , 139 , 139 ] ,
"darkgoldenrod" : [ 184 , 134 , 11 ] ,
"darkgray" : [ 169 , 169 , 169 ] ,
"darkgreen" : [ 0 , 100 , 0 ] ,
"darkgrey" : [ 169 , 169 , 169 ] ,
"darkkhaki" : [ 189 , 183 , 107 ] ,
"darkmagenta" : [ 139 , 0 , 139 ] ,
"darkolivegreen" : [ 85 , 107 , 47 ] ,
"darkorange" : [ 255 , 140 , 0 ] ,
"darkorchid" : [ 153 , 50 , 204 ] ,
"darkred" : [ 139 , 0 , 0 ] ,
"darksalmon" : [ 233 , 150 , 122 ] ,
"darkseagreen" : [ 143 , 188 , 143 ] ,
"darkslateblue" : [ 72 , 61 , 139 ] ,
"darkslategray" : [ 47 , 79 , 79 ] ,
"darkslategrey" : [ 47 , 79 , 79 ] ,
"darkturquoise" : [ 0 , 206 , 209 ] ,
"darkviolet" : [ 148 , 0 , 211 ] ,
"deeppink" : [ 255 , 20 , 147 ] ,
"deepskyblue" : [ 0 , 191 , 255 ] ,
"dimgray" : [ 105 , 105 , 105 ] ,
"dimgrey" : [ 105 , 105 , 105 ] ,
"dodgerblue" : [ 30 , 144 , 255 ] ,
"firebrick" : [ 178 , 34 , 34 ] ,
"floralwhite" : [ 255 , 250 , 240 ] ,
"forestgreen" : [ 34 , 139 , 34 ] ,
"fuchsia" : [ 255 , 0 , 255 ] ,
"gainsboro" : [ 220 , 220 , 220 ] ,
"ghostwhite" : [ 248 , 248 , 255 ] ,
"gold" : [ 255 , 215 , 0 ] ,
"goldenrod" : [ 218 , 165 , 32 ] ,
"gray" : [ 128 , 128 , 128 ] ,
"green" : [ 0 , 128 , 0 ] ,
"greenyellow" : [ 173 , 255 , 47 ] ,
"grey" : [ 128 , 128 , 128 ] ,
"honeydew" : [ 240 , 255 , 240 ] ,
"hotpink" : [ 255 , 105 , 180 ] ,
"indianred" : [ 205 , 92 , 92 ] ,
"indigo" : [ 75 , 0 , 130 ] ,
"ivory" : [ 255 , 255 , 240 ] ,
"khaki" : [ 240 , 230 , 140 ] ,
"lavender" : [ 230 , 230 , 250 ] ,
"lavenderblush" : [ 255 , 240 , 245 ] ,
"lawngreen" : [ 124 , 252 , 0 ] ,
"lemonchiffon" : [ 255 , 250 , 205 ] ,
"lightblue" : [ 173 , 216 , 230 ] ,
"lightcoral" : [ 240 , 128 , 128 ] ,
"lightcyan" : [ 224 , 255 , 255 ] ,
"lightgoldenrodyellow" : [ 250 , 250 , 210 ] ,
"lightgray" : [ 211 , 211 , 211 ] ,
"lightgreen" : [ 144 , 238 , 144 ] ,
"lightgrey" : [ 211 , 211 , 211 ] ,
"lightpink" : [ 255 , 182 , 193 ] ,
"lightsalmon" : [ 255 , 160 , 122 ] ,
"lightseagreen" : [ 32 , 178 , 170 ] ,
"lightskyblue" : [ 135 , 206 , 250 ] ,
"lightslategray" : [ 119 , 136 , 153 ] ,
"lightslategrey" : [ 119 , 136 , 153 ] ,
"lightsteelblue" : [ 176 , 196 , 222 ] ,
"lightyellow" : [ 255 , 255 , 224 ] ,
"lime" : [ 0 , 255 , 0 ] ,
"limegreen" : [ 50 , 205 , 50 ] ,
"linen" : [ 250 , 240 , 230 ] ,
"magenta" : [ 255 , 0 , 255 ] ,
"maroon" : [ 128 , 0 , 0 ] ,
"mediumaquamarine" : [ 102 , 205 , 170 ] ,
"mediumblue" : [ 0 , 0 , 205 ] ,
"mediumorchid" : [ 186 , 85 , 211 ] ,
"mediumpurple" : [ 147 , 112 , 219 ] ,
"mediumseagreen" : [ 60 , 179 , 113 ] ,
"mediumslateblue" : [ 123 , 104 , 238 ] ,
"mediumspringgreen" : [ 0 , 250 , 154 ] ,
"mediumturquoise" : [ 72 , 209 , 204 ] ,
"mediumvioletred" : [ 199 , 21 , 133 ] ,
"midnightblue" : [ 25 , 25 , 112 ] ,
"mintcream" : [ 245 , 255 , 250 ] ,
"mistyrose" : [ 255 , 228 , 225 ] ,
"moccasin" : [ 255 , 228 , 181 ] ,
"navajowhite" : [ 255 , 222 , 173 ] ,
"navy" : [ 0 , 0 , 128 ] ,
"oldlace" : [ 253 , 245 , 230 ] ,
"olive" : [ 128 , 128 , 0 ] ,
"olivedrab" : [ 107 , 142 , 35 ] ,
"orange" : [ 255 , 165 , 0 ] ,
"orangered" : [ 255 , 69 , 0 ] ,
"orchid" : [ 218 , 112 , 214 ] ,
"palegoldenrod" : [ 238 , 232 , 170 ] ,
"palegreen" : [ 152 , 251 , 152 ] ,
"paleturquoise" : [ 175 , 238 , 238 ] ,
"palevioletred" : [ 219 , 112 , 147 ] ,
"papayawhip" : [ 255 , 239 , 213 ] ,
"peachpuff" : [ 255 , 218 , 185 ] ,
"peru" : [ 205 , 133 , 63 ] ,
"pink" : [ 255 , 192 , 203 ] ,
"plum" : [ 221 , 160 , 221 ] ,
"powderblue" : [ 176 , 224 , 230 ] ,
"purple" : [ 128 , 0 , 128 ] ,
"rebeccapurple" : [ 102 , 51 , 153 ] ,
"red" : [ 255 , 0 , 0 ] ,
"rosybrown" : [ 188 , 143 , 143 ] ,
"royalblue" : [ 65 , 105 , 225 ] ,
"saddlebrown" : [ 139 , 69 , 19 ] ,
"salmon" : [ 250 , 128 , 114 ] ,
"sandybrown" : [ 244 , 164 , 96 ] ,
"seagreen" : [ 46 , 139 , 87 ] ,
"seashell" : [ 255 , 245 , 238 ] ,
"sienna" : [ 160 , 82 , 45 ] ,
"silver" : [ 192 , 192 , 192 ] ,
"skyblue" : [ 135 , 206 , 235 ] ,
"slateblue" : [ 106 , 90 , 205 ] ,
"slategray" : [ 112 , 128 , 144 ] ,
"slategrey" : [ 112 , 128 , 144 ] ,
"snow" : [ 255 , 250 , 250 ] ,
"springgreen" : [ 0 , 255 , 127 ] ,
"steelblue" : [ 70 , 130 , 180 ] ,
"tan" : [ 210 , 180 , 140 ] ,
"teal" : [ 0 , 128 , 128 ] ,
"thistle" : [ 216 , 191 , 216 ] ,
"tomato" : [ 255 , 99 , 71 ] ,
"turquoise" : [ 64 , 224 , 208 ] ,
"violet" : [ 238 , 130 , 238 ] ,
"wheat" : [ 245 , 222 , 179 ] ,
"white" : [ 255 , 255 , 255 ] ,
"whitesmoke" : [ 245 , 245 , 245 ] ,
"yellow" : [ 255 , 255 , 0 ] ,
"yellowgreen" : [ 154 , 205 , 50 ]
} ;
}
} ) ;
var require _conversions = _ _commonJS ( {
"node_modules/color-convert/conversions.js" ( exports2 , module2 ) {
var cssKeywords = require _color _name ( ) ;
var reverseKeywords = { } ;
for ( key in cssKeywords ) {
if ( cssKeywords . hasOwnProperty ( key ) ) {
reverseKeywords [ cssKeywords [ key ] ] = key ;
}
}
var key ;
var convert = module2 . exports = {
rgb : {
channels : 3 ,
labels : "rgb"
} ,
hsl : {
channels : 3 ,
labels : "hsl"
} ,
hsv : {
channels : 3 ,
labels : "hsv"
} ,
hwb : {
channels : 3 ,
labels : "hwb"
} ,
cmyk : {
channels : 4 ,
labels : "cmyk"
} ,
xyz : {
channels : 3 ,
labels : "xyz"
} ,
lab : {
channels : 3 ,
labels : "lab"
} ,
lch : {
channels : 3 ,
labels : "lch"
} ,
hex : {
channels : 1 ,
labels : [ "hex" ]
} ,
keyword : {
channels : 1 ,
labels : [ "keyword" ]
} ,
ansi16 : {
channels : 1 ,
labels : [ "ansi16" ]
} ,
ansi256 : {
channels : 1 ,
labels : [ "ansi256" ]
} ,
hcg : {
channels : 3 ,
labels : [ "h" , "c" , "g" ]
} ,
apple : {
channels : 3 ,
labels : [ "r16" , "g16" , "b16" ]
} ,
gray : {
channels : 1 ,
labels : [ "gray" ]
}
} ;
for ( model in convert ) {
if ( convert . hasOwnProperty ( model ) ) {
if ( ! ( "channels" in convert [ model ] ) ) {
throw new Error ( "missing channels property: " + model ) ;
}
if ( ! ( "labels" in convert [ model ] ) ) {
throw new Error ( "missing channel labels property: " + model ) ;
}
if ( convert [ model ] . labels . length !== convert [ model ] . channels ) {
throw new Error ( "channel and label counts mismatch: " + model ) ;
}
channels = convert [ model ] . channels ;
labels = convert [ model ] . labels ;
delete convert [ model ] . channels ;
delete convert [ model ] . labels ;
Object . defineProperty ( convert [ model ] , "channels" , {
value : channels
} ) ;
Object . defineProperty ( convert [ model ] , "labels" , {
value : labels
} ) ;
}
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
var channels ;
var labels ;
var model ;
convert . rgb . hsl = function ( rgb ) {
var r = rgb [ 0 ] / 255 ;
var g = rgb [ 1 ] / 255 ;
var b = rgb [ 2 ] / 255 ;
var min = Math . min ( r , g , b ) ;
var max = Math . max ( r , g , b ) ;
var delta = max - min ;
var h ;
var s ;
var l ;
if ( max === min ) {
h = 0 ;
} else if ( r === max ) {
h = ( g - b ) / delta ;
} else if ( g === max ) {
h = 2 + ( b - r ) / delta ;
} else if ( b === max ) {
h = 4 + ( r - g ) / delta ;
}
h = Math . min ( h * 60 , 360 ) ;
if ( h < 0 ) {
h += 360 ;
}
l = ( min + max ) / 2 ;
if ( max === min ) {
s = 0 ;
} else if ( l <= 0.5 ) {
s = delta / ( max + min ) ;
} else {
s = delta / ( 2 - max - min ) ;
}
return [ h , s * 100 , l * 100 ] ;
2020-08-26 01:57:08 +02:00
} ;
2022-11-10 11:43:16 +01:00
convert . rgb . hsv = function ( rgb ) {
var rdif ;
var gdif ;
var bdif ;
var h ;
var s ;
var r = rgb [ 0 ] / 255 ;
var g = rgb [ 1 ] / 255 ;
var b = rgb [ 2 ] / 255 ;
var v = Math . max ( r , g , b ) ;
var diff = v - Math . min ( r , g , b ) ;
var diffc = function ( c ) {
return ( v - c ) / 6 / diff + 1 / 2 ;
} ;
if ( diff === 0 ) {
h = s = 0 ;
} else {
s = diff / v ;
rdif = diffc ( r ) ;
gdif = diffc ( g ) ;
bdif = diffc ( b ) ;
if ( r === v ) {
h = bdif - gdif ;
} else if ( g === v ) {
h = 1 / 3 + rdif - bdif ;
} else if ( b === v ) {
h = 2 / 3 + gdif - rdif ;
}
if ( h < 0 ) {
h += 1 ;
} else if ( h > 1 ) {
h -= 1 ;
}
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
return [ h * 360 , s * 100 , v * 100 ] ;
} ;
convert . rgb . hwb = function ( rgb ) {
var r = rgb [ 0 ] ;
var g = rgb [ 1 ] ;
var b = rgb [ 2 ] ;
var h = convert . rgb . hsl ( rgb ) [ 0 ] ;
var w = 1 / 255 * Math . min ( r , Math . min ( g , b ) ) ;
b = 1 - 1 / 255 * Math . max ( r , Math . max ( g , b ) ) ;
return [ h , w * 100 , b * 100 ] ;
} ;
convert . rgb . cmyk = function ( rgb ) {
var r = rgb [ 0 ] / 255 ;
var g = rgb [ 1 ] / 255 ;
var b = rgb [ 2 ] / 255 ;
var c ;
var m ;
var y ;
var k ;
k = Math . min ( 1 - r , 1 - g , 1 - b ) ;
c = ( 1 - r - k ) / ( 1 - k ) || 0 ;
m = ( 1 - g - k ) / ( 1 - k ) || 0 ;
y = ( 1 - b - k ) / ( 1 - k ) || 0 ;
return [ c * 100 , m * 100 , y * 100 , k * 100 ] ;
} ;
function comparativeDistance ( x , y ) {
return Math . pow ( x [ 0 ] - y [ 0 ] , 2 ) + Math . pow ( x [ 1 ] - y [ 1 ] , 2 ) + Math . pow ( x [ 2 ] - y [ 2 ] , 2 ) ;
}
convert . rgb . keyword = function ( rgb ) {
var reversed = reverseKeywords [ rgb ] ;
if ( reversed ) {
return reversed ;
}
var currentClosestDistance = Infinity ;
var currentClosestKeyword ;
for ( var keyword in cssKeywords ) {
if ( cssKeywords . hasOwnProperty ( keyword ) ) {
var value = cssKeywords [ keyword ] ;
var distance = comparativeDistance ( rgb , value ) ;
if ( distance < currentClosestDistance ) {
currentClosestDistance = distance ;
currentClosestKeyword = keyword ;
}
}
}
return currentClosestKeyword ;
} ;
convert . keyword . rgb = function ( keyword ) {
return cssKeywords [ keyword ] ;
} ;
convert . rgb . xyz = function ( rgb ) {
var r = rgb [ 0 ] / 255 ;
var g = rgb [ 1 ] / 255 ;
var b = rgb [ 2 ] / 255 ;
r = r > 0.04045 ? Math . pow ( ( r + 0.055 ) / 1.055 , 2.4 ) : r / 12.92 ;
g = g > 0.04045 ? Math . pow ( ( g + 0.055 ) / 1.055 , 2.4 ) : g / 12.92 ;
b = b > 0.04045 ? Math . pow ( ( b + 0.055 ) / 1.055 , 2.4 ) : b / 12.92 ;
var x = r * 0.4124 + g * 0.3576 + b * 0.1805 ;
var y = r * 0.2126 + g * 0.7152 + b * 0.0722 ;
var z = r * 0.0193 + g * 0.1192 + b * 0.9505 ;
return [ x * 100 , y * 100 , z * 100 ] ;
} ;
convert . rgb . lab = function ( rgb ) {
var xyz = convert . rgb . xyz ( rgb ) ;
var x = xyz [ 0 ] ;
var y = xyz [ 1 ] ;
var z = xyz [ 2 ] ;
var l ;
var a ;
var b ;
x /= 95.047 ;
y /= 100 ;
z /= 108.883 ;
x = x > 8856e-6 ? Math . pow ( x , 1 / 3 ) : 7.787 * x + 16 / 116 ;
y = y > 8856e-6 ? Math . pow ( y , 1 / 3 ) : 7.787 * y + 16 / 116 ;
z = z > 8856e-6 ? Math . pow ( z , 1 / 3 ) : 7.787 * z + 16 / 116 ;
l = 116 * y - 16 ;
a = 500 * ( x - y ) ;
b = 200 * ( y - z ) ;
return [ l , a , b ] ;
} ;
convert . hsl . rgb = function ( hsl ) {
var h = hsl [ 0 ] / 360 ;
var s = hsl [ 1 ] / 100 ;
var l = hsl [ 2 ] / 100 ;
var t1 ;
var t2 ;
var t3 ;
var rgb ;
var val ;
if ( s === 0 ) {
val = l * 255 ;
return [ val , val , val ] ;
}
if ( l < 0.5 ) {
t2 = l * ( 1 + s ) ;
} else {
t2 = l + s - l * s ;
}
t1 = 2 * l - t2 ;
rgb = [ 0 , 0 , 0 ] ;
for ( var i = 0 ; i < 3 ; i ++ ) {
t3 = h + 1 / 3 * - ( i - 1 ) ;
if ( t3 < 0 ) {
t3 ++ ;
}
if ( t3 > 1 ) {
t3 -- ;
}
if ( 6 * t3 < 1 ) {
val = t1 + ( t2 - t1 ) * 6 * t3 ;
} else if ( 2 * t3 < 1 ) {
val = t2 ;
} else if ( 3 * t3 < 2 ) {
val = t1 + ( t2 - t1 ) * ( 2 / 3 - t3 ) * 6 ;
} else {
val = t1 ;
}
rgb [ i ] = val * 255 ;
}
return rgb ;
} ;
convert . hsl . hsv = function ( hsl ) {
var h = hsl [ 0 ] ;
var s = hsl [ 1 ] / 100 ;
var l = hsl [ 2 ] / 100 ;
var smin = s ;
var lmin = Math . max ( l , 0.01 ) ;
var sv ;
var v ;
l *= 2 ;
s *= l <= 1 ? l : 2 - l ;
smin *= lmin <= 1 ? lmin : 2 - lmin ;
v = ( l + s ) / 2 ;
sv = l === 0 ? 2 * smin / ( lmin + smin ) : 2 * s / ( l + s ) ;
return [ h , sv * 100 , v * 100 ] ;
} ;
convert . hsv . rgb = function ( hsv ) {
var h = hsv [ 0 ] / 60 ;
var s = hsv [ 1 ] / 100 ;
var v = hsv [ 2 ] / 100 ;
var hi = Math . floor ( h ) % 6 ;
var f = h - Math . floor ( h ) ;
var p = 255 * v * ( 1 - s ) ;
var q = 255 * v * ( 1 - s * f ) ;
var t = 255 * v * ( 1 - s * ( 1 - f ) ) ;
v *= 255 ;
switch ( hi ) {
case 0 :
return [ v , t , p ] ;
case 1 :
return [ q , v , p ] ;
case 2 :
return [ p , v , t ] ;
case 3 :
return [ p , q , v ] ;
case 4 :
return [ t , p , v ] ;
case 5 :
return [ v , p , q ] ;
}
} ;
convert . hsv . hsl = function ( hsv ) {
var h = hsv [ 0 ] ;
var s = hsv [ 1 ] / 100 ;
var v = hsv [ 2 ] / 100 ;
var vmin = Math . max ( v , 0.01 ) ;
var lmin ;
var sl ;
var l ;
l = ( 2 - s ) * v ;
lmin = ( 2 - s ) * vmin ;
sl = s * vmin ;
sl /= lmin <= 1 ? lmin : 2 - lmin ;
sl = sl || 0 ;
l /= 2 ;
return [ h , sl * 100 , l * 100 ] ;
} ;
convert . hwb . rgb = function ( hwb ) {
var h = hwb [ 0 ] / 360 ;
var wh = hwb [ 1 ] / 100 ;
var bl = hwb [ 2 ] / 100 ;
var ratio = wh + bl ;
var i ;
var v ;
var f ;
var n ;
if ( ratio > 1 ) {
wh /= ratio ;
bl /= ratio ;
}
i = Math . floor ( 6 * h ) ;
v = 1 - bl ;
f = 6 * h - i ;
if ( ( i & 1 ) !== 0 ) {
f = 1 - f ;
}
n = wh + f * ( v - wh ) ;
var r ;
var g ;
var b ;
switch ( i ) {
default :
case 6 :
case 0 :
r = v ;
g = n ;
b = wh ;
break ;
case 1 :
r = n ;
g = v ;
b = wh ;
break ;
case 2 :
r = wh ;
g = v ;
b = n ;
break ;
case 3 :
r = wh ;
g = n ;
b = v ;
break ;
case 4 :
r = n ;
g = wh ;
b = v ;
break ;
case 5 :
r = v ;
g = wh ;
b = n ;
break ;
}
return [ r * 255 , g * 255 , b * 255 ] ;
} ;
convert . cmyk . rgb = function ( cmyk ) {
var c = cmyk [ 0 ] / 100 ;
var m = cmyk [ 1 ] / 100 ;
var y = cmyk [ 2 ] / 100 ;
var k = cmyk [ 3 ] / 100 ;
var r ;
var g ;
var b ;
r = 1 - Math . min ( 1 , c * ( 1 - k ) + k ) ;
g = 1 - Math . min ( 1 , m * ( 1 - k ) + k ) ;
b = 1 - Math . min ( 1 , y * ( 1 - k ) + k ) ;
return [ r * 255 , g * 255 , b * 255 ] ;
} ;
convert . xyz . rgb = function ( xyz ) {
var x = xyz [ 0 ] / 100 ;
var y = xyz [ 1 ] / 100 ;
var z = xyz [ 2 ] / 100 ;
var r ;
var g ;
var b ;
r = x * 3.2406 + y * - 1.5372 + z * - 0.4986 ;
g = x * - 0.9689 + y * 1.8758 + z * 0.0415 ;
b = x * 0.0557 + y * - 0.204 + z * 1.057 ;
r = r > 31308e-7 ? 1.055 * Math . pow ( r , 1 / 2.4 ) - 0.055 : r * 12.92 ;
g = g > 31308e-7 ? 1.055 * Math . pow ( g , 1 / 2.4 ) - 0.055 : g * 12.92 ;
b = b > 31308e-7 ? 1.055 * Math . pow ( b , 1 / 2.4 ) - 0.055 : b * 12.92 ;
r = Math . min ( Math . max ( 0 , r ) , 1 ) ;
g = Math . min ( Math . max ( 0 , g ) , 1 ) ;
b = Math . min ( Math . max ( 0 , b ) , 1 ) ;
return [ r * 255 , g * 255 , b * 255 ] ;
} ;
convert . xyz . lab = function ( xyz ) {
var x = xyz [ 0 ] ;
var y = xyz [ 1 ] ;
var z = xyz [ 2 ] ;
var l ;
var a ;
var b ;
x /= 95.047 ;
y /= 100 ;
z /= 108.883 ;
x = x > 8856e-6 ? Math . pow ( x , 1 / 3 ) : 7.787 * x + 16 / 116 ;
y = y > 8856e-6 ? Math . pow ( y , 1 / 3 ) : 7.787 * y + 16 / 116 ;
z = z > 8856e-6 ? Math . pow ( z , 1 / 3 ) : 7.787 * z + 16 / 116 ;
l = 116 * y - 16 ;
a = 500 * ( x - y ) ;
b = 200 * ( y - z ) ;
return [ l , a , b ] ;
} ;
convert . lab . xyz = function ( lab ) {
var l = lab [ 0 ] ;
var a = lab [ 1 ] ;
var b = lab [ 2 ] ;
var x ;
var y ;
var z ;
y = ( l + 16 ) / 116 ;
x = a / 500 + y ;
z = y - b / 200 ;
var y2 = Math . pow ( y , 3 ) ;
var x2 = Math . pow ( x , 3 ) ;
var z2 = Math . pow ( z , 3 ) ;
y = y2 > 8856e-6 ? y2 : ( y - 16 / 116 ) / 7.787 ;
x = x2 > 8856e-6 ? x2 : ( x - 16 / 116 ) / 7.787 ;
z = z2 > 8856e-6 ? z2 : ( z - 16 / 116 ) / 7.787 ;
x *= 95.047 ;
y *= 100 ;
z *= 108.883 ;
return [ x , y , z ] ;
} ;
convert . lab . lch = function ( lab ) {
var l = lab [ 0 ] ;
var a = lab [ 1 ] ;
var b = lab [ 2 ] ;
var hr ;
var h ;
var c ;
hr = Math . atan2 ( b , a ) ;
h = hr * 360 / 2 / Math . PI ;
2020-08-26 01:57:08 +02:00
if ( h < 0 ) {
2022-11-10 11:43:16 +01:00
h += 360 ;
}
c = Math . sqrt ( a * a + b * b ) ;
return [ l , c , h ] ;
} ;
convert . lch . lab = function ( lch ) {
var l = lch [ 0 ] ;
var c = lch [ 1 ] ;
var h = lch [ 2 ] ;
var a ;
var b ;
var hr ;
hr = h / 360 * 2 * Math . PI ;
a = c * Math . cos ( hr ) ;
b = c * Math . sin ( hr ) ;
return [ l , a , b ] ;
} ;
convert . rgb . ansi16 = function ( args ) {
var r = args [ 0 ] ;
var g = args [ 1 ] ;
var b = args [ 2 ] ;
var value = 1 in arguments ? arguments [ 1 ] : convert . rgb . hsv ( args ) [ 2 ] ;
value = Math . round ( value / 50 ) ;
if ( value === 0 ) {
return 30 ;
}
var ansi = 30 + ( Math . round ( b / 255 ) << 2 | Math . round ( g / 255 ) << 1 | Math . round ( r / 255 ) ) ;
if ( value === 2 ) {
ansi += 60 ;
}
return ansi ;
} ;
convert . hsv . ansi16 = function ( args ) {
return convert . rgb . ansi16 ( convert . hsv . rgb ( args ) , args [ 2 ] ) ;
} ;
convert . rgb . ansi256 = function ( args ) {
var r = args [ 0 ] ;
var g = args [ 1 ] ;
var b = args [ 2 ] ;
if ( r === g && g === b ) {
if ( r < 8 ) {
return 16 ;
}
if ( r > 248 ) {
return 231 ;
}
return Math . round ( ( r - 8 ) / 247 * 24 ) + 232 ;
}
var ansi = 16 + 36 * Math . round ( r / 255 * 5 ) + 6 * Math . round ( g / 255 * 5 ) + Math . round ( b / 255 * 5 ) ;
return ansi ;
} ;
convert . ansi16 . rgb = function ( args ) {
var color = args % 10 ;
if ( color === 0 || color === 7 ) {
if ( args > 50 ) {
color += 3.5 ;
}
color = color / 10.5 * 255 ;
return [ color , color , color ] ;
}
var mult = ( ~ ~ ( args > 50 ) + 1 ) * 0.5 ;
var r = ( color & 1 ) * mult * 255 ;
var g = ( color >> 1 & 1 ) * mult * 255 ;
var b = ( color >> 2 & 1 ) * mult * 255 ;
return [ r , g , b ] ;
} ;
convert . ansi256 . rgb = function ( args ) {
if ( args >= 232 ) {
var c = ( args - 232 ) * 10 + 8 ;
return [ c , c , c ] ;
}
args -= 16 ;
var rem ;
var r = Math . floor ( args / 36 ) / 5 * 255 ;
var g = Math . floor ( ( rem = args % 36 ) / 6 ) / 5 * 255 ;
var b = rem % 6 / 5 * 255 ;
return [ r , g , b ] ;
} ;
convert . rgb . hex = function ( args ) {
var integer = ( ( Math . round ( args [ 0 ] ) & 255 ) << 16 ) + ( ( Math . round ( args [ 1 ] ) & 255 ) << 8 ) + ( Math . round ( args [ 2 ] ) & 255 ) ;
var string = integer . toString ( 16 ) . toUpperCase ( ) ;
return "000000" . substring ( string . length ) + string ;
} ;
convert . hex . rgb = function ( args ) {
var match = args . toString ( 16 ) . match ( /[a-f0-9]{6}|[a-f0-9]{3}/i ) ;
if ( ! match ) {
return [ 0 , 0 , 0 ] ;
}
var colorString = match [ 0 ] ;
if ( match [ 0 ] . length === 3 ) {
colorString = colorString . split ( "" ) . map ( function ( char ) {
return char + char ;
} ) . join ( "" ) ;
}
var integer = parseInt ( colorString , 16 ) ;
var r = integer >> 16 & 255 ;
var g = integer >> 8 & 255 ;
var b = integer & 255 ;
return [ r , g , b ] ;
} ;
convert . rgb . hcg = function ( rgb ) {
var r = rgb [ 0 ] / 255 ;
var g = rgb [ 1 ] / 255 ;
var b = rgb [ 2 ] / 255 ;
var max = Math . max ( Math . max ( r , g ) , b ) ;
var min = Math . min ( Math . min ( r , g ) , b ) ;
var chroma = max - min ;
var grayscale ;
var hue ;
if ( chroma < 1 ) {
grayscale = min / ( 1 - chroma ) ;
} else {
grayscale = 0 ;
}
if ( chroma <= 0 ) {
hue = 0 ;
} else if ( max === r ) {
hue = ( g - b ) / chroma % 6 ;
} else if ( max === g ) {
hue = 2 + ( b - r ) / chroma ;
} else {
hue = 4 + ( r - g ) / chroma + 4 ;
}
hue /= 6 ;
hue %= 1 ;
return [ hue * 360 , chroma * 100 , grayscale * 100 ] ;
} ;
convert . hsl . hcg = function ( hsl ) {
var s = hsl [ 1 ] / 100 ;
var l = hsl [ 2 ] / 100 ;
var c = 1 ;
var f = 0 ;
if ( l < 0.5 ) {
c = 2 * s * l ;
} else {
c = 2 * s * ( 1 - l ) ;
}
if ( c < 1 ) {
f = ( l - 0.5 * c ) / ( 1 - c ) ;
}
return [ hsl [ 0 ] , c * 100 , f * 100 ] ;
} ;
convert . hsv . hcg = function ( hsv ) {
var s = hsv [ 1 ] / 100 ;
var v = hsv [ 2 ] / 100 ;
var c = s * v ;
var f = 0 ;
if ( c < 1 ) {
f = ( v - c ) / ( 1 - c ) ;
}
return [ hsv [ 0 ] , c * 100 , f * 100 ] ;
} ;
convert . hcg . rgb = function ( hcg ) {
var h = hcg [ 0 ] / 360 ;
var c = hcg [ 1 ] / 100 ;
var g = hcg [ 2 ] / 100 ;
if ( c === 0 ) {
return [ g * 255 , g * 255 , g * 255 ] ;
}
var pure = [ 0 , 0 , 0 ] ;
var hi = h % 1 * 6 ;
var v = hi % 1 ;
var w = 1 - v ;
var mg = 0 ;
switch ( Math . floor ( hi ) ) {
case 0 :
pure [ 0 ] = 1 ;
pure [ 1 ] = v ;
pure [ 2 ] = 0 ;
break ;
case 1 :
pure [ 0 ] = w ;
pure [ 1 ] = 1 ;
pure [ 2 ] = 0 ;
break ;
case 2 :
pure [ 0 ] = 0 ;
pure [ 1 ] = 1 ;
pure [ 2 ] = v ;
break ;
case 3 :
pure [ 0 ] = 0 ;
pure [ 1 ] = w ;
pure [ 2 ] = 1 ;
break ;
case 4 :
pure [ 0 ] = v ;
pure [ 1 ] = 0 ;
pure [ 2 ] = 1 ;
break ;
default :
pure [ 0 ] = 1 ;
pure [ 1 ] = 0 ;
pure [ 2 ] = w ;
}
mg = ( 1 - c ) * g ;
return [ ( c * pure [ 0 ] + mg ) * 255 , ( c * pure [ 1 ] + mg ) * 255 , ( c * pure [ 2 ] + mg ) * 255 ] ;
} ;
convert . hcg . hsv = function ( hcg ) {
var c = hcg [ 1 ] / 100 ;
var g = hcg [ 2 ] / 100 ;
var v = c + g * ( 1 - c ) ;
var f = 0 ;
if ( v > 0 ) {
f = c / v ;
}
return [ hcg [ 0 ] , f * 100 , v * 100 ] ;
} ;
convert . hcg . hsl = function ( hcg ) {
var c = hcg [ 1 ] / 100 ;
var g = hcg [ 2 ] / 100 ;
var l = g * ( 1 - c ) + 0.5 * c ;
var s = 0 ;
if ( l > 0 && l < 0.5 ) {
s = c / ( 2 * l ) ;
} else if ( l >= 0.5 && l < 1 ) {
s = c / ( 2 * ( 1 - l ) ) ;
}
return [ hcg [ 0 ] , s * 100 , l * 100 ] ;
} ;
convert . hcg . hwb = function ( hcg ) {
var c = hcg [ 1 ] / 100 ;
var g = hcg [ 2 ] / 100 ;
var v = c + g * ( 1 - c ) ;
return [ hcg [ 0 ] , ( v - c ) * 100 , ( 1 - v ) * 100 ] ;
} ;
convert . hwb . hcg = function ( hwb ) {
var w = hwb [ 1 ] / 100 ;
var b = hwb [ 2 ] / 100 ;
var v = 1 - b ;
var c = v - w ;
var g = 0 ;
if ( c < 1 ) {
g = ( v - c ) / ( 1 - c ) ;
}
return [ hwb [ 0 ] , c * 100 , g * 100 ] ;
} ;
convert . apple . rgb = function ( apple ) {
return [ apple [ 0 ] / 65535 * 255 , apple [ 1 ] / 65535 * 255 , apple [ 2 ] / 65535 * 255 ] ;
} ;
convert . rgb . apple = function ( rgb ) {
return [ rgb [ 0 ] / 255 * 65535 , rgb [ 1 ] / 255 * 65535 , rgb [ 2 ] / 255 * 65535 ] ;
} ;
convert . gray . rgb = function ( args ) {
return [ args [ 0 ] / 100 * 255 , args [ 0 ] / 100 * 255 , args [ 0 ] / 100 * 255 ] ;
} ;
convert . gray . hsl = convert . gray . hsv = function ( args ) {
return [ 0 , 0 , args [ 0 ] ] ;
} ;
convert . gray . hwb = function ( gray ) {
return [ 0 , 100 , gray [ 0 ] ] ;
} ;
convert . gray . cmyk = function ( gray ) {
return [ 0 , 0 , 0 , gray [ 0 ] ] ;
} ;
convert . gray . lab = function ( gray ) {
return [ gray [ 0 ] , 0 , 0 ] ;
} ;
convert . gray . hex = function ( gray ) {
var val = Math . round ( gray [ 0 ] / 100 * 255 ) & 255 ;
var integer = ( val << 16 ) + ( val << 8 ) + val ;
var string = integer . toString ( 16 ) . toUpperCase ( ) ;
return "000000" . substring ( string . length ) + string ;
} ;
convert . rgb . gray = function ( rgb ) {
var val = ( rgb [ 0 ] + rgb [ 1 ] + rgb [ 2 ] ) / 3 ;
return [ val / 255 * 100 ] ;
} ;
}
} ) ;
var require _route = _ _commonJS ( {
"node_modules/color-convert/route.js" ( exports2 , module2 ) {
var conversions = require _conversions ( ) ;
function buildGraph ( ) {
var graph = { } ;
var models = Object . keys ( conversions ) ;
for ( var len = models . length , i = 0 ; i < len ; i ++ ) {
graph [ models [ i ] ] = {
distance : - 1 ,
parent : null
} ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
return graph ;
}
function deriveBFS ( fromModel ) {
var graph = buildGraph ( ) ;
var queue = [ fromModel ] ;
graph [ fromModel ] . distance = 0 ;
while ( queue . length ) {
var current = queue . pop ( ) ;
var adjacents = Object . keys ( conversions [ current ] ) ;
for ( var len = adjacents . length , i = 0 ; i < len ; i ++ ) {
var adjacent = adjacents [ i ] ;
var node = graph [ adjacent ] ;
if ( node . distance === - 1 ) {
node . distance = graph [ current ] . distance + 1 ;
node . parent = current ;
queue . unshift ( adjacent ) ;
}
}
}
return graph ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
function link ( from , to ) {
return function ( args ) {
return to ( from ( args ) ) ;
} ;
}
function wrapConversion ( toModel , graph ) {
var path = [ graph [ toModel ] . parent , toModel ] ;
var fn = conversions [ graph [ toModel ] . parent ] [ toModel ] ;
var cur = graph [ toModel ] . parent ;
while ( graph [ cur ] . parent ) {
path . unshift ( graph [ cur ] . parent ) ;
fn = link ( conversions [ graph [ cur ] . parent ] [ cur ] , fn ) ;
cur = graph [ cur ] . parent ;
}
fn . conversion = path ;
return fn ;
}
module2 . exports = function ( fromModel ) {
var graph = deriveBFS ( fromModel ) ;
var conversion = { } ;
var models = Object . keys ( graph ) ;
for ( var len = models . length , i = 0 ; i < len ; i ++ ) {
var toModel = models [ i ] ;
var node = graph [ toModel ] ;
if ( node . parent === null ) {
continue ;
}
conversion [ toModel ] = wrapConversion ( toModel , graph ) ;
}
return conversion ;
} ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
} ) ;
var require _color _convert = _ _commonJS ( {
"node_modules/color-convert/index.js" ( exports2 , module2 ) {
var conversions = require _conversions ( ) ;
var route = require _route ( ) ;
var convert = { } ;
var models = Object . keys ( conversions ) ;
function wrapRaw ( fn ) {
var wrappedFn = function ( args ) {
if ( args === void 0 || args === null ) {
return args ;
}
if ( arguments . length > 1 ) {
args = Array . prototype . slice . call ( arguments ) ;
}
return fn ( args ) ;
} ;
if ( "conversion" in fn ) {
wrappedFn . conversion = fn . conversion ;
}
return wrappedFn ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
function wrapRounded ( fn ) {
var wrappedFn = function ( args ) {
if ( args === void 0 || args === null ) {
return args ;
}
if ( arguments . length > 1 ) {
args = Array . prototype . slice . call ( arguments ) ;
}
var result = fn ( args ) ;
if ( typeof result === "object" ) {
for ( var len = result . length , i = 0 ; i < len ; i ++ ) {
result [ i ] = Math . round ( result [ i ] ) ;
}
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
return result ;
} ;
if ( "conversion" in fn ) {
wrappedFn . conversion = fn . conversion ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
return wrappedFn ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
models . forEach ( function ( fromModel ) {
convert [ fromModel ] = { } ;
Object . defineProperty ( convert [ fromModel ] , "channels" , {
value : conversions [ fromModel ] . channels
} ) ;
Object . defineProperty ( convert [ fromModel ] , "labels" , {
value : conversions [ fromModel ] . labels
} ) ;
var routes = route ( fromModel ) ;
var routeModels = Object . keys ( routes ) ;
routeModels . forEach ( function ( toModel ) {
var fn = routes [ toModel ] ;
convert [ fromModel ] [ toModel ] = wrapRounded ( fn ) ;
convert [ fromModel ] [ toModel ] . raw = wrapRaw ( fn ) ;
} ) ;
} ) ;
module2 . exports = convert ;
}
} ) ;
var require _ansi _styles = _ _commonJS ( {
"node_modules/ansi-styles/index.js" ( exports2 , module2 ) {
"use strict" ;
var colorConvert = require _color _convert ( ) ;
var wrapAnsi16 = ( fn , offset ) => function ( ) {
const code = fn . apply ( colorConvert , arguments ) ;
return ` \x 1B[ ${ code + offset } m ` ;
} ;
var wrapAnsi256 = ( fn , offset ) => function ( ) {
const code = fn . apply ( colorConvert , arguments ) ;
return ` \x 1B[ ${ 38 + offset } ;5; ${ code } m ` ;
} ;
var wrapAnsi16m = ( fn , offset ) => function ( ) {
const rgb = fn . apply ( colorConvert , arguments ) ;
return ` \x 1B[ ${ 38 + offset } ;2; ${ rgb [ 0 ] } ; ${ rgb [ 1 ] } ; ${ rgb [ 2 ] } m ` ;
} ;
function assembleStyles ( ) {
const codes = /* @__PURE__ */ new Map ( ) ;
const styles = {
modifier : {
reset : [ 0 , 0 ] ,
bold : [ 1 , 22 ] ,
dim : [ 2 , 22 ] ,
italic : [ 3 , 23 ] ,
underline : [ 4 , 24 ] ,
inverse : [ 7 , 27 ] ,
hidden : [ 8 , 28 ] ,
strikethrough : [ 9 , 29 ]
} ,
color : {
black : [ 30 , 39 ] ,
red : [ 31 , 39 ] ,
green : [ 32 , 39 ] ,
yellow : [ 33 , 39 ] ,
blue : [ 34 , 39 ] ,
magenta : [ 35 , 39 ] ,
cyan : [ 36 , 39 ] ,
white : [ 37 , 39 ] ,
gray : [ 90 , 39 ] ,
redBright : [ 91 , 39 ] ,
greenBright : [ 92 , 39 ] ,
yellowBright : [ 93 , 39 ] ,
blueBright : [ 94 , 39 ] ,
magentaBright : [ 95 , 39 ] ,
cyanBright : [ 96 , 39 ] ,
whiteBright : [ 97 , 39 ]
} ,
bgColor : {
bgBlack : [ 40 , 49 ] ,
bgRed : [ 41 , 49 ] ,
bgGreen : [ 42 , 49 ] ,
bgYellow : [ 43 , 49 ] ,
bgBlue : [ 44 , 49 ] ,
bgMagenta : [ 45 , 49 ] ,
bgCyan : [ 46 , 49 ] ,
bgWhite : [ 47 , 49 ] ,
bgBlackBright : [ 100 , 49 ] ,
bgRedBright : [ 101 , 49 ] ,
bgGreenBright : [ 102 , 49 ] ,
bgYellowBright : [ 103 , 49 ] ,
bgBlueBright : [ 104 , 49 ] ,
bgMagentaBright : [ 105 , 49 ] ,
bgCyanBright : [ 106 , 49 ] ,
bgWhiteBright : [ 107 , 49 ]
}
} ;
styles . color . grey = styles . color . gray ;
for ( const groupName of Object . keys ( styles ) ) {
const group = styles [ groupName ] ;
for ( const styleName of Object . keys ( group ) ) {
const style = group [ styleName ] ;
styles [ styleName ] = {
open : ` \x 1B[ ${ style [ 0 ] } m ` ,
close : ` \x 1B[ ${ style [ 1 ] } m `
} ;
group [ styleName ] = styles [ styleName ] ;
codes . set ( style [ 0 ] , style [ 1 ] ) ;
}
Object . defineProperty ( styles , groupName , {
value : group ,
enumerable : false
} ) ;
Object . defineProperty ( styles , "codes" , {
value : codes ,
enumerable : false
} ) ;
}
const ansi2ansi = ( n ) => n ;
const rgb2rgb = ( r , g , b ) => [ r , g , b ] ;
styles . color . close = "\x1B[39m" ;
styles . bgColor . close = "\x1B[49m" ;
styles . color . ansi = {
ansi : wrapAnsi16 ( ansi2ansi , 0 )
} ;
styles . color . ansi256 = {
ansi256 : wrapAnsi256 ( ansi2ansi , 0 )
} ;
styles . color . ansi16m = {
rgb : wrapAnsi16m ( rgb2rgb , 0 )
} ;
styles . bgColor . ansi = {
ansi : wrapAnsi16 ( ansi2ansi , 10 )
} ;
styles . bgColor . ansi256 = {
ansi256 : wrapAnsi256 ( ansi2ansi , 10 )
} ;
styles . bgColor . ansi16m = {
rgb : wrapAnsi16m ( rgb2rgb , 10 )
} ;
for ( let key of Object . keys ( colorConvert ) ) {
if ( typeof colorConvert [ key ] !== "object" ) {
continue ;
}
const suite = colorConvert [ key ] ;
if ( key === "ansi16" ) {
key = "ansi" ;
}
if ( "ansi16" in suite ) {
styles . color . ansi [ key ] = wrapAnsi16 ( suite . ansi16 , 0 ) ;
styles . bgColor . ansi [ key ] = wrapAnsi16 ( suite . ansi16 , 10 ) ;
}
if ( "ansi256" in suite ) {
styles . color . ansi256 [ key ] = wrapAnsi256 ( suite . ansi256 , 0 ) ;
styles . bgColor . ansi256 [ key ] = wrapAnsi256 ( suite . ansi256 , 10 ) ;
}
if ( "rgb" in suite ) {
styles . color . ansi16m [ key ] = wrapAnsi16m ( suite . rgb , 0 ) ;
styles . bgColor . ansi16m [ key ] = wrapAnsi16m ( suite . rgb , 10 ) ;
}
}
return styles ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
Object . defineProperty ( module2 , "exports" , {
enumerable : true ,
get : assembleStyles
} ) ;
}
} ) ;
var require _has _flag = _ _commonJS ( {
"node_modules/@babel/highlight/node_modules/has-flag/index.js" ( exports2 , module2 ) {
"use strict" ;
module2 . exports = ( flag , argv ) => {
argv = argv || process . argv ;
const prefix = flag . startsWith ( "-" ) ? "" : flag . length === 1 ? "-" : "--" ;
const pos = argv . indexOf ( prefix + flag ) ;
const terminatorPos = argv . indexOf ( "--" ) ;
return pos !== - 1 && ( terminatorPos === - 1 ? true : pos < terminatorPos ) ;
} ;
}
} ) ;
var require _supports _color = _ _commonJS ( {
"node_modules/@babel/highlight/node_modules/supports-color/index.js" ( exports2 , module2 ) {
"use strict" ;
var os = require ( "os" ) ;
var hasFlag = require _has _flag ( ) ;
var env = process . env ;
var forceColor ;
if ( hasFlag ( "no-color" ) || hasFlag ( "no-colors" ) || hasFlag ( "color=false" ) ) {
forceColor = false ;
} else if ( hasFlag ( "color" ) || hasFlag ( "colors" ) || hasFlag ( "color=true" ) || hasFlag ( "color=always" ) ) {
forceColor = true ;
}
if ( "FORCE_COLOR" in env ) {
forceColor = env . FORCE _COLOR . length === 0 || parseInt ( env . FORCE _COLOR , 10 ) !== 0 ;
}
function translateLevel ( level ) {
if ( level === 0 ) {
return false ;
}
return {
level ,
hasBasic : true ,
has256 : level >= 2 ,
has16m : level >= 3
} ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
function supportsColor ( stream ) {
if ( forceColor === false ) {
return 0 ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
if ( hasFlag ( "color=16m" ) || hasFlag ( "color=full" ) || hasFlag ( "color=truecolor" ) ) {
return 3 ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
if ( hasFlag ( "color=256" ) ) {
return 2 ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
if ( stream && ! stream . isTTY && forceColor !== true ) {
return 0 ;
}
const min = forceColor ? 1 : 0 ;
if ( process . platform === "win32" ) {
const osRelease = os . release ( ) . split ( "." ) ;
if ( Number ( process . versions . node . split ( "." ) [ 0 ] ) >= 8 && Number ( osRelease [ 0 ] ) >= 10 && Number ( osRelease [ 2 ] ) >= 10586 ) {
return Number ( osRelease [ 2 ] ) >= 14931 ? 3 : 2 ;
}
return 1 ;
}
if ( "CI" in env ) {
if ( [ "TRAVIS" , "CIRCLECI" , "APPVEYOR" , "GITLAB_CI" ] . some ( ( sign ) => sign in env ) || env . CI _NAME === "codeship" ) {
return 1 ;
}
return min ;
}
if ( "TEAMCITY_VERSION" in env ) {
return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/ . test ( env . TEAMCITY _VERSION ) ? 1 : 0 ;
}
if ( env . COLORTERM === "truecolor" ) {
return 3 ;
}
if ( "TERM_PROGRAM" in env ) {
const version = parseInt ( ( env . TERM _PROGRAM _VERSION || "" ) . split ( "." ) [ 0 ] , 10 ) ;
switch ( env . TERM _PROGRAM ) {
case "iTerm.app" :
return version >= 3 ? 3 : 2 ;
case "Apple_Terminal" :
return 2 ;
}
}
if ( /-256(color)?$/i . test ( env . TERM ) ) {
return 2 ;
}
if ( /^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i . test ( env . TERM ) ) {
return 1 ;
}
if ( "COLORTERM" in env ) {
return 1 ;
}
if ( env . TERM === "dumb" ) {
return min ;
}
return min ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
function getSupportLevel ( stream ) {
const level = supportsColor ( stream ) ;
return translateLevel ( level ) ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
module2 . exports = {
supportsColor : getSupportLevel ,
stdout : getSupportLevel ( process . stdout ) ,
stderr : getSupportLevel ( process . stderr )
} ;
}
} ) ;
var require _templates = _ _commonJS ( {
"node_modules/@babel/highlight/node_modules/chalk/templates.js" ( exports2 , module2 ) {
"use strict" ;
var TEMPLATE _REGEX = /(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi ;
var STYLE _REGEX = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g ;
var STRING _REGEX = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/ ;
var ESCAPE _REGEX = /\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi ;
var ESCAPES = /* @__PURE__ */ new Map ( [ [ "n" , "\n" ] , [ "r" , "\r" ] , [ "t" , " " ] , [ "b" , "\b" ] , [ "f" , "\f" ] , [ "v" , "\v" ] , [ "0" , "\0" ] , [ "\\" , "\\" ] , [ "e" , "\x1B" ] , [ "a" , "\x07" ] ] ) ;
function unescape ( c ) {
if ( c [ 0 ] === "u" && c . length === 5 || c [ 0 ] === "x" && c . length === 3 ) {
return String . fromCharCode ( parseInt ( c . slice ( 1 ) , 16 ) ) ;
}
return ESCAPES . get ( c ) || c ;
}
function parseArguments ( name , args ) {
const results = [ ] ;
const chunks = args . trim ( ) . split ( /\s*,\s*/g ) ;
let matches ;
for ( const chunk of chunks ) {
if ( ! isNaN ( chunk ) ) {
results . push ( Number ( chunk ) ) ;
} else if ( matches = chunk . match ( STRING _REGEX ) ) {
results . push ( matches [ 2 ] . replace ( ESCAPE _REGEX , ( m , escape , chr ) => escape ? unescape ( escape ) : chr ) ) ;
} else {
throw new Error ( ` Invalid Chalk template style argument: ${ chunk } (in style ' ${ name } ') ` ) ;
}
}
return results ;
}
function parseStyle ( style ) {
STYLE _REGEX . lastIndex = 0 ;
const results = [ ] ;
let matches ;
while ( ( matches = STYLE _REGEX . exec ( style ) ) !== null ) {
const name = matches [ 1 ] ;
if ( matches [ 2 ] ) {
const args = parseArguments ( name , matches [ 2 ] ) ;
results . push ( [ name ] . concat ( args ) ) ;
} else {
results . push ( [ name ] ) ;
}
}
return results ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
function buildStyle ( chalk , styles ) {
const enabled = { } ;
for ( const layer of styles ) {
for ( const style of layer . styles ) {
enabled [ style [ 0 ] ] = layer . inverse ? null : style . slice ( 1 ) ;
}
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
let current = chalk ;
for ( const styleName of Object . keys ( enabled ) ) {
if ( Array . isArray ( enabled [ styleName ] ) ) {
if ( ! ( styleName in current ) ) {
throw new Error ( ` Unknown Chalk style: ${ styleName } ` ) ;
}
if ( enabled [ styleName ] . length > 0 ) {
current = current [ styleName ] . apply ( current , enabled [ styleName ] ) ;
} else {
current = current [ styleName ] ;
}
}
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
return current ;
}
module2 . exports = ( chalk , tmp ) => {
const styles = [ ] ;
const chunks = [ ] ;
let chunk = [ ] ;
tmp . replace ( TEMPLATE _REGEX , ( m , escapeChar , inverse , style , close , chr ) => {
if ( escapeChar ) {
chunk . push ( unescape ( escapeChar ) ) ;
} else if ( style ) {
const str = chunk . join ( "" ) ;
chunk = [ ] ;
chunks . push ( styles . length === 0 ? str : buildStyle ( chalk , styles ) ( str ) ) ;
styles . push ( {
inverse ,
styles : parseStyle ( style )
} ) ;
} else if ( close ) {
if ( styles . length === 0 ) {
throw new Error ( "Found extraneous } in Chalk template literal" ) ;
}
chunks . push ( buildStyle ( chalk , styles ) ( chunk . join ( "" ) ) ) ;
chunk = [ ] ;
styles . pop ( ) ;
} else {
chunk . push ( chr ) ;
}
} ) ;
chunks . push ( chunk . join ( "" ) ) ;
if ( styles . length > 0 ) {
const errMsg = ` Chalk template literal is missing ${ styles . length } closing bracket ${ styles . length === 1 ? "" : "s" } ( \` } \` ) ` ;
throw new Error ( errMsg ) ;
}
return chunks . join ( "" ) ;
} ;
}
} ) ;
var require _chalk = _ _commonJS ( {
"node_modules/@babel/highlight/node_modules/chalk/index.js" ( exports2 , module2 ) {
"use strict" ;
var escapeStringRegexp = require _escape _string _regexp ( ) ;
var ansiStyles = require _ansi _styles ( ) ;
var stdoutColor = require _supports _color ( ) . stdout ;
var template = require _templates ( ) ;
var isSimpleWindowsTerm = process . platform === "win32" && ! ( process . env . TERM || "" ) . toLowerCase ( ) . startsWith ( "xterm" ) ;
var levelMapping = [ "ansi" , "ansi" , "ansi256" , "ansi16m" ] ;
var skipModels = /* @__PURE__ */ new Set ( [ "gray" ] ) ;
var styles = /* @__PURE__ */ Object . create ( null ) ;
function applyOptions ( obj , options ) {
options = options || { } ;
const scLevel = stdoutColor ? stdoutColor . level : 0 ;
obj . level = options . level === void 0 ? scLevel : options . level ;
obj . enabled = "enabled" in options ? options . enabled : obj . level > 0 ;
}
function Chalk ( options ) {
if ( ! this || ! ( this instanceof Chalk ) || this . template ) {
const chalk = { } ;
applyOptions ( chalk , options ) ;
chalk . template = function ( ) {
const args = [ ] . slice . call ( arguments ) ;
return chalkTag . apply ( null , [ chalk . template ] . concat ( args ) ) ;
} ;
Object . setPrototypeOf ( chalk , Chalk . prototype ) ;
Object . setPrototypeOf ( chalk . template , chalk ) ;
chalk . template . constructor = Chalk ;
return chalk . template ;
}
applyOptions ( this , options ) ;
}
if ( isSimpleWindowsTerm ) {
ansiStyles . blue . open = "\x1B[94m" ;
}
for ( const key of Object . keys ( ansiStyles ) ) {
ansiStyles [ key ] . closeRe = new RegExp ( escapeStringRegexp ( ansiStyles [ key ] . close ) , "g" ) ;
styles [ key ] = {
get ( ) {
const codes = ansiStyles [ key ] ;
return build . call ( this , this . _styles ? this . _styles . concat ( codes ) : [ codes ] , this . _empty , key ) ;
}
} ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
styles . visible = {
get ( ) {
return build . call ( this , this . _styles || [ ] , true , "visible" ) ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
} ;
ansiStyles . color . closeRe = new RegExp ( escapeStringRegexp ( ansiStyles . color . close ) , "g" ) ;
for ( const model of Object . keys ( ansiStyles . color . ansi ) ) {
if ( skipModels . has ( model ) ) {
continue ;
}
styles [ model ] = {
get ( ) {
const level = this . level ;
return function ( ) {
const open = ansiStyles . color [ levelMapping [ level ] ] [ model ] . apply ( null , arguments ) ;
const codes = {
open ,
close : ansiStyles . color . close ,
closeRe : ansiStyles . color . closeRe
} ;
return build . call ( this , this . _styles ? this . _styles . concat ( codes ) : [ codes ] , this . _empty , model ) ;
} ;
}
} ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
ansiStyles . bgColor . closeRe = new RegExp ( escapeStringRegexp ( ansiStyles . bgColor . close ) , "g" ) ;
for ( const model of Object . keys ( ansiStyles . bgColor . ansi ) ) {
if ( skipModels . has ( model ) ) {
continue ;
}
const bgModel = "bg" + model [ 0 ] . toUpperCase ( ) + model . slice ( 1 ) ;
styles [ bgModel ] = {
get ( ) {
const level = this . level ;
return function ( ) {
const open = ansiStyles . bgColor [ levelMapping [ level ] ] [ model ] . apply ( null , arguments ) ;
const codes = {
open ,
close : ansiStyles . bgColor . close ,
closeRe : ansiStyles . bgColor . closeRe
} ;
return build . call ( this , this . _styles ? this . _styles . concat ( codes ) : [ codes ] , this . _empty , model ) ;
} ;
}
} ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
var proto = Object . defineProperties ( ( ) => {
} , styles ) ;
function build ( _styles , _empty , key ) {
const builder = function ( ) {
return applyStyle . apply ( builder , arguments ) ;
} ;
builder . _styles = _styles ;
builder . _empty = _empty ;
const self = this ;
Object . defineProperty ( builder , "level" , {
enumerable : true ,
get ( ) {
return self . level ;
} ,
set ( level ) {
self . level = level ;
}
} ) ;
Object . defineProperty ( builder , "enabled" , {
enumerable : true ,
get ( ) {
return self . enabled ;
} ,
set ( enabled ) {
self . enabled = enabled ;
}
} ) ;
builder . hasGrey = this . hasGrey || key === "gray" || key === "grey" ;
builder . _ _proto _ _ = proto ;
return builder ;
}
function applyStyle ( ) {
const args = arguments ;
const argsLen = args . length ;
let str = String ( arguments [ 0 ] ) ;
if ( argsLen === 0 ) {
return "" ;
}
if ( argsLen > 1 ) {
for ( let a = 1 ; a < argsLen ; a ++ ) {
str += " " + args [ a ] ;
}
}
if ( ! this . enabled || this . level <= 0 || ! str ) {
return this . _empty ? "" : str ;
}
const originalDim = ansiStyles . dim . open ;
if ( isSimpleWindowsTerm && this . hasGrey ) {
ansiStyles . dim . open = "" ;
}
for ( const code of this . _styles . slice ( ) . reverse ( ) ) {
str = code . open + str . replace ( code . closeRe , code . open ) + code . close ;
str = str . replace ( /\r?\n/g , ` ${ code . close } $ & ${ code . open } ` ) ;
}
ansiStyles . dim . open = originalDim ;
return str ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
function chalkTag ( chalk , strings ) {
if ( ! Array . isArray ( strings ) ) {
return [ ] . slice . call ( arguments , 1 ) . join ( " " ) ;
}
const args = [ ] . slice . call ( arguments , 2 ) ;
const parts = [ strings . raw [ 0 ] ] ;
for ( let i = 1 ; i < strings . length ; i ++ ) {
parts . push ( String ( args [ i - 1 ] ) . replace ( /[{}\\]/g , "\\$&" ) ) ;
parts . push ( String ( strings . raw [ i ] ) ) ;
}
return template ( chalk , parts . join ( "" ) ) ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
Object . defineProperties ( Chalk . prototype , styles ) ;
module2 . exports = Chalk ( ) ;
module2 . exports . supportsColor = stdoutColor ;
module2 . exports . default = module2 . exports ;
}
} ) ;
var require _lib2 = _ _commonJS ( {
"node_modules/@babel/highlight/lib/index.js" ( exports2 ) {
"use strict" ;
Object . defineProperty ( exports2 , "__esModule" , {
value : true
} ) ;
exports2 . default = highlight ;
exports2 . getChalk = getChalk ;
exports2 . shouldHighlight = shouldHighlight ;
var _jsTokens = require _js _tokens ( ) ;
var _helperValidatorIdentifier = require _lib ( ) ;
var _chalk = require _chalk ( ) ;
var sometimesKeywords = /* @__PURE__ */ new Set ( [ "as" , "async" , "from" , "get" , "of" , "set" ] ) ;
function getDefs ( chalk ) {
return {
keyword : chalk . cyan ,
capitalized : chalk . yellow ,
jsxIdentifier : chalk . yellow ,
punctuator : chalk . yellow ,
number : chalk . magenta ,
string : chalk . green ,
regex : chalk . magenta ,
comment : chalk . grey ,
invalid : chalk . white . bgRed . bold
} ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
var NEWLINE = /\r\n|[\n\r\u2028\u2029]/ ;
var BRACKET = /^[()[\]{}]$/ ;
var tokenize ;
{
const JSX _TAG = /^[a-z][\w-]*$/i ;
const getTokenType = function ( token , offset , text ) {
if ( token . type === "name" ) {
if ( ( 0 , _helperValidatorIdentifier . isKeyword ) ( token . value ) || ( 0 , _helperValidatorIdentifier . isStrictReservedWord ) ( token . value , true ) || sometimesKeywords . has ( token . value ) ) {
return "keyword" ;
}
if ( JSX _TAG . test ( token . value ) && ( text [ offset - 1 ] === "<" || text . substr ( offset - 2 , 2 ) == "</" ) ) {
return "jsxIdentifier" ;
}
if ( token . value [ 0 ] !== token . value [ 0 ] . toLowerCase ( ) ) {
return "capitalized" ;
}
}
if ( token . type === "punctuator" && BRACKET . test ( token . value ) ) {
return "bracket" ;
}
if ( token . type === "invalid" && ( token . value === "@" || token . value === "#" ) ) {
return "punctuator" ;
}
return token . type ;
} ;
tokenize = function * ( text ) {
let match ;
while ( match = _jsTokens . default . exec ( text ) ) {
const token = _jsTokens . matchToToken ( match ) ;
yield {
type : getTokenType ( token , match . index , text ) ,
value : token . value
} ;
}
} ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
function highlightTokens ( defs , text ) {
let highlighted = "" ;
for ( const {
type ,
value
} of tokenize ( text ) ) {
const colorize = defs [ type ] ;
if ( colorize ) {
highlighted += value . split ( NEWLINE ) . map ( ( str ) => colorize ( str ) ) . join ( "\n" ) ;
} else {
highlighted += value ;
}
}
return highlighted ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
function shouldHighlight ( options ) {
return ! ! _chalk . supportsColor || options . forceColor ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
function getChalk ( options ) {
return options . forceColor ? new _chalk . constructor ( {
enabled : true ,
level : 1
} ) : _chalk ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
function highlight ( code , options = { } ) {
if ( code !== "" && shouldHighlight ( options ) ) {
const chalk = getChalk ( options ) ;
const defs = getDefs ( chalk ) ;
return highlightTokens ( defs , code ) ;
} else {
return code ;
}
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
}
} ) ;
var require _lib3 = _ _commonJS ( {
"node_modules/@babel/code-frame/lib/index.js" ( exports2 ) {
"use strict" ;
Object . defineProperty ( exports2 , "__esModule" , {
value : true
} ) ;
exports2 . codeFrameColumns = codeFrameColumns ;
exports2 . default = _default ;
var _highlight = require _lib2 ( ) ;
var deprecationWarningShown = false ;
function getDefs ( chalk ) {
return {
gutter : chalk . grey ,
marker : chalk . red . bold ,
message : chalk . red . bold
} ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
var NEWLINE = /\r\n|[\n\r\u2028\u2029]/ ;
function getMarkerLines ( loc , source , opts ) {
const startLoc = Object . assign ( {
column : 0 ,
line : - 1
} , loc . start ) ;
const endLoc = Object . assign ( { } , startLoc , loc . end ) ;
const {
linesAbove = 2 ,
linesBelow = 3
} = opts || { } ;
const startLine = startLoc . line ;
const startColumn = startLoc . column ;
const endLine = endLoc . line ;
const endColumn = endLoc . column ;
let start = Math . max ( startLine - ( linesAbove + 1 ) , 0 ) ;
let end = Math . min ( source . length , endLine + linesBelow ) ;
if ( startLine === - 1 ) {
start = 0 ;
}
if ( endLine === - 1 ) {
end = source . length ;
}
const lineDiff = endLine - startLine ;
const markerLines = { } ;
if ( lineDiff ) {
for ( let i = 0 ; i <= lineDiff ; i ++ ) {
const lineNumber = i + startLine ;
if ( ! startColumn ) {
markerLines [ lineNumber ] = true ;
} else if ( i === 0 ) {
const sourceLength = source [ lineNumber - 1 ] . length ;
markerLines [ lineNumber ] = [ startColumn , sourceLength - startColumn + 1 ] ;
} else if ( i === lineDiff ) {
markerLines [ lineNumber ] = [ 0 , endColumn ] ;
} else {
const sourceLength = source [ lineNumber - i ] . length ;
markerLines [ lineNumber ] = [ 0 , sourceLength ] ;
}
}
} else {
if ( startColumn === endColumn ) {
if ( startColumn ) {
markerLines [ startLine ] = [ startColumn , 0 ] ;
} else {
markerLines [ startLine ] = true ;
}
} else {
markerLines [ startLine ] = [ startColumn , endColumn - startColumn ] ;
}
}
return {
start ,
end ,
markerLines
} ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
function codeFrameColumns ( rawLines , loc , opts = { } ) {
const highlighted = ( opts . highlightCode || opts . forceColor ) && ( 0 , _highlight . shouldHighlight ) ( opts ) ;
const chalk = ( 0 , _highlight . getChalk ) ( opts ) ;
const defs = getDefs ( chalk ) ;
const maybeHighlight = ( chalkFn , string ) => {
return highlighted ? chalkFn ( string ) : string ;
} ;
const lines = rawLines . split ( NEWLINE ) ;
const {
start ,
end ,
markerLines
} = getMarkerLines ( loc , lines , opts ) ;
const hasColumns = loc . start && typeof loc . start . column === "number" ;
const numberMaxWidth = String ( end ) . length ;
const highlightedLines = highlighted ? ( 0 , _highlight . default ) ( rawLines , opts ) : rawLines ;
let frame = highlightedLines . split ( NEWLINE , end ) . slice ( start , end ) . map ( ( line , index ) => {
const number = start + 1 + index ;
const paddedNumber = ` ${ number } ` . slice ( - numberMaxWidth ) ;
const gutter = ` ${ paddedNumber } | ` ;
const hasMarker = markerLines [ number ] ;
const lastMarkerLine = ! markerLines [ number + 1 ] ;
if ( hasMarker ) {
let markerLine = "" ;
if ( Array . isArray ( hasMarker ) ) {
const markerSpacing = line . slice ( 0 , Math . max ( hasMarker [ 0 ] - 1 , 0 ) ) . replace ( /[^\t]/g , " " ) ;
const numberOfMarkers = hasMarker [ 1 ] || 1 ;
markerLine = [ "\n " , maybeHighlight ( defs . gutter , gutter . replace ( /\d/g , " " ) ) , " " , markerSpacing , maybeHighlight ( defs . marker , "^" ) . repeat ( numberOfMarkers ) ] . join ( "" ) ;
if ( lastMarkerLine && opts . message ) {
markerLine += " " + maybeHighlight ( defs . message , opts . message ) ;
}
}
return [ maybeHighlight ( defs . marker , ">" ) , maybeHighlight ( defs . gutter , gutter ) , line . length > 0 ? ` ${ line } ` : "" , markerLine ] . join ( "" ) ;
} else {
return ` ${ maybeHighlight ( defs . gutter , gutter ) } ${ line . length > 0 ? ` ${ line } ` : "" } ` ;
}
} ) . join ( "\n" ) ;
if ( opts . message && ! hasColumns ) {
frame = ` ${ " " . repeat ( numberMaxWidth + 1 ) } ${ opts . message }
$ { frame } ` ;
}
if ( highlighted ) {
return chalk . reset ( frame ) ;
} else {
return frame ;
}
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
function _default ( rawLines , lineNumber , colNumber , opts = { } ) {
if ( ! deprecationWarningShown ) {
deprecationWarningShown = true ;
const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`." ;
if ( process . emitWarning ) {
process . emitWarning ( message , "DeprecationWarning" ) ;
} else {
const deprecationError = new Error ( message ) ;
deprecationError . name = "DeprecationWarning" ;
console . warn ( new Error ( message ) ) ;
}
}
colNumber = Math . max ( colNumber , 0 ) ;
const location = {
start : {
column : colNumber ,
line : lineNumber
}
} ;
return codeFrameColumns ( rawLines , location , opts ) ;
2020-08-26 01:57:08 +02:00
}
}
2022-11-10 11:43:16 +01:00
} ) ;
var require _parse _json = _ _commonJS ( {
"node_modules/parse-json/index.js" ( exports2 , module2 ) {
"use strict" ;
var errorEx = require _error _ex ( ) ;
var fallback = require _json _parse _even _better _errors ( ) ;
var {
default : LinesAndColumns
} = require _build ( ) ;
var {
codeFrameColumns
} = require _lib3 ( ) ;
var JSONError = errorEx ( "JSONError" , {
fileName : errorEx . append ( "in %s" ) ,
codeFrame : errorEx . append ( "\n\n%s\n" )
} ) ;
var parseJson = ( string , reviver , filename ) => {
if ( typeof reviver === "string" ) {
filename = reviver ;
reviver = null ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
try {
try {
return JSON . parse ( string , reviver ) ;
} catch ( error ) {
fallback ( string , reviver ) ;
throw error ;
}
} catch ( error ) {
error . message = error . message . replace ( /\n/g , "" ) ;
const indexMatch = error . message . match ( /in JSON at position (\d+) while parsing/ ) ;
const jsonError = new JSONError ( error ) ;
if ( filename ) {
jsonError . fileName = filename ;
}
if ( indexMatch && indexMatch . length > 0 ) {
const lines = new LinesAndColumns ( string ) ;
const index = Number ( indexMatch [ 1 ] ) ;
const location = lines . locationForIndex ( index ) ;
const codeFrame = codeFrameColumns ( string , {
start : {
line : location . line + 1 ,
column : location . column + 1
}
} , {
highlightCode : true
} ) ;
jsonError . codeFrame = codeFrame ;
}
throw jsonError ;
}
} ;
parseJson . JSONError = JSONError ;
module2 . exports = parseJson ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
} ) ;
var require _PlainValue _ec8e588e = _ _commonJS ( {
"node_modules/yaml/dist/PlainValue-ec8e588e.js" ( exports2 ) {
"use strict" ;
var Char = {
ANCHOR : "&" ,
COMMENT : "#" ,
TAG : "!" ,
DIRECTIVES _END : "-" ,
DOCUMENT _END : "."
} ;
var Type = {
ALIAS : "ALIAS" ,
BLANK _LINE : "BLANK_LINE" ,
BLOCK _FOLDED : "BLOCK_FOLDED" ,
BLOCK _LITERAL : "BLOCK_LITERAL" ,
COMMENT : "COMMENT" ,
DIRECTIVE : "DIRECTIVE" ,
DOCUMENT : "DOCUMENT" ,
FLOW _MAP : "FLOW_MAP" ,
FLOW _SEQ : "FLOW_SEQ" ,
MAP : "MAP" ,
MAP _KEY : "MAP_KEY" ,
MAP _VALUE : "MAP_VALUE" ,
PLAIN : "PLAIN" ,
QUOTE _DOUBLE : "QUOTE_DOUBLE" ,
QUOTE _SINGLE : "QUOTE_SINGLE" ,
SEQ : "SEQ" ,
SEQ _ITEM : "SEQ_ITEM"
} ;
var defaultTagPrefix = "tag:yaml.org,2002:" ;
var defaultTags = {
MAP : "tag:yaml.org,2002:map" ,
SEQ : "tag:yaml.org,2002:seq" ,
STR : "tag:yaml.org,2002:str"
} ;
function findLineStarts ( src ) {
const ls = [ 0 ] ;
let offset = src . indexOf ( "\n" ) ;
while ( offset !== - 1 ) {
offset += 1 ;
ls . push ( offset ) ;
offset = src . indexOf ( "\n" , offset ) ;
}
return ls ;
}
function getSrcInfo ( cst ) {
let lineStarts , src ;
if ( typeof cst === "string" ) {
lineStarts = findLineStarts ( cst ) ;
src = cst ;
} else {
if ( Array . isArray ( cst ) )
cst = cst [ 0 ] ;
if ( cst && cst . context ) {
if ( ! cst . lineStarts )
cst . lineStarts = findLineStarts ( cst . context . src ) ;
lineStarts = cst . lineStarts ;
src = cst . context . src ;
}
}
return {
lineStarts ,
src
} ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
function getLinePos ( offset , cst ) {
if ( typeof offset !== "number" || offset < 0 )
return null ;
const {
lineStarts ,
src
} = getSrcInfo ( cst ) ;
if ( ! lineStarts || ! src || offset > src . length )
return null ;
for ( let i = 0 ; i < lineStarts . length ; ++ i ) {
const start = lineStarts [ i ] ;
if ( offset < start ) {
return {
line : i ,
col : offset - lineStarts [ i - 1 ] + 1
} ;
}
if ( offset === start )
return {
line : i + 1 ,
col : 1
} ;
}
const line = lineStarts . length ;
return {
line ,
col : offset - lineStarts [ line - 1 ] + 1
} ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
function getLine ( line , cst ) {
const {
lineStarts ,
src
} = getSrcInfo ( cst ) ;
if ( ! lineStarts || ! ( line >= 1 ) || line > lineStarts . length )
return null ;
const start = lineStarts [ line - 1 ] ;
let end = lineStarts [ line ] ;
while ( end && end > start && src [ end - 1 ] === "\n" )
-- end ;
return src . slice ( start , end ) ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
function getPrettyContext ( {
start ,
end
} , cst , maxWidth = 80 ) {
let src = getLine ( start . line , cst ) ;
if ( ! src )
return null ;
let {
col
} = start ;
if ( src . length > maxWidth ) {
if ( col <= maxWidth - 10 ) {
src = src . substr ( 0 , maxWidth - 1 ) + "\u2026" ;
} else {
const halfWidth = Math . round ( maxWidth / 2 ) ;
if ( src . length > col + halfWidth )
src = src . substr ( 0 , col + halfWidth - 1 ) + "\u2026" ;
col -= src . length - maxWidth ;
src = "\u2026" + src . substr ( 1 - maxWidth ) ;
}
}
let errLen = 1 ;
let errEnd = "" ;
if ( end ) {
if ( end . line === start . line && col + ( end . col - start . col ) <= maxWidth + 1 ) {
errLen = end . col - start . col ;
} else {
errLen = Math . min ( src . length + 1 , maxWidth ) - col ;
errEnd = "\u2026" ;
}
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
const offset = col > 1 ? " " . repeat ( col - 1 ) : "" ;
const err = "^" . repeat ( errLen ) ;
return ` ${ src }
$ { offset } $ { err } $ { errEnd } ` ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
var Range = class {
static copy ( orig ) {
return new Range ( orig . start , orig . end ) ;
}
constructor ( start , end ) {
this . start = start ;
this . end = end || start ;
}
isEmpty ( ) {
return typeof this . start !== "number" || ! this . end || this . end <= this . start ;
}
setOrigRange ( cr , offset ) {
const {
start ,
end
} = this ;
if ( cr . length === 0 || end <= cr [ 0 ] ) {
this . origStart = start ;
this . origEnd = end ;
return offset ;
}
let i = offset ;
while ( i < cr . length ) {
if ( cr [ i ] > start )
break ;
else
++ i ;
}
this . origStart = start + i ;
const nextOffset = i ;
while ( i < cr . length ) {
if ( cr [ i ] >= end )
break ;
else
++ i ;
}
this . origEnd = end + i ;
return nextOffset ;
}
} ;
var Node = class {
static addStringTerminator ( src , offset , str ) {
if ( str [ str . length - 1 ] === "\n" )
return str ;
const next = Node . endOfWhiteSpace ( src , offset ) ;
return next >= src . length || src [ next ] === "\n" ? str + "\n" : str ;
}
static atDocumentBoundary ( src , offset , sep ) {
const ch0 = src [ offset ] ;
if ( ! ch0 )
return true ;
const prev = src [ offset - 1 ] ;
if ( prev && prev !== "\n" )
return false ;
if ( sep ) {
if ( ch0 !== sep )
return false ;
} else {
if ( ch0 !== Char . DIRECTIVES _END && ch0 !== Char . DOCUMENT _END )
return false ;
}
const ch1 = src [ offset + 1 ] ;
const ch2 = src [ offset + 2 ] ;
if ( ch1 !== ch0 || ch2 !== ch0 )
return false ;
const ch3 = src [ offset + 3 ] ;
return ! ch3 || ch3 === "\n" || ch3 === " " || ch3 === " " ;
}
static endOfIdentifier ( src , offset ) {
let ch = src [ offset ] ;
const isVerbatim = ch === "<" ;
const notOk = isVerbatim ? [ "\n" , " " , " " , ">" ] : [ "\n" , " " , " " , "[" , "]" , "{" , "}" , "," ] ;
while ( ch && notOk . indexOf ( ch ) === - 1 )
ch = src [ offset += 1 ] ;
if ( isVerbatim && ch === ">" )
offset += 1 ;
return offset ;
}
static endOfIndent ( src , offset ) {
let ch = src [ offset ] ;
while ( ch === " " )
ch = src [ offset += 1 ] ;
return offset ;
}
static endOfLine ( src , offset ) {
let ch = src [ offset ] ;
while ( ch && ch !== "\n" )
ch = src [ offset += 1 ] ;
return offset ;
}
static endOfWhiteSpace ( src , offset ) {
let ch = src [ offset ] ;
while ( ch === " " || ch === " " )
ch = src [ offset += 1 ] ;
return offset ;
}
static startOfLine ( src , offset ) {
let ch = src [ offset - 1 ] ;
if ( ch === "\n" )
return offset ;
while ( ch && ch !== "\n" )
ch = src [ offset -= 1 ] ;
return offset + 1 ;
}
static endOfBlockIndent ( src , indent , lineStart ) {
const inEnd = Node . endOfIndent ( src , lineStart ) ;
if ( inEnd > lineStart + indent ) {
return inEnd ;
} else {
const wsEnd = Node . endOfWhiteSpace ( src , inEnd ) ;
const ch = src [ wsEnd ] ;
if ( ! ch || ch === "\n" )
return wsEnd ;
}
return null ;
}
static atBlank ( src , offset , endAsBlank ) {
const ch = src [ offset ] ;
return ch === "\n" || ch === " " || ch === " " || endAsBlank && ! ch ;
}
static nextNodeIsIndented ( ch , indentDiff , indicatorAsIndent ) {
if ( ! ch || indentDiff < 0 )
return false ;
if ( indentDiff > 0 )
return true ;
return indicatorAsIndent && ch === "-" ;
}
static normalizeOffset ( src , offset ) {
const ch = src [ offset ] ;
return ! ch ? offset : ch !== "\n" && src [ offset - 1 ] === "\n" ? offset - 1 : Node . endOfWhiteSpace ( src , offset ) ;
}
static foldNewline ( src , offset , indent ) {
let inCount = 0 ;
let error = false ;
let fold = "" ;
let ch = src [ offset + 1 ] ;
while ( ch === " " || ch === " " || ch === "\n" ) {
switch ( ch ) {
case "\n" :
inCount = 0 ;
offset += 1 ;
fold += "\n" ;
break ;
case " " :
if ( inCount <= indent )
error = true ;
offset = Node . endOfWhiteSpace ( src , offset + 2 ) - 1 ;
break ;
case " " :
inCount += 1 ;
offset += 1 ;
break ;
}
ch = src [ offset + 1 ] ;
}
if ( ! fold )
fold = " " ;
if ( ch && inCount <= indent )
error = true ;
return {
fold ,
offset ,
error
2020-08-26 01:57:08 +02:00
} ;
}
2022-11-10 11:43:16 +01:00
constructor ( type , props , context ) {
Object . defineProperty ( this , "context" , {
value : context || null ,
writable : true
} ) ;
this . error = null ;
this . range = null ;
this . valueRange = null ;
this . props = props || [ ] ;
this . type = type ;
this . value = null ;
}
getPropValue ( idx , key , skipKey ) {
if ( ! this . context )
return null ;
const {
src
} = this . context ;
const prop = this . props [ idx ] ;
return prop && src [ prop . start ] === key ? src . slice ( prop . start + ( skipKey ? 1 : 0 ) , prop . end ) : null ;
}
get anchor ( ) {
for ( let i = 0 ; i < this . props . length ; ++ i ) {
const anchor = this . getPropValue ( i , Char . ANCHOR , true ) ;
if ( anchor != null )
return anchor ;
}
return null ;
}
get comment ( ) {
const comments = [ ] ;
for ( let i = 0 ; i < this . props . length ; ++ i ) {
const comment = this . getPropValue ( i , Char . COMMENT , true ) ;
if ( comment != null )
comments . push ( comment ) ;
}
return comments . length > 0 ? comments . join ( "\n" ) : null ;
}
commentHasRequiredWhitespace ( start ) {
const {
src
} = this . context ;
if ( this . header && start === this . header . end )
return false ;
if ( ! this . valueRange )
return false ;
const {
end
} = this . valueRange ;
return start !== end || Node . atBlank ( src , end - 1 ) ;
}
get hasComment ( ) {
if ( this . context ) {
const {
src
} = this . context ;
for ( let i = 0 ; i < this . props . length ; ++ i ) {
if ( src [ this . props [ i ] . start ] === Char . COMMENT )
return true ;
}
}
return false ;
}
get hasProps ( ) {
if ( this . context ) {
const {
src
} = this . context ;
for ( let i = 0 ; i < this . props . length ; ++ i ) {
if ( src [ this . props [ i ] . start ] !== Char . COMMENT )
return true ;
}
}
return false ;
}
get includesTrailingLines ( ) {
return false ;
}
get jsonLike ( ) {
const jsonLikeTypes = [ Type . FLOW _MAP , Type . FLOW _SEQ , Type . QUOTE _DOUBLE , Type . QUOTE _SINGLE ] ;
return jsonLikeTypes . indexOf ( this . type ) !== - 1 ;
}
get rangeAsLinePos ( ) {
if ( ! this . range || ! this . context )
return void 0 ;
const start = getLinePos ( this . range . start , this . context . root ) ;
if ( ! start )
return void 0 ;
const end = getLinePos ( this . range . end , this . context . root ) ;
return {
start ,
end
} ;
}
get rawValue ( ) {
if ( ! this . valueRange || ! this . context )
return null ;
const {
start ,
end
} = this . valueRange ;
return this . context . src . slice ( start , end ) ;
}
get tag ( ) {
for ( let i = 0 ; i < this . props . length ; ++ i ) {
const tag = this . getPropValue ( i , Char . TAG , false ) ;
if ( tag != null ) {
if ( tag [ 1 ] === "<" ) {
return {
verbatim : tag . slice ( 2 , - 1 )
} ;
} else {
const [ _ , handle , suffix ] = tag . match ( /^(.*!)([^!]*)$/ ) ;
return {
handle ,
suffix
} ;
}
}
}
return null ;
}
get valueRangeContainsNewline ( ) {
if ( ! this . valueRange || ! this . context )
return false ;
const {
start ,
end
} = this . valueRange ;
const {
src
} = this . context ;
for ( let i = start ; i < end ; ++ i ) {
if ( src [ i ] === "\n" )
return true ;
}
return false ;
}
parseComment ( start ) {
const {
src
} = this . context ;
if ( src [ start ] === Char . COMMENT ) {
const end = Node . endOfLine ( src , start + 1 ) ;
const commentRange = new Range ( start , end ) ;
this . props . push ( commentRange ) ;
return end ;
}
return start ;
}
setOrigRanges ( cr , offset ) {
if ( this . range )
offset = this . range . setOrigRange ( cr , offset ) ;
if ( this . valueRange )
this . valueRange . setOrigRange ( cr , offset ) ;
this . props . forEach ( ( prop ) => prop . setOrigRange ( cr , offset ) ) ;
return offset ;
}
toString ( ) {
const {
context : {
src
} ,
range ,
value
} = this ;
if ( value != null )
return value ;
const str = src . slice ( range . start , range . end ) ;
return Node . addStringTerminator ( src , range . end , str ) ;
}
2020-08-26 01:57:08 +02:00
} ;
2022-11-10 11:43:16 +01:00
var YAMLError = class extends Error {
constructor ( name , source , message ) {
if ( ! message || ! ( source instanceof Node ) )
throw new Error ( ` Invalid arguments for new ${ name } ` ) ;
super ( ) ;
this . name = name ;
this . message = message ;
this . source = source ;
}
makePretty ( ) {
if ( ! this . source )
return ;
this . nodeType = this . source . type ;
const cst = this . source . context && this . source . context . root ;
if ( typeof this . offset === "number" ) {
this . range = new Range ( this . offset , this . offset + 1 ) ;
const start = cst && getLinePos ( this . offset , cst ) ;
if ( start ) {
const end = {
line : start . line ,
col : start . col + 1
} ;
this . linePos = {
start ,
end
} ;
}
delete this . offset ;
} else {
this . range = this . source . range ;
this . linePos = this . source . rangeAsLinePos ;
}
if ( this . linePos ) {
const {
line ,
col
} = this . linePos . start ;
this . message += ` at line ${ line } , column ${ col } ` ;
const ctx = cst && getPrettyContext ( this . linePos , cst ) ;
if ( ctx )
this . message += ` :
$ { ctx }
` ;
}
delete this . source ;
}
2020-08-26 01:57:08 +02:00
} ;
2022-11-10 11:43:16 +01:00
var YAMLReferenceError = class extends YAMLError {
constructor ( source , message ) {
super ( "YAMLReferenceError" , source , message ) ;
}
2020-08-26 01:57:08 +02:00
} ;
2022-11-10 11:43:16 +01:00
var YAMLSemanticError = class extends YAMLError {
constructor ( source , message ) {
super ( "YAMLSemanticError" , source , message ) ;
}
2020-08-26 01:57:08 +02:00
} ;
2022-11-10 11:43:16 +01:00
var YAMLSyntaxError = class extends YAMLError {
constructor ( source , message ) {
super ( "YAMLSyntaxError" , source , message ) ;
}
2020-08-26 01:57:08 +02:00
} ;
2022-11-10 11:43:16 +01:00
var YAMLWarning = class extends YAMLError {
constructor ( source , message ) {
super ( "YAMLWarning" , source , message ) ;
}
2020-08-26 01:57:08 +02:00
} ;
2022-11-10 11:43:16 +01:00
function _defineProperty ( obj , key , value ) {
if ( key in obj ) {
Object . defineProperty ( obj , key , {
value ,
enumerable : true ,
configurable : true ,
writable : true
} ) ;
} else {
obj [ key ] = value ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
return obj ;
}
var PlainValue = class extends Node {
static endOfLine ( src , start , inFlow ) {
let ch = src [ start ] ;
let offset = start ;
while ( ch && ch !== "\n" ) {
if ( inFlow && ( ch === "[" || ch === "]" || ch === "{" || ch === "}" || ch === "," ) )
break ;
const next = src [ offset + 1 ] ;
if ( ch === ":" && ( ! next || next === "\n" || next === " " || next === " " || inFlow && next === "," ) )
break ;
if ( ( ch === " " || ch === " " ) && next === "#" )
break ;
offset += 1 ;
ch = next ;
}
return offset ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
get strValue ( ) {
if ( ! this . valueRange || ! this . context )
return null ;
let {
start ,
end
} = this . valueRange ;
const {
src
} = this . context ;
let ch = src [ end - 1 ] ;
while ( start < end && ( ch === "\n" || ch === " " || ch === " " ) )
ch = src [ -- end - 1 ] ;
let str = "" ;
for ( let i = start ; i < end ; ++ i ) {
const ch2 = src [ i ] ;
if ( ch2 === "\n" ) {
const {
fold ,
offset
} = Node . foldNewline ( src , i , - 1 ) ;
str += fold ;
i = offset ;
} else if ( ch2 === " " || ch2 === " " ) {
const wsStart = i ;
let next = src [ i + 1 ] ;
while ( i < end && ( next === " " || next === " " ) ) {
i += 1 ;
next = src [ i + 1 ] ;
}
if ( next !== "\n" )
str += i > wsStart ? src . slice ( wsStart , i + 1 ) : ch2 ;
} else {
str += ch2 ;
}
}
const ch0 = src [ start ] ;
switch ( ch0 ) {
case " " : {
const msg = "Plain value cannot start with a tab character" ;
const errors = [ new YAMLSemanticError ( this , msg ) ] ;
return {
errors ,
str
} ;
}
case "@" :
case "`" : {
const msg = ` Plain value cannot start with reserved character ${ ch0 } ` ;
const errors = [ new YAMLSemanticError ( this , msg ) ] ;
return {
errors ,
str
} ;
}
default :
return str ;
}
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
parseBlockValue ( start ) {
const {
indent ,
inFlow ,
src
} = this . context ;
let offset = start ;
let valueEnd = start ;
for ( let ch = src [ offset ] ; ch === "\n" ; ch = src [ offset ] ) {
if ( Node . atDocumentBoundary ( src , offset + 1 ) )
break ;
const end = Node . endOfBlockIndent ( src , indent , offset + 1 ) ;
if ( end === null || src [ end ] === "#" )
break ;
if ( src [ end ] === "\n" ) {
offset = end ;
} else {
valueEnd = PlainValue . endOfLine ( src , end , inFlow ) ;
offset = valueEnd ;
}
}
if ( this . valueRange . isEmpty ( ) )
this . valueRange . start = start ;
this . valueRange . end = valueEnd ;
return valueEnd ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
parse ( context , start ) {
this . context = context ;
const {
inFlow ,
src
} = context ;
let offset = start ;
const ch = src [ offset ] ;
if ( ch && ch !== "#" && ch !== "\n" ) {
offset = PlainValue . endOfLine ( src , start , inFlow ) ;
}
this . valueRange = new Range ( start , offset ) ;
offset = Node . endOfWhiteSpace ( src , offset ) ;
offset = this . parseComment ( offset ) ;
if ( ! this . hasComment || this . valueRange . isEmpty ( ) ) {
offset = this . parseBlockValue ( offset ) ;
}
return offset ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
} ;
exports2 . Char = Char ;
exports2 . Node = Node ;
exports2 . PlainValue = PlainValue ;
exports2 . Range = Range ;
exports2 . Type = Type ;
exports2 . YAMLError = YAMLError ;
exports2 . YAMLReferenceError = YAMLReferenceError ;
exports2 . YAMLSemanticError = YAMLSemanticError ;
exports2 . YAMLSyntaxError = YAMLSyntaxError ;
exports2 . YAMLWarning = YAMLWarning ;
exports2 . _defineProperty = _defineProperty ;
exports2 . defaultTagPrefix = defaultTagPrefix ;
exports2 . defaultTags = defaultTags ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
} ) ;
var require _parse _cst = _ _commonJS ( {
"node_modules/yaml/dist/parse-cst.js" ( exports2 ) {
"use strict" ;
var PlainValue = require _PlainValue _ec8e588e ( ) ;
var BlankLine = class extends PlainValue . Node {
constructor ( ) {
super ( PlainValue . Type . BLANK _LINE ) ;
}
get includesTrailingLines ( ) {
return true ;
}
parse ( context , start ) {
this . context = context ;
this . range = new PlainValue . Range ( start , start + 1 ) ;
return start + 1 ;
2020-08-26 01:57:08 +02:00
}
} ;
2022-11-10 11:43:16 +01:00
var CollectionItem = class extends PlainValue . Node {
constructor ( type , props ) {
super ( type , props ) ;
this . node = null ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
get includesTrailingLines ( ) {
return ! ! this . node && this . node . includesTrailingLines ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
parse ( context , start ) {
this . context = context ;
const {
parseNode ,
src
} = context ;
let {
atLineStart ,
lineStart
} = context ;
if ( ! atLineStart && this . type === PlainValue . Type . SEQ _ITEM )
this . error = new PlainValue . YAMLSemanticError ( this , "Sequence items must not have preceding content on the same line" ) ;
const indent = atLineStart ? start - lineStart : context . indent ;
let offset = PlainValue . Node . endOfWhiteSpace ( src , start + 1 ) ;
let ch = src [ offset ] ;
const inlineComment = ch === "#" ;
const comments = [ ] ;
let blankLine = null ;
while ( ch === "\n" || ch === "#" ) {
if ( ch === "#" ) {
const end2 = PlainValue . Node . endOfLine ( src , offset + 1 ) ;
comments . push ( new PlainValue . Range ( offset , end2 ) ) ;
offset = end2 ;
} else {
atLineStart = true ;
lineStart = offset + 1 ;
const wsEnd = PlainValue . Node . endOfWhiteSpace ( src , lineStart ) ;
if ( src [ wsEnd ] === "\n" && comments . length === 0 ) {
blankLine = new BlankLine ( ) ;
lineStart = blankLine . parse ( {
src
} , lineStart ) ;
}
offset = PlainValue . Node . endOfIndent ( src , lineStart ) ;
}
ch = src [ offset ] ;
}
if ( PlainValue . Node . nextNodeIsIndented ( ch , offset - ( lineStart + indent ) , this . type !== PlainValue . Type . SEQ _ITEM ) ) {
this . node = parseNode ( {
atLineStart ,
inCollection : false ,
indent ,
lineStart ,
parent : this
} , offset ) ;
} else if ( ch && lineStart > start + 1 ) {
offset = lineStart - 1 ;
}
if ( this . node ) {
if ( blankLine ) {
const items = context . parent . items || context . parent . contents ;
if ( items )
items . push ( blankLine ) ;
}
if ( comments . length )
Array . prototype . push . apply ( this . props , comments ) ;
offset = this . node . range . end ;
} else {
if ( inlineComment ) {
const c = comments [ 0 ] ;
this . props . push ( c ) ;
offset = c . end ;
} else {
offset = PlainValue . Node . endOfLine ( src , start + 1 ) ;
}
}
const end = this . node ? this . node . valueRange . end : offset ;
this . valueRange = new PlainValue . Range ( start , end ) ;
return offset ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
setOrigRanges ( cr , offset ) {
offset = super . setOrigRanges ( cr , offset ) ;
return this . node ? this . node . setOrigRanges ( cr , offset ) : offset ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
toString ( ) {
const {
context : {
src
} ,
node ,
range ,
value
} = this ;
if ( value != null )
return value ;
const str = node ? src . slice ( range . start , node . range . start ) + String ( node ) : src . slice ( range . start , range . end ) ;
return PlainValue . Node . addStringTerminator ( src , range . end , str ) ;
2020-08-26 01:57:08 +02:00
}
} ;
2022-11-10 11:43:16 +01:00
var Comment = class extends PlainValue . Node {
constructor ( ) {
super ( PlainValue . Type . COMMENT ) ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
parse ( context , start ) {
this . context = context ;
const offset = this . parseComment ( start ) ;
this . range = new PlainValue . Range ( start , offset ) ;
return offset ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
} ;
function grabCollectionEndComments ( node ) {
let cnode = node ;
while ( cnode instanceof CollectionItem )
cnode = cnode . node ;
if ( ! ( cnode instanceof Collection ) )
return null ;
const len = cnode . items . length ;
let ci = - 1 ;
for ( let i = len - 1 ; i >= 0 ; -- i ) {
const n = cnode . items [ i ] ;
if ( n . type === PlainValue . Type . COMMENT ) {
const {
indent ,
lineStart
} = n . context ;
if ( indent > 0 && n . range . start >= lineStart + indent )
break ;
ci = i ;
} else if ( n . type === PlainValue . Type . BLANK _LINE )
ci = i ;
else
break ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
if ( ci === - 1 )
return null ;
const ca = cnode . items . splice ( ci , len - ci ) ;
const prevEnd = ca [ 0 ] . range . start ;
while ( true ) {
cnode . range . end = prevEnd ;
if ( cnode . valueRange && cnode . valueRange . end > prevEnd )
cnode . valueRange . end = prevEnd ;
if ( cnode === node )
break ;
cnode = cnode . context . parent ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
return ca ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
var Collection = class extends PlainValue . Node {
static nextContentHasIndent ( src , offset , indent ) {
const lineStart = PlainValue . Node . endOfLine ( src , offset ) + 1 ;
offset = PlainValue . Node . endOfWhiteSpace ( src , lineStart ) ;
const ch = src [ offset ] ;
if ( ! ch )
return false ;
if ( offset >= lineStart + indent )
return true ;
if ( ch !== "#" && ch !== "\n" )
return false ;
return Collection . nextContentHasIndent ( src , offset , indent ) ;
}
constructor ( firstItem ) {
super ( firstItem . type === PlainValue . Type . SEQ _ITEM ? PlainValue . Type . SEQ : PlainValue . Type . MAP ) ;
for ( let i = firstItem . props . length - 1 ; i >= 0 ; -- i ) {
if ( firstItem . props [ i ] . start < firstItem . context . lineStart ) {
this . props = firstItem . props . slice ( 0 , i + 1 ) ;
firstItem . props = firstItem . props . slice ( i + 1 ) ;
const itemRange = firstItem . props [ 0 ] || firstItem . valueRange ;
firstItem . range . start = itemRange . start ;
break ;
}
}
this . items = [ firstItem ] ;
const ec = grabCollectionEndComments ( firstItem ) ;
if ( ec )
Array . prototype . push . apply ( this . items , ec ) ;
}
get includesTrailingLines ( ) {
return this . items . length > 0 ;
}
parse ( context , start ) {
this . context = context ;
const {
parseNode ,
src
} = context ;
let lineStart = PlainValue . Node . startOfLine ( src , start ) ;
const firstItem = this . items [ 0 ] ;
firstItem . context . parent = this ;
this . valueRange = PlainValue . Range . copy ( firstItem . valueRange ) ;
const indent = firstItem . range . start - firstItem . context . lineStart ;
let offset = start ;
offset = PlainValue . Node . normalizeOffset ( src , offset ) ;
let ch = src [ offset ] ;
let atLineStart = PlainValue . Node . endOfWhiteSpace ( src , lineStart ) === offset ;
let prevIncludesTrailingLines = false ;
while ( ch ) {
while ( ch === "\n" || ch === "#" ) {
if ( atLineStart && ch === "\n" && ! prevIncludesTrailingLines ) {
const blankLine = new BlankLine ( ) ;
offset = blankLine . parse ( {
src
} , offset ) ;
this . valueRange . end = offset ;
if ( offset >= src . length ) {
ch = null ;
break ;
}
this . items . push ( blankLine ) ;
offset -= 1 ;
} else if ( ch === "#" ) {
if ( offset < lineStart + indent && ! Collection . nextContentHasIndent ( src , offset , indent ) ) {
return offset ;
}
const comment = new Comment ( ) ;
offset = comment . parse ( {
indent ,
lineStart ,
src
} , offset ) ;
this . items . push ( comment ) ;
this . valueRange . end = offset ;
if ( offset >= src . length ) {
ch = null ;
break ;
}
}
lineStart = offset + 1 ;
offset = PlainValue . Node . endOfIndent ( src , lineStart ) ;
if ( PlainValue . Node . atBlank ( src , offset ) ) {
const wsEnd = PlainValue . Node . endOfWhiteSpace ( src , offset ) ;
const next = src [ wsEnd ] ;
if ( ! next || next === "\n" || next === "#" ) {
offset = wsEnd ;
}
}
ch = src [ offset ] ;
atLineStart = true ;
}
if ( ! ch ) {
break ;
}
if ( offset !== lineStart + indent && ( atLineStart || ch !== ":" ) ) {
if ( offset < lineStart + indent ) {
if ( lineStart > start )
offset = lineStart ;
break ;
} else if ( ! this . error ) {
const msg = "All collection items must start at the same column" ;
this . error = new PlainValue . YAMLSyntaxError ( this , msg ) ;
}
}
if ( firstItem . type === PlainValue . Type . SEQ _ITEM ) {
if ( ch !== "-" ) {
if ( lineStart > start )
offset = lineStart ;
break ;
}
} else if ( ch === "-" && ! this . error ) {
const next = src [ offset + 1 ] ;
if ( ! next || next === "\n" || next === " " || next === " " ) {
const msg = "A collection cannot be both a mapping and a sequence" ;
this . error = new PlainValue . YAMLSyntaxError ( this , msg ) ;
}
}
const node = parseNode ( {
atLineStart ,
inCollection : true ,
indent ,
lineStart ,
parent : this
} , offset ) ;
if ( ! node )
return offset ;
this . items . push ( node ) ;
this . valueRange . end = node . valueRange . end ;
offset = PlainValue . Node . normalizeOffset ( src , node . range . end ) ;
ch = src [ offset ] ;
atLineStart = false ;
prevIncludesTrailingLines = node . includesTrailingLines ;
if ( ch ) {
let ls = offset - 1 ;
let prev = src [ ls ] ;
while ( prev === " " || prev === " " )
prev = src [ -- ls ] ;
if ( prev === "\n" ) {
lineStart = ls + 1 ;
atLineStart = true ;
}
}
const ec = grabCollectionEndComments ( node ) ;
if ( ec )
Array . prototype . push . apply ( this . items , ec ) ;
}
return offset ;
}
setOrigRanges ( cr , offset ) {
offset = super . setOrigRanges ( cr , offset ) ;
this . items . forEach ( ( node ) => {
offset = node . setOrigRanges ( cr , offset ) ;
} ) ;
return offset ;
}
toString ( ) {
const {
context : {
src
} ,
items ,
range ,
value
} = this ;
if ( value != null )
return value ;
let str = src . slice ( range . start , items [ 0 ] . range . start ) + String ( items [ 0 ] ) ;
for ( let i = 1 ; i < items . length ; ++ i ) {
const item = items [ i ] ;
const {
atLineStart ,
indent
} = item . context ;
if ( atLineStart )
for ( let i2 = 0 ; i2 < indent ; ++ i2 )
str += " " ;
str += String ( item ) ;
}
return PlainValue . Node . addStringTerminator ( src , range . end , str ) ;
2020-08-26 01:57:08 +02:00
}
} ;
2022-11-10 11:43:16 +01:00
var Directive = class extends PlainValue . Node {
constructor ( ) {
super ( PlainValue . Type . DIRECTIVE ) ;
this . name = null ;
}
get parameters ( ) {
const raw = this . rawValue ;
return raw ? raw . trim ( ) . split ( /[ \t]+/ ) : [ ] ;
}
parseName ( start ) {
const {
src
} = this . context ;
let offset = start ;
let ch = src [ offset ] ;
while ( ch && ch !== "\n" && ch !== " " && ch !== " " )
ch = src [ offset += 1 ] ;
this . name = src . slice ( start , offset ) ;
return offset ;
}
parseParameters ( start ) {
const {
src
} = this . context ;
let offset = start ;
let ch = src [ offset ] ;
while ( ch && ch !== "\n" && ch !== "#" )
ch = src [ offset += 1 ] ;
this . valueRange = new PlainValue . Range ( start , offset ) ;
return offset ;
}
parse ( context , start ) {
this . context = context ;
let offset = this . parseName ( start + 1 ) ;
offset = this . parseParameters ( offset ) ;
offset = this . parseComment ( offset ) ;
this . range = new PlainValue . Range ( start , offset ) ;
return offset ;
}
} ;
var Document = class extends PlainValue . Node {
static startCommentOrEndBlankLine ( src , start ) {
const offset = PlainValue . Node . endOfWhiteSpace ( src , start ) ;
const ch = src [ offset ] ;
return ch === "#" || ch === "\n" ? offset : start ;
}
constructor ( ) {
super ( PlainValue . Type . DOCUMENT ) ;
this . directives = null ;
this . contents = null ;
this . directivesEndMarker = null ;
this . documentEndMarker = null ;
}
parseDirectives ( start ) {
const {
src
} = this . context ;
this . directives = [ ] ;
let atLineStart = true ;
let hasDirectives = false ;
let offset = start ;
while ( ! PlainValue . Node . atDocumentBoundary ( src , offset , PlainValue . Char . DIRECTIVES _END ) ) {
offset = Document . startCommentOrEndBlankLine ( src , offset ) ;
switch ( src [ offset ] ) {
case "\n" :
if ( atLineStart ) {
const blankLine = new BlankLine ( ) ;
offset = blankLine . parse ( {
src
} , offset ) ;
if ( offset < src . length ) {
this . directives . push ( blankLine ) ;
}
} else {
offset += 1 ;
atLineStart = true ;
}
break ;
case "#" :
{
const comment = new Comment ( ) ;
offset = comment . parse ( {
src
} , offset ) ;
this . directives . push ( comment ) ;
atLineStart = false ;
}
break ;
case "%" :
{
const directive = new Directive ( ) ;
offset = directive . parse ( {
parent : this ,
src
} , offset ) ;
this . directives . push ( directive ) ;
hasDirectives = true ;
atLineStart = false ;
}
break ;
default :
if ( hasDirectives ) {
this . error = new PlainValue . YAMLSemanticError ( this , "Missing directives-end indicator line" ) ;
} else if ( this . directives . length > 0 ) {
this . contents = this . directives ;
this . directives = [ ] ;
}
return offset ;
}
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
if ( src [ offset ] ) {
this . directivesEndMarker = new PlainValue . Range ( offset , offset + 3 ) ;
return offset + 3 ;
}
if ( hasDirectives ) {
this . error = new PlainValue . YAMLSemanticError ( this , "Missing directives-end indicator line" ) ;
} else if ( this . directives . length > 0 ) {
this . contents = this . directives ;
this . directives = [ ] ;
}
return offset ;
}
parseContents ( start ) {
const {
parseNode ,
src
} = this . context ;
if ( ! this . contents )
this . contents = [ ] ;
let lineStart = start ;
while ( src [ lineStart - 1 ] === "-" )
lineStart -= 1 ;
let offset = PlainValue . Node . endOfWhiteSpace ( src , start ) ;
let atLineStart = lineStart === start ;
this . valueRange = new PlainValue . Range ( offset ) ;
while ( ! PlainValue . Node . atDocumentBoundary ( src , offset , PlainValue . Char . DOCUMENT _END ) ) {
switch ( src [ offset ] ) {
case "\n" :
if ( atLineStart ) {
const blankLine = new BlankLine ( ) ;
offset = blankLine . parse ( {
src
} , offset ) ;
if ( offset < src . length ) {
this . contents . push ( blankLine ) ;
}
} else {
offset += 1 ;
atLineStart = true ;
}
lineStart = offset ;
break ;
case "#" :
{
const comment = new Comment ( ) ;
offset = comment . parse ( {
src
} , offset ) ;
this . contents . push ( comment ) ;
atLineStart = false ;
}
break ;
default : {
const iEnd = PlainValue . Node . endOfIndent ( src , offset ) ;
const context = {
atLineStart ,
indent : - 1 ,
inFlow : false ,
inCollection : false ,
lineStart ,
parent : this
} ;
const node = parseNode ( context , iEnd ) ;
if ( ! node )
return this . valueRange . end = iEnd ;
this . contents . push ( node ) ;
offset = node . range . end ;
atLineStart = false ;
const ec = grabCollectionEndComments ( node ) ;
if ( ec )
Array . prototype . push . apply ( this . contents , ec ) ;
}
}
offset = Document . startCommentOrEndBlankLine ( src , offset ) ;
}
this . valueRange . end = offset ;
if ( src [ offset ] ) {
this . documentEndMarker = new PlainValue . Range ( offset , offset + 3 ) ;
offset += 3 ;
if ( src [ offset ] ) {
offset = PlainValue . Node . endOfWhiteSpace ( src , offset ) ;
if ( src [ offset ] === "#" ) {
const comment = new Comment ( ) ;
offset = comment . parse ( {
src
} , offset ) ;
this . contents . push ( comment ) ;
}
switch ( src [ offset ] ) {
case "\n" :
offset += 1 ;
break ;
case void 0 :
break ;
default :
this . error = new PlainValue . YAMLSyntaxError ( this , "Document end marker line cannot have a non-comment suffix" ) ;
}
}
}
return offset ;
}
parse ( context , start ) {
context . root = this ;
this . context = context ;
const {
src
} = context ;
let offset = src . charCodeAt ( start ) === 65279 ? start + 1 : start ;
offset = this . parseDirectives ( offset ) ;
offset = this . parseContents ( offset ) ;
return offset ;
}
setOrigRanges ( cr , offset ) {
offset = super . setOrigRanges ( cr , offset ) ;
this . directives . forEach ( ( node ) => {
offset = node . setOrigRanges ( cr , offset ) ;
} ) ;
if ( this . directivesEndMarker )
offset = this . directivesEndMarker . setOrigRange ( cr , offset ) ;
this . contents . forEach ( ( node ) => {
offset = node . setOrigRanges ( cr , offset ) ;
} ) ;
if ( this . documentEndMarker )
offset = this . documentEndMarker . setOrigRange ( cr , offset ) ;
return offset ;
}
toString ( ) {
const {
contents ,
directives ,
value
} = this ;
if ( value != null )
return value ;
let str = directives . join ( "" ) ;
if ( contents . length > 0 ) {
if ( directives . length > 0 || contents [ 0 ] . type === PlainValue . Type . COMMENT )
str += "---\n" ;
str += contents . join ( "" ) ;
}
if ( str [ str . length - 1 ] !== "\n" )
str += "\n" ;
return str ;
2020-08-26 01:57:08 +02:00
}
} ;
2022-11-10 11:43:16 +01:00
var Alias = class extends PlainValue . Node {
parse ( context , start ) {
this . context = context ;
const {
src
} = context ;
let offset = PlainValue . Node . endOfIdentifier ( src , start + 1 ) ;
this . valueRange = new PlainValue . Range ( start + 1 , offset ) ;
offset = PlainValue . Node . endOfWhiteSpace ( src , offset ) ;
offset = this . parseComment ( offset ) ;
return offset ;
}
} ;
var Chomp = {
CLIP : "CLIP" ,
KEEP : "KEEP" ,
STRIP : "STRIP"
} ;
var BlockValue = class extends PlainValue . Node {
constructor ( type , props ) {
super ( type , props ) ;
this . blockIndent = null ;
this . chomping = Chomp . CLIP ;
this . header = null ;
}
get includesTrailingLines ( ) {
return this . chomping === Chomp . KEEP ;
}
get strValue ( ) {
if ( ! this . valueRange || ! this . context )
return null ;
let {
start ,
end
} = this . valueRange ;
const {
indent ,
src
} = this . context ;
if ( this . valueRange . isEmpty ( ) )
return "" ;
let lastNewLine = null ;
let ch = src [ end - 1 ] ;
while ( ch === "\n" || ch === " " || ch === " " ) {
end -= 1 ;
if ( end <= start ) {
if ( this . chomping === Chomp . KEEP )
break ;
else
return "" ;
}
if ( ch === "\n" )
lastNewLine = end ;
ch = src [ end - 1 ] ;
}
let keepStart = end + 1 ;
if ( lastNewLine ) {
if ( this . chomping === Chomp . KEEP ) {
keepStart = lastNewLine ;
end = this . valueRange . end ;
} else {
end = lastNewLine ;
}
}
const bi = indent + this . blockIndent ;
const folded = this . type === PlainValue . Type . BLOCK _FOLDED ;
let atStart = true ;
let str = "" ;
let sep = "" ;
let prevMoreIndented = false ;
for ( let i = start ; i < end ; ++ i ) {
for ( let j = 0 ; j < bi ; ++ j ) {
if ( src [ i ] !== " " )
break ;
i += 1 ;
}
const ch2 = src [ i ] ;
if ( ch2 === "\n" ) {
if ( sep === "\n" )
str += "\n" ;
else
sep = "\n" ;
} else {
const lineEnd = PlainValue . Node . endOfLine ( src , i ) ;
const line = src . slice ( i , lineEnd ) ;
i = lineEnd ;
if ( folded && ( ch2 === " " || ch2 === " " ) && i < keepStart ) {
if ( sep === " " )
sep = "\n" ;
else if ( ! prevMoreIndented && ! atStart && sep === "\n" )
sep = "\n\n" ;
str += sep + line ;
sep = lineEnd < end && src [ lineEnd ] || "" ;
prevMoreIndented = true ;
} else {
str += sep + line ;
sep = folded && i < keepStart ? " " : "\n" ;
prevMoreIndented = false ;
}
if ( atStart && line !== "" )
atStart = false ;
}
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
return this . chomping === Chomp . STRIP ? str : str + "\n" ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
parseBlockHeader ( start ) {
const {
src
} = this . context ;
let offset = start + 1 ;
let bi = "" ;
while ( true ) {
const ch = src [ offset ] ;
switch ( ch ) {
case "-" :
this . chomping = Chomp . STRIP ;
break ;
case "+" :
this . chomping = Chomp . KEEP ;
break ;
case "0" :
case "1" :
case "2" :
case "3" :
case "4" :
case "5" :
case "6" :
case "7" :
case "8" :
case "9" :
bi += ch ;
break ;
default :
this . blockIndent = Number ( bi ) || null ;
this . header = new PlainValue . Range ( start , offset ) ;
return offset ;
}
offset += 1 ;
2020-08-26 01:57:08 +02:00
}
}
2022-11-10 11:43:16 +01:00
parseBlockValue ( start ) {
const {
indent ,
src
} = this . context ;
const explicit = ! ! this . blockIndent ;
let offset = start ;
let valueEnd = start ;
let minBlockIndent = 1 ;
for ( let ch = src [ offset ] ; ch === "\n" ; ch = src [ offset ] ) {
offset += 1 ;
if ( PlainValue . Node . atDocumentBoundary ( src , offset ) )
break ;
const end = PlainValue . Node . endOfBlockIndent ( src , indent , offset ) ;
if ( end === null )
break ;
const ch2 = src [ end ] ;
const lineIndent = end - ( offset + indent ) ;
if ( ! this . blockIndent ) {
if ( src [ end ] !== "\n" ) {
if ( lineIndent < minBlockIndent ) {
const msg = "Block scalars with more-indented leading empty lines must use an explicit indentation indicator" ;
this . error = new PlainValue . YAMLSemanticError ( this , msg ) ;
}
this . blockIndent = lineIndent ;
} else if ( lineIndent > minBlockIndent ) {
minBlockIndent = lineIndent ;
}
} else if ( ch2 && ch2 !== "\n" && lineIndent < this . blockIndent ) {
if ( src [ end ] === "#" )
break ;
if ( ! this . error ) {
const src2 = explicit ? "explicit indentation indicator" : "first line" ;
const msg = ` Block scalars must not be less indented than their ${ src2 } ` ;
this . error = new PlainValue . YAMLSemanticError ( this , msg ) ;
}
}
if ( src [ end ] === "\n" ) {
offset = end ;
} else {
offset = valueEnd = PlainValue . Node . endOfLine ( src , end ) ;
}
}
if ( this . chomping !== Chomp . KEEP ) {
offset = src [ valueEnd ] ? valueEnd + 1 : valueEnd ;
}
this . valueRange = new PlainValue . Range ( start + 1 , offset ) ;
return offset ;
}
parse ( context , start ) {
this . context = context ;
const {
src
} = context ;
let offset = this . parseBlockHeader ( start ) ;
offset = PlainValue . Node . endOfWhiteSpace ( src , offset ) ;
offset = this . parseComment ( offset ) ;
offset = this . parseBlockValue ( offset ) ;
return offset ;
}
setOrigRanges ( cr , offset ) {
offset = super . setOrigRanges ( cr , offset ) ;
return this . header ? this . header . setOrigRange ( cr , offset ) : offset ;
}
2020-08-26 01:57:08 +02:00
} ;
2022-11-10 11:43:16 +01:00
var FlowCollection = class extends PlainValue . Node {
constructor ( type , props ) {
super ( type , props ) ;
this . items = null ;
}
prevNodeIsJsonLike ( idx = this . items . length ) {
const node = this . items [ idx - 1 ] ;
return ! ! node && ( node . jsonLike || node . type === PlainValue . Type . COMMENT && this . prevNodeIsJsonLike ( idx - 1 ) ) ;
}
parse ( context , start ) {
this . context = context ;
const {
parseNode ,
src
} = context ;
let {
indent ,
lineStart
} = context ;
let char = src [ start ] ;
this . items = [ {
char ,
offset : start
} ] ;
let offset = PlainValue . Node . endOfWhiteSpace ( src , start + 1 ) ;
char = src [ offset ] ;
while ( char && char !== "]" && char !== "}" ) {
switch ( char ) {
case "\n" :
{
lineStart = offset + 1 ;
const wsEnd = PlainValue . Node . endOfWhiteSpace ( src , lineStart ) ;
if ( src [ wsEnd ] === "\n" ) {
const blankLine = new BlankLine ( ) ;
lineStart = blankLine . parse ( {
src
} , lineStart ) ;
this . items . push ( blankLine ) ;
}
offset = PlainValue . Node . endOfIndent ( src , lineStart ) ;
if ( offset <= lineStart + indent ) {
char = src [ offset ] ;
if ( offset < lineStart + indent || char !== "]" && char !== "}" ) {
const msg = "Insufficient indentation in flow collection" ;
this . error = new PlainValue . YAMLSemanticError ( this , msg ) ;
}
}
}
break ;
case "," :
{
this . items . push ( {
char ,
offset
} ) ;
offset += 1 ;
}
break ;
case "#" :
{
const comment = new Comment ( ) ;
offset = comment . parse ( {
src
} , offset ) ;
this . items . push ( comment ) ;
}
break ;
case "?" :
case ":" : {
const next = src [ offset + 1 ] ;
if ( next === "\n" || next === " " || next === " " || next === "," || char === ":" && this . prevNodeIsJsonLike ( ) ) {
this . items . push ( {
char ,
offset
} ) ;
offset += 1 ;
break ;
}
}
default : {
const node = parseNode ( {
atLineStart : false ,
inCollection : false ,
inFlow : true ,
indent : - 1 ,
lineStart ,
parent : this
} , offset ) ;
if ( ! node ) {
this . valueRange = new PlainValue . Range ( start , offset ) ;
return offset ;
}
this . items . push ( node ) ;
offset = PlainValue . Node . normalizeOffset ( src , node . range . end ) ;
}
}
offset = PlainValue . Node . endOfWhiteSpace ( src , offset ) ;
char = src [ offset ] ;
}
this . valueRange = new PlainValue . Range ( start , offset + 1 ) ;
if ( char ) {
this . items . push ( {
char ,
offset
} ) ;
offset = PlainValue . Node . endOfWhiteSpace ( src , offset + 1 ) ;
offset = this . parseComment ( offset ) ;
}
return offset ;
}
setOrigRanges ( cr , offset ) {
offset = super . setOrigRanges ( cr , offset ) ;
this . items . forEach ( ( node ) => {
if ( node instanceof PlainValue . Node ) {
offset = node . setOrigRanges ( cr , offset ) ;
} else if ( cr . length === 0 ) {
node . origOffset = node . offset ;
} else {
let i = offset ;
while ( i < cr . length ) {
if ( cr [ i ] > node . offset )
break ;
else
++ i ;
}
node . origOffset = node . offset + i ;
offset = i ;
}
} ) ;
return offset ;
}
toString ( ) {
const {
context : {
src
} ,
items ,
range ,
value
} = this ;
if ( value != null )
return value ;
const nodes = items . filter ( ( item ) => item instanceof PlainValue . Node ) ;
let str = "" ;
let prevEnd = range . start ;
nodes . forEach ( ( node ) => {
const prefix = src . slice ( prevEnd , node . range . start ) ;
prevEnd = node . range . end ;
str += prefix + String ( node ) ;
if ( str [ str . length - 1 ] === "\n" && src [ prevEnd - 1 ] !== "\n" && src [ prevEnd ] === "\n" ) {
prevEnd += 1 ;
}
} ) ;
str += src . slice ( prevEnd , range . end ) ;
return PlainValue . Node . addStringTerminator ( src , range . end , str ) ;
}
2020-08-26 01:57:08 +02:00
} ;
2022-11-10 11:43:16 +01:00
var QuoteDouble = class extends PlainValue . Node {
static endOfQuote ( src , offset ) {
let ch = src [ offset ] ;
while ( ch && ch !== '"' ) {
offset += ch === "\\" ? 2 : 1 ;
ch = src [ offset ] ;
}
return offset + 1 ;
}
get strValue ( ) {
if ( ! this . valueRange || ! this . context )
return null ;
const errors = [ ] ;
const {
start ,
end
} = this . valueRange ;
const {
indent ,
src
} = this . context ;
if ( src [ end - 1 ] !== '"' )
errors . push ( new PlainValue . YAMLSyntaxError ( this , 'Missing closing "quote' ) ) ;
let str = "" ;
for ( let i = start + 1 ; i < end - 1 ; ++ i ) {
const ch = src [ i ] ;
if ( ch === "\n" ) {
if ( PlainValue . Node . atDocumentBoundary ( src , i + 1 ) )
errors . push ( new PlainValue . YAMLSemanticError ( this , "Document boundary indicators are not allowed within string values" ) ) ;
const {
fold ,
offset ,
error
} = PlainValue . Node . foldNewline ( src , i , indent ) ;
str += fold ;
i = offset ;
if ( error )
errors . push ( new PlainValue . YAMLSemanticError ( this , "Multi-line double-quoted string needs to be sufficiently indented" ) ) ;
} else if ( ch === "\\" ) {
i += 1 ;
switch ( src [ i ] ) {
case "0" :
str += "\0" ;
break ;
case "a" :
str += "\x07" ;
break ;
case "b" :
str += "\b" ;
break ;
case "e" :
str += "\x1B" ;
break ;
case "f" :
str += "\f" ;
break ;
case "n" :
str += "\n" ;
break ;
case "r" :
str += "\r" ;
break ;
case "t" :
str += " " ;
break ;
case "v" :
str += "\v" ;
break ;
case "N" :
str += "\x85" ;
break ;
case "_" :
str += "\xA0" ;
break ;
case "L" :
str += "\u2028" ;
break ;
case "P" :
str += "\u2029" ;
break ;
case " " :
str += " " ;
break ;
case '"' :
str += '"' ;
break ;
case "/" :
str += "/" ;
break ;
case "\\" :
str += "\\" ;
break ;
case " " :
str += " " ;
break ;
case "x" :
str += this . parseCharCode ( i + 1 , 2 , errors ) ;
i += 2 ;
break ;
case "u" :
str += this . parseCharCode ( i + 1 , 4 , errors ) ;
i += 4 ;
break ;
case "U" :
str += this . parseCharCode ( i + 1 , 8 , errors ) ;
i += 8 ;
break ;
case "\n" :
while ( src [ i + 1 ] === " " || src [ i + 1 ] === " " )
i += 1 ;
break ;
default :
errors . push ( new PlainValue . YAMLSyntaxError ( this , ` Invalid escape sequence ${ src . substr ( i - 1 , 2 ) } ` ) ) ;
str += "\\" + src [ i ] ;
}
} else if ( ch === " " || ch === " " ) {
const wsStart = i ;
let next = src [ i + 1 ] ;
while ( next === " " || next === " " ) {
i += 1 ;
next = src [ i + 1 ] ;
}
if ( next !== "\n" )
str += i > wsStart ? src . slice ( wsStart , i + 1 ) : ch ;
} else {
str += ch ;
2020-08-26 01:57:08 +02:00
}
}
2022-11-10 11:43:16 +01:00
return errors . length > 0 ? {
errors ,
str
} : str ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
parseCharCode ( offset , length , errors ) {
const {
src
} = this . context ;
const cc = src . substr ( offset , length ) ;
const ok = cc . length === length && /^[0-9a-fA-F]+$/ . test ( cc ) ;
const code = ok ? parseInt ( cc , 16 ) : NaN ;
if ( isNaN ( code ) ) {
errors . push ( new PlainValue . YAMLSyntaxError ( this , ` Invalid escape sequence ${ src . substr ( offset - 2 , length + 2 ) } ` ) ) ;
return src . substr ( offset - 2 , length + 2 ) ;
}
return String . fromCodePoint ( code ) ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
parse ( context , start ) {
this . context = context ;
const {
src
} = context ;
let offset = QuoteDouble . endOfQuote ( src , start + 1 ) ;
this . valueRange = new PlainValue . Range ( start , offset ) ;
offset = PlainValue . Node . endOfWhiteSpace ( src , offset ) ;
offset = this . parseComment ( offset ) ;
return offset ;
2020-08-26 01:57:08 +02:00
}
} ;
2022-11-10 11:43:16 +01:00
var QuoteSingle = class extends PlainValue . Node {
static endOfQuote ( src , offset ) {
let ch = src [ offset ] ;
while ( ch ) {
if ( ch === "'" ) {
if ( src [ offset + 1 ] !== "'" )
break ;
ch = src [ offset += 2 ] ;
} else {
ch = src [ offset += 1 ] ;
}
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
return offset + 1 ;
}
get strValue ( ) {
if ( ! this . valueRange || ! this . context )
return null ;
const errors = [ ] ;
const {
start ,
end
} = this . valueRange ;
const {
indent ,
src
} = this . context ;
if ( src [ end - 1 ] !== "'" )
errors . push ( new PlainValue . YAMLSyntaxError ( this , "Missing closing 'quote" ) ) ;
let str = "" ;
for ( let i = start + 1 ; i < end - 1 ; ++ i ) {
const ch = src [ i ] ;
if ( ch === "\n" ) {
if ( PlainValue . Node . atDocumentBoundary ( src , i + 1 ) )
errors . push ( new PlainValue . YAMLSemanticError ( this , "Document boundary indicators are not allowed within string values" ) ) ;
const {
fold ,
offset ,
error
} = PlainValue . Node . foldNewline ( src , i , indent ) ;
str += fold ;
i = offset ;
if ( error )
errors . push ( new PlainValue . YAMLSemanticError ( this , "Multi-line single-quoted string needs to be sufficiently indented" ) ) ;
} else if ( ch === "'" ) {
str += ch ;
i += 1 ;
if ( src [ i ] !== "'" )
errors . push ( new PlainValue . YAMLSyntaxError ( this , "Unescaped single quote? This should not happen." ) ) ;
} else if ( ch === " " || ch === " " ) {
const wsStart = i ;
let next = src [ i + 1 ] ;
while ( next === " " || next === " " ) {
i += 1 ;
next = src [ i + 1 ] ;
}
if ( next !== "\n" )
str += i > wsStart ? src . slice ( wsStart , i + 1 ) : ch ;
} else {
str += ch ;
}
}
return errors . length > 0 ? {
errors ,
str
} : str ;
}
parse ( context , start ) {
this . context = context ;
const {
src
} = context ;
let offset = QuoteSingle . endOfQuote ( src , start + 1 ) ;
this . valueRange = new PlainValue . Range ( start , offset ) ;
offset = PlainValue . Node . endOfWhiteSpace ( src , offset ) ;
offset = this . parseComment ( offset ) ;
return offset ;
}
2020-08-26 01:57:08 +02:00
} ;
2022-11-10 11:43:16 +01:00
function createNewNode ( type , props ) {
switch ( type ) {
case PlainValue . Type . ALIAS :
return new Alias ( type , props ) ;
case PlainValue . Type . BLOCK _FOLDED :
case PlainValue . Type . BLOCK _LITERAL :
return new BlockValue ( type , props ) ;
case PlainValue . Type . FLOW _MAP :
case PlainValue . Type . FLOW _SEQ :
return new FlowCollection ( type , props ) ;
case PlainValue . Type . MAP _KEY :
case PlainValue . Type . MAP _VALUE :
case PlainValue . Type . SEQ _ITEM :
return new CollectionItem ( type , props ) ;
case PlainValue . Type . COMMENT :
case PlainValue . Type . PLAIN :
return new PlainValue . PlainValue ( type , props ) ;
case PlainValue . Type . QUOTE _DOUBLE :
return new QuoteDouble ( type , props ) ;
case PlainValue . Type . QUOTE _SINGLE :
return new QuoteSingle ( type , props ) ;
default :
return null ;
2020-08-26 01:57:08 +02:00
}
}
2022-11-10 11:43:16 +01:00
var ParseContext = class {
static parseType ( src , offset , inFlow ) {
switch ( src [ offset ] ) {
case "*" :
return PlainValue . Type . ALIAS ;
case ">" :
return PlainValue . Type . BLOCK _FOLDED ;
case "|" :
return PlainValue . Type . BLOCK _LITERAL ;
case "{" :
return PlainValue . Type . FLOW _MAP ;
case "[" :
return PlainValue . Type . FLOW _SEQ ;
case "?" :
return ! inFlow && PlainValue . Node . atBlank ( src , offset + 1 , true ) ? PlainValue . Type . MAP _KEY : PlainValue . Type . PLAIN ;
case ":" :
return ! inFlow && PlainValue . Node . atBlank ( src , offset + 1 , true ) ? PlainValue . Type . MAP _VALUE : PlainValue . Type . PLAIN ;
case "-" :
return ! inFlow && PlainValue . Node . atBlank ( src , offset + 1 , true ) ? PlainValue . Type . SEQ _ITEM : PlainValue . Type . PLAIN ;
case '"' :
return PlainValue . Type . QUOTE _DOUBLE ;
case "'" :
return PlainValue . Type . QUOTE _SINGLE ;
default :
return PlainValue . Type . PLAIN ;
}
}
constructor ( orig = { } , {
atLineStart ,
inCollection ,
inFlow ,
indent ,
lineStart ,
parent
} = { } ) {
PlainValue . _defineProperty ( this , "parseNode" , ( overlay , start ) => {
if ( PlainValue . Node . atDocumentBoundary ( this . src , start ) )
return null ;
const context = new ParseContext ( this , overlay ) ;
const {
props ,
type ,
valueStart
} = context . parseProps ( start ) ;
const node = createNewNode ( type , props ) ;
let offset = node . parse ( context , valueStart ) ;
node . range = new PlainValue . Range ( start , offset ) ;
if ( offset <= start ) {
node . error = new Error ( ` Node#parse consumed no characters ` ) ;
node . error . parseEnd = offset ;
node . error . source = node ;
node . range . end = start + 1 ;
}
if ( context . nodeStartsCollection ( node ) ) {
if ( ! node . error && ! context . atLineStart && context . parent . type === PlainValue . Type . DOCUMENT ) {
node . error = new PlainValue . YAMLSyntaxError ( node , "Block collection must not have preceding content here (e.g. directives-end indicator)" ) ;
}
const collection = new Collection ( node ) ;
offset = collection . parse ( new ParseContext ( context ) , offset ) ;
collection . range = new PlainValue . Range ( start , offset ) ;
return collection ;
}
return node ;
} ) ;
this . atLineStart = atLineStart != null ? atLineStart : orig . atLineStart || false ;
this . inCollection = inCollection != null ? inCollection : orig . inCollection || false ;
this . inFlow = inFlow != null ? inFlow : orig . inFlow || false ;
this . indent = indent != null ? indent : orig . indent ;
this . lineStart = lineStart != null ? lineStart : orig . lineStart ;
this . parent = parent != null ? parent : orig . parent || { } ;
this . root = orig . root ;
this . src = orig . src ;
}
nodeStartsCollection ( node ) {
const {
inCollection ,
inFlow ,
src
} = this ;
if ( inCollection || inFlow )
return false ;
if ( node instanceof CollectionItem )
return true ;
let offset = node . range . end ;
if ( src [ offset ] === "\n" || src [ offset - 1 ] === "\n" )
return false ;
offset = PlainValue . Node . endOfWhiteSpace ( src , offset ) ;
return src [ offset ] === ":" ;
}
parseProps ( offset ) {
const {
inFlow ,
parent ,
src
} = this ;
const props = [ ] ;
let lineHasProps = false ;
offset = this . atLineStart ? PlainValue . Node . endOfIndent ( src , offset ) : PlainValue . Node . endOfWhiteSpace ( src , offset ) ;
let ch = src [ offset ] ;
while ( ch === PlainValue . Char . ANCHOR || ch === PlainValue . Char . COMMENT || ch === PlainValue . Char . TAG || ch === "\n" ) {
if ( ch === "\n" ) {
let inEnd = offset ;
let lineStart ;
do {
lineStart = inEnd + 1 ;
inEnd = PlainValue . Node . endOfIndent ( src , lineStart ) ;
} while ( src [ inEnd ] === "\n" ) ;
const indentDiff = inEnd - ( lineStart + this . indent ) ;
const noIndicatorAsIndent = parent . type === PlainValue . Type . SEQ _ITEM && parent . context . atLineStart ;
if ( src [ inEnd ] !== "#" && ! PlainValue . Node . nextNodeIsIndented ( src [ inEnd ] , indentDiff , ! noIndicatorAsIndent ) )
break ;
this . atLineStart = true ;
this . lineStart = lineStart ;
lineHasProps = false ;
offset = inEnd ;
} else if ( ch === PlainValue . Char . COMMENT ) {
const end = PlainValue . Node . endOfLine ( src , offset + 1 ) ;
props . push ( new PlainValue . Range ( offset , end ) ) ;
offset = end ;
} else {
let end = PlainValue . Node . endOfIdentifier ( src , offset + 1 ) ;
if ( ch === PlainValue . Char . TAG && src [ end ] === "," && /^[a-zA-Z0-9-]+\.[a-zA-Z0-9-]+,\d\d\d\d(-\d\d){0,2}\/\S/ . test ( src . slice ( offset + 1 , end + 13 ) ) ) {
end = PlainValue . Node . endOfIdentifier ( src , end + 5 ) ;
}
props . push ( new PlainValue . Range ( offset , end ) ) ;
lineHasProps = true ;
offset = PlainValue . Node . endOfWhiteSpace ( src , end ) ;
}
ch = src [ offset ] ;
}
if ( lineHasProps && ch === ":" && PlainValue . Node . atBlank ( src , offset + 1 , true ) )
offset -= 1 ;
const type = ParseContext . parseType ( src , offset , inFlow ) ;
return {
props ,
type ,
valueStart : offset
} ;
}
2020-08-27 10:23:33 +02:00
} ;
2022-11-10 11:43:16 +01:00
function parse ( src ) {
const cr = [ ] ;
if ( src . indexOf ( "\r" ) !== - 1 ) {
src = src . replace ( /\r\n?/g , ( match , offset2 ) => {
if ( match . length > 1 )
cr . push ( offset2 ) ;
return "\n" ;
} ) ;
}
const documents = [ ] ;
let offset = 0 ;
do {
const doc = new Document ( ) ;
const context = new ParseContext ( {
src
} ) ;
offset = doc . parse ( context , offset ) ;
documents . push ( doc ) ;
} while ( offset < src . length ) ;
documents . setOrigRanges = ( ) => {
if ( cr . length === 0 )
return false ;
for ( let i = 1 ; i < cr . length ; ++ i )
cr [ i ] -= i ;
let crOffset = 0 ;
for ( let i = 0 ; i < documents . length ; ++ i ) {
crOffset = documents [ i ] . setOrigRanges ( cr , crOffset ) ;
}
cr . splice ( 0 , cr . length ) ;
return true ;
} ;
documents . toString = ( ) => documents . join ( "...\n" ) ;
return documents ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
exports2 . parse = parse ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
} ) ;
var require _resolveSeq _d03cb037 = _ _commonJS ( {
"node_modules/yaml/dist/resolveSeq-d03cb037.js" ( exports2 ) {
"use strict" ;
var PlainValue = require _PlainValue _ec8e588e ( ) ;
function addCommentBefore ( str , indent , comment ) {
if ( ! comment )
return str ;
const cc = comment . replace ( /[\s\S]^/gm , ` $ & ${ indent } # ` ) ;
return ` # ${ cc }
$ { indent } $ { str } ` ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
function addComment ( str , indent , comment ) {
return ! comment ? str : comment . indexOf ( "\n" ) === - 1 ? ` ${ str } # ${ comment } ` : ` ${ str }
` + comment.replace(/^/gm, ` $ { indent || "" } # ` );
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
var Node = class {
} ;
function toJSON ( value , arg , ctx ) {
if ( Array . isArray ( value ) )
return value . map ( ( v , i ) => toJSON ( v , String ( i ) , ctx ) ) ;
if ( value && typeof value . toJSON === "function" ) {
const anchor = ctx && ctx . anchors && ctx . anchors . get ( value ) ;
if ( anchor )
ctx . onCreate = ( res2 ) => {
anchor . res = res2 ;
delete ctx . onCreate ;
} ;
const res = value . toJSON ( arg , ctx ) ;
if ( anchor && ctx . onCreate )
ctx . onCreate ( res ) ;
return res ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
if ( ( ! ctx || ! ctx . keep ) && typeof value === "bigint" )
return Number ( value ) ;
return value ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
var Scalar = class extends Node {
constructor ( value ) {
super ( ) ;
this . value = value ;
}
toJSON ( arg , ctx ) {
return ctx && ctx . keep ? this . value : toJSON ( this . value , arg , ctx ) ;
}
toString ( ) {
return String ( this . value ) ;
}
2020-08-27 10:23:33 +02:00
} ;
2022-11-10 11:43:16 +01:00
function collectionFromPath ( schema , path , value ) {
let v = value ;
for ( let i = path . length - 1 ; i >= 0 ; -- i ) {
const k = path [ i ] ;
if ( Number . isInteger ( k ) && k >= 0 ) {
const a = [ ] ;
a [ k ] = v ;
v = a ;
2020-08-27 10:23:33 +02:00
} else {
2022-11-10 11:43:16 +01:00
const o = { } ;
Object . defineProperty ( o , k , {
value : v ,
writable : true ,
enumerable : true ,
configurable : true
} ) ;
v = o ;
2020-08-26 01:57:08 +02:00
}
}
2022-11-10 11:43:16 +01:00
return schema . createNode ( v , false ) ;
}
var isEmptyPath = ( path ) => path == null || typeof path === "object" && path [ Symbol . iterator ] ( ) . next ( ) . done ;
var Collection = class extends Node {
constructor ( schema ) {
super ( ) ;
PlainValue . _defineProperty ( this , "items" , [ ] ) ;
this . schema = schema ;
}
addIn ( path , value ) {
if ( isEmptyPath ( path ) )
this . add ( value ) ;
else {
const [ key , ... rest ] = path ;
const node = this . get ( key , true ) ;
if ( node instanceof Collection )
node . addIn ( rest , value ) ;
else if ( node === void 0 && this . schema )
this . set ( key , collectionFromPath ( this . schema , rest , value ) ) ;
else
throw new Error ( ` Expected YAML collection at ${ key } . Remaining path: ${ rest } ` ) ;
}
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
deleteIn ( [ key , ... rest ] ) {
if ( rest . length === 0 )
return this . delete ( key ) ;
const node = this . get ( key , true ) ;
if ( node instanceof Collection )
return node . deleteIn ( rest ) ;
else
throw new Error ( ` Expected YAML collection at ${ key } . Remaining path: ${ rest } ` ) ;
}
getIn ( [ key , ... rest ] , keepScalar ) {
const node = this . get ( key , true ) ;
if ( rest . length === 0 )
return ! keepScalar && node instanceof Scalar ? node . value : node ;
else
return node instanceof Collection ? node . getIn ( rest , keepScalar ) : void 0 ;
}
hasAllNullValues ( ) {
return this . items . every ( ( node ) => {
if ( ! node || node . type !== "PAIR" )
return false ;
const n = node . value ;
return n == null || n instanceof Scalar && n . value == null && ! n . commentBefore && ! n . comment && ! n . tag ;
} ) ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
hasIn ( [ key , ... rest ] ) {
if ( rest . length === 0 )
return this . has ( key ) ;
const node = this . get ( key , true ) ;
return node instanceof Collection ? node . hasIn ( rest ) : false ;
}
setIn ( [ key , ... rest ] , value ) {
if ( rest . length === 0 ) {
this . set ( key , value ) ;
} else {
const node = this . get ( key , true ) ;
if ( node instanceof Collection )
node . setIn ( rest , value ) ;
else if ( node === void 0 && this . schema )
this . set ( key , collectionFromPath ( this . schema , rest , value ) ) ;
else
throw new Error ( ` Expected YAML collection at ${ key } . Remaining path: ${ rest } ` ) ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
}
toJSON ( ) {
return null ;
}
toString ( ctx , {
blockItem ,
flowChars ,
isMap ,
itemIndent
} , onComment , onChompKeep ) {
const {
indent ,
indentStep ,
stringify
} = ctx ;
const inFlow = this . type === PlainValue . Type . FLOW _MAP || this . type === PlainValue . Type . FLOW _SEQ || ctx . inFlow ;
if ( inFlow )
itemIndent += indentStep ;
const allNullValues = isMap && this . hasAllNullValues ( ) ;
ctx = Object . assign ( { } , ctx , {
allNullValues ,
indent : itemIndent ,
inFlow ,
type : null
} ) ;
let chompKeep = false ;
let hasItemWithNewLine = false ;
const nodes = this . items . reduce ( ( nodes2 , item , i ) => {
let comment ;
if ( item ) {
if ( ! chompKeep && item . spaceBefore )
nodes2 . push ( {
type : "comment" ,
str : ""
} ) ;
if ( item . commentBefore )
item . commentBefore . match ( /^.*$/gm ) . forEach ( ( line ) => {
nodes2 . push ( {
type : "comment" ,
str : ` # ${ line } `
} ) ;
} ) ;
if ( item . comment )
comment = item . comment ;
if ( inFlow && ( ! chompKeep && item . spaceBefore || item . commentBefore || item . comment || item . key && ( item . key . commentBefore || item . key . comment ) || item . value && ( item . value . commentBefore || item . value . comment ) ) )
hasItemWithNewLine = true ;
}
chompKeep = false ;
let str2 = stringify ( item , ctx , ( ) => comment = null , ( ) => chompKeep = true ) ;
if ( inFlow && ! hasItemWithNewLine && str2 . includes ( "\n" ) )
hasItemWithNewLine = true ;
if ( inFlow && i < this . items . length - 1 )
str2 += "," ;
str2 = addComment ( str2 , itemIndent , comment ) ;
if ( chompKeep && ( comment || inFlow ) )
chompKeep = false ;
nodes2 . push ( {
type : "item" ,
str : str2
} ) ;
return nodes2 ;
} , [ ] ) ;
let str ;
if ( nodes . length === 0 ) {
str = flowChars . start + flowChars . end ;
} else if ( inFlow ) {
const {
start ,
end
} = flowChars ;
const strings = nodes . map ( ( n ) => n . str ) ;
if ( hasItemWithNewLine || strings . reduce ( ( sum , str2 ) => sum + str2 . length + 2 , 2 ) > Collection . maxFlowStringSingleLineLength ) {
str = start ;
for ( const s of strings ) {
str += s ? `
$ { indentStep } $ { indent } $ { s } ` : " \n ";
}
str += `
$ { indent } $ { end } ` ;
} else {
str = ` ${ start } ${ strings . join ( " " ) } ${ end } ` ;
}
} else {
const strings = nodes . map ( blockItem ) ;
str = strings . shift ( ) ;
for ( const s of strings )
str += s ? `
$ { indent } $ { s } ` : " \n ";
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
if ( this . comment ) {
str += "\n" + this . comment . replace ( /^/gm , ` ${ indent } # ` ) ;
if ( onComment )
onComment ( ) ;
} else if ( chompKeep && onChompKeep )
onChompKeep ( ) ;
2020-08-27 10:23:33 +02:00
return str ;
}
2022-11-10 11:43:16 +01:00
} ;
PlainValue . _defineProperty ( Collection , "maxFlowStringSingleLineLength" , 60 ) ;
function asItemIndex ( key ) {
let idx = key instanceof Scalar ? key . value : key ;
if ( idx && typeof idx === "string" )
idx = Number ( idx ) ;
return Number . isInteger ( idx ) && idx >= 0 ? idx : null ;
}
var YAMLSeq = class extends Collection {
add ( value ) {
this . items . push ( value ) ;
}
delete ( key ) {
const idx = asItemIndex ( key ) ;
if ( typeof idx !== "number" )
return false ;
const del = this . items . splice ( idx , 1 ) ;
return del . length > 0 ;
}
get ( key , keepScalar ) {
const idx = asItemIndex ( key ) ;
if ( typeof idx !== "number" )
return void 0 ;
const it = this . items [ idx ] ;
return ! keepScalar && it instanceof Scalar ? it . value : it ;
}
has ( key ) {
const idx = asItemIndex ( key ) ;
return typeof idx === "number" && idx < this . items . length ;
}
set ( key , value ) {
const idx = asItemIndex ( key ) ;
if ( typeof idx !== "number" )
throw new Error ( ` Expected a valid index, not ${ key } . ` ) ;
this . items [ idx ] = value ;
}
toJSON ( _ , ctx ) {
const seq = [ ] ;
if ( ctx && ctx . onCreate )
ctx . onCreate ( seq ) ;
let i = 0 ;
for ( const item of this . items )
seq . push ( toJSON ( item , String ( i ++ ) , ctx ) ) ;
return seq ;
}
toString ( ctx , onComment , onChompKeep ) {
if ( ! ctx )
return JSON . stringify ( this ) ;
return super . toString ( ctx , {
blockItem : ( n ) => n . type === "comment" ? n . str : ` - ${ n . str } ` ,
flowChars : {
start : "[" ,
end : "]"
} ,
isMap : false ,
itemIndent : ( ctx . indent || "" ) + " "
} , onComment , onChompKeep ) ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
} ;
var stringifyKey = ( key , jsKey , ctx ) => {
if ( jsKey === null )
return "" ;
if ( typeof jsKey !== "object" )
return String ( jsKey ) ;
if ( key instanceof Node && ctx && ctx . doc )
return key . toString ( {
anchors : /* @__PURE__ */ Object . create ( null ) ,
doc : ctx . doc ,
indent : "" ,
indentStep : ctx . indentStep ,
inFlow : true ,
inStringifyKey : true ,
stringify : ctx . stringify
} ) ;
return JSON . stringify ( jsKey ) ;
} ;
var Pair = class extends Node {
constructor ( key , value = null ) {
super ( ) ;
this . key = key ;
this . value = value ;
this . type = Pair . Type . PAIR ;
}
get commentBefore ( ) {
return this . key instanceof Node ? this . key . commentBefore : void 0 ;
}
set commentBefore ( cb ) {
if ( this . key == null )
this . key = new Scalar ( null ) ;
if ( this . key instanceof Node )
this . key . commentBefore = cb ;
else {
const msg = "Pair.commentBefore is an alias for Pair.key.commentBefore. To set it, the key must be a Node." ;
throw new Error ( msg ) ;
}
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
addToJSMap ( ctx , map ) {
const key = toJSON ( this . key , "" , ctx ) ;
if ( map instanceof Map ) {
const value = toJSON ( this . value , key , ctx ) ;
map . set ( key , value ) ;
} else if ( map instanceof Set ) {
map . add ( key ) ;
} else {
const stringKey = stringifyKey ( this . key , key , ctx ) ;
const value = toJSON ( this . value , stringKey , ctx ) ;
if ( stringKey in map )
Object . defineProperty ( map , stringKey , {
value ,
writable : true ,
enumerable : true ,
configurable : true
} ) ;
else
map [ stringKey ] = value ;
}
return map ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
toJSON ( _ , ctx ) {
const pair = ctx && ctx . mapAsMap ? /* @__PURE__ */ new Map ( ) : { } ;
return this . addToJSMap ( ctx , pair ) ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
toString ( ctx , onComment , onChompKeep ) {
if ( ! ctx || ! ctx . doc )
return JSON . stringify ( this ) ;
const {
indent : indentSize ,
indentSeq ,
simpleKeys
} = ctx . doc . options ;
let {
key ,
value
} = this ;
let keyComment = key instanceof Node && key . comment ;
if ( simpleKeys ) {
if ( keyComment ) {
throw new Error ( "With simple keys, key nodes cannot have comments" ) ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
if ( key instanceof Collection ) {
const msg = "With simple keys, collection cannot be used as a key value" ;
throw new Error ( msg ) ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
}
let explicitKey = ! simpleKeys && ( ! key || keyComment || ( key instanceof Node ? key instanceof Collection || key . type === PlainValue . Type . BLOCK _FOLDED || key . type === PlainValue . Type . BLOCK _LITERAL : typeof key === "object" ) ) ;
const {
doc ,
indent ,
indentStep ,
stringify
} = ctx ;
ctx = Object . assign ( { } , ctx , {
implicitKey : ! explicitKey ,
indent : indent + indentStep
} ) ;
let chompKeep = false ;
let str = stringify ( key , ctx , ( ) => keyComment = null , ( ) => chompKeep = true ) ;
str = addComment ( str , ctx . indent , keyComment ) ;
if ( ! explicitKey && str . length > 1024 ) {
if ( simpleKeys )
throw new Error ( "With simple keys, single line scalar must not span more than 1024 characters" ) ;
explicitKey = true ;
}
if ( ctx . allNullValues && ! simpleKeys ) {
if ( this . comment ) {
str = addComment ( str , ctx . indent , this . comment ) ;
if ( onComment )
onComment ( ) ;
} else if ( chompKeep && ! keyComment && onChompKeep )
onChompKeep ( ) ;
return ctx . inFlow && ! explicitKey ? str : ` ? ${ str } ` ;
}
str = explicitKey ? ` ? ${ str }
$ { indent } : ` : ` $ { str } : ` ;
if ( this . comment ) {
str = addComment ( str , ctx . indent , this . comment ) ;
if ( onComment )
onComment ( ) ;
}
let vcb = "" ;
let valueComment = null ;
if ( value instanceof Node ) {
if ( value . spaceBefore )
vcb = "\n" ;
if ( value . commentBefore ) {
const cs = value . commentBefore . replace ( /^/gm , ` ${ ctx . indent } # ` ) ;
vcb += `
$ { cs } ` ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
valueComment = value . comment ;
} else if ( value && typeof value === "object" ) {
value = doc . schema . createNode ( value , true ) ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
ctx . implicitKey = false ;
if ( ! explicitKey && ! this . comment && value instanceof Scalar )
ctx . indentAtStart = str . length + 1 ;
chompKeep = false ;
if ( ! indentSeq && indentSize >= 2 && ! ctx . inFlow && ! explicitKey && value instanceof YAMLSeq && value . type !== PlainValue . Type . FLOW _SEQ && ! value . tag && ! doc . anchors . getName ( value ) ) {
ctx . indent = ctx . indent . substr ( 2 ) ;
}
const valueStr = stringify ( value , ctx , ( ) => valueComment = null , ( ) => chompKeep = true ) ;
let ws = " " ;
if ( vcb || this . comment ) {
ws = ` ${ vcb }
$ { ctx . indent } ` ;
} else if ( ! explicitKey && value instanceof Collection ) {
const flow = valueStr [ 0 ] === "[" || valueStr [ 0 ] === "{" ;
if ( ! flow || valueStr . includes ( "\n" ) )
ws = `
$ { ctx . indent } ` ;
} else if ( valueStr [ 0 ] === "\n" )
ws = "" ;
if ( chompKeep && ! valueComment && onChompKeep )
onChompKeep ( ) ;
return addComment ( str + ws + valueStr , ctx . indent , valueComment ) ;
}
} ;
PlainValue . _defineProperty ( Pair , "Type" , {
PAIR : "PAIR" ,
MERGE _PAIR : "MERGE_PAIR"
} ) ;
var getAliasCount = ( node , anchors ) => {
if ( node instanceof Alias ) {
const anchor = anchors . get ( node . source ) ;
return anchor . count * anchor . aliasCount ;
} else if ( node instanceof Collection ) {
let count = 0 ;
for ( const item of node . items ) {
const c = getAliasCount ( item , anchors ) ;
if ( c > count )
count = c ;
}
return count ;
} else if ( node instanceof Pair ) {
const kc = getAliasCount ( node . key , anchors ) ;
const vc = getAliasCount ( node . value , anchors ) ;
return Math . max ( kc , vc ) ;
}
return 1 ;
} ;
var Alias = class extends Node {
static stringify ( {
range ,
source
} , {
anchors ,
doc ,
implicitKey ,
inStringifyKey
} ) {
let anchor = Object . keys ( anchors ) . find ( ( a ) => anchors [ a ] === source ) ;
if ( ! anchor && inStringifyKey )
anchor = doc . anchors . getName ( source ) || doc . anchors . newName ( ) ;
if ( anchor )
return ` * ${ anchor } ${ implicitKey ? " " : "" } ` ;
const msg = doc . anchors . getName ( source ) ? "Alias node must be after source node" : "Source node not found for alias node" ;
throw new Error ( ` ${ msg } [ ${ range } ] ` ) ;
}
constructor ( source ) {
super ( ) ;
this . source = source ;
this . type = PlainValue . Type . ALIAS ;
}
set tag ( t ) {
throw new Error ( "Alias nodes cannot have tags" ) ;
}
toJSON ( arg , ctx ) {
if ( ! ctx )
return toJSON ( this . source , arg , ctx ) ;
const {
anchors ,
maxAliasCount
} = ctx ;
const anchor = anchors . get ( this . source ) ;
if ( ! anchor || anchor . res === void 0 ) {
const msg = "This should not happen: Alias anchor was not resolved?" ;
if ( this . cstNode )
throw new PlainValue . YAMLReferenceError ( this . cstNode , msg ) ;
else
throw new ReferenceError ( msg ) ;
}
if ( maxAliasCount >= 0 ) {
anchor . count += 1 ;
if ( anchor . aliasCount === 0 )
anchor . aliasCount = getAliasCount ( this . source , anchors ) ;
if ( anchor . count * anchor . aliasCount > maxAliasCount ) {
const msg = "Excessive alias count indicates a resource exhaustion attack" ;
if ( this . cstNode )
throw new PlainValue . YAMLReferenceError ( this . cstNode , msg ) ;
else
throw new ReferenceError ( msg ) ;
2020-08-27 10:23:33 +02:00
}
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
return anchor . res ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
toString ( ctx ) {
return Alias . stringify ( this , ctx ) ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
} ;
PlainValue . _defineProperty ( Alias , "default" , true ) ;
function findPair ( items , key ) {
const k = key instanceof Scalar ? key . value : key ;
for ( const it of items ) {
if ( it instanceof Pair ) {
if ( it . key === key || it . key === k )
return it ;
if ( it . key && it . key . value === k )
return it ;
2020-08-26 01:57:08 +02:00
}
}
2022-11-10 11:43:16 +01:00
return void 0 ;
}
var YAMLMap = class extends Collection {
add ( pair , overwrite ) {
if ( ! pair )
pair = new Pair ( pair ) ;
else if ( ! ( pair instanceof Pair ) )
pair = new Pair ( pair . key || pair , pair . value ) ;
const prev = findPair ( this . items , pair . key ) ;
const sortEntries = this . schema && this . schema . sortMapEntries ;
if ( prev ) {
if ( overwrite )
prev . value = pair . value ;
else
throw new Error ( ` Key ${ pair . key } already set ` ) ;
} else if ( sortEntries ) {
const i = this . items . findIndex ( ( item ) => sortEntries ( pair , item ) < 0 ) ;
if ( i === - 1 )
this . items . push ( pair ) ;
else
this . items . splice ( i , 0 , pair ) ;
} else {
this . items . push ( pair ) ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
}
delete ( key ) {
const it = findPair ( this . items , key ) ;
if ( ! it )
return false ;
const del = this . items . splice ( this . items . indexOf ( it ) , 1 ) ;
return del . length > 0 ;
}
get ( key , keepScalar ) {
const it = findPair ( this . items , key ) ;
const node = it && it . value ;
return ! keepScalar && node instanceof Scalar ? node . value : node ;
}
has ( key ) {
return ! ! findPair ( this . items , key ) ;
}
set ( key , value ) {
this . add ( new Pair ( key , value ) , true ) ;
}
toJSON ( _ , ctx , Type ) {
const map = Type ? new Type ( ) : ctx && ctx . mapAsMap ? /* @__PURE__ */ new Map ( ) : { } ;
if ( ctx && ctx . onCreate )
ctx . onCreate ( map ) ;
for ( const item of this . items )
item . addToJSMap ( ctx , map ) ;
return map ;
}
toString ( ctx , onComment , onChompKeep ) {
if ( ! ctx )
return JSON . stringify ( this ) ;
for ( const item of this . items ) {
if ( ! ( item instanceof Pair ) )
throw new Error ( ` Map items must all be pairs; found ${ JSON . stringify ( item ) } instead ` ) ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
return super . toString ( ctx , {
blockItem : ( n ) => n . str ,
flowChars : {
start : "{" ,
end : "}"
} ,
isMap : true ,
itemIndent : ctx . indent || ""
} , onComment , onChompKeep ) ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
} ;
var MERGE _KEY = "<<" ;
var Merge = class extends Pair {
constructor ( pair ) {
if ( pair instanceof Pair ) {
let seq = pair . value ;
if ( ! ( seq instanceof YAMLSeq ) ) {
seq = new YAMLSeq ( ) ;
seq . items . push ( pair . value ) ;
seq . range = pair . value . range ;
}
super ( pair . key , seq ) ;
this . range = pair . range ;
} else {
super ( new Scalar ( MERGE _KEY ) , new YAMLSeq ( ) ) ;
}
this . type = Pair . Type . MERGE _PAIR ;
}
addToJSMap ( ctx , map ) {
for ( const {
source
} of this . value . items ) {
if ( ! ( source instanceof YAMLMap ) )
throw new Error ( "Merge sources must be maps" ) ;
const srcMap = source . toJSON ( null , ctx , Map ) ;
for ( const [ key , value ] of srcMap ) {
if ( map instanceof Map ) {
if ( ! map . has ( key ) )
map . set ( key , value ) ;
} else if ( map instanceof Set ) {
map . add ( key ) ;
} else if ( ! Object . prototype . hasOwnProperty . call ( map , key ) ) {
Object . defineProperty ( map , key , {
value ,
writable : true ,
enumerable : true ,
configurable : true
} ) ;
}
}
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
return map ;
}
toString ( ctx , onComment ) {
const seq = this . value ;
if ( seq . items . length > 1 )
return super . toString ( ctx , onComment ) ;
this . value = seq . items [ 0 ] ;
const str = super . toString ( ctx , onComment ) ;
this . value = seq ;
return str ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
} ;
var binaryOptions = {
defaultType : PlainValue . Type . BLOCK _LITERAL ,
lineWidth : 76
} ;
var boolOptions = {
trueStr : "true" ,
falseStr : "false"
} ;
var intOptions = {
asBigInt : false
} ;
var nullOptions = {
nullStr : "null"
} ;
var strOptions = {
defaultType : PlainValue . Type . PLAIN ,
doubleQuoted : {
jsonEncoding : false ,
minMultiLineLength : 40
2020-08-27 10:23:33 +02:00
} ,
2022-11-10 11:43:16 +01:00
fold : {
lineWidth : 80 ,
minContentWidth : 20
}
} ;
function resolveScalar ( str , tags , scalarFallback ) {
for ( const {
format ,
test ,
resolve
} of tags ) {
if ( test ) {
const match = str . match ( test ) ;
if ( match ) {
let res = resolve . apply ( null , match ) ;
if ( ! ( res instanceof Scalar ) )
res = new Scalar ( res ) ;
if ( format )
res . format = format ;
return res ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
}
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
if ( scalarFallback )
str = scalarFallback ( str ) ;
return new Scalar ( str ) ;
}
var FOLD _FLOW = "flow" ;
var FOLD _BLOCK = "block" ;
var FOLD _QUOTED = "quoted" ;
var consumeMoreIndentedLines = ( text , i ) => {
let ch = text [ i + 1 ] ;
while ( ch === " " || ch === " " ) {
do {
ch = text [ i += 1 ] ;
} while ( ch && ch !== "\n" ) ;
ch = text [ i + 1 ] ;
}
return i ;
} ;
function foldFlowLines ( text , indent , mode , {
indentAtStart ,
lineWidth = 80 ,
minContentWidth = 20 ,
onFold ,
onOverflow
} ) {
if ( ! lineWidth || lineWidth < 0 )
return text ;
const endStep = Math . max ( 1 + minContentWidth , 1 + lineWidth - indent . length ) ;
if ( text . length <= endStep )
return text ;
const folds = [ ] ;
const escapedFolds = { } ;
let end = lineWidth - indent . length ;
if ( typeof indentAtStart === "number" ) {
if ( indentAtStart > lineWidth - Math . max ( 2 , minContentWidth ) )
folds . push ( 0 ) ;
else
end = lineWidth - indentAtStart ;
}
let split = void 0 ;
let prev = void 0 ;
let overflow = false ;
let i = - 1 ;
let escStart = - 1 ;
let escEnd = - 1 ;
if ( mode === FOLD _BLOCK ) {
i = consumeMoreIndentedLines ( text , i ) ;
if ( i !== - 1 )
end = i + endStep ;
}
for ( let ch ; ch = text [ i += 1 ] ; ) {
if ( mode === FOLD _QUOTED && ch === "\\" ) {
escStart = i ;
switch ( text [ i + 1 ] ) {
case "x" :
i += 3 ;
break ;
case "u" :
i += 5 ;
break ;
case "U" :
i += 9 ;
break ;
default :
i += 1 ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
escEnd = i ;
}
if ( ch === "\n" ) {
if ( mode === FOLD _BLOCK )
i = consumeMoreIndentedLines ( text , i ) ;
end = i + endStep ;
split = void 0 ;
} else {
if ( ch === " " && prev && prev !== " " && prev !== "\n" && prev !== " " ) {
const next = text [ i + 1 ] ;
if ( next && next !== " " && next !== "\n" && next !== " " )
split = i ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
if ( i >= end ) {
if ( split ) {
folds . push ( split ) ;
end = split + endStep ;
split = void 0 ;
} else if ( mode === FOLD _QUOTED ) {
while ( prev === " " || prev === " " ) {
prev = ch ;
ch = text [ i += 1 ] ;
overflow = true ;
}
const j = i > escEnd + 1 ? i - 2 : escStart - 1 ;
if ( escapedFolds [ j ] )
return text ;
folds . push ( j ) ;
escapedFolds [ j ] = true ;
end = j + endStep ;
split = void 0 ;
} else {
overflow = true ;
}
2020-08-27 10:23:33 +02:00
}
}
2022-11-10 11:43:16 +01:00
prev = ch ;
}
if ( overflow && onOverflow )
onOverflow ( ) ;
if ( folds . length === 0 )
return text ;
if ( onFold )
onFold ( ) ;
let res = text . slice ( 0 , folds [ 0 ] ) ;
for ( let i2 = 0 ; i2 < folds . length ; ++ i2 ) {
const fold = folds [ i2 ] ;
const end2 = folds [ i2 + 1 ] || text . length ;
if ( fold === 0 )
res = `
$ { indent } $ { text . slice ( 0 , end2 ) } ` ;
else {
if ( mode === FOLD _QUOTED && escapedFolds [ fold ] )
res += ` ${ text [ fold ] } \\ ` ;
res += `
$ { indent } $ { text . slice ( fold + 1 , end2 ) } ` ;
2020-08-27 10:23:33 +02:00
}
}
2022-11-10 11:43:16 +01:00
return res ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
var getFoldOptions = ( {
indentAtStart
} ) => indentAtStart ? Object . assign ( {
indentAtStart
} , strOptions . fold ) : strOptions . fold ;
var containsDocumentMarker = ( str ) => / ^ ( % | -- - | \ . \ . \ . ) / m . test ( str ) ;
function lineLengthOverLimit ( str , lineWidth , indentLength ) {
if ( ! lineWidth || lineWidth < 0 )
return false ;
const limit = lineWidth - indentLength ;
const strLen = str . length ;
if ( strLen <= limit )
return false ;
for ( let i = 0 , start = 0 ; i < strLen ; ++ i ) {
if ( str [ i ] === "\n" ) {
if ( i - start > limit )
return true ;
start = i + 1 ;
if ( strLen - start <= limit )
return false ;
}
}
return true ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
function doubleQuotedString ( value , ctx ) {
const {
implicitKey
} = ctx ;
const {
jsonEncoding ,
minMultiLineLength
} = strOptions . doubleQuoted ;
const json = JSON . stringify ( value ) ;
if ( jsonEncoding )
return json ;
const indent = ctx . indent || ( containsDocumentMarker ( value ) ? " " : "" ) ;
let str = "" ;
let start = 0 ;
for ( let i = 0 , ch = json [ i ] ; ch ; ch = json [ ++ i ] ) {
if ( ch === " " && json [ i + 1 ] === "\\" && json [ i + 2 ] === "n" ) {
str += json . slice ( start , i ) + "\\ " ;
i += 1 ;
start = i ;
ch = "\\" ;
}
if ( ch === "\\" )
switch ( json [ i + 1 ] ) {
case "u" :
{
str += json . slice ( start , i ) ;
const code = json . substr ( i + 2 , 4 ) ;
switch ( code ) {
case "0000" :
str += "\\0" ;
break ;
case "0007" :
str += "\\a" ;
break ;
case "000b" :
str += "\\v" ;
break ;
case "001b" :
str += "\\e" ;
break ;
case "0085" :
str += "\\N" ;
break ;
case "00a0" :
str += "\\_" ;
break ;
case "2028" :
str += "\\L" ;
break ;
case "2029" :
str += "\\P" ;
break ;
default :
if ( code . substr ( 0 , 2 ) === "00" )
str += "\\x" + code . substr ( 2 ) ;
else
str += json . substr ( i , 6 ) ;
}
i += 5 ;
start = i + 1 ;
}
break ;
case "n" :
if ( implicitKey || json [ i + 2 ] === '"' || json . length < minMultiLineLength ) {
i += 1 ;
} else {
str += json . slice ( start , i ) + "\n\n" ;
while ( json [ i + 2 ] === "\\" && json [ i + 3 ] === "n" && json [ i + 4 ] !== '"' ) {
str += "\n" ;
i += 2 ;
}
str += indent ;
if ( json [ i + 2 ] === " " )
str += "\\" ;
i += 1 ;
start = i + 1 ;
}
break ;
default :
i += 1 ;
}
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
str = start ? str + json . slice ( start ) : json ;
return implicitKey ? str : foldFlowLines ( str , indent , FOLD _QUOTED , getFoldOptions ( ctx ) ) ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
function singleQuotedString ( value , ctx ) {
if ( ctx . implicitKey ) {
if ( /\n/ . test ( value ) )
return doubleQuotedString ( value , ctx ) ;
2020-08-27 10:23:33 +02:00
} else {
2022-11-10 11:43:16 +01:00
if ( /[ \t]\n|\n[ \t]/ . test ( value ) )
return doubleQuotedString ( value , ctx ) ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
const indent = ctx . indent || ( containsDocumentMarker ( value ) ? " " : "" ) ;
const res = "'" + value . replace ( /'/g , "''" ) . replace ( /\n+/g , ` $ &
$ { indent } ` ) + "'";
return ctx . implicitKey ? res : foldFlowLines ( res , indent , FOLD _FLOW , getFoldOptions ( ctx ) ) ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
function blockString ( {
comment ,
type ,
value
} , ctx , onComment , onChompKeep ) {
if ( /\n[\t ]+$/ . test ( value ) || /^\s*$/ . test ( value ) ) {
return doubleQuotedString ( value , ctx ) ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
const indent = ctx . indent || ( ctx . forceBlockIndent || containsDocumentMarker ( value ) ? " " : "" ) ;
const indentSize = indent ? "2" : "1" ;
const literal = type === PlainValue . Type . BLOCK _FOLDED ? false : type === PlainValue . Type . BLOCK _LITERAL ? true : ! lineLengthOverLimit ( value , strOptions . fold . lineWidth , indent . length ) ;
let header = literal ? "|" : ">" ;
if ( ! value )
return header + "\n" ;
let wsStart = "" ;
let wsEnd = "" ;
value = value . replace ( /[\n\t ]*$/ , ( ws ) => {
const n = ws . indexOf ( "\n" ) ;
if ( n === - 1 ) {
header += "-" ;
} else if ( value === ws || n !== ws . length - 1 ) {
header += "+" ;
if ( onChompKeep )
onChompKeep ( ) ;
}
wsEnd = ws . replace ( /\n$/ , "" ) ;
return "" ;
} ) . replace ( /^[\n ]*/ , ( ws ) => {
if ( ws . indexOf ( " " ) !== - 1 )
header += indentSize ;
const m = ws . match ( / +$/ ) ;
if ( m ) {
wsStart = ws . slice ( 0 , - m [ 0 ] . length ) ;
return m [ 0 ] ;
2020-08-27 10:23:33 +02:00
} else {
2022-11-10 11:43:16 +01:00
wsStart = ws ;
return "" ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
} ) ;
if ( wsEnd )
wsEnd = wsEnd . replace ( /\n+(?!\n|$)/g , ` $ & ${ indent } ` ) ;
if ( wsStart )
wsStart = wsStart . replace ( /\n+/g , ` $ & ${ indent } ` ) ;
if ( comment ) {
header += " #" + comment . replace ( / ?[\r\n]+/g , " " ) ;
if ( onComment )
onComment ( ) ;
}
if ( ! value )
return ` ${ header } ${ indentSize }
$ { indent } $ { wsEnd } ` ;
if ( literal ) {
value = value . replace ( /\n+/g , ` $ & ${ indent } ` ) ;
return ` ${ header }
$ { indent } $ { wsStart } $ { value } $ { wsEnd } ` ;
}
value = value . replace ( /\n+/g , "\n$&" ) . replace ( /(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g , "$1$2" ) . replace ( /\n+/g , ` $ & ${ indent } ` ) ;
const body = foldFlowLines ( ` ${ wsStart } ${ value } ${ wsEnd } ` , indent , FOLD _BLOCK , strOptions . fold ) ;
return ` ${ header }
$ { indent } $ { body } ` ;
}
function plainString ( item , ctx , onComment , onChompKeep ) {
const {
comment ,
type ,
value
} = item ;
const {
actualString ,
implicitKey ,
indent ,
inFlow
} = ctx ;
if ( implicitKey && /[\n[\]{},]/ . test ( value ) || inFlow && /[[\]{},]/ . test ( value ) ) {
return doubleQuotedString ( value , ctx ) ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
if ( ! value || /^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/ . test ( value ) ) {
return implicitKey || inFlow || value . indexOf ( "\n" ) === - 1 ? value . indexOf ( '"' ) !== - 1 && value . indexOf ( "'" ) === - 1 ? singleQuotedString ( value , ctx ) : doubleQuotedString ( value , ctx ) : blockString ( item , ctx , onComment , onChompKeep ) ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
if ( ! implicitKey && ! inFlow && type !== PlainValue . Type . PLAIN && value . indexOf ( "\n" ) !== - 1 ) {
return blockString ( item , ctx , onComment , onChompKeep ) ;
}
if ( indent === "" && containsDocumentMarker ( value ) ) {
ctx . forceBlockIndent = true ;
return blockString ( item , ctx , onComment , onChompKeep ) ;
}
const str = value . replace ( /\n+/g , ` $ &
$ { indent } ` );
if ( actualString ) {
const {
tags
} = ctx . doc . schema ;
const resolved = resolveScalar ( str , tags , tags . scalarFallback ) . value ;
if ( typeof resolved !== "string" )
return doubleQuotedString ( value , ctx ) ;
}
const body = implicitKey ? str : foldFlowLines ( str , indent , FOLD _FLOW , getFoldOptions ( ctx ) ) ;
if ( comment && ! inFlow && ( body . indexOf ( "\n" ) !== - 1 || comment . indexOf ( "\n" ) !== - 1 ) ) {
if ( onComment )
onComment ( ) ;
return addCommentBefore ( body , indent , comment ) ;
}
return body ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
function stringifyString ( item , ctx , onComment , onChompKeep ) {
const {
defaultType
} = strOptions ;
const {
implicitKey ,
inFlow
} = ctx ;
let {
type ,
value
} = item ;
if ( typeof value !== "string" ) {
value = String ( value ) ;
item = Object . assign ( { } , item , {
value
} ) ;
}
const _stringify = ( _type ) => {
switch ( _type ) {
case PlainValue . Type . BLOCK _FOLDED :
case PlainValue . Type . BLOCK _LITERAL :
return blockString ( item , ctx , onComment , onChompKeep ) ;
case PlainValue . Type . QUOTE _DOUBLE :
return doubleQuotedString ( value , ctx ) ;
case PlainValue . Type . QUOTE _SINGLE :
return singleQuotedString ( value , ctx ) ;
case PlainValue . Type . PLAIN :
return plainString ( item , ctx , onComment , onChompKeep ) ;
default :
return null ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
} ;
if ( type !== PlainValue . Type . QUOTE _DOUBLE && /[\x00-\x08\x0b-\x1f\x7f-\x9f]/ . test ( value ) ) {
type = PlainValue . Type . QUOTE _DOUBLE ;
} else if ( ( implicitKey || inFlow ) && ( type === PlainValue . Type . BLOCK _FOLDED || type === PlainValue . Type . BLOCK _LITERAL ) ) {
type = PlainValue . Type . QUOTE _DOUBLE ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
let res = _stringify ( type ) ;
if ( res === null ) {
res = _stringify ( defaultType ) ;
if ( res === null )
throw new Error ( ` Unsupported default string type ${ defaultType } ` ) ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
return res ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
function stringifyNumber ( {
format ,
minFractionDigits ,
tag ,
value
} ) {
if ( typeof value === "bigint" )
return String ( value ) ;
if ( ! isFinite ( value ) )
return isNaN ( value ) ? ".nan" : value < 0 ? "-.inf" : ".inf" ;
let n = JSON . stringify ( value ) ;
if ( ! format && minFractionDigits && ( ! tag || tag === "tag:yaml.org,2002:float" ) && /^\d/ . test ( n ) ) {
let i = n . indexOf ( "." ) ;
if ( i < 0 ) {
i = n . length ;
n += "." ;
}
let d = minFractionDigits - ( n . length - i - 1 ) ;
while ( d -- > 0 )
n += "0" ;
}
return n ;
}
function checkFlowCollectionEnd ( errors , cst ) {
let char , name ;
switch ( cst . type ) {
case PlainValue . Type . FLOW _MAP :
char = "}" ;
name = "flow map" ;
2020-08-27 10:23:33 +02:00
break ;
2022-11-10 11:43:16 +01:00
case PlainValue . Type . FLOW _SEQ :
char = "]" ;
name = "flow sequence" ;
2020-08-27 10:23:33 +02:00
break ;
default :
2022-11-10 11:43:16 +01:00
errors . push ( new PlainValue . YAMLSemanticError ( cst , "Not a flow collection!?" ) ) ;
return ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
let lastItem ;
for ( let i = cst . items . length - 1 ; i >= 0 ; -- i ) {
const item = cst . items [ i ] ;
if ( ! item || item . type !== PlainValue . Type . COMMENT ) {
lastItem = item ;
break ;
2020-08-27 10:23:33 +02:00
}
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
if ( lastItem && lastItem . char !== char ) {
const msg = ` Expected ${ name } to end with ${ char } ` ;
let err ;
if ( typeof lastItem . offset === "number" ) {
err = new PlainValue . YAMLSemanticError ( cst , msg ) ;
err . offset = lastItem . offset + 1 ;
} else {
err = new PlainValue . YAMLSemanticError ( lastItem , msg ) ;
if ( lastItem . range && lastItem . range . end )
err . offset = lastItem . range . end - lastItem . range . start ;
}
errors . push ( err ) ;
}
}
function checkFlowCommentSpace ( errors , comment ) {
const prev = comment . context . src [ comment . range . start - 1 ] ;
if ( prev !== "\n" && prev !== " " && prev !== " " ) {
const msg = "Comments must be separated from other tokens by white space characters" ;
errors . push ( new PlainValue . YAMLSemanticError ( comment , msg ) ) ;
}
}
function getLongKeyError ( source , key ) {
const sk = String ( key ) ;
const k = sk . substr ( 0 , 8 ) + "..." + sk . substr ( - 8 ) ;
return new PlainValue . YAMLSemanticError ( source , ` The " ${ k } " key is too long ` ) ;
}
function resolveComments ( collection , comments ) {
for ( const {
afterKey ,
before ,
comment
} of comments ) {
let item = collection . items [ before ] ;
if ( ! item ) {
if ( comment !== void 0 ) {
if ( collection . comment )
collection . comment += "\n" + comment ;
else
collection . comment = comment ;
}
} else {
if ( afterKey && item . value )
item = item . value ;
if ( comment === void 0 ) {
if ( afterKey || ! item . commentBefore )
item . spaceBefore = true ;
} else {
if ( item . commentBefore )
item . commentBefore += "\n" + comment ;
else
item . commentBefore = comment ;
}
}
2020-08-26 01:57:08 +02:00
}
}
2022-11-10 11:43:16 +01:00
function resolveString ( doc , node ) {
const res = node . strValue ;
if ( ! res )
return "" ;
if ( typeof res === "string" )
return res ;
res . errors . forEach ( ( error ) => {
if ( ! error . source )
error . source = node ;
doc . errors . push ( error ) ;
} ) ;
return res . str ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
function resolveTagHandle ( doc , node ) {
const {
handle ,
suffix
} = node . tag ;
let prefix = doc . tagPrefixes . find ( ( p ) => p . handle === handle ) ;
if ( ! prefix ) {
const dtp = doc . getDefaults ( ) . tagPrefixes ;
if ( dtp )
prefix = dtp . find ( ( p ) => p . handle === handle ) ;
if ( ! prefix )
throw new PlainValue . YAMLSemanticError ( node , ` The ${ handle } tag handle is non-default and was not declared. ` ) ;
}
if ( ! suffix )
throw new PlainValue . YAMLSemanticError ( node , ` The ${ handle } tag has no suffix. ` ) ;
if ( handle === "!" && ( doc . version || doc . options . version ) === "1.0" ) {
if ( suffix [ 0 ] === "^" ) {
doc . warnings . push ( new PlainValue . YAMLWarning ( node , "YAML 1.0 ^ tag expansion is not supported" ) ) ;
return suffix ;
}
if ( /[:/]/ . test ( suffix ) ) {
const vocab = suffix . match ( /^([a-z0-9-]+)\/(.*)/i ) ;
return vocab ? ` tag: ${ vocab [ 1 ] } .yaml.org,2002: ${ vocab [ 2 ] } ` : ` tag: ${ suffix } ` ;
}
}
return prefix . prefix + decodeURIComponent ( suffix ) ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
function resolveTagName ( doc , node ) {
const {
tag ,
type
} = node ;
let nonSpecific = false ;
if ( tag ) {
const {
handle ,
suffix ,
verbatim
} = tag ;
if ( verbatim ) {
if ( verbatim !== "!" && verbatim !== "!!" )
return verbatim ;
const msg = ` Verbatim tags aren't resolved, so ${ verbatim } is invalid. ` ;
doc . errors . push ( new PlainValue . YAMLSemanticError ( node , msg ) ) ;
} else if ( handle === "!" && ! suffix ) {
nonSpecific = true ;
} else {
try {
return resolveTagHandle ( doc , node ) ;
} catch ( error ) {
doc . errors . push ( error ) ;
}
}
}
switch ( type ) {
case PlainValue . Type . BLOCK _FOLDED :
case PlainValue . Type . BLOCK _LITERAL :
case PlainValue . Type . QUOTE _DOUBLE :
case PlainValue . Type . QUOTE _SINGLE :
return PlainValue . defaultTags . STR ;
case PlainValue . Type . FLOW _MAP :
case PlainValue . Type . MAP :
return PlainValue . defaultTags . MAP ;
case PlainValue . Type . FLOW _SEQ :
case PlainValue . Type . SEQ :
return PlainValue . defaultTags . SEQ ;
case PlainValue . Type . PLAIN :
return nonSpecific ? PlainValue . defaultTags . STR : null ;
default :
return null ;
2020-08-26 01:57:08 +02:00
}
}
2022-11-10 11:43:16 +01:00
function resolveByTagName ( doc , node , tagName ) {
const {
tags
} = doc . schema ;
const matchWithTest = [ ] ;
for ( const tag of tags ) {
if ( tag . tag === tagName ) {
if ( tag . test )
matchWithTest . push ( tag ) ;
else {
const res = tag . resolve ( doc , node ) ;
return res instanceof Collection ? res : new Scalar ( res ) ;
}
}
}
const str = resolveString ( doc , node ) ;
if ( typeof str === "string" && matchWithTest . length > 0 )
return resolveScalar ( str , matchWithTest , tags . scalarFallback ) ;
return null ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
function getFallbackTagName ( {
type
} ) {
switch ( type ) {
case PlainValue . Type . FLOW _MAP :
case PlainValue . Type . MAP :
return PlainValue . defaultTags . MAP ;
case PlainValue . Type . FLOW _SEQ :
case PlainValue . Type . SEQ :
return PlainValue . defaultTags . SEQ ;
default :
return PlainValue . defaultTags . STR ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
}
function resolveTag ( doc , node , tagName ) {
try {
const res = resolveByTagName ( doc , node , tagName ) ;
if ( res ) {
if ( tagName && node . tag )
res . tag = tagName ;
return res ;
}
} catch ( error ) {
if ( ! error . source )
error . source = node ;
doc . errors . push ( error ) ;
return null ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
try {
const fallback = getFallbackTagName ( node ) ;
if ( ! fallback )
throw new Error ( ` The tag ${ tagName } is unavailable ` ) ;
const msg = ` The tag ${ tagName } is unavailable, falling back to ${ fallback } ` ;
doc . warnings . push ( new PlainValue . YAMLWarning ( node , msg ) ) ;
const res = resolveByTagName ( doc , node , fallback ) ;
res . tag = tagName ;
return res ;
} catch ( error ) {
const refError = new PlainValue . YAMLReferenceError ( node , error . message ) ;
refError . stack = error . stack ;
doc . errors . push ( refError ) ;
return null ;
2020-08-26 01:57:08 +02:00
}
}
2022-11-10 11:43:16 +01:00
var isCollectionItem = ( node ) => {
if ( ! node )
return false ;
const {
type
} = node ;
return type === PlainValue . Type . MAP _KEY || type === PlainValue . Type . MAP _VALUE || type === PlainValue . Type . SEQ _ITEM ;
} ;
function resolveNodeProps ( errors , node ) {
const comments = {
before : [ ] ,
after : [ ]
} ;
let hasAnchor = false ;
let hasTag = false ;
const props = isCollectionItem ( node . context . parent ) ? node . context . parent . props . concat ( node . props ) : node . props ;
for ( const {
start ,
end
} of props ) {
switch ( node . context . src [ start ] ) {
case PlainValue . Char . COMMENT : {
if ( ! node . commentHasRequiredWhitespace ( start ) ) {
const msg = "Comments must be separated from other tokens by white space characters" ;
errors . push ( new PlainValue . YAMLSemanticError ( node , msg ) ) ;
}
const {
header ,
valueRange
} = node ;
const cc = valueRange && ( start > valueRange . start || header && start > header . start ) ? comments . after : comments . before ;
cc . push ( node . context . src . slice ( start + 1 , end ) ) ;
break ;
}
case PlainValue . Char . ANCHOR :
if ( hasAnchor ) {
const msg = "A node can have at most one anchor" ;
errors . push ( new PlainValue . YAMLSemanticError ( node , msg ) ) ;
}
hasAnchor = true ;
break ;
case PlainValue . Char . TAG :
if ( hasTag ) {
const msg = "A node can have at most one tag" ;
errors . push ( new PlainValue . YAMLSemanticError ( node , msg ) ) ;
}
hasTag = true ;
break ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
}
return {
comments ,
hasAnchor ,
hasTag
} ;
}
function resolveNodeValue ( doc , node ) {
const {
anchors ,
errors ,
schema
} = doc ;
if ( node . type === PlainValue . Type . ALIAS ) {
const name = node . rawValue ;
const src = anchors . getNode ( name ) ;
if ( ! src ) {
const msg = ` Aliased anchor not found: ${ name } ` ;
errors . push ( new PlainValue . YAMLReferenceError ( node , msg ) ) ;
return null ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
const res = new Alias ( src ) ;
anchors . _cstAliases . push ( res ) ;
return res ;
}
const tagName = resolveTagName ( doc , node ) ;
if ( tagName )
return resolveTag ( doc , node , tagName ) ;
if ( node . type !== PlainValue . Type . PLAIN ) {
const msg = ` Failed to resolve ${ node . type } node here ` ;
errors . push ( new PlainValue . YAMLSyntaxError ( node , msg ) ) ;
return null ;
}
try {
const str = resolveString ( doc , node ) ;
return resolveScalar ( str , schema . tags , schema . tags . scalarFallback ) ;
} catch ( error ) {
if ( ! error . source )
error . source = node ;
errors . push ( error ) ;
return null ;
}
}
function resolveNode ( doc , node ) {
if ( ! node )
return null ;
if ( node . error )
doc . errors . push ( node . error ) ;
const {
comments ,
hasAnchor ,
hasTag
} = resolveNodeProps ( doc . errors , node ) ;
if ( hasAnchor ) {
const {
anchors
} = doc ;
const name = node . anchor ;
const prev = anchors . getNode ( name ) ;
if ( prev )
anchors . map [ anchors . newName ( name ) ] = prev ;
anchors . map [ name ] = node ;
}
if ( node . type === PlainValue . Type . ALIAS && ( hasAnchor || hasTag ) ) {
const msg = "An alias node must not specify any properties" ;
doc . errors . push ( new PlainValue . YAMLSemanticError ( node , msg ) ) ;
}
const res = resolveNodeValue ( doc , node ) ;
if ( res ) {
res . range = [ node . range . start , node . range . end ] ;
if ( doc . options . keepCstNodes )
res . cstNode = node ;
if ( doc . options . keepNodeTypes )
res . type = node . type ;
const cb = comments . before . join ( "\n" ) ;
if ( cb ) {
res . commentBefore = res . commentBefore ? ` ${ res . commentBefore }
$ { cb } ` : cb;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
const ca = comments . after . join ( "\n" ) ;
if ( ca )
res . comment = res . comment ? ` ${ res . comment }
$ { ca } ` : ca;
}
return node . resolved = res ;
}
function resolveMap ( doc , cst ) {
if ( cst . type !== PlainValue . Type . MAP && cst . type !== PlainValue . Type . FLOW _MAP ) {
const msg = ` A ${ cst . type } node cannot be resolved as a mapping ` ;
doc . errors . push ( new PlainValue . YAMLSyntaxError ( cst , msg ) ) ;
return null ;
}
const {
comments ,
items
} = cst . type === PlainValue . Type . FLOW _MAP ? resolveFlowMapItems ( doc , cst ) : resolveBlockMapItems ( doc , cst ) ;
const map = new YAMLMap ( ) ;
map . items = items ;
resolveComments ( map , comments ) ;
let hasCollectionKey = false ;
for ( let i = 0 ; i < items . length ; ++ i ) {
const {
key : iKey
} = items [ i ] ;
if ( iKey instanceof Collection )
hasCollectionKey = true ;
if ( doc . schema . merge && iKey && iKey . value === MERGE _KEY ) {
items [ i ] = new Merge ( items [ i ] ) ;
const sources = items [ i ] . value . items ;
let error = null ;
sources . some ( ( node ) => {
if ( node instanceof Alias ) {
const {
type
} = node . source ;
if ( type === PlainValue . Type . MAP || type === PlainValue . Type . FLOW _MAP )
return false ;
return error = "Merge nodes aliases can only point to maps" ;
}
return error = "Merge nodes can only have Alias nodes as values" ;
} ) ;
if ( error )
doc . errors . push ( new PlainValue . YAMLSemanticError ( cst , error ) ) ;
} else {
for ( let j = i + 1 ; j < items . length ; ++ j ) {
const {
key : jKey
} = items [ j ] ;
if ( iKey === jKey || iKey && jKey && Object . prototype . hasOwnProperty . call ( iKey , "value" ) && iKey . value === jKey . value ) {
const msg = ` Map keys must be unique; " ${ iKey } " is repeated ` ;
doc . errors . push ( new PlainValue . YAMLSemanticError ( cst , msg ) ) ;
break ;
}
}
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
}
if ( hasCollectionKey && ! doc . options . mapAsMap ) {
const warn = "Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this." ;
doc . warnings . push ( new PlainValue . YAMLWarning ( cst , warn ) ) ;
}
cst . resolved = map ;
return map ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
var valueHasPairComment = ( {
context : {
lineStart ,
node ,
src
} ,
props
} ) => {
if ( props . length === 0 )
return false ;
const {
start
} = props [ 0 ] ;
if ( node && start > node . valueRange . start )
return false ;
if ( src [ start ] !== PlainValue . Char . COMMENT )
return false ;
for ( let i = lineStart ; i < start ; ++ i )
if ( src [ i ] === "\n" )
return false ;
2020-08-27 10:23:33 +02:00
return true ;
2022-11-10 11:43:16 +01:00
} ;
function resolvePairComment ( item , pair ) {
if ( ! valueHasPairComment ( item ) )
return ;
const comment = item . getPropValue ( 0 , PlainValue . Char . COMMENT , true ) ;
let found = false ;
const cb = pair . value . commentBefore ;
if ( cb && cb . startsWith ( comment ) ) {
pair . value . commentBefore = cb . substr ( comment . length + 1 ) ;
found = true ;
} else {
const cc = pair . value . comment ;
if ( ! item . node && cc && cc . startsWith ( comment ) ) {
pair . value . comment = cc . substr ( comment . length + 1 ) ;
found = true ;
}
}
if ( found )
pair . comment = comment ;
}
function resolveBlockMapItems ( doc , cst ) {
const comments = [ ] ;
const items = [ ] ;
let key = void 0 ;
let keyStart = null ;
for ( let i = 0 ; i < cst . items . length ; ++ i ) {
const item = cst . items [ i ] ;
switch ( item . type ) {
case PlainValue . Type . BLANK _LINE :
comments . push ( {
afterKey : ! ! key ,
before : items . length
} ) ;
break ;
case PlainValue . Type . COMMENT :
comments . push ( {
afterKey : ! ! key ,
before : items . length ,
comment : item . comment
} ) ;
break ;
case PlainValue . Type . MAP _KEY :
if ( key !== void 0 )
items . push ( new Pair ( key ) ) ;
if ( item . error )
doc . errors . push ( item . error ) ;
key = resolveNode ( doc , item . node ) ;
keyStart = null ;
break ;
case PlainValue . Type . MAP _VALUE :
{
if ( key === void 0 )
key = null ;
if ( item . error )
doc . errors . push ( item . error ) ;
if ( ! item . context . atLineStart && item . node && item . node . type === PlainValue . Type . MAP && ! item . node . context . atLineStart ) {
const msg = "Nested mappings are not allowed in compact mappings" ;
doc . errors . push ( new PlainValue . YAMLSemanticError ( item . node , msg ) ) ;
}
let valueNode = item . node ;
if ( ! valueNode && item . props . length > 0 ) {
valueNode = new PlainValue . PlainValue ( PlainValue . Type . PLAIN , [ ] ) ;
valueNode . context = {
parent : item ,
src : item . context . src
} ;
const pos = item . range . start + 1 ;
valueNode . range = {
start : pos ,
end : pos
} ;
valueNode . valueRange = {
start : pos ,
end : pos
} ;
if ( typeof item . range . origStart === "number" ) {
const origPos = item . range . origStart + 1 ;
valueNode . range . origStart = valueNode . range . origEnd = origPos ;
valueNode . valueRange . origStart = valueNode . valueRange . origEnd = origPos ;
}
}
const pair = new Pair ( key , resolveNode ( doc , valueNode ) ) ;
resolvePairComment ( item , pair ) ;
items . push ( pair ) ;
if ( key && typeof keyStart === "number" ) {
if ( item . range . start > keyStart + 1024 )
doc . errors . push ( getLongKeyError ( cst , key ) ) ;
}
key = void 0 ;
keyStart = null ;
}
break ;
default :
if ( key !== void 0 )
items . push ( new Pair ( key ) ) ;
key = resolveNode ( doc , item ) ;
keyStart = item . range . start ;
if ( item . error )
doc . errors . push ( item . error ) ;
next :
for ( let j = i + 1 ; ; ++ j ) {
const nextItem = cst . items [ j ] ;
switch ( nextItem && nextItem . type ) {
case PlainValue . Type . BLANK _LINE :
case PlainValue . Type . COMMENT :
continue next ;
case PlainValue . Type . MAP _VALUE :
break next ;
default : {
const msg = "Implicit map keys need to be followed by map values" ;
doc . errors . push ( new PlainValue . YAMLSemanticError ( item , msg ) ) ;
break next ;
}
}
}
if ( item . valueRangeContainsNewline ) {
const msg = "Implicit map keys need to be on a single line" ;
doc . errors . push ( new PlainValue . YAMLSemanticError ( item , msg ) ) ;
}
}
}
if ( key !== void 0 )
items . push ( new Pair ( key ) ) ;
return {
comments ,
items
} ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
function resolveFlowMapItems ( doc , cst ) {
const comments = [ ] ;
const items = [ ] ;
let key = void 0 ;
let explicitKey = false ;
let next = "{" ;
for ( let i = 0 ; i < cst . items . length ; ++ i ) {
const item = cst . items [ i ] ;
if ( typeof item . char === "string" ) {
const {
char ,
offset
} = item ;
if ( char === "?" && key === void 0 && ! explicitKey ) {
explicitKey = true ;
next = ":" ;
continue ;
}
if ( char === ":" ) {
if ( key === void 0 )
key = null ;
if ( next === ":" ) {
next = "," ;
continue ;
}
} else {
if ( explicitKey ) {
if ( key === void 0 && char !== "," )
key = null ;
explicitKey = false ;
}
if ( key !== void 0 ) {
items . push ( new Pair ( key ) ) ;
key = void 0 ;
if ( char === "," ) {
next = ":" ;
continue ;
}
}
}
if ( char === "}" ) {
if ( i === cst . items . length - 1 )
continue ;
} else if ( char === next ) {
next = ":" ;
continue ;
}
const msg = ` Flow map contains an unexpected ${ char } ` ;
const err = new PlainValue . YAMLSyntaxError ( cst , msg ) ;
err . offset = offset ;
doc . errors . push ( err ) ;
} else if ( item . type === PlainValue . Type . BLANK _LINE ) {
comments . push ( {
afterKey : ! ! key ,
before : items . length
} ) ;
} else if ( item . type === PlainValue . Type . COMMENT ) {
checkFlowCommentSpace ( doc . errors , item ) ;
comments . push ( {
afterKey : ! ! key ,
before : items . length ,
comment : item . comment
} ) ;
} else if ( key === void 0 ) {
if ( next === "," )
doc . errors . push ( new PlainValue . YAMLSemanticError ( item , "Separator , missing in flow map" ) ) ;
key = resolveNode ( doc , item ) ;
} else {
if ( next !== "," )
doc . errors . push ( new PlainValue . YAMLSemanticError ( item , "Indicator : missing in flow map entry" ) ) ;
items . push ( new Pair ( key , resolveNode ( doc , item ) ) ) ;
key = void 0 ;
explicitKey = false ;
}
}
checkFlowCollectionEnd ( doc . errors , cst ) ;
if ( key !== void 0 )
items . push ( new Pair ( key ) ) ;
return {
comments ,
items
} ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
function resolveSeq ( doc , cst ) {
if ( cst . type !== PlainValue . Type . SEQ && cst . type !== PlainValue . Type . FLOW _SEQ ) {
const msg = ` A ${ cst . type } node cannot be resolved as a sequence ` ;
doc . errors . push ( new PlainValue . YAMLSyntaxError ( cst , msg ) ) ;
return null ;
}
const {
comments ,
items
} = cst . type === PlainValue . Type . FLOW _SEQ ? resolveFlowSeqItems ( doc , cst ) : resolveBlockSeqItems ( doc , cst ) ;
const seq = new YAMLSeq ( ) ;
seq . items = items ;
resolveComments ( seq , comments ) ;
if ( ! doc . options . mapAsMap && items . some ( ( it ) => it instanceof Pair && it . key instanceof Collection ) ) {
const warn = "Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this." ;
doc . warnings . push ( new PlainValue . YAMLWarning ( cst , warn ) ) ;
}
cst . resolved = seq ;
return seq ;
}
function resolveBlockSeqItems ( doc , cst ) {
const comments = [ ] ;
const items = [ ] ;
for ( let i = 0 ; i < cst . items . length ; ++ i ) {
const item = cst . items [ i ] ;
switch ( item . type ) {
case PlainValue . Type . BLANK _LINE :
comments . push ( {
before : items . length
} ) ;
break ;
case PlainValue . Type . COMMENT :
comments . push ( {
comment : item . comment ,
before : items . length
} ) ;
break ;
case PlainValue . Type . SEQ _ITEM :
if ( item . error )
doc . errors . push ( item . error ) ;
items . push ( resolveNode ( doc , item . node ) ) ;
if ( item . hasProps ) {
const msg = "Sequence items cannot have tags or anchors before the - indicator" ;
doc . errors . push ( new PlainValue . YAMLSemanticError ( item , msg ) ) ;
}
break ;
default :
if ( item . error )
doc . errors . push ( item . error ) ;
doc . errors . push ( new PlainValue . YAMLSyntaxError ( item , ` Unexpected ${ item . type } node in sequence ` ) ) ;
}
}
return {
comments ,
items
} ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
function resolveFlowSeqItems ( doc , cst ) {
const comments = [ ] ;
const items = [ ] ;
let explicitKey = false ;
let key = void 0 ;
let keyStart = null ;
let next = "[" ;
let prevItem = null ;
for ( let i = 0 ; i < cst . items . length ; ++ i ) {
const item = cst . items [ i ] ;
if ( typeof item . char === "string" ) {
const {
char ,
offset
} = item ;
if ( char !== ":" && ( explicitKey || key !== void 0 ) ) {
if ( explicitKey && key === void 0 )
key = next ? items . pop ( ) : null ;
items . push ( new Pair ( key ) ) ;
explicitKey = false ;
key = void 0 ;
keyStart = null ;
}
if ( char === next ) {
next = null ;
} else if ( ! next && char === "?" ) {
explicitKey = true ;
} else if ( next !== "[" && char === ":" && key === void 0 ) {
if ( next === "," ) {
key = items . pop ( ) ;
if ( key instanceof Pair ) {
const msg = "Chaining flow sequence pairs is invalid" ;
const err = new PlainValue . YAMLSemanticError ( cst , msg ) ;
err . offset = offset ;
doc . errors . push ( err ) ;
}
if ( ! explicitKey && typeof keyStart === "number" ) {
const keyEnd = item . range ? item . range . start : item . offset ;
if ( keyEnd > keyStart + 1024 )
doc . errors . push ( getLongKeyError ( cst , key ) ) ;
const {
src
} = prevItem . context ;
for ( let i2 = keyStart ; i2 < keyEnd ; ++ i2 )
if ( src [ i2 ] === "\n" ) {
const msg = "Implicit keys of flow sequence pairs need to be on a single line" ;
doc . errors . push ( new PlainValue . YAMLSemanticError ( prevItem , msg ) ) ;
break ;
}
}
} else {
key = null ;
}
keyStart = null ;
explicitKey = false ;
next = null ;
} else if ( next === "[" || char !== "]" || i < cst . items . length - 1 ) {
const msg = ` Flow sequence contains an unexpected ${ char } ` ;
const err = new PlainValue . YAMLSyntaxError ( cst , msg ) ;
err . offset = offset ;
doc . errors . push ( err ) ;
}
} else if ( item . type === PlainValue . Type . BLANK _LINE ) {
comments . push ( {
before : items . length
} ) ;
} else if ( item . type === PlainValue . Type . COMMENT ) {
checkFlowCommentSpace ( doc . errors , item ) ;
comments . push ( {
comment : item . comment ,
before : items . length
} ) ;
} else {
if ( next ) {
const msg = ` Expected a ${ next } in flow sequence ` ;
doc . errors . push ( new PlainValue . YAMLSemanticError ( item , msg ) ) ;
}
const value = resolveNode ( doc , item ) ;
if ( key === void 0 ) {
items . push ( value ) ;
prevItem = item ;
} else {
items . push ( new Pair ( key , value ) ) ;
key = void 0 ;
}
keyStart = item . range . start ;
next = "," ;
}
}
checkFlowCollectionEnd ( doc . errors , cst ) ;
if ( key !== void 0 )
items . push ( new Pair ( key ) ) ;
return {
comments ,
items
} ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
exports2 . Alias = Alias ;
exports2 . Collection = Collection ;
exports2 . Merge = Merge ;
exports2 . Node = Node ;
exports2 . Pair = Pair ;
exports2 . Scalar = Scalar ;
exports2 . YAMLMap = YAMLMap ;
exports2 . YAMLSeq = YAMLSeq ;
exports2 . addComment = addComment ;
exports2 . binaryOptions = binaryOptions ;
exports2 . boolOptions = boolOptions ;
exports2 . findPair = findPair ;
exports2 . intOptions = intOptions ;
exports2 . isEmptyPath = isEmptyPath ;
exports2 . nullOptions = nullOptions ;
exports2 . resolveMap = resolveMap ;
exports2 . resolveNode = resolveNode ;
exports2 . resolveSeq = resolveSeq ;
exports2 . resolveString = resolveString ;
exports2 . strOptions = strOptions ;
exports2 . stringifyNumber = stringifyNumber ;
exports2 . stringifyString = stringifyString ;
exports2 . toJSON = toJSON ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
} ) ;
var require _warnings _1000a372 = _ _commonJS ( {
"node_modules/yaml/dist/warnings-1000a372.js" ( exports2 ) {
"use strict" ;
var PlainValue = require _PlainValue _ec8e588e ( ) ;
var resolveSeq = require _resolveSeq _d03cb037 ( ) ;
var binary = {
identify : ( value ) => value instanceof Uint8Array ,
default : false ,
tag : "tag:yaml.org,2002:binary" ,
resolve : ( doc , node ) => {
const src = resolveSeq . resolveString ( doc , node ) ;
if ( typeof Buffer === "function" ) {
return Buffer . from ( src , "base64" ) ;
} else if ( typeof atob === "function" ) {
const str = atob ( src . replace ( /[\n\r]/g , "" ) ) ;
const buffer = new Uint8Array ( str . length ) ;
for ( let i = 0 ; i < str . length ; ++ i )
buffer [ i ] = str . charCodeAt ( i ) ;
return buffer ;
} else {
const msg = "This environment does not support reading binary tags; either Buffer or atob is required" ;
doc . errors . push ( new PlainValue . YAMLReferenceError ( node , msg ) ) ;
return null ;
}
} ,
options : resolveSeq . binaryOptions ,
stringify : ( {
comment ,
type ,
value
} , ctx , onComment , onChompKeep ) => {
let src ;
if ( typeof Buffer === "function" ) {
src = value instanceof Buffer ? value . toString ( "base64" ) : Buffer . from ( value . buffer ) . toString ( "base64" ) ;
} else if ( typeof btoa === "function" ) {
let s = "" ;
for ( let i = 0 ; i < value . length ; ++ i )
s += String . fromCharCode ( value [ i ] ) ;
src = btoa ( s ) ;
} else {
throw new Error ( "This environment does not support writing binary tags; either Buffer or btoa is required" ) ;
}
if ( ! type )
type = resolveSeq . binaryOptions . defaultType ;
if ( type === PlainValue . Type . QUOTE _DOUBLE ) {
value = src ;
} else {
const {
lineWidth
} = resolveSeq . binaryOptions ;
const n = Math . ceil ( src . length / lineWidth ) ;
const lines = new Array ( n ) ;
for ( let i = 0 , o = 0 ; i < n ; ++ i , o += lineWidth ) {
lines [ i ] = src . substr ( o , lineWidth ) ;
}
value = lines . join ( type === PlainValue . Type . BLOCK _LITERAL ? "\n" : " " ) ;
}
return resolveSeq . stringifyString ( {
comment ,
type ,
value
} , ctx , onComment , onChompKeep ) ;
}
2020-08-27 10:23:33 +02:00
} ;
2022-11-10 11:43:16 +01:00
function parsePairs ( doc , cst ) {
const seq = resolveSeq . resolveSeq ( doc , cst ) ;
for ( let i = 0 ; i < seq . items . length ; ++ i ) {
let item = seq . items [ i ] ;
if ( item instanceof resolveSeq . Pair )
continue ;
else if ( item instanceof resolveSeq . YAMLMap ) {
if ( item . items . length > 1 ) {
const msg = "Each pair must have its own sequence indicator" ;
throw new PlainValue . YAMLSemanticError ( cst , msg ) ;
}
const pair = item . items [ 0 ] || new resolveSeq . Pair ( ) ;
if ( item . commentBefore )
pair . commentBefore = pair . commentBefore ? ` ${ item . commentBefore }
$ { pair . commentBefore } ` : item.commentBefore;
if ( item . comment )
pair . comment = pair . comment ? ` ${ item . comment }
$ { pair . comment } ` : item.comment;
item = pair ;
}
seq . items [ i ] = item instanceof resolveSeq . Pair ? item : new resolveSeq . Pair ( item ) ;
}
return seq ;
}
function createPairs ( schema , iterable , ctx ) {
const pairs2 = new resolveSeq . YAMLSeq ( schema ) ;
pairs2 . tag = "tag:yaml.org,2002:pairs" ;
for ( const it of iterable ) {
let key , value ;
if ( Array . isArray ( it ) ) {
if ( it . length === 2 ) {
key = it [ 0 ] ;
value = it [ 1 ] ;
} else
throw new TypeError ( ` Expected [key, value] tuple: ${ it } ` ) ;
} else if ( it && it instanceof Object ) {
const keys = Object . keys ( it ) ;
if ( keys . length === 1 ) {
key = keys [ 0 ] ;
value = it [ key ] ;
} else
throw new TypeError ( ` Expected { key: value } tuple: ${ it } ` ) ;
} else {
key = it ;
}
const pair = schema . createPair ( key , value , ctx ) ;
pairs2 . items . push ( pair ) ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
return pairs2 ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
var pairs = {
default : false ,
tag : "tag:yaml.org,2002:pairs" ,
resolve : parsePairs ,
createNode : createPairs
} ;
var YAMLOMap = class extends resolveSeq . YAMLSeq {
constructor ( ) {
super ( ) ;
PlainValue . _defineProperty ( this , "add" , resolveSeq . YAMLMap . prototype . add . bind ( this ) ) ;
PlainValue . _defineProperty ( this , "delete" , resolveSeq . YAMLMap . prototype . delete . bind ( this ) ) ;
PlainValue . _defineProperty ( this , "get" , resolveSeq . YAMLMap . prototype . get . bind ( this ) ) ;
PlainValue . _defineProperty ( this , "has" , resolveSeq . YAMLMap . prototype . has . bind ( this ) ) ;
PlainValue . _defineProperty ( this , "set" , resolveSeq . YAMLMap . prototype . set . bind ( this ) ) ;
this . tag = YAMLOMap . tag ;
}
toJSON ( _ , ctx ) {
const map = /* @__PURE__ */ new Map ( ) ;
if ( ctx && ctx . onCreate )
ctx . onCreate ( map ) ;
for ( const pair of this . items ) {
let key , value ;
if ( pair instanceof resolveSeq . Pair ) {
key = resolveSeq . toJSON ( pair . key , "" , ctx ) ;
value = resolveSeq . toJSON ( pair . value , key , ctx ) ;
} else {
key = resolveSeq . toJSON ( pair , "" , ctx ) ;
}
if ( map . has ( key ) )
throw new Error ( "Ordered maps must not include duplicate keys" ) ;
map . set ( key , value ) ;
}
return map ;
}
} ;
PlainValue . _defineProperty ( YAMLOMap , "tag" , "tag:yaml.org,2002:omap" ) ;
function parseOMap ( doc , cst ) {
const pairs2 = parsePairs ( doc , cst ) ;
const seenKeys = [ ] ;
for ( const {
key
} of pairs2 . items ) {
if ( key instanceof resolveSeq . Scalar ) {
if ( seenKeys . includes ( key . value ) ) {
const msg = "Ordered maps must not include duplicate keys" ;
throw new PlainValue . YAMLSemanticError ( cst , msg ) ;
} else {
seenKeys . push ( key . value ) ;
}
}
}
return Object . assign ( new YAMLOMap ( ) , pairs2 ) ;
}
function createOMap ( schema , iterable , ctx ) {
const pairs2 = createPairs ( schema , iterable , ctx ) ;
const omap2 = new YAMLOMap ( ) ;
omap2 . items = pairs2 . items ;
return omap2 ;
}
var omap = {
identify : ( value ) => value instanceof Map ,
nodeClass : YAMLOMap ,
default : false ,
tag : "tag:yaml.org,2002:omap" ,
resolve : parseOMap ,
createNode : createOMap
} ;
var YAMLSet = class extends resolveSeq . YAMLMap {
constructor ( ) {
super ( ) ;
this . tag = YAMLSet . tag ;
}
add ( key ) {
const pair = key instanceof resolveSeq . Pair ? key : new resolveSeq . Pair ( key ) ;
const prev = resolveSeq . findPair ( this . items , pair . key ) ;
if ( ! prev )
this . items . push ( pair ) ;
}
get ( key , keepPair ) {
const pair = resolveSeq . findPair ( this . items , key ) ;
return ! keepPair && pair instanceof resolveSeq . Pair ? pair . key instanceof resolveSeq . Scalar ? pair . key . value : pair . key : pair ;
}
set ( key , value ) {
if ( typeof value !== "boolean" )
throw new Error ( ` Expected boolean value for set(key, value) in a YAML set, not ${ typeof value } ` ) ;
const prev = resolveSeq . findPair ( this . items , key ) ;
if ( prev && ! value ) {
this . items . splice ( this . items . indexOf ( prev ) , 1 ) ;
} else if ( ! prev && value ) {
this . items . push ( new resolveSeq . Pair ( key ) ) ;
}
}
toJSON ( _ , ctx ) {
return super . toJSON ( _ , ctx , Set ) ;
}
toString ( ctx , onComment , onChompKeep ) {
if ( ! ctx )
return JSON . stringify ( this ) ;
if ( this . hasAllNullValues ( ) )
return super . toString ( ctx , onComment , onChompKeep ) ;
else
throw new Error ( "Set items must all have null values" ) ;
}
} ;
PlainValue . _defineProperty ( YAMLSet , "tag" , "tag:yaml.org,2002:set" ) ;
function parseSet ( doc , cst ) {
const map = resolveSeq . resolveMap ( doc , cst ) ;
if ( ! map . hasAllNullValues ( ) )
throw new PlainValue . YAMLSemanticError ( cst , "Set items must all have null values" ) ;
return Object . assign ( new YAMLSet ( ) , map ) ;
}
function createSet ( schema , iterable , ctx ) {
const set2 = new YAMLSet ( ) ;
for ( const value of iterable )
set2 . items . push ( schema . createPair ( value , null , ctx ) ) ;
return set2 ;
}
var set = {
identify : ( value ) => value instanceof Set ,
nodeClass : YAMLSet ,
default : false ,
tag : "tag:yaml.org,2002:set" ,
resolve : parseSet ,
createNode : createSet
} ;
var parseSexagesimal = ( sign , parts ) => {
const n = parts . split ( ":" ) . reduce ( ( n2 , p ) => n2 * 60 + Number ( p ) , 0 ) ;
return sign === "-" ? - n : n ;
} ;
var stringifySexagesimal = ( {
value
2020-08-27 10:23:33 +02:00
} ) => {
2022-11-10 11:43:16 +01:00
if ( isNaN ( value ) || ! isFinite ( value ) )
return resolveSeq . stringifyNumber ( value ) ;
let sign = "" ;
if ( value < 0 ) {
sign = "-" ;
value = Math . abs ( value ) ;
}
const parts = [ value % 60 ] ;
if ( value < 60 ) {
parts . unshift ( 0 ) ;
} else {
value = Math . round ( ( value - parts [ 0 ] ) / 60 ) ;
parts . unshift ( value % 60 ) ;
if ( value >= 60 ) {
value = Math . round ( ( value - parts [ 0 ] ) / 60 ) ;
parts . unshift ( value ) ;
}
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
return sign + parts . map ( ( n ) => n < 10 ? "0" + String ( n ) : String ( n ) ) . join ( ":" ) . replace ( /000000\d*$/ , "" ) ;
2020-08-27 10:23:33 +02:00
} ;
2022-11-10 11:43:16 +01:00
var intTime = {
identify : ( value ) => typeof value === "number" ,
default : true ,
tag : "tag:yaml.org,2002:int" ,
format : "TIME" ,
test : /^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+)$/ ,
resolve : ( str , sign , parts ) => parseSexagesimal ( sign , parts . replace ( /_/g , "" ) ) ,
stringify : stringifySexagesimal
} ;
var floatTime = {
identify : ( value ) => typeof value === "number" ,
default : true ,
tag : "tag:yaml.org,2002:float" ,
format : "TIME" ,
test : /^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*)$/ ,
resolve : ( str , sign , parts ) => parseSexagesimal ( sign , parts . replace ( /_/g , "" ) ) ,
stringify : stringifySexagesimal
} ;
var timestamp = {
identify : ( value ) => value instanceof Date ,
default : true ,
tag : "tag:yaml.org,2002:timestamp" ,
test : RegExp ( "^(?:([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?)$" ) ,
resolve : ( str , year , month , day , hour , minute , second , millisec , tz ) => {
if ( millisec )
millisec = ( millisec + "00" ) . substr ( 1 , 3 ) ;
let date = Date . UTC ( year , month - 1 , day , hour || 0 , minute || 0 , second || 0 , millisec || 0 ) ;
if ( tz && tz !== "Z" ) {
let d = parseSexagesimal ( tz [ 0 ] , tz . slice ( 1 ) ) ;
if ( Math . abs ( d ) < 30 )
d *= 60 ;
date -= 6e4 * d ;
}
return new Date ( date ) ;
} ,
stringify : ( {
value
} ) => value . toISOString ( ) . replace ( /((T00:00)?:00)?\.000Z$/ , "" )
} ;
function shouldWarn ( deprecation ) {
const env = typeof process !== "undefined" && process . env || { } ;
if ( deprecation ) {
if ( typeof YAML _SILENCE _DEPRECATION _WARNINGS !== "undefined" )
return ! YAML _SILENCE _DEPRECATION _WARNINGS ;
return ! env . YAML _SILENCE _DEPRECATION _WARNINGS ;
}
if ( typeof YAML _SILENCE _WARNINGS !== "undefined" )
return ! YAML _SILENCE _WARNINGS ;
return ! env . YAML _SILENCE _WARNINGS ;
}
function warn ( warning , type ) {
if ( shouldWarn ( false ) ) {
const emit = typeof process !== "undefined" && process . emitWarning ;
if ( emit )
emit ( warning , type ) ;
else {
console . warn ( type ? ` ${ type } : ${ warning } ` : warning ) ;
}
2020-08-27 10:23:33 +02:00
}
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
function warnFileDeprecation ( filename ) {
if ( shouldWarn ( true ) ) {
const path = filename . replace ( /.*yaml[/\\]/i , "" ) . replace ( /\.js$/ , "" ) . replace ( /\\/g , "/" ) ;
warn ( ` The endpoint 'yaml/ ${ path } ' will be removed in a future release. ` , "DeprecationWarning" ) ;
}
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
var warned = { } ;
function warnOptionDeprecation ( name , alternative ) {
if ( ! warned [ name ] && shouldWarn ( true ) ) {
warned [ name ] = true ;
let msg = ` The option ' ${ name } ' will be removed in a future release ` ;
msg += alternative ? ` , use ' ${ alternative } ' instead. ` : "." ;
warn ( msg , "DeprecationWarning" ) ;
}
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
exports2 . binary = binary ;
exports2 . floatTime = floatTime ;
exports2 . intTime = intTime ;
exports2 . omap = omap ;
exports2 . pairs = pairs ;
exports2 . set = set ;
exports2 . timestamp = timestamp ;
exports2 . warn = warn ;
exports2 . warnFileDeprecation = warnFileDeprecation ;
exports2 . warnOptionDeprecation = warnOptionDeprecation ;
}
2020-08-26 01:57:08 +02:00
} ) ;
2022-11-10 11:43:16 +01:00
var require _Schema _88e323a7 = _ _commonJS ( {
"node_modules/yaml/dist/Schema-88e323a7.js" ( exports2 ) {
"use strict" ;
var PlainValue = require _PlainValue _ec8e588e ( ) ;
var resolveSeq = require _resolveSeq _d03cb037 ( ) ;
var warnings = require _warnings _1000a372 ( ) ;
function createMap ( schema , obj , ctx ) {
const map2 = new resolveSeq . YAMLMap ( schema ) ;
if ( obj instanceof Map ) {
for ( const [ key , value ] of obj )
map2 . items . push ( schema . createPair ( key , value , ctx ) ) ;
} else if ( obj && typeof obj === "object" ) {
for ( const key of Object . keys ( obj ) )
map2 . items . push ( schema . createPair ( key , obj [ key ] , ctx ) ) ;
}
if ( typeof schema . sortMapEntries === "function" ) {
map2 . items . sort ( schema . sortMapEntries ) ;
}
return map2 ;
}
var map = {
createNode : createMap ,
default : true ,
nodeClass : resolveSeq . YAMLMap ,
tag : "tag:yaml.org,2002:map" ,
resolve : resolveSeq . resolveMap
} ;
function createSeq ( schema , obj , ctx ) {
const seq2 = new resolveSeq . YAMLSeq ( schema ) ;
if ( obj && obj [ Symbol . iterator ] ) {
for ( const it of obj ) {
const v = schema . createNode ( it , ctx . wrapScalars , null , ctx ) ;
seq2 . items . push ( v ) ;
}
}
return seq2 ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
var seq = {
createNode : createSeq ,
default : true ,
nodeClass : resolveSeq . YAMLSeq ,
tag : "tag:yaml.org,2002:seq" ,
resolve : resolveSeq . resolveSeq
} ;
var string = {
identify : ( value ) => typeof value === "string" ,
default : true ,
tag : "tag:yaml.org,2002:str" ,
resolve : resolveSeq . resolveString ,
stringify ( item , ctx , onComment , onChompKeep ) {
ctx = Object . assign ( {
actualString : true
} , ctx ) ;
return resolveSeq . stringifyString ( item , ctx , onComment , onChompKeep ) ;
} ,
options : resolveSeq . strOptions
} ;
var failsafe = [ map , seq , string ] ;
var intIdentify$2 = ( value ) => typeof value === "bigint" || Number . isInteger ( value ) ;
var intResolve$1 = ( src , part , radix ) => resolveSeq . intOptions . asBigInt ? BigInt ( src ) : parseInt ( part , radix ) ;
function intStringify$1 ( node , radix , prefix ) {
const {
value
} = node ;
if ( intIdentify$2 ( value ) && value >= 0 )
return prefix + value . toString ( radix ) ;
return resolveSeq . stringifyNumber ( node ) ;
}
var nullObj = {
identify : ( value ) => value == null ,
createNode : ( schema , value , ctx ) => ctx . wrapScalars ? new resolveSeq . Scalar ( null ) : null ,
default : true ,
tag : "tag:yaml.org,2002:null" ,
test : /^(?:~|[Nn]ull|NULL)?$/ ,
resolve : ( ) => null ,
options : resolveSeq . nullOptions ,
stringify : ( ) => resolveSeq . nullOptions . nullStr
} ;
var boolObj = {
identify : ( value ) => typeof value === "boolean" ,
default : true ,
tag : "tag:yaml.org,2002:bool" ,
test : /^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/ ,
resolve : ( str ) => str [ 0 ] === "t" || str [ 0 ] === "T" ,
options : resolveSeq . boolOptions ,
stringify : ( {
value
} ) => value ? resolveSeq . boolOptions . trueStr : resolveSeq . boolOptions . falseStr
} ;
var octObj = {
identify : ( value ) => intIdentify$2 ( value ) && value >= 0 ,
default : true ,
tag : "tag:yaml.org,2002:int" ,
format : "OCT" ,
test : /^0o([0-7]+)$/ ,
resolve : ( str , oct ) => intResolve$1 ( str , oct , 8 ) ,
options : resolveSeq . intOptions ,
stringify : ( node ) => intStringify$1 ( node , 8 , "0o" )
} ;
var intObj = {
identify : intIdentify$2 ,
default : true ,
tag : "tag:yaml.org,2002:int" ,
test : /^[-+]?[0-9]+$/ ,
resolve : ( str ) => intResolve$1 ( str , str , 10 ) ,
options : resolveSeq . intOptions ,
stringify : resolveSeq . stringifyNumber
} ;
var hexObj = {
identify : ( value ) => intIdentify$2 ( value ) && value >= 0 ,
default : true ,
tag : "tag:yaml.org,2002:int" ,
format : "HEX" ,
test : /^0x([0-9a-fA-F]+)$/ ,
resolve : ( str , hex ) => intResolve$1 ( str , hex , 16 ) ,
options : resolveSeq . intOptions ,
stringify : ( node ) => intStringify$1 ( node , 16 , "0x" )
} ;
var nanObj = {
identify : ( value ) => typeof value === "number" ,
default : true ,
tag : "tag:yaml.org,2002:float" ,
test : /^(?:[-+]?\.inf|(\.nan))$/i ,
resolve : ( str , nan ) => nan ? NaN : str [ 0 ] === "-" ? Number . NEGATIVE _INFINITY : Number . POSITIVE _INFINITY ,
stringify : resolveSeq . stringifyNumber
} ;
var expObj = {
identify : ( value ) => typeof value === "number" ,
default : true ,
tag : "tag:yaml.org,2002:float" ,
format : "EXP" ,
test : /^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/ ,
resolve : ( str ) => parseFloat ( str ) ,
stringify : ( {
value
} ) => Number ( value ) . toExponential ( )
} ;
var floatObj = {
identify : ( value ) => typeof value === "number" ,
default : true ,
tag : "tag:yaml.org,2002:float" ,
test : /^[-+]?(?:\.([0-9]+)|[0-9]+\.([0-9]*))$/ ,
resolve ( str , frac1 , frac2 ) {
const frac = frac1 || frac2 ;
const node = new resolveSeq . Scalar ( parseFloat ( str ) ) ;
if ( frac && frac [ frac . length - 1 ] === "0" )
node . minFractionDigits = frac . length ;
return node ;
} ,
stringify : resolveSeq . stringifyNumber
} ;
var core = failsafe . concat ( [ nullObj , boolObj , octObj , intObj , hexObj , nanObj , expObj , floatObj ] ) ;
var intIdentify$1 = ( value ) => typeof value === "bigint" || Number . isInteger ( value ) ;
var stringifyJSON = ( {
value
} ) => JSON . stringify ( value ) ;
var json = [ map , seq , {
identify : ( value ) => typeof value === "string" ,
default : true ,
tag : "tag:yaml.org,2002:str" ,
resolve : resolveSeq . resolveString ,
stringify : stringifyJSON
} , {
identify : ( value ) => value == null ,
createNode : ( schema , value , ctx ) => ctx . wrapScalars ? new resolveSeq . Scalar ( null ) : null ,
default : true ,
tag : "tag:yaml.org,2002:null" ,
test : /^null$/ ,
resolve : ( ) => null ,
stringify : stringifyJSON
} , {
identify : ( value ) => typeof value === "boolean" ,
default : true ,
tag : "tag:yaml.org,2002:bool" ,
test : /^true|false$/ ,
resolve : ( str ) => str === "true" ,
stringify : stringifyJSON
} , {
identify : intIdentify$1 ,
default : true ,
tag : "tag:yaml.org,2002:int" ,
test : /^-?(?:0|[1-9][0-9]*)$/ ,
resolve : ( str ) => resolveSeq . intOptions . asBigInt ? BigInt ( str ) : parseInt ( str , 10 ) ,
stringify : ( {
value
} ) => intIdentify$1 ( value ) ? value . toString ( ) : JSON . stringify ( value )
} , {
identify : ( value ) => typeof value === "number" ,
default : true ,
tag : "tag:yaml.org,2002:float" ,
test : /^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/ ,
resolve : ( str ) => parseFloat ( str ) ,
stringify : stringifyJSON
} ] ;
json . scalarFallback = ( str ) => {
throw new SyntaxError ( ` Unresolved plain scalar ${ JSON . stringify ( str ) } ` ) ;
} ;
var boolStringify = ( {
value
} ) => value ? resolveSeq . boolOptions . trueStr : resolveSeq . boolOptions . falseStr ;
var intIdentify = ( value ) => typeof value === "bigint" || Number . isInteger ( value ) ;
function intResolve ( sign , src , radix ) {
let str = src . replace ( /_/g , "" ) ;
if ( resolveSeq . intOptions . asBigInt ) {
switch ( radix ) {
case 2 :
str = ` 0b ${ str } ` ;
break ;
case 8 :
str = ` 0o ${ str } ` ;
break ;
case 16 :
str = ` 0x ${ str } ` ;
break ;
}
const n2 = BigInt ( str ) ;
return sign === "-" ? BigInt ( - 1 ) * n2 : n2 ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
const n = parseInt ( str , radix ) ;
return sign === "-" ? - 1 * n : n ;
}
function intStringify ( node , radix , prefix ) {
const {
value
} = node ;
if ( intIdentify ( value ) ) {
const str = value . toString ( radix ) ;
return value < 0 ? "-" + prefix + str . substr ( 1 ) : prefix + str ;
}
return resolveSeq . stringifyNumber ( node ) ;
}
var yaml11 = failsafe . concat ( [ {
identify : ( value ) => value == null ,
createNode : ( schema , value , ctx ) => ctx . wrapScalars ? new resolveSeq . Scalar ( null ) : null ,
default : true ,
tag : "tag:yaml.org,2002:null" ,
test : /^(?:~|[Nn]ull|NULL)?$/ ,
resolve : ( ) => null ,
options : resolveSeq . nullOptions ,
stringify : ( ) => resolveSeq . nullOptions . nullStr
} , {
identify : ( value ) => typeof value === "boolean" ,
default : true ,
tag : "tag:yaml.org,2002:bool" ,
test : /^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/ ,
resolve : ( ) => true ,
options : resolveSeq . boolOptions ,
stringify : boolStringify
} , {
identify : ( value ) => typeof value === "boolean" ,
default : true ,
tag : "tag:yaml.org,2002:bool" ,
test : /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i ,
resolve : ( ) => false ,
options : resolveSeq . boolOptions ,
stringify : boolStringify
} , {
identify : intIdentify ,
default : true ,
tag : "tag:yaml.org,2002:int" ,
format : "BIN" ,
test : /^([-+]?)0b([0-1_]+)$/ ,
resolve : ( str , sign , bin ) => intResolve ( sign , bin , 2 ) ,
stringify : ( node ) => intStringify ( node , 2 , "0b" )
} , {
identify : intIdentify ,
default : true ,
tag : "tag:yaml.org,2002:int" ,
format : "OCT" ,
test : /^([-+]?)0([0-7_]+)$/ ,
resolve : ( str , sign , oct ) => intResolve ( sign , oct , 8 ) ,
stringify : ( node ) => intStringify ( node , 8 , "0" )
} , {
identify : intIdentify ,
default : true ,
tag : "tag:yaml.org,2002:int" ,
test : /^([-+]?)([0-9][0-9_]*)$/ ,
resolve : ( str , sign , abs ) => intResolve ( sign , abs , 10 ) ,
stringify : resolveSeq . stringifyNumber
} , {
identify : intIdentify ,
default : true ,
tag : "tag:yaml.org,2002:int" ,
format : "HEX" ,
test : /^([-+]?)0x([0-9a-fA-F_]+)$/ ,
resolve : ( str , sign , hex ) => intResolve ( sign , hex , 16 ) ,
stringify : ( node ) => intStringify ( node , 16 , "0x" )
} , {
identify : ( value ) => typeof value === "number" ,
default : true ,
tag : "tag:yaml.org,2002:float" ,
test : /^(?:[-+]?\.inf|(\.nan))$/i ,
resolve : ( str , nan ) => nan ? NaN : str [ 0 ] === "-" ? Number . NEGATIVE _INFINITY : Number . POSITIVE _INFINITY ,
stringify : resolveSeq . stringifyNumber
} , {
identify : ( value ) => typeof value === "number" ,
default : true ,
tag : "tag:yaml.org,2002:float" ,
format : "EXP" ,
test : /^[-+]?([0-9][0-9_]*)?(\.[0-9_]*)?[eE][-+]?[0-9]+$/ ,
resolve : ( str ) => parseFloat ( str . replace ( /_/g , "" ) ) ,
stringify : ( {
value
} ) => Number ( value ) . toExponential ( )
} , {
identify : ( value ) => typeof value === "number" ,
default : true ,
tag : "tag:yaml.org,2002:float" ,
test : /^[-+]?(?:[0-9][0-9_]*)?\.([0-9_]*)$/ ,
resolve ( str , frac ) {
const node = new resolveSeq . Scalar ( parseFloat ( str . replace ( /_/g , "" ) ) ) ;
if ( frac ) {
const f = frac . replace ( /_/g , "" ) ;
if ( f [ f . length - 1 ] === "0" )
node . minFractionDigits = f . length ;
}
return node ;
} ,
stringify : resolveSeq . stringifyNumber
} ] , warnings . binary , warnings . omap , warnings . pairs , warnings . set , warnings . intTime , warnings . floatTime , warnings . timestamp ) ;
var schemas = {
core ,
failsafe ,
json ,
yaml11
} ;
var tags = {
binary : warnings . binary ,
bool : boolObj ,
float : floatObj ,
floatExp : expObj ,
floatNaN : nanObj ,
floatTime : warnings . floatTime ,
int : intObj ,
intHex : hexObj ,
intOct : octObj ,
intTime : warnings . intTime ,
map ,
null : nullObj ,
omap : warnings . omap ,
pairs : warnings . pairs ,
seq ,
set : warnings . set ,
timestamp : warnings . timestamp
} ;
function findTagObject ( value , tagName , tags2 ) {
if ( tagName ) {
const match = tags2 . filter ( ( t ) => t . tag === tagName ) ;
const tagObj = match . find ( ( t ) => ! t . format ) || match [ 0 ] ;
if ( ! tagObj )
throw new Error ( ` Tag ${ tagName } not found ` ) ;
return tagObj ;
}
return tags2 . find ( ( t ) => ( t . identify && t . identify ( value ) || t . class && value instanceof t . class ) && ! t . format ) ;
}
function createNode ( value , tagName , ctx ) {
if ( value instanceof resolveSeq . Node )
return value ;
const {
defaultPrefix ,
onTagObj ,
prevObjects ,
schema ,
wrapScalars
} = ctx ;
if ( tagName && tagName . startsWith ( "!!" ) )
tagName = defaultPrefix + tagName . slice ( 2 ) ;
let tagObj = findTagObject ( value , tagName , schema . tags ) ;
if ( ! tagObj ) {
if ( typeof value . toJSON === "function" )
value = value . toJSON ( ) ;
if ( ! value || typeof value !== "object" )
return wrapScalars ? new resolveSeq . Scalar ( value ) : value ;
tagObj = value instanceof Map ? map : value [ Symbol . iterator ] ? seq : map ;
}
if ( onTagObj ) {
onTagObj ( tagObj ) ;
delete ctx . onTagObj ;
}
const obj = {
value : void 0 ,
node : void 0
} ;
if ( value && typeof value === "object" && prevObjects ) {
const prev = prevObjects . get ( value ) ;
if ( prev ) {
const alias = new resolveSeq . Alias ( prev ) ;
ctx . aliasNodes . push ( alias ) ;
return alias ;
}
obj . value = value ;
prevObjects . set ( value , obj ) ;
}
obj . node = tagObj . createNode ? tagObj . createNode ( ctx . schema , value , ctx ) : wrapScalars ? new resolveSeq . Scalar ( value ) : value ;
if ( tagName && obj . node instanceof resolveSeq . Node )
obj . node . tag = tagName ;
return obj . node ;
}
function getSchemaTags ( schemas2 , knownTags , customTags , schemaId ) {
let tags2 = schemas2 [ schemaId . replace ( /\W/g , "" ) ] ;
if ( ! tags2 ) {
const keys = Object . keys ( schemas2 ) . map ( ( key ) => JSON . stringify ( key ) ) . join ( ", " ) ;
throw new Error ( ` Unknown schema " ${ schemaId } "; use one of ${ keys } ` ) ;
}
if ( Array . isArray ( customTags ) ) {
for ( const tag of customTags )
tags2 = tags2 . concat ( tag ) ;
} else if ( typeof customTags === "function" ) {
tags2 = customTags ( tags2 . slice ( ) ) ;
}
for ( let i = 0 ; i < tags2 . length ; ++ i ) {
const tag = tags2 [ i ] ;
if ( typeof tag === "string" ) {
const tagObj = knownTags [ tag ] ;
if ( ! tagObj ) {
const keys = Object . keys ( knownTags ) . map ( ( key ) => JSON . stringify ( key ) ) . join ( ", " ) ;
throw new Error ( ` Unknown custom tag " ${ tag } "; use one of ${ keys } ` ) ;
}
tags2 [ i ] = tagObj ;
}
}
return tags2 ;
}
var sortMapEntriesByKey = ( a , b ) => a . key < b . key ? - 1 : a . key > b . key ? 1 : 0 ;
var Schema = class {
constructor ( {
customTags ,
merge ,
schema ,
sortMapEntries ,
tags : deprecatedCustomTags
} ) {
this . merge = ! ! merge ;
this . name = schema ;
this . sortMapEntries = sortMapEntries === true ? sortMapEntriesByKey : sortMapEntries || null ;
if ( ! customTags && deprecatedCustomTags )
warnings . warnOptionDeprecation ( "tags" , "customTags" ) ;
this . tags = getSchemaTags ( schemas , tags , customTags || deprecatedCustomTags , schema ) ;
}
createNode ( value , wrapScalars , tagName , ctx ) {
const baseCtx = {
defaultPrefix : Schema . defaultPrefix ,
schema : this ,
wrapScalars
} ;
const createCtx = ctx ? Object . assign ( ctx , baseCtx ) : baseCtx ;
return createNode ( value , tagName , createCtx ) ;
}
createPair ( key , value , ctx ) {
if ( ! ctx )
ctx = {
wrapScalars : true
} ;
const k = this . createNode ( key , ctx . wrapScalars , null , ctx ) ;
const v = this . createNode ( value , ctx . wrapScalars , null , ctx ) ;
return new resolveSeq . Pair ( k , v ) ;
}
} ;
PlainValue . _defineProperty ( Schema , "defaultPrefix" , PlainValue . defaultTagPrefix ) ;
PlainValue . _defineProperty ( Schema , "defaultTags" , PlainValue . defaultTags ) ;
exports2 . Schema = Schema ;
2020-08-26 01:57:08 +02:00
}
} ) ;
2022-11-10 11:43:16 +01:00
var require _Document _9b4560a1 = _ _commonJS ( {
"node_modules/yaml/dist/Document-9b4560a1.js" ( exports2 ) {
"use strict" ;
var PlainValue = require _PlainValue _ec8e588e ( ) ;
var resolveSeq = require _resolveSeq _d03cb037 ( ) ;
var Schema = require _Schema _88e323a7 ( ) ;
var defaultOptions = {
anchorPrefix : "a" ,
customTags : null ,
indent : 2 ,
indentSeq : true ,
keepCstNodes : false ,
keepNodeTypes : true ,
keepBlobsInJSON : true ,
mapAsMap : false ,
maxAliasCount : 100 ,
prettyErrors : false ,
simpleKeys : false ,
version : "1.2"
2020-08-26 01:57:08 +02:00
} ;
2022-11-10 11:43:16 +01:00
var scalarOptions = {
get binary ( ) {
return resolveSeq . binaryOptions ;
} ,
set binary ( opt ) {
Object . assign ( resolveSeq . binaryOptions , opt ) ;
} ,
get bool ( ) {
return resolveSeq . boolOptions ;
} ,
set bool ( opt ) {
Object . assign ( resolveSeq . boolOptions , opt ) ;
} ,
get int ( ) {
return resolveSeq . intOptions ;
} ,
set int ( opt ) {
Object . assign ( resolveSeq . intOptions , opt ) ;
} ,
get null ( ) {
return resolveSeq . nullOptions ;
} ,
set null ( opt ) {
Object . assign ( resolveSeq . nullOptions , opt ) ;
} ,
get str ( ) {
return resolveSeq . strOptions ;
} ,
set str ( opt ) {
Object . assign ( resolveSeq . strOptions , opt ) ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
} ;
var documentOptions = {
"1.0" : {
schema : "yaml-1.1" ,
merge : true ,
tagPrefixes : [ {
handle : "!" ,
prefix : PlainValue . defaultTagPrefix
} , {
handle : "!!" ,
prefix : "tag:private.yaml.org,2002:"
} ]
} ,
1.1 : {
schema : "yaml-1.1" ,
merge : true ,
tagPrefixes : [ {
handle : "!" ,
prefix : "!"
} , {
handle : "!!" ,
prefix : PlainValue . defaultTagPrefix
} ]
} ,
1.2 : {
schema : "core" ,
merge : false ,
tagPrefixes : [ {
handle : "!" ,
prefix : "!"
} , {
handle : "!!" ,
prefix : PlainValue . defaultTagPrefix
} ]
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
} ;
function stringifyTag ( doc , tag ) {
if ( ( doc . version || doc . options . version ) === "1.0" ) {
const priv = tag . match ( /^tag:private\.yaml\.org,2002:([^:/]+)$/ ) ;
if ( priv )
return "!" + priv [ 1 ] ;
const vocab = tag . match ( /^tag:([a-zA-Z0-9-]+)\.yaml\.org,2002:(.*)/ ) ;
return vocab ? ` ! ${ vocab [ 1 ] } / ${ vocab [ 2 ] } ` : ` ! ${ tag . replace ( /^tag:/ , "" ) } ` ;
}
let p = doc . tagPrefixes . find ( ( p2 ) => tag . indexOf ( p2 . prefix ) === 0 ) ;
if ( ! p ) {
const dtp = doc . getDefaults ( ) . tagPrefixes ;
p = dtp && dtp . find ( ( p2 ) => tag . indexOf ( p2 . prefix ) === 0 ) ;
}
if ( ! p )
return tag [ 0 ] === "!" ? tag : ` !< ${ tag } > ` ;
const suffix = tag . substr ( p . prefix . length ) . replace ( /[!,[\]{}]/g , ( ch ) => ( {
"!" : "%21" ,
"," : "%2C" ,
"[" : "%5B" ,
"]" : "%5D" ,
"{" : "%7B" ,
"}" : "%7D"
} ) [ ch ] ) ;
return p . handle + suffix ;
}
function getTagObject ( tags , item ) {
if ( item instanceof resolveSeq . Alias )
return resolveSeq . Alias ;
if ( item . tag ) {
const match = tags . filter ( ( t ) => t . tag === item . tag ) ;
if ( match . length > 0 )
return match . find ( ( t ) => t . format === item . format ) || match [ 0 ] ;
}
let tagObj , obj ;
if ( item instanceof resolveSeq . Scalar ) {
obj = item . value ;
const match = tags . filter ( ( t ) => t . identify && t . identify ( obj ) || t . class && obj instanceof t . class ) ;
tagObj = match . find ( ( t ) => t . format === item . format ) || match . find ( ( t ) => ! t . format ) ;
} else {
obj = item ;
tagObj = tags . find ( ( t ) => t . nodeClass && obj instanceof t . nodeClass ) ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
if ( ! tagObj ) {
const name = obj && obj . constructor ? obj . constructor . name : typeof obj ;
throw new Error ( ` Tag not resolved for ${ name } value ` ) ;
}
return tagObj ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
function stringifyProps ( node , tagObj , {
anchors ,
doc
} ) {
const props = [ ] ;
const anchor = doc . anchors . getName ( node ) ;
if ( anchor ) {
anchors [ anchor ] = node ;
props . push ( ` & ${ anchor } ` ) ;
}
if ( node . tag ) {
props . push ( stringifyTag ( doc , node . tag ) ) ;
} else if ( ! tagObj . default ) {
props . push ( stringifyTag ( doc , tagObj . tag ) ) ;
}
return props . join ( " " ) ;
}
function stringify ( item , ctx , onComment , onChompKeep ) {
const {
anchors ,
schema
} = ctx . doc ;
let tagObj ;
if ( ! ( item instanceof resolveSeq . Node ) ) {
const createCtx = {
aliasNodes : [ ] ,
onTagObj : ( o ) => tagObj = o ,
prevObjects : /* @__PURE__ */ new Map ( )
} ;
item = schema . createNode ( item , true , null , createCtx ) ;
for ( const alias of createCtx . aliasNodes ) {
alias . source = alias . source . node ;
let name = anchors . getName ( alias . source ) ;
if ( ! name ) {
name = anchors . newName ( ) ;
anchors . map [ name ] = alias . source ;
}
}
}
if ( item instanceof resolveSeq . Pair )
return item . toString ( ctx , onComment , onChompKeep ) ;
if ( ! tagObj )
tagObj = getTagObject ( schema . tags , item ) ;
const props = stringifyProps ( item , tagObj , ctx ) ;
if ( props . length > 0 )
ctx . indentAtStart = ( ctx . indentAtStart || 0 ) + props . length + 1 ;
const str = typeof tagObj . stringify === "function" ? tagObj . stringify ( item , ctx , onComment , onChompKeep ) : item instanceof resolveSeq . Scalar ? resolveSeq . stringifyString ( item , ctx , onComment , onChompKeep ) : item . toString ( ctx , onComment , onChompKeep ) ;
if ( ! props )
return str ;
return item instanceof resolveSeq . Scalar || str [ 0 ] === "{" || str [ 0 ] === "[" ? ` ${ props } ${ str } ` : ` ${ props }
$ { ctx . indent } $ { str } ` ;
}
var Anchors = class {
static validAnchorNode ( node ) {
return node instanceof resolveSeq . Scalar || node instanceof resolveSeq . YAMLSeq || node instanceof resolveSeq . YAMLMap ;
}
constructor ( prefix ) {
PlainValue . _defineProperty ( this , "map" , /* @__PURE__ */ Object . create ( null ) ) ;
this . prefix = prefix ;
}
createAlias ( node , name ) {
this . setAnchor ( node , name ) ;
return new resolveSeq . Alias ( node ) ;
}
createMergePair ( ... sources ) {
const merge = new resolveSeq . Merge ( ) ;
merge . value . items = sources . map ( ( s ) => {
if ( s instanceof resolveSeq . Alias ) {
if ( s . source instanceof resolveSeq . YAMLMap )
return s ;
} else if ( s instanceof resolveSeq . YAMLMap ) {
return this . createAlias ( s ) ;
}
throw new Error ( "Merge sources must be Map nodes or their Aliases" ) ;
} ) ;
return merge ;
}
getName ( node ) {
const {
map
} = this ;
return Object . keys ( map ) . find ( ( a ) => map [ a ] === node ) ;
}
getNames ( ) {
return Object . keys ( this . map ) ;
}
getNode ( name ) {
return this . map [ name ] ;
}
newName ( prefix ) {
if ( ! prefix )
prefix = this . prefix ;
const names = Object . keys ( this . map ) ;
for ( let i = 1 ; true ; ++ i ) {
const name = ` ${ prefix } ${ i } ` ;
if ( ! names . includes ( name ) )
return name ;
}
}
resolveNodes ( ) {
const {
map ,
_cstAliases
} = this ;
Object . keys ( map ) . forEach ( ( a ) => {
map [ a ] = map [ a ] . resolved ;
} ) ;
_cstAliases . forEach ( ( a ) => {
a . source = a . source . resolved ;
} ) ;
delete this . _cstAliases ;
}
setAnchor ( node , name ) {
if ( node != null && ! Anchors . validAnchorNode ( node ) ) {
throw new Error ( "Anchors may only be set for Scalar, Seq and Map nodes" ) ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
if ( name && /[\x00-\x19\s,[\]{}]/ . test ( name ) ) {
throw new Error ( "Anchor names must not contain whitespace or control characters" ) ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
const {
map
} = this ;
const prev = node && Object . keys ( map ) . find ( ( a ) => map [ a ] === node ) ;
if ( prev ) {
if ( ! name ) {
return prev ;
} else if ( prev !== name ) {
delete map [ prev ] ;
map [ name ] = node ;
}
} else {
if ( ! name ) {
if ( ! node )
return null ;
name = this . newName ( ) ;
}
map [ name ] = node ;
}
return name ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
} ;
var visit = ( node , tags ) => {
if ( node && typeof node === "object" ) {
const {
tag
} = node ;
if ( node instanceof resolveSeq . Collection ) {
if ( tag )
tags [ tag ] = true ;
node . items . forEach ( ( n ) => visit ( n , tags ) ) ;
} else if ( node instanceof resolveSeq . Pair ) {
visit ( node . key , tags ) ;
visit ( node . value , tags ) ;
} else if ( node instanceof resolveSeq . Scalar ) {
if ( tag )
tags [ tag ] = true ;
}
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
return tags ;
} ;
var listTagNames = ( node ) => Object . keys ( visit ( node , { } ) ) ;
function parseContents ( doc , contents ) {
const comments = {
before : [ ] ,
after : [ ]
} ;
let body = void 0 ;
let spaceBefore = false ;
for ( const node of contents ) {
if ( node . valueRange ) {
if ( body !== void 0 ) {
const msg = "Document contains trailing content not separated by a ... or --- line" ;
doc . errors . push ( new PlainValue . YAMLSyntaxError ( node , msg ) ) ;
break ;
}
const res = resolveSeq . resolveNode ( doc , node ) ;
if ( spaceBefore ) {
res . spaceBefore = true ;
spaceBefore = false ;
}
body = res ;
} else if ( node . comment !== null ) {
const cc = body === void 0 ? comments . before : comments . after ;
cc . push ( node . comment ) ;
} else if ( node . type === PlainValue . Type . BLANK _LINE ) {
spaceBefore = true ;
if ( body === void 0 && comments . before . length > 0 && ! doc . commentBefore ) {
doc . commentBefore = comments . before . join ( "\n" ) ;
comments . before = [ ] ;
}
}
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
doc . contents = body || null ;
if ( ! body ) {
doc . comment = comments . before . concat ( comments . after ) . join ( "\n" ) || null ;
} else {
const cb = comments . before . join ( "\n" ) ;
if ( cb ) {
const cbNode = body instanceof resolveSeq . Collection && body . items [ 0 ] ? body . items [ 0 ] : body ;
cbNode . commentBefore = cbNode . commentBefore ? ` ${ cb }
$ { cbNode . commentBefore } ` : cb;
}
doc . comment = comments . after . join ( "\n" ) || null ;
2020-08-26 01:57:08 +02:00
}
}
2022-11-10 11:43:16 +01:00
function resolveTagDirective ( {
tagPrefixes
} , directive ) {
const [ handle , prefix ] = directive . parameters ;
if ( ! handle || ! prefix ) {
const msg = "Insufficient parameters given for %TAG directive" ;
throw new PlainValue . YAMLSemanticError ( directive , msg ) ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
if ( tagPrefixes . some ( ( p ) => p . handle === handle ) ) {
const msg = "The %TAG directive must only be given at most once per handle in the same document." ;
throw new PlainValue . YAMLSemanticError ( directive , msg ) ;
2020-08-26 01:57:08 +02:00
}
return {
2022-11-10 11:43:16 +01:00
handle ,
prefix
2020-08-26 01:57:08 +02:00
} ;
}
2022-11-10 11:43:16 +01:00
function resolveYamlDirective ( doc , directive ) {
let [ version ] = directive . parameters ;
if ( directive . name === "YAML:1.0" )
version = "1.0" ;
if ( ! version ) {
const msg = "Insufficient parameters given for %YAML directive" ;
throw new PlainValue . YAMLSemanticError ( directive , msg ) ;
}
if ( ! documentOptions [ version ] ) {
const v0 = doc . version || doc . options . version ;
const msg = ` Document will be parsed as YAML ${ v0 } rather than YAML ${ version } ` ;
doc . warnings . push ( new PlainValue . YAMLWarning ( directive , msg ) ) ;
}
return version ;
}
function parseDirectives ( doc , directives , prevDoc ) {
const directiveComments = [ ] ;
let hasDirectives = false ;
for ( const directive of directives ) {
const {
comment ,
name
} = directive ;
switch ( name ) {
case "TAG" :
try {
doc . tagPrefixes . push ( resolveTagDirective ( doc , directive ) ) ;
} catch ( error ) {
doc . errors . push ( error ) ;
}
hasDirectives = true ;
break ;
case "YAML" :
case "YAML:1.0" :
if ( doc . version ) {
const msg = "The %YAML directive must only be given at most once per document." ;
doc . errors . push ( new PlainValue . YAMLSemanticError ( directive , msg ) ) ;
}
try {
doc . version = resolveYamlDirective ( doc , directive ) ;
} catch ( error ) {
doc . errors . push ( error ) ;
}
hasDirectives = true ;
break ;
default :
if ( name ) {
const msg = ` YAML only supports %TAG and %YAML directives, and not % ${ name } ` ;
doc . warnings . push ( new PlainValue . YAMLWarning ( directive , msg ) ) ;
}
}
if ( comment )
directiveComments . push ( comment ) ;
}
if ( prevDoc && ! hasDirectives && ( doc . version || prevDoc . version || doc . options . version ) === "1.1" ) {
const copyTagPrefix = ( {
handle ,
prefix
} ) => ( {
handle ,
prefix
} ) ;
doc . tagPrefixes = prevDoc . tagPrefixes . map ( copyTagPrefix ) ;
doc . version = prevDoc . version ;
}
doc . commentBefore = directiveComments . join ( "\n" ) || null ;
}
function assertCollection ( contents ) {
if ( contents instanceof resolveSeq . Collection )
return true ;
throw new Error ( "Expected a YAML collection as document contents" ) ;
}
var Document = class {
constructor ( options ) {
this . anchors = new Anchors ( options . anchorPrefix ) ;
this . commentBefore = null ;
this . comment = null ;
this . contents = null ;
this . directivesEndMarker = null ;
this . errors = [ ] ;
this . options = options ;
this . schema = null ;
this . tagPrefixes = [ ] ;
this . version = null ;
this . warnings = [ ] ;
}
add ( value ) {
assertCollection ( this . contents ) ;
return this . contents . add ( value ) ;
}
addIn ( path , value ) {
assertCollection ( this . contents ) ;
this . contents . addIn ( path , value ) ;
}
delete ( key ) {
assertCollection ( this . contents ) ;
return this . contents . delete ( key ) ;
}
deleteIn ( path ) {
if ( resolveSeq . isEmptyPath ( path ) ) {
if ( this . contents == null )
return false ;
this . contents = null ;
return true ;
}
assertCollection ( this . contents ) ;
return this . contents . deleteIn ( path ) ;
}
getDefaults ( ) {
return Document . defaults [ this . version ] || Document . defaults [ this . options . version ] || { } ;
}
get ( key , keepScalar ) {
return this . contents instanceof resolveSeq . Collection ? this . contents . get ( key , keepScalar ) : void 0 ;
}
getIn ( path , keepScalar ) {
if ( resolveSeq . isEmptyPath ( path ) )
return ! keepScalar && this . contents instanceof resolveSeq . Scalar ? this . contents . value : this . contents ;
return this . contents instanceof resolveSeq . Collection ? this . contents . getIn ( path , keepScalar ) : void 0 ;
}
has ( key ) {
return this . contents instanceof resolveSeq . Collection ? this . contents . has ( key ) : false ;
}
hasIn ( path ) {
if ( resolveSeq . isEmptyPath ( path ) )
return this . contents !== void 0 ;
return this . contents instanceof resolveSeq . Collection ? this . contents . hasIn ( path ) : false ;
}
set ( key , value ) {
assertCollection ( this . contents ) ;
this . contents . set ( key , value ) ;
}
setIn ( path , value ) {
if ( resolveSeq . isEmptyPath ( path ) )
this . contents = value ;
else {
assertCollection ( this . contents ) ;
this . contents . setIn ( path , value ) ;
}
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
setSchema ( id , customTags ) {
if ( ! id && ! customTags && this . schema )
2020-08-26 01:57:08 +02:00
return ;
2022-11-10 11:43:16 +01:00
if ( typeof id === "number" )
id = id . toFixed ( 1 ) ;
if ( id === "1.0" || id === "1.1" || id === "1.2" ) {
if ( this . version )
this . version = id ;
else
this . options . version = id ;
delete this . options . schema ;
} else if ( id && typeof id === "string" ) {
this . options . schema = id ;
}
if ( Array . isArray ( customTags ) )
this . options . customTags = customTags ;
const opt = Object . assign ( { } , this . getDefaults ( ) , this . options ) ;
this . schema = new Schema . Schema ( opt ) ;
}
parse ( node , prevDoc ) {
if ( this . options . keepCstNodes )
this . cstNode = node ;
if ( this . options . keepNodeTypes )
this . type = "DOCUMENT" ;
const {
directives = [ ] ,
contents = [ ] ,
directivesEndMarker ,
error ,
valueRange
} = node ;
if ( error ) {
if ( ! error . source )
error . source = this ;
this . errors . push ( error ) ;
}
parseDirectives ( this , directives , prevDoc ) ;
if ( directivesEndMarker )
this . directivesEndMarker = true ;
this . range = valueRange ? [ valueRange . start , valueRange . end ] : null ;
this . setSchema ( ) ;
this . anchors . _cstAliases = [ ] ;
parseContents ( this , contents ) ;
this . anchors . resolveNodes ( ) ;
if ( this . options . prettyErrors ) {
for ( const error2 of this . errors )
if ( error2 instanceof PlainValue . YAMLError )
error2 . makePretty ( ) ;
for ( const warn of this . warnings )
if ( warn instanceof PlainValue . YAMLError )
warn . makePretty ( ) ;
}
return this ;
}
listNonDefaultTags ( ) {
return listTagNames ( this . contents ) . filter ( ( t ) => t . indexOf ( Schema . Schema . defaultPrefix ) !== 0 ) ;
}
setTagPrefix ( handle , prefix ) {
if ( handle [ 0 ] !== "!" || handle [ handle . length - 1 ] !== "!" )
throw new Error ( "Handle must start and end with !" ) ;
if ( prefix ) {
const prev = this . tagPrefixes . find ( ( p ) => p . handle === handle ) ;
if ( prev )
prev . prefix = prefix ;
else
this . tagPrefixes . push ( {
handle ,
prefix
} ) ;
} else {
this . tagPrefixes = this . tagPrefixes . filter ( ( p ) => p . handle !== handle ) ;
2020-08-26 01:57:08 +02:00
}
}
2022-11-10 11:43:16 +01:00
toJSON ( arg , onAnchor ) {
const {
keepBlobsInJSON ,
mapAsMap ,
maxAliasCount
} = this . options ;
const keep = keepBlobsInJSON && ( typeof arg !== "string" || ! ( this . contents instanceof resolveSeq . Scalar ) ) ;
const ctx = {
doc : this ,
indentStep : " " ,
keep ,
mapAsMap : keep && ! ! mapAsMap ,
maxAliasCount ,
stringify
} ;
const anchorNames = Object . keys ( this . anchors . map ) ;
if ( anchorNames . length > 0 )
ctx . anchors = new Map ( anchorNames . map ( ( name ) => [ this . anchors . map [ name ] , {
alias : [ ] ,
aliasCount : 0 ,
count : 1
} ] ) ) ;
const res = resolveSeq . toJSON ( this . contents , arg , ctx ) ;
if ( typeof onAnchor === "function" && ctx . anchors )
for ( const {
count ,
res : res2
} of ctx . anchors . values ( ) )
onAnchor ( res2 , count ) ;
return res ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
toString ( ) {
if ( this . errors . length > 0 )
throw new Error ( "Document with errors cannot be stringified" ) ;
const indentSize = this . options . indent ;
if ( ! Number . isInteger ( indentSize ) || indentSize <= 0 ) {
const s = JSON . stringify ( indentSize ) ;
throw new Error ( ` "indent" option must be a positive integer, not ${ s } ` ) ;
}
this . setSchema ( ) ;
const lines = [ ] ;
let hasDirectives = false ;
if ( this . version ) {
let vd = "%YAML 1.2" ;
if ( this . schema . name === "yaml-1.1" ) {
if ( this . version === "1.0" )
vd = "%YAML:1.0" ;
else if ( this . version === "1.1" )
vd = "%YAML 1.1" ;
}
lines . push ( vd ) ;
hasDirectives = true ;
}
const tagNames = this . listNonDefaultTags ( ) ;
this . tagPrefixes . forEach ( ( {
handle ,
prefix
} ) => {
if ( tagNames . some ( ( t ) => t . indexOf ( prefix ) === 0 ) ) {
lines . push ( ` %TAG ${ handle } ${ prefix } ` ) ;
hasDirectives = true ;
}
} ) ;
if ( hasDirectives || this . directivesEndMarker )
lines . push ( "---" ) ;
if ( this . commentBefore ) {
if ( hasDirectives || ! this . directivesEndMarker )
lines . unshift ( "" ) ;
lines . unshift ( this . commentBefore . replace ( /^/gm , "#" ) ) ;
}
const ctx = {
anchors : /* @__PURE__ */ Object . create ( null ) ,
doc : this ,
indent : "" ,
indentStep : " " . repeat ( indentSize ) ,
stringify
} ;
let chompKeep = false ;
let contentComment = null ;
if ( this . contents ) {
if ( this . contents instanceof resolveSeq . Node ) {
if ( this . contents . spaceBefore && ( hasDirectives || this . directivesEndMarker ) )
lines . push ( "" ) ;
if ( this . contents . commentBefore )
lines . push ( this . contents . commentBefore . replace ( /^/gm , "#" ) ) ;
ctx . forceBlockIndent = ! ! this . comment ;
contentComment = this . contents . comment ;
}
const onChompKeep = contentComment ? null : ( ) => chompKeep = true ;
const body = stringify ( this . contents , ctx , ( ) => contentComment = null , onChompKeep ) ;
lines . push ( resolveSeq . addComment ( body , "" , contentComment ) ) ;
} else if ( this . contents !== void 0 ) {
lines . push ( stringify ( this . contents , ctx ) ) ;
}
if ( this . comment ) {
if ( ( ! chompKeep || contentComment ) && lines [ lines . length - 1 ] !== "" )
lines . push ( "" ) ;
lines . push ( this . comment . replace ( /^/gm , "#" ) ) ;
}
return lines . join ( "\n" ) + "\n" ;
}
} ;
PlainValue . _defineProperty ( Document , "defaults" , documentOptions ) ;
exports2 . Document = Document ;
exports2 . defaultOptions = defaultOptions ;
exports2 . scalarOptions = scalarOptions ;
2020-08-26 01:57:08 +02:00
}
} ) ;
2022-11-10 11:43:16 +01:00
var require _dist = _ _commonJS ( {
"node_modules/yaml/dist/index.js" ( exports2 ) {
"use strict" ;
var parseCst = require _parse _cst ( ) ;
var Document$1 = require _Document _9b4560a1 ( ) ;
var Schema = require _Schema _88e323a7 ( ) ;
var PlainValue = require _PlainValue _ec8e588e ( ) ;
var warnings = require _warnings _1000a372 ( ) ;
require _resolveSeq _d03cb037 ( ) ;
function createNode ( value , wrapScalars = true , tag ) {
if ( tag === void 0 && typeof wrapScalars === "string" ) {
tag = wrapScalars ;
wrapScalars = true ;
}
const options = Object . assign ( { } , Document$1 . Document . defaults [ Document$1 . defaultOptions . version ] , Document$1 . defaultOptions ) ;
const schema = new Schema . Schema ( options ) ;
return schema . createNode ( value , wrapScalars , tag ) ;
}
var Document = class extends Document$1 . Document {
constructor ( options ) {
super ( Object . assign ( { } , Document$1 . defaultOptions , options ) ) ;
}
} ;
function parseAllDocuments ( src , options ) {
const stream = [ ] ;
let prev ;
for ( const cstDoc of parseCst . parse ( src ) ) {
const doc = new Document ( options ) ;
doc . parse ( cstDoc , prev ) ;
stream . push ( doc ) ;
prev = doc ;
}
return stream ;
}
function parseDocument ( src , options ) {
const cst = parseCst . parse ( src ) ;
const doc = new Document ( options ) . parse ( cst [ 0 ] ) ;
if ( cst . length > 1 ) {
const errMsg = "Source contains multiple documents; please use YAML.parseAllDocuments()" ;
doc . errors . unshift ( new PlainValue . YAMLSemanticError ( cst [ 1 ] , errMsg ) ) ;
}
return doc ;
}
function parse ( src , options ) {
const doc = parseDocument ( src , options ) ;
doc . warnings . forEach ( ( warning ) => warnings . warn ( warning ) ) ;
if ( doc . errors . length > 0 )
throw doc . errors [ 0 ] ;
return doc . toJSON ( ) ;
}
function stringify ( value , options ) {
const doc = new Document ( options ) ;
doc . contents = value ;
return String ( doc ) ;
}
var YAML = {
createNode ,
defaultOptions : Document$1 . defaultOptions ,
Document ,
parse ,
parseAllDocuments ,
parseCST : parseCst . parse ,
parseDocument ,
scalarOptions : Document$1 . scalarOptions ,
stringify
} ;
exports2 . YAML = YAML ;
2020-08-26 01:57:08 +02:00
}
} ) ;
2022-11-10 11:43:16 +01:00
var require _yaml = _ _commonJS ( {
"node_modules/yaml/index.js" ( exports2 , module2 ) {
module2 . exports = require _dist ( ) . YAML ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
} ) ;
var require _loaders = _ _commonJS ( {
"node_modules/cosmiconfig/dist/loaders.js" ( exports2 ) {
"use strict" ;
Object . defineProperty ( exports2 , "__esModule" , {
value : true
} ) ;
exports2 . loaders = void 0 ;
var importFresh ;
var loadJs = function loadJs2 ( filepath ) {
if ( importFresh === void 0 ) {
importFresh = require _import _fresh ( ) ;
}
const result = importFresh ( filepath ) ;
return result ;
2020-08-26 01:57:08 +02:00
} ;
2022-11-10 11:43:16 +01:00
var parseJson ;
var loadJson = function loadJson2 ( filepath , content ) {
if ( parseJson === void 0 ) {
parseJson = require _parse _json ( ) ;
}
try {
const result = parseJson ( content ) ;
return result ;
} catch ( error ) {
error . message = ` JSON Error in ${ filepath } :
$ { error . message } ` ;
throw error ;
}
} ;
var yaml ;
var loadYaml = function loadYaml2 ( filepath , content ) {
if ( yaml === void 0 ) {
yaml = require _yaml ( ) ;
}
try {
const result = yaml . parse ( content , {
prettyErrors : true
} ) ;
return result ;
} catch ( error ) {
error . message = ` YAML Error in ${ filepath } :
$ { error . message } ` ;
throw error ;
}
} ;
var loaders = {
loadJs ,
loadJson ,
loadYaml
} ;
exports2 . loaders = loaders ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
} ) ;
var require _getPropertyByPath = _ _commonJS ( {
"node_modules/cosmiconfig/dist/getPropertyByPath.js" ( exports2 ) {
"use strict" ;
Object . defineProperty ( exports2 , "__esModule" , {
value : true
} ) ;
exports2 . getPropertyByPath = getPropertyByPath ;
function getPropertyByPath ( source , path ) {
if ( typeof path === "string" && Object . prototype . hasOwnProperty . call ( source , path ) ) {
return source [ path ] ;
}
const parsedPath = typeof path === "string" ? path . split ( "." ) : path ;
return parsedPath . reduce ( ( previous , key ) => {
if ( previous === void 0 ) {
return previous ;
}
return previous [ key ] ;
} , source ) ;
2020-08-26 01:57:08 +02:00
}
}
} ) ;
2022-11-10 11:43:16 +01:00
var require _ExplorerBase = _ _commonJS ( {
"node_modules/cosmiconfig/dist/ExplorerBase.js" ( exports2 ) {
"use strict" ;
Object . defineProperty ( exports2 , "__esModule" , {
value : true
} ) ;
exports2 . getExtensionDescription = getExtensionDescription ;
exports2 . ExplorerBase = void 0 ;
var _path = _interopRequireDefault ( require ( "path" ) ) ;
var _loaders = require _loaders ( ) ;
var _getPropertyByPath = require _getPropertyByPath ( ) ;
function _interopRequireDefault ( obj ) {
return obj && obj . _ _esModule ? obj : {
default : obj
} ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
var ExplorerBase = class {
constructor ( options ) {
if ( options . cache === true ) {
this . loadCache = /* @__PURE__ */ new Map ( ) ;
this . searchCache = /* @__PURE__ */ new Map ( ) ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
this . config = options ;
this . validateConfig ( ) ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
clearLoadCache ( ) {
if ( this . loadCache ) {
this . loadCache . clear ( ) ;
2020-08-26 01:57:08 +02:00
}
}
2022-11-10 11:43:16 +01:00
clearSearchCache ( ) {
if ( this . searchCache ) {
this . searchCache . clear ( ) ;
}
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
clearCaches ( ) {
this . clearLoadCache ( ) ;
this . clearSearchCache ( ) ;
}
validateConfig ( ) {
const config = this . config ;
config . searchPlaces . forEach ( ( place ) => {
const loaderKey = _path . default . extname ( place ) || "noExt" ;
const loader = config . loaders [ loaderKey ] ;
if ( ! loader ) {
throw new Error ( ` No loader specified for ${ getExtensionDescription ( place ) } , so searchPlaces item " ${ place } " is invalid ` ) ;
}
if ( typeof loader !== "function" ) {
throw new Error ( ` loader for ${ getExtensionDescription ( place ) } is not a function (type provided: " ${ typeof loader } "), so searchPlaces item " ${ place } " is invalid ` ) ;
}
2020-08-26 01:57:08 +02:00
} ) ;
}
2022-11-10 11:43:16 +01:00
shouldSearchStopWithResult ( result ) {
if ( result === null )
return false ;
if ( result . isEmpty && this . config . ignoreEmptySearchPlaces )
return false ;
return true ;
}
nextDirectoryToSearch ( currentDir , currentResult ) {
if ( this . shouldSearchStopWithResult ( currentResult ) ) {
return null ;
}
const nextDir = nextDirUp ( currentDir ) ;
if ( nextDir === currentDir || currentDir === this . config . stopDir ) {
return null ;
}
return nextDir ;
}
loadPackageProp ( filepath , content ) {
const parsedContent = _loaders . loaders . loadJson ( filepath , content ) ;
const packagePropValue = ( 0 , _getPropertyByPath . getPropertyByPath ) ( parsedContent , this . config . packageProp ) ;
return packagePropValue || null ;
}
getLoaderEntryForFile ( filepath ) {
if ( _path . default . basename ( filepath ) === "package.json" ) {
const loader2 = this . loadPackageProp . bind ( this ) ;
return loader2 ;
}
const loaderKey = _path . default . extname ( filepath ) || "noExt" ;
const loader = this . config . loaders [ loaderKey ] ;
if ( ! loader ) {
throw new Error ( ` No loader specified for ${ getExtensionDescription ( filepath ) } ` ) ;
}
return loader ;
}
loadedContentToCosmiconfigResult ( filepath , loadedContent ) {
if ( loadedContent === null ) {
return null ;
}
if ( loadedContent === void 0 ) {
return {
filepath ,
config : void 0 ,
isEmpty : true
} ;
}
return {
config : loadedContent ,
filepath
} ;
}
validateFilePath ( filepath ) {
if ( ! filepath ) {
throw new Error ( "load must pass a non-empty string" ) ;
}
}
} ;
exports2 . ExplorerBase = ExplorerBase ;
function nextDirUp ( dir ) {
return _path . default . dirname ( dir ) ;
}
function getExtensionDescription ( filepath ) {
const ext = _path . default . extname ( filepath ) ;
return ext ? ` extension " ${ ext } " ` : "files without extensions" ;
2020-08-26 01:57:08 +02:00
}
}
} ) ;
2022-11-10 11:43:16 +01:00
var require _readFile = _ _commonJS ( {
"node_modules/cosmiconfig/dist/readFile.js" ( exports2 ) {
"use strict" ;
Object . defineProperty ( exports2 , "__esModule" , {
value : true
} ) ;
exports2 . readFile = readFile ;
exports2 . readFileSync = readFileSync ;
var _fs = _interopRequireDefault ( require ( "fs" ) ) ;
function _interopRequireDefault ( obj ) {
return obj && obj . _ _esModule ? obj : {
default : obj
} ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
async function fsReadFileAsync ( pathname , encoding ) {
return new Promise ( ( resolve , reject ) => {
_fs . default . readFile ( pathname , encoding , ( error , contents ) => {
if ( error ) {
reject ( error ) ;
return ;
}
resolve ( contents ) ;
} ) ;
} ) ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
async function readFile ( filepath , options = { } ) {
const throwNotFound = options . throwNotFound === true ;
try {
const content = await fsReadFileAsync ( filepath , "utf8" ) ;
return content ;
} catch ( error ) {
if ( throwNotFound === false && ( error . code === "ENOENT" || error . code === "EISDIR" ) ) {
return null ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
throw error ;
2020-08-26 01:57:08 +02:00
}
}
2022-11-10 11:43:16 +01:00
function readFileSync ( filepath , options = { } ) {
const throwNotFound = options . throwNotFound === true ;
try {
const content = _fs . default . readFileSync ( filepath , "utf8" ) ;
return content ;
} catch ( error ) {
if ( throwNotFound === false && ( error . code === "ENOENT" || error . code === "EISDIR" ) ) {
return null ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
throw error ;
}
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
}
} ) ;
var require _cacheWrapper = _ _commonJS ( {
"node_modules/cosmiconfig/dist/cacheWrapper.js" ( exports2 ) {
"use strict" ;
Object . defineProperty ( exports2 , "__esModule" , {
value : true
} ) ;
exports2 . cacheWrapper = cacheWrapper ;
exports2 . cacheWrapperSync = cacheWrapperSync ;
async function cacheWrapper ( cache , key , fn ) {
const cached = cache . get ( key ) ;
if ( cached !== void 0 ) {
return cached ;
}
const result = await fn ( ) ;
cache . set ( key , result ) ;
2020-08-26 01:57:08 +02:00
return result ;
}
2022-11-10 11:43:16 +01:00
function cacheWrapperSync ( cache , key , fn ) {
const cached = cache . get ( key ) ;
if ( cached !== void 0 ) {
return cached ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
const result = fn ( ) ;
cache . set ( key , result ) ;
return result ;
}
}
} ) ;
var require _path _type = _ _commonJS ( {
"node_modules/path-type/index.js" ( exports2 ) {
"use strict" ;
var {
promisify
} = require ( "util" ) ;
var fs = require ( "fs" ) ;
async function isType ( fsStatType , statsMethodName , filePath ) {
if ( typeof filePath !== "string" ) {
throw new TypeError ( ` Expected a string, got ${ typeof filePath } ` ) ;
}
try {
const stats = await promisify ( fs [ fsStatType ] ) ( filePath ) ;
return stats [ statsMethodName ] ( ) ;
} catch ( error ) {
if ( error . code === "ENOENT" ) {
return false ;
}
throw error ;
2020-08-26 01:57:08 +02:00
}
}
2022-11-10 11:43:16 +01:00
function isTypeSync ( fsStatType , statsMethodName , filePath ) {
if ( typeof filePath !== "string" ) {
throw new TypeError ( ` Expected a string, got ${ typeof filePath } ` ) ;
}
try {
return fs [ fsStatType ] ( filePath ) [ statsMethodName ] ( ) ;
} catch ( error ) {
if ( error . code === "ENOENT" ) {
return false ;
}
throw error ;
}
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
exports2 . isFile = isType . bind ( null , "stat" , "isFile" ) ;
exports2 . isDirectory = isType . bind ( null , "stat" , "isDirectory" ) ;
exports2 . isSymlink = isType . bind ( null , "lstat" , "isSymbolicLink" ) ;
exports2 . isFileSync = isTypeSync . bind ( null , "statSync" , "isFile" ) ;
exports2 . isDirectorySync = isTypeSync . bind ( null , "statSync" , "isDirectory" ) ;
exports2 . isSymlinkSync = isTypeSync . bind ( null , "lstatSync" , "isSymbolicLink" ) ;
}
} ) ;
var require _getDirectory = _ _commonJS ( {
"node_modules/cosmiconfig/dist/getDirectory.js" ( exports2 ) {
"use strict" ;
Object . defineProperty ( exports2 , "__esModule" , {
value : true
} ) ;
exports2 . getDirectory = getDirectory ;
exports2 . getDirectorySync = getDirectorySync ;
var _path = _interopRequireDefault ( require ( "path" ) ) ;
var _pathType = require _path _type ( ) ;
function _interopRequireDefault ( obj ) {
return obj && obj . _ _esModule ? obj : {
default : obj
2020-08-26 01:57:08 +02:00
} ;
2022-11-10 11:43:16 +01:00
}
async function getDirectory ( filepath ) {
const filePathIsDirectory = await ( 0 , _pathType . isDirectory ) ( filepath ) ;
if ( filePathIsDirectory === true ) {
return filepath ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
const directory = _path . default . dirname ( filepath ) ;
return directory ;
}
function getDirectorySync ( filepath ) {
const filePathIsDirectory = ( 0 , _pathType . isDirectorySync ) ( filepath ) ;
if ( filePathIsDirectory === true ) {
return filepath ;
}
const directory = _path . default . dirname ( filepath ) ;
return directory ;
2020-08-26 01:57:08 +02:00
}
}
} ) ;
2022-11-10 11:43:16 +01:00
var require _Explorer = _ _commonJS ( {
"node_modules/cosmiconfig/dist/Explorer.js" ( exports2 ) {
"use strict" ;
Object . defineProperty ( exports2 , "__esModule" , {
value : true
} ) ;
exports2 . Explorer = void 0 ;
var _path = _interopRequireDefault ( require ( "path" ) ) ;
var _ExplorerBase = require _ExplorerBase ( ) ;
var _readFile = require _readFile ( ) ;
var _cacheWrapper = require _cacheWrapper ( ) ;
var _getDirectory = require _getDirectory ( ) ;
function _interopRequireDefault ( obj ) {
return obj && obj . _ _esModule ? obj : {
default : obj
} ;
}
var Explorer = class extends _ExplorerBase . ExplorerBase {
constructor ( options ) {
super ( options ) ;
}
async search ( searchFrom = process . cwd ( ) ) {
const startDirectory = await ( 0 , _getDirectory . getDirectory ) ( searchFrom ) ;
const result = await this . searchFromDirectory ( startDirectory ) ;
return result ;
}
async searchFromDirectory ( dir ) {
const absoluteDir = _path . default . resolve ( process . cwd ( ) , dir ) ;
const run = async ( ) => {
const result = await this . searchDirectory ( absoluteDir ) ;
const nextDir = this . nextDirectoryToSearch ( absoluteDir , result ) ;
if ( nextDir ) {
return this . searchFromDirectory ( nextDir ) ;
}
const transformResult = await this . config . transform ( result ) ;
return transformResult ;
} ;
if ( this . searchCache ) {
return ( 0 , _cacheWrapper . cacheWrapper ) ( this . searchCache , absoluteDir , run ) ;
}
return run ( ) ;
}
async searchDirectory ( dir ) {
for await ( const place of this . config . searchPlaces ) {
const placeResult = await this . loadSearchPlace ( dir , place ) ;
if ( this . shouldSearchStopWithResult ( placeResult ) === true ) {
return placeResult ;
}
}
return null ;
}
async loadSearchPlace ( dir , place ) {
const filepath = _path . default . join ( dir , place ) ;
const fileContents = await ( 0 , _readFile . readFile ) ( filepath ) ;
const result = await this . createCosmiconfigResult ( filepath , fileContents ) ;
return result ;
}
async loadFileContent ( filepath , content ) {
if ( content === null ) {
return null ;
}
if ( content . trim ( ) === "" ) {
return void 0 ;
}
const loader = this . getLoaderEntryForFile ( filepath ) ;
const loaderResult = await loader ( filepath , content ) ;
return loaderResult ;
}
async createCosmiconfigResult ( filepath , content ) {
const fileContent = await this . loadFileContent ( filepath , content ) ;
const result = this . loadedContentToCosmiconfigResult ( filepath , fileContent ) ;
return result ;
}
async load ( filepath ) {
this . validateFilePath ( filepath ) ;
const absoluteFilePath = _path . default . resolve ( process . cwd ( ) , filepath ) ;
const runLoad = async ( ) => {
const fileContents = await ( 0 , _readFile . readFile ) ( absoluteFilePath , {
throwNotFound : true
} ) ;
const result = await this . createCosmiconfigResult ( absoluteFilePath , fileContents ) ;
const transformResult = await this . config . transform ( result ) ;
return transformResult ;
} ;
if ( this . loadCache ) {
return ( 0 , _cacheWrapper . cacheWrapper ) ( this . loadCache , absoluteFilePath , runLoad ) ;
}
return runLoad ( ) ;
}
2020-08-26 01:57:08 +02:00
} ;
2022-11-10 11:43:16 +01:00
exports2 . Explorer = Explorer ;
2020-08-27 10:23:33 +02:00
}
2022-11-10 11:43:16 +01:00
} ) ;
var require _ExplorerSync = _ _commonJS ( {
"node_modules/cosmiconfig/dist/ExplorerSync.js" ( exports2 ) {
"use strict" ;
Object . defineProperty ( exports2 , "__esModule" , {
value : true
2020-08-26 01:57:08 +02:00
} ) ;
2022-11-10 11:43:16 +01:00
exports2 . ExplorerSync = void 0 ;
var _path = _interopRequireDefault ( require ( "path" ) ) ;
var _ExplorerBase = require _ExplorerBase ( ) ;
var _readFile = require _readFile ( ) ;
var _cacheWrapper = require _cacheWrapper ( ) ;
var _getDirectory = require _getDirectory ( ) ;
function _interopRequireDefault ( obj ) {
return obj && obj . _ _esModule ? obj : {
default : obj
} ;
}
var ExplorerSync = class extends _ExplorerBase . ExplorerBase {
constructor ( options ) {
super ( options ) ;
}
searchSync ( searchFrom = process . cwd ( ) ) {
const startDirectory = ( 0 , _getDirectory . getDirectorySync ) ( searchFrom ) ;
const result = this . searchFromDirectorySync ( startDirectory ) ;
return result ;
}
searchFromDirectorySync ( dir ) {
const absoluteDir = _path . default . resolve ( process . cwd ( ) , dir ) ;
const run = ( ) => {
const result = this . searchDirectorySync ( absoluteDir ) ;
const nextDir = this . nextDirectoryToSearch ( absoluteDir , result ) ;
if ( nextDir ) {
return this . searchFromDirectorySync ( nextDir ) ;
}
const transformResult = this . config . transform ( result ) ;
return transformResult ;
} ;
if ( this . searchCache ) {
return ( 0 , _cacheWrapper . cacheWrapperSync ) ( this . searchCache , absoluteDir , run ) ;
}
return run ( ) ;
}
searchDirectorySync ( dir ) {
for ( const place of this . config . searchPlaces ) {
const placeResult = this . loadSearchPlaceSync ( dir , place ) ;
if ( this . shouldSearchStopWithResult ( placeResult ) === true ) {
return placeResult ;
}
}
return null ;
}
loadSearchPlaceSync ( dir , place ) {
const filepath = _path . default . join ( dir , place ) ;
const content = ( 0 , _readFile . readFileSync ) ( filepath ) ;
const result = this . createCosmiconfigResultSync ( filepath , content ) ;
return result ;
}
loadFileContentSync ( filepath , content ) {
if ( content === null ) {
return null ;
}
if ( content . trim ( ) === "" ) {
return void 0 ;
}
const loader = this . getLoaderEntryForFile ( filepath ) ;
const loaderResult = loader ( filepath , content ) ;
return loaderResult ;
}
createCosmiconfigResultSync ( filepath , content ) {
const fileContent = this . loadFileContentSync ( filepath , content ) ;
const result = this . loadedContentToCosmiconfigResult ( filepath , fileContent ) ;
return result ;
}
loadSync ( filepath ) {
this . validateFilePath ( filepath ) ;
const absoluteFilePath = _path . default . resolve ( process . cwd ( ) , filepath ) ;
const runLoadSync = ( ) => {
const content = ( 0 , _readFile . readFileSync ) ( absoluteFilePath , {
throwNotFound : true
} ) ;
const cosmiconfigResult = this . createCosmiconfigResultSync ( absoluteFilePath , content ) ;
const transformResult = this . config . transform ( cosmiconfigResult ) ;
return transformResult ;
} ;
if ( this . loadCache ) {
return ( 0 , _cacheWrapper . cacheWrapperSync ) ( this . loadCache , absoluteFilePath , runLoadSync ) ;
}
return runLoadSync ( ) ;
}
} ;
exports2 . ExplorerSync = ExplorerSync ;
2020-08-26 01:57:08 +02:00
}
} ) ;
2022-11-10 11:43:16 +01:00
var require _types = _ _commonJS ( {
"node_modules/cosmiconfig/dist/types.js" ( exports2 ) {
"use strict" ;
Object . defineProperty ( exports2 , "__esModule" , {
value : true
} ) ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
} ) ;
var require _dist2 = _ _commonJS ( {
"node_modules/cosmiconfig/dist/index.js" ( exports2 ) {
"use strict" ;
Object . defineProperty ( exports2 , "__esModule" , {
value : true
} ) ;
exports2 . cosmiconfig = cosmiconfig ;
exports2 . cosmiconfigSync = cosmiconfigSync ;
exports2 . defaultLoaders = void 0 ;
var _os = _interopRequireDefault ( require ( "os" ) ) ;
var _Explorer = require _Explorer ( ) ;
var _ExplorerSync = require _ExplorerSync ( ) ;
var _loaders = require _loaders ( ) ;
var _types = require _types ( ) ;
function _interopRequireDefault ( obj ) {
return obj && obj . _ _esModule ? obj : {
default : obj
} ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
function cosmiconfig ( moduleName , options = { } ) {
const normalizedOptions = normalizeOptions ( moduleName , options ) ;
const explorer = new _Explorer . Explorer ( normalizedOptions ) ;
return {
search : explorer . search . bind ( explorer ) ,
load : explorer . load . bind ( explorer ) ,
clearLoadCache : explorer . clearLoadCache . bind ( explorer ) ,
clearSearchCache : explorer . clearSearchCache . bind ( explorer ) ,
clearCaches : explorer . clearCaches . bind ( explorer )
} ;
}
function cosmiconfigSync ( moduleName , options = { } ) {
const normalizedOptions = normalizeOptions ( moduleName , options ) ;
const explorerSync = new _ExplorerSync . ExplorerSync ( normalizedOptions ) ;
return {
search : explorerSync . searchSync . bind ( explorerSync ) ,
load : explorerSync . loadSync . bind ( explorerSync ) ,
clearLoadCache : explorerSync . clearLoadCache . bind ( explorerSync ) ,
clearSearchCache : explorerSync . clearSearchCache . bind ( explorerSync ) ,
clearCaches : explorerSync . clearCaches . bind ( explorerSync )
} ;
}
var defaultLoaders = Object . freeze ( {
".cjs" : _loaders . loaders . loadJs ,
".js" : _loaders . loaders . loadJs ,
".json" : _loaders . loaders . loadJson ,
".yaml" : _loaders . loaders . loadYaml ,
".yml" : _loaders . loaders . loadYaml ,
noExt : _loaders . loaders . loadYaml
} ) ;
exports2 . defaultLoaders = defaultLoaders ;
var identity = function identity2 ( x ) {
return x ;
} ;
function normalizeOptions ( moduleName , options ) {
const defaults = {
packageProp : moduleName ,
searchPlaces : [ "package.json" , ` . ${ moduleName } rc ` , ` . ${ moduleName } rc.json ` , ` . ${ moduleName } rc.yaml ` , ` . ${ moduleName } rc.yml ` , ` . ${ moduleName } rc.js ` , ` . ${ moduleName } rc.cjs ` , ` ${ moduleName } .config.js ` , ` ${ moduleName } .config.cjs ` ] ,
ignoreEmptySearchPlaces : true ,
stopDir : _os . default . homedir ( ) ,
cache : true ,
transform : identity ,
loaders : defaultLoaders
} ;
const normalizedOptions = Object . assign ( Object . assign ( Object . assign ( { } , defaults ) , options ) , { } , {
loaders : Object . assign ( Object . assign ( { } , defaults . loaders ) , options . loaders )
} ) ;
return normalizedOptions ;
2020-08-26 01:57:08 +02:00
}
}
2022-11-10 11:43:16 +01:00
} ) ;
var require _find _parent _dir = _ _commonJS ( {
"node_modules/find-parent-dir/index.js" ( exports2 , module2 ) {
"use strict" ;
var path = require ( "path" ) ;
var fs = require ( "fs" ) ;
var exists = fs . exists || path . exists ;
var existsSync = fs . existsSync || path . existsSync ;
function splitPath ( path2 ) {
var parts = path2 . split ( /(\/|\\)/ ) ;
if ( ! parts . length )
return parts ;
return ! parts [ 0 ] . length ? parts . slice ( 1 ) : parts ;
}
exports2 = module2 . exports = function ( currentFullPath , clue , cb ) {
function testDir ( parts ) {
if ( parts . length === 0 )
return cb ( null , null ) ;
var p = parts . join ( "" ) ;
exists ( path . join ( p , clue ) , function ( itdoes ) {
if ( itdoes )
return cb ( null , p ) ;
testDir ( parts . slice ( 0 , - 1 ) ) ;
} ) ;
}
testDir ( splitPath ( currentFullPath ) ) ;
} ;
exports2 . sync = function ( currentFullPath , clue ) {
function testDir ( parts ) {
if ( parts . length === 0 )
return null ;
var p = parts . join ( "" ) ;
var itdoes = existsSync ( path . join ( p , clue ) ) ;
return itdoes ? p : testDir ( parts . slice ( 0 , - 1 ) ) ;
}
return testDir ( splitPath ( currentFullPath ) ) ;
} ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
} ) ;
var require _get _stdin = _ _commonJS ( {
"node_modules/get-stdin/index.js" ( exports2 , module2 ) {
"use strict" ;
var {
stdin
} = process ;
module2 . exports = async ( ) => {
let result = "" ;
if ( stdin . isTTY ) {
return result ;
}
stdin . setEncoding ( "utf8" ) ;
for await ( const chunk of stdin ) {
result += chunk ;
}
return result ;
} ;
module2 . exports . buffer = async ( ) => {
const result = [ ] ;
let length = 0 ;
if ( stdin . isTTY ) {
return Buffer . concat ( [ ] ) ;
}
for await ( const chunk of stdin ) {
result . push ( chunk ) ;
length += chunk . length ;
}
return Buffer . concat ( result , length ) ;
} ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
} ) ;
var require _vendors = _ _commonJS ( {
"node_modules/ci-info/vendors.json" ( exports2 , module2 ) {
module2 . exports = [ {
name : "AppVeyor" ,
constant : "APPVEYOR" ,
env : "APPVEYOR" ,
pr : "APPVEYOR_PULL_REQUEST_NUMBER"
} , {
name : "Azure Pipelines" ,
constant : "AZURE_PIPELINES" ,
env : "SYSTEM_TEAMFOUNDATIONCOLLECTIONURI" ,
pr : "SYSTEM_PULLREQUEST_PULLREQUESTID"
} , {
name : "Appcircle" ,
constant : "APPCIRCLE" ,
env : "AC_APPCIRCLE"
} , {
name : "Bamboo" ,
constant : "BAMBOO" ,
env : "bamboo_planKey"
} , {
name : "Bitbucket Pipelines" ,
constant : "BITBUCKET" ,
env : "BITBUCKET_COMMIT" ,
pr : "BITBUCKET_PR_ID"
} , {
name : "Bitrise" ,
constant : "BITRISE" ,
env : "BITRISE_IO" ,
pr : "BITRISE_PULL_REQUEST"
} , {
name : "Buddy" ,
constant : "BUDDY" ,
env : "BUDDY_WORKSPACE_ID" ,
pr : "BUDDY_EXECUTION_PULL_REQUEST_ID"
} , {
name : "Buildkite" ,
constant : "BUILDKITE" ,
env : "BUILDKITE" ,
pr : {
env : "BUILDKITE_PULL_REQUEST" ,
ne : "false"
}
} , {
name : "CircleCI" ,
constant : "CIRCLE" ,
env : "CIRCLECI" ,
pr : "CIRCLE_PULL_REQUEST"
} , {
name : "Cirrus CI" ,
constant : "CIRRUS" ,
env : "CIRRUS_CI" ,
pr : "CIRRUS_PR"
} , {
name : "AWS CodeBuild" ,
constant : "CODEBUILD" ,
env : "CODEBUILD_BUILD_ARN"
} , {
name : "Codefresh" ,
constant : "CODEFRESH" ,
env : "CF_BUILD_ID" ,
pr : {
any : [ "CF_PULL_REQUEST_NUMBER" , "CF_PULL_REQUEST_ID" ]
}
} , {
name : "Codeship" ,
constant : "CODESHIP" ,
env : {
CI _NAME : "codeship"
}
} , {
name : "Drone" ,
constant : "DRONE" ,
env : "DRONE" ,
pr : {
DRONE _BUILD _EVENT : "pull_request"
}
} , {
name : "dsari" ,
constant : "DSARI" ,
env : "DSARI"
} , {
name : "Expo Application Services" ,
constant : "EAS" ,
env : "EAS_BUILD"
} , {
name : "GitHub Actions" ,
constant : "GITHUB_ACTIONS" ,
env : "GITHUB_ACTIONS" ,
pr : {
GITHUB _EVENT _NAME : "pull_request"
}
} , {
name : "GitLab CI" ,
constant : "GITLAB" ,
env : "GITLAB_CI" ,
pr : "CI_MERGE_REQUEST_ID"
} , {
name : "GoCD" ,
constant : "GOCD" ,
env : "GO_PIPELINE_LABEL"
} , {
name : "LayerCI" ,
constant : "LAYERCI" ,
env : "LAYERCI" ,
pr : "LAYERCI_PULL_REQUEST"
} , {
name : "Hudson" ,
constant : "HUDSON" ,
env : "HUDSON_URL"
} , {
name : "Jenkins" ,
constant : "JENKINS" ,
env : [ "JENKINS_URL" , "BUILD_ID" ] ,
pr : {
any : [ "ghprbPullId" , "CHANGE_ID" ]
}
} , {
name : "Magnum CI" ,
constant : "MAGNUM" ,
env : "MAGNUM"
} , {
name : "Netlify CI" ,
constant : "NETLIFY" ,
env : "NETLIFY" ,
pr : {
env : "PULL_REQUEST" ,
ne : "false"
}
} , {
name : "Nevercode" ,
constant : "NEVERCODE" ,
env : "NEVERCODE" ,
pr : {
env : "NEVERCODE_PULL_REQUEST" ,
ne : "false"
}
} , {
name : "Render" ,
constant : "RENDER" ,
env : "RENDER" ,
pr : {
IS _PULL _REQUEST : "true"
}
} , {
name : "Sail CI" ,
constant : "SAIL" ,
env : "SAILCI" ,
pr : "SAIL_PULL_REQUEST_NUMBER"
} , {
name : "Semaphore" ,
constant : "SEMAPHORE" ,
env : "SEMAPHORE" ,
pr : "PULL_REQUEST_NUMBER"
} , {
name : "Screwdriver" ,
constant : "SCREWDRIVER" ,
env : "SCREWDRIVER" ,
pr : {
env : "SD_PULL_REQUEST" ,
ne : "false"
}
} , {
name : "Shippable" ,
constant : "SHIPPABLE" ,
env : "SHIPPABLE" ,
pr : {
IS _PULL _REQUEST : "true"
}
} , {
name : "Solano CI" ,
constant : "SOLANO" ,
env : "TDDIUM" ,
pr : "TDDIUM_PR_ID"
} , {
name : "Strider CD" ,
constant : "STRIDER" ,
env : "STRIDER"
} , {
name : "TaskCluster" ,
constant : "TASKCLUSTER" ,
env : [ "TASK_ID" , "RUN_ID" ]
} , {
name : "TeamCity" ,
constant : "TEAMCITY" ,
env : "TEAMCITY_VERSION"
} , {
name : "Travis CI" ,
constant : "TRAVIS" ,
env : "TRAVIS" ,
pr : {
env : "TRAVIS_PULL_REQUEST" ,
ne : "false"
}
} , {
name : "Vercel" ,
constant : "VERCEL" ,
env : "NOW_BUILDER"
} , {
name : "Visual Studio App Center" ,
constant : "APPCENTER" ,
env : "APPCENTER_BUILD_ID"
} ] ;
2020-08-26 01:57:08 +02:00
}
2022-11-10 11:43:16 +01:00
} ) ;
var require _ci _info = _ _commonJS ( {
"node_modules/ci-info/index.js" ( exports2 ) {
"use strict" ;
var vendors = require _vendors ( ) ;
var env = process . env ;
Object . defineProperty ( exports2 , "_vendors" , {
value : vendors . map ( function ( v ) {
return v . constant ;
} )
2020-08-26 01:57:08 +02:00
} ) ;
2022-11-10 11:43:16 +01:00
exports2 . name = null ;
exports2 . isPR = null ;
vendors . forEach ( function ( vendor ) {
const envs = Array . isArray ( vendor . env ) ? vendor . env : [ vendor . env ] ;
const isCI = envs . every ( function ( obj ) {
return checkEnv ( obj ) ;
} ) ;
exports2 [ vendor . constant ] = isCI ;
if ( isCI ) {
exports2 . name = vendor . name ;
switch ( typeof vendor . pr ) {
case "string" :
exports2 . isPR = ! ! env [ vendor . pr ] ;
break ;
case "object" :
if ( "env" in vendor . pr ) {
exports2 . isPR = vendor . pr . env in env && env [ vendor . pr . env ] !== vendor . pr . ne ;
} else if ( "any" in vendor . pr ) {
exports2 . isPR = vendor . pr . any . some ( function ( key ) {
return ! ! env [ key ] ;
} ) ;
} else {
exports2 . isPR = checkEnv ( vendor . pr ) ;
}
break ;
default :
exports2 . isPR = null ;
}
2020-08-26 01:57:08 +02:00
}
} ) ;
2022-11-10 11:43:16 +01:00
exports2 . isCI = ! ! ( env . CI || env . CONTINUOUS _INTEGRATION || env . BUILD _NUMBER || env . RUN _ID || exports2 . name || false ) ;
function checkEnv ( obj ) {
if ( typeof obj === "string" )
return ! ! env [ obj ] ;
return Object . keys ( obj ) . every ( function ( k ) {
return env [ k ] === obj [ k ] ;
} ) ;
}
2020-08-26 01:57:08 +02:00
}
} ) ;
2022-11-10 11:43:16 +01:00
module . exports = {
cosmiconfig : require _dist2 ( ) . cosmiconfig ,
cosmiconfigSync : require _dist2 ( ) . cosmiconfigSync ,
findParentDir : require _find _parent _dir ( ) . sync ,
getStdin : require _get _stdin ( ) ,
isCI : ( ) => require _ci _info ( ) . isCI
2020-08-26 01:57:08 +02:00
} ;