Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

json2jsii

Package Overview
Dependencies
Maintainers
1
Versions
879
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

json2jsii - npm Package Compare versions

Comparing version 0.1.0 to 0.1.1

CHANGELOG.md

3

.projenrc.js

@@ -11,3 +11,4 @@ const { TypeScriptLibraryProject, Semver } = require('projen');

'json-schema': Semver.caret('0.2.5'),
'codemaker': Semver.caret('1.6.0')
'camelcase': Semver.caret('6.0.0'),
'snake-case': Semver.caret('3.0.3')
},

@@ -14,0 +15,0 @@ devDependencies: {

@@ -1,3 +0,4 @@

{"/home/runner/work/json2jsii/json2jsii/lib/index.ts": {"path":"/home/runner/work/json2jsii/json2jsii/lib/index.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":33}}},"fnMap":{},"branchMap":{},"s":{"0":4},"f":{},"b":{}}
,"/home/runner/work/json2jsii/json2jsii/lib/type-generator.ts": {"path":"/home/runner/work/json2jsii/json2jsii/lib/type-generator.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":52}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":29}},"2":{"start":{"line":5,"column":24},"end":{"line":5,"column":68}},"3":{"start":{"line":6,"column":27},"end":{"line":6,"column":43}},"4":{"start":{"line":26,"column":19},"end":{"line":26,"column":84}},"5":{"start":{"line":27,"column":19},"end":{"line":27,"column":52}},"6":{"start":{"line":37,"column":4},"end":{"line":37,"column":41}},"7":{"start":{"line":38,"column":4},"end":{"line":38,"column":50}},"8":{"start":{"line":50,"column":4},"end":{"line":52,"column":null}},"9":{"start":{"line":51,"column":6},"end":{"line":51,"column":80}},"10":{"start":{"line":54,"column":4},"end":{"line":56,"column":null}},"11":{"start":{"line":55,"column":6},"end":{"line":55,"column":65}},"12":{"start":{"line":58,"column":4},"end":{"line":60,"column":null}},"13":{"start":{"line":59,"column":6},"end":{"line":59,"column":106}},"14":{"start":{"line":62,"column":4},"end":{"line":64,"column":null}},"15":{"start":{"line":63,"column":6},"end":{"line":63,"column":34}},"16":{"start":{"line":67,"column":4},"end":{"line":73,"column":null}},"17":{"start":{"line":68,"column":6},"end":{"line":70,"column":null}},"18":{"start":{"line":69,"column":8},"end":{"line":69,"column":24}},"19":{"start":{"line":75,"column":4},"end":{"line":77,"column":null}},"20":{"start":{"line":76,"column":6},"end":{"line":76,"column":20}},"21":{"start":{"line":79,"column":4},"end":{"line":84,"column":null}},"22":{"start":{"line":80,"column":22},"end":{"line":80,"column":39}},"23":{"start":{"line":81,"column":20},"end":{"line":81,"column":67}},"24":{"start":{"line":82,"column":18},"end":{"line":82,"column":31}},"25":{"start":{"line":83,"column":19},"end":{"line":83,"column":32}},"26":{"start":{"line":86,"column":4},"end":{"line":88,"column":null}},"27":{"start":{"line":87,"column":6},"end":{"line":87,"column":22}},"28":{"start":{"line":90,"column":4},"end":{"line":100,"column":null}},"29":{"start":{"line":91,"column":6},"end":{"line":93,"column":null}},"30":{"start":{"line":92,"column":8},"end":{"line":92,"column":22}},"31":{"start":{"line":95,"column":6},"end":{"line":97,"column":null}},"32":{"start":{"line":95,"column":80},"end":{"line":95,"column":102}},"33":{"start":{"line":96,"column":8},"end":{"line":96,"column":55}},"34":{"start":{"line":99,"column":6},"end":{"line":99,"column":22}},"35":{"start":{"line":103,"column":4},"end":{"line":105,"column":null}},"36":{"start":{"line":104,"column":6},"end":{"line":104,"column":94}},"37":{"start":{"line":108,"column":4},"end":{"line":111,"column":null}},"38":{"start":{"line":109,"column":6},"end":{"line":109,"column":null}},"39":{"start":{"line":110,"column":6},"end":{"line":110,"column":22}},"40":{"start":{"line":113,"column":4},"end":{"line":113,"column":17}},"41":{"start":{"line":122,"column":4},"end":{"line":124,"column":null}},"42":{"start":{"line":123,"column":6},"end":{"line":123,"column":56}},"43":{"start":{"line":126,"column":17},"end":{"line":126,"column":32}},"44":{"start":{"line":127,"column":21},"end":{"line":127,"column":44}},"45":{"start":{"line":128,"column":4},"end":{"line":128,"column":28}},"46":{"start":{"line":129,"column":4},"end":{"line":129,"column":32}},"47":{"start":{"line":130,"column":4},"end":{"line":130,"column":29}},"48":{"start":{"line":131,"column":4},"end":{"line":131,"column":44}},"49":{"start":{"line":140,"column":4},"end":{"line":147,"column":null}},"50":{"start":{"line":141,"column":19},"end":{"line":141,"column":51}},"51":{"start":{"line":142,"column":22},"end":{"line":142,"column":44}},"52":{"start":{"line":143,"column":6},"end":{"line":143,"column":20}},"53":{"start":{"line":144,"column":6},"end":{"line":144,"column":18}},"54":{"start":{"line":145,"column":6},"end":{"line":145,"column":36}},"55":{"start":{"line":146,"column":6},"end":{"line":146,"column":34}},"56":{"start":{"line":151,"column":4},"end":{"line":153,"column":null}},"57":{"start":{"line":152,"column":6},"end":{"line":152,"column":13}},"58":{"start":{"line":155,"column":4},"end":{"line":155,"column":45}},"59":{"start":{"line":162,"column":20},"end":{"line":162,"column":39}},"60":{"start":{"line":163,"column":4},"end":{"line":170,"column":null}},"61":{"start":{"line":164,"column":6},"end":{"line":166,"column":null}},"62":{"start":{"line":165,"column":8},"end":{"line":165,"column":21}},"63":{"start":{"line":168,"column":19},"end":{"line":168,"column":69}},"64":{"start":{"line":169,"column":6},"end":{"line":169,"column":25}},"65":{"start":{"line":172,"column":4},"end":{"line":189,"column":7}},"66":{"start":{"line":173,"column":6},"end":{"line":173,"column":55}},"67":{"start":{"line":175,"column":6},"end":{"line":175,"column":49}},"68":{"start":{"line":177,"column":6},"end":{"line":182,"column":null}},"69":{"start":{"line":178,"column":27},"end":{"line":178,"column":74}},"70":{"start":{"line":179,"column":8},"end":{"line":179,"column":83}},"71":{"start":{"line":180,"column":8},"end":{"line":180,"column":52}},"72":{"start":{"line":181,"column":8},"end":{"line":181,"column":26}},"73":{"start":{"line":184,"column":6},"end":{"line":184,"column":56}},"74":{"start":{"line":185,"column":6},"end":{"line":185,"column":85}},"75":{"start":{"line":186,"column":6},"end":{"line":186,"column":24}},"76":{"start":{"line":188,"column":6},"end":{"line":188,"column":24}},"77":{"start":{"line":191,"column":4},"end":{"line":191,"column":16}},"78":{"start":{"line":195,"column":4},"end":{"line":214,"column":7}},"79":{"start":{"line":196,"column":6},"end":{"line":196,"column":67}},"80":{"start":{"line":197,"column":6},"end":{"line":197,"column":53}},"81":{"start":{"line":199,"column":6},"end":{"line":211,"column":null}},"82":{"start":{"line":201,"column":8},"end":{"line":203,"column":null}},"83":{"start":{"line":202,"column":10},"end":{"line":202,"column":19}},"84":{"start":{"line":205,"column":8},"end":{"line":208,"column":null}},"85":{"start":{"line":206,"column":10},"end":{"line":206,"column":110}},"86":{"start":{"line":207,"column":10},"end":{"line":207,"column":19}},"87":{"start":{"line":210,"column":8},"end":{"line":210,"column":74}},"88":{"start":{"line":213,"column":6},"end":{"line":213,"column":24}},"89":{"start":{"line":218,"column":25},"end":{"line":218,"column":29}},"90":{"start":{"line":222,"column":4},"end":{"line":224,"column":null}},"91":{"start":{"line":223,"column":6},"end":{"line":223,"column":36}},"92":{"start":{"line":228,"column":4},"end":{"line":230,"column":null}},"93":{"start":{"line":229,"column":6},"end":{"line":229,"column":31}},"94":{"start":{"line":232,"column":4},"end":{"line":232,"column":84}},"95":{"start":{"line":233,"column":25},"end":{"line":233,"column":78}},"96":{"start":{"line":234,"column":21},"end":{"line":234,"column":61}},"97":{"start":{"line":235,"column":21},"end":{"line":235,"column":40}},"98":{"start":{"line":237,"column":4},"end":{"line":237,"column":63}},"99":{"start":{"line":238,"column":4},"end":{"line":238,"column":16}},"100":{"start":{"line":243,"column":4},"end":{"line":270,"column":7}},"101":{"start":{"line":245,"column":6},"end":{"line":247,"column":null}},"102":{"start":{"line":246,"column":8},"end":{"line":246,"column":77}},"103":{"start":{"line":249,"column":6},"end":{"line":251,"column":null}},"104":{"start":{"line":250,"column":8},"end":{"line":250,"column":58}},"105":{"start":{"line":253,"column":6},"end":{"line":253,"column":61}},"106":{"start":{"line":255,"column":6},"end":{"line":255,"column":48}},"107":{"start":{"line":257,"column":6},"end":{"line":267,"column":null}},"108":{"start":{"line":258,"column":8},"end":{"line":260,"column":null}},"109":{"start":{"line":259,"column":10},"end":{"line":259,"column":71}},"110":{"start":{"line":263,"column":27},"end":{"line":263,"column":128}},"111":{"start":{"line":263,"column":102},"end":{"line":263,"column":103}},"112":{"start":{"line":265,"column":8},"end":{"line":265,"column":37}},"113":{"start":{"line":266,"column":8},"end":{"line":266,"column":49}},"114":{"start":{"line":269,"column":6},"end":{"line":269,"column":24}},"115":{"start":{"line":272,"column":4},"end":{"line":272,"column":20}},"116":{"start":{"line":276,"column":4},"end":{"line":276,"column":21}},"117":{"start":{"line":278,"column":4},"end":{"line":290,"column":null}},"118":{"start":{"line":279,"column":6},"end":{"line":279,"column":55}},"119":{"start":{"line":281,"column":29},"end":{"line":281,"column":76}},"120":{"start":{"line":282,"column":18},"end":{"line":282,"column":53}},"121":{"start":{"line":284,"column":6},"end":{"line":284,"column":37}},"122":{"start":{"line":285,"column":6},"end":{"line":287,"column":null}},"123":{"start":{"line":286,"column":8},"end":{"line":286,"column":37}},"124":{"start":{"line":289,"column":6},"end":{"line":289,"column":22}},"125":{"start":{"line":292,"column":4},"end":{"line":292,"column":32}},"126":{"start":{"line":294,"column":4},"end":{"line":296,"column":null}},"127":{"start":{"line":295,"column":6},"end":{"line":295,"column":40}},"128":{"start":{"line":298,"column":4},"end":{"line":298,"column":null}},"129":{"start":{"line":302,"column":20},"end":{"line":302,"column":96}},"130":{"start":{"line":302,"column":70},"end":{"line":302,"column":85}},"131":{"start":{"line":303,"column":4},"end":{"line":303,"column":48}},"132":{"start":{"line":307,"column":19},"end":{"line":307,"column":35}},"133":{"start":{"line":308,"column":4},"end":{"line":310,"column":null}},"134":{"start":{"line":309,"column":6},"end":{"line":309,"column":61}},"135":{"start":{"line":312,"column":4},"end":{"line":314,"column":null}},"136":{"start":{"line":313,"column":6},"end":{"line":313,"column":19}},"137":{"start":{"line":316,"column":18},"end":{"line":316,"column":62}},"138":{"start":{"line":317,"column":21},"end":{"line":317,"column":63}},"139":{"start":{"line":318,"column":19},"end":{"line":318,"column":45}},"140":{"start":{"line":319,"column":4},"end":{"line":319,"column":53}},"141":{"start":{"line":323,"column":4},"end":{"line":325,"column":null}},"142":{"start":{"line":324,"column":6},"end":{"line":324,"column":61}},"143":{"start":{"line":327,"column":4},"end":{"line":327,"column":56}},"144":{"start":{"line":331,"column":16},"end":{"line":331,"column":24}},"145":{"start":{"line":332,"column":4},"end":{"line":334,"column":null}},"146":{"start":{"line":333,"column":6},"end":{"line":333,"column":53}},"147":{"start":{"line":336,"column":19},"end":{"line":336,"column":56}},"148":{"start":{"line":337,"column":18},"end":{"line":337,"column":42}},"149":{"start":{"line":338,"column":4},"end":{"line":340,"column":null}},"150":{"start":{"line":339,"column":6},"end":{"line":339,"column":78}},"151":{"start":{"line":342,"column":4},"end":{"line":342,"column":17}},"152":{"start":{"line":346,"column":4},"end":{"line":346,"column":86}},"153":{"start":{"line":350,"column":4},"end":{"line":355,"column":null}},"154":{"start":{"line":351,"column":17},"end":{"line":351,"column":36}},"155":{"start":{"line":352,"column":6},"end":{"line":354,"column":null}},"156":{"start":{"line":353,"column":8},"end":{"line":353,"column":20}},"157":{"start":{"line":357,"column":4},"end":{"line":357,"column":17}},"158":{"start":{"line":25,"column":0},"end":{"line":25,"column":13}},"159":{"start":{"line":368,"column":13},"end":{"line":368,"column":36}},"160":{"start":{"line":369,"column":15},"end":{"line":369,"column":23}},"161":{"start":{"line":371,"column":2},"end":{"line":380,"column":14}},"162":{"start":{"line":372,"column":4},"end":{"line":372,"column":26}},"163":{"start":{"line":373,"column":4},"end":{"line":379,"column":null}},"164":{"start":{"line":374,"column":21},"end":{"line":374,"column":45}},"165":{"start":{"line":375,"column":18},"end":{"line":375,"column":22}},"166":{"start":{"line":376,"column":21},"end":{"line":376,"column":56}},"167":{"start":{"line":377,"column":20},"end":{"line":377,"column":57}},"168":{"start":{"line":378,"column":6},"end":{"line":378,"column":39}},"169":{"start":{"line":382,"column":2},"end":{"line":382,"column":16}},"170":{"start":{"line":366,"column":0},"end":{"line":366,"column":16}},"171":{"start":{"line":386,"column":2},"end":{"line":386,"column":79}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":36,"column":2},"end":{"line":36,"column":14}},"loc":{"start":{"line":36,"column":49},"end":{"line":39,"column":3}}},"1":{"name":"(anonymous_1)","decl":{"start":{"line":47,"column":9},"end":{"line":47,"column":17}},"loc":{"start":{"line":47,"column":82},"end":{"line":114,"column":3}}},"2":{"name":"(anonymous_2)","decl":{"start":{"line":95,"column":75},"end":{"line":95,"column":76}},"loc":{"start":{"line":95,"column":80},"end":{"line":95,"column":102}}},"3":{"name":"(anonymous_3)","decl":{"start":{"line":121,"column":9},"end":{"line":121,"column":14}},"loc":{"start":{"line":121,"column":43},"end":{"line":132,"column":3}}},"4":{"name":"(anonymous_4)","decl":{"start":{"line":139,"column":9},"end":{"line":139,"column":25}},"loc":{"start":{"line":139,"column":41},"end":{"line":148,"column":3}}},"5":{"name":"(anonymous_5)","decl":{"start":{"line":150,"column":10},"end":{"line":150,"column":19}},"loc":{"start":{"line":150,"column":76},"end":{"line":156,"column":3}}},"6":{"name":"(anonymous_6)","decl":{"start":{"line":161,"column":10},"end":{"line":161,"column":19}},"loc":{"start":{"line":161,"column":67},"end":{"line":192,"column":3}}},"7":{"name":"(anonymous_7)","decl":{"start":{"line":172,"column":29},"end":{"line":172,"column":33}},"loc":{"start":{"line":172,"column":36},"end":{"line":189,"column":5}}},"8":{"name":"(anonymous_8)","decl":{"start":{"line":194,"column":10},"end":{"line":194,"column":20}},"loc":{"start":{"line":194,"column":80},"end":{"line":215,"column":3}}},"9":{"name":"(anonymous_9)","decl":{"start":{"line":195,"column":29},"end":{"line":195,"column":33}},"loc":{"start":{"line":195,"column":36},"end":{"line":214,"column":5}}},"10":{"name":"(anonymous_10)","decl":{"start":{"line":217,"column":10},"end":{"line":217,"column":22}},"loc":{"start":{"line":217,"column":117},"end":{"line":239,"column":3}}},"11":{"name":"(anonymous_11)","decl":{"start":{"line":241,"column":10},"end":{"line":241,"column":18}},"loc":{"start":{"line":241,"column":72},"end":{"line":273,"column":3}}},"12":{"name":"(anonymous_12)","decl":{"start":{"line":243,"column":29},"end":{"line":243,"column":33}},"loc":{"start":{"line":243,"column":36},"end":{"line":270,"column":5}}},"13":{"name":"(anonymous_13)","decl":{"start":{"line":263,"column":97},"end":{"line":263,"column":98}},"loc":{"start":{"line":263,"column":102},"end":{"line":263,"column":103}}},"14":{"name":"(anonymous_14)","decl":{"start":{"line":275,"column":10},"end":{"line":275,"column":25}},"loc":{"start":{"line":275,"column":123},"end":{"line":299,"column":3}}},"15":{"name":"(anonymous_15)","decl":{"start":{"line":301,"column":10},"end":{"line":301,"column":25}},"loc":{"start":{"line":301,"column":63},"end":{"line":304,"column":3}}},"16":{"name":"(anonymous_16)","decl":{"start":{"line":302,"column":65},"end":{"line":302,"column":66}},"loc":{"start":{"line":302,"column":70},"end":{"line":302,"column":85}}},"17":{"name":"(anonymous_17)","decl":{"start":{"line":306,"column":10},"end":{"line":306,"column":20}},"loc":{"start":{"line":306,"column":37},"end":{"line":320,"column":3}}},"18":{"name":"(anonymous_18)","decl":{"start":{"line":322,"column":10},"end":{"line":322,"column":22}},"loc":{"start":{"line":322,"column":60},"end":{"line":328,"column":3}}},"19":{"name":"(anonymous_19)","decl":{"start":{"line":330,"column":10},"end":{"line":330,"column":26}},"loc":{"start":{"line":330,"column":43},"end":{"line":343,"column":3}}},"20":{"name":"(anonymous_20)","decl":{"start":{"line":345,"column":10},"end":{"line":345,"column":28}},"loc":{"start":{"line":345,"column":69},"end":{"line":347,"column":3}}},"21":{"name":"(anonymous_21)","decl":{"start":{"line":349,"column":10},"end":{"line":349,"column":20}},"loc":{"start":{"line":349,"column":32},"end":{"line":358,"column":3}}},"22":{"name":"normalizeTypeName","decl":{"start":{"line":366,"column":16},"end":{"line":366,"column":33}},"loc":{"start":{"line":366,"column":50},"end":{"line":383,"column":1}}},"23":{"name":"supportedUnionOptionType","decl":{"start":{"line":385,"column":9},"end":{"line":385,"column":33}},"loc":{"start":{"line":385,"column":43},"end":{"line":387,"column":1}}}},"branchMap":{"0":{"loc":{"start":{"line":36,"column":46},"end":{"line":36,"column":49}},"type":"default-arg","locations":[{"start":{"line":36,"column":46},"end":{"line":36,"column":49}}]},"1":{"loc":{"start":{"line":37,"column":34},"end":{"line":37,"column":38}},"type":"cond-expr","locations":[{"start":{"line":37,"column":34},"end":{"line":37,"column":38}},{"start":{"line":37,"column":38},"end":{"line":37,"column":40}}]},"2":{"loc":{"start":{"line":37,"column":16},"end":{"line":37,"column":38}},"type":"binary-expr","locations":[{"start":{"line":37,"column":16},"end":{"line":37,"column":38}},{"start":{"line":37,"column":34},"end":{"line":37,"column":38}}]},"3":{"loc":{"start":{"line":38,"column":42},"end":{"line":38,"column":46}},"type":"cond-expr","locations":[{"start":{"line":38,"column":42},"end":{"line":38,"column":46}},{"start":{"line":38,"column":46},"end":{"line":38,"column":49}}]},"4":{"loc":{"start":{"line":38,"column":20},"end":{"line":38,"column":46}},"type":"binary-expr","locations":[{"start":{"line":38,"column":20},"end":{"line":38,"column":46}},{"start":{"line":38,"column":42},"end":{"line":38,"column":46}}]},"5":{"loc":{"start":{"line":47,"column":74},"end":{"line":47,"column":82}},"type":"default-arg","locations":[{"start":{"line":47,"column":74},"end":{"line":47,"column":82}}]},"6":{"loc":{"start":{"line":50,"column":4},"end":{"line":52,"column":null}},"type":"if","locations":[{"start":{"line":50,"column":4},"end":{"line":52,"column":null}},{"start":{"line":50,"column":4},"end":{"line":52,"column":null}}]},"7":{"loc":{"start":{"line":54,"column":4},"end":{"line":56,"column":null}},"type":"if","locations":[{"start":{"line":54,"column":4},"end":{"line":56,"column":null}},{"start":{"line":54,"column":4},"end":{"line":56,"column":null}}]},"8":{"loc":{"start":{"line":58,"column":4},"end":{"line":60,"column":null}},"type":"if","locations":[{"start":{"line":58,"column":4},"end":{"line":60,"column":null}},{"start":{"line":58,"column":4},"end":{"line":60,"column":null}}]},"9":{"loc":{"start":{"line":62,"column":4},"end":{"line":64,"column":null}},"type":"if","locations":[{"start":{"line":62,"column":4},"end":{"line":64,"column":null}},{"start":{"line":62,"column":4},"end":{"line":64,"column":null}}]},"10":{"loc":{"start":{"line":67,"column":4},"end":{"line":73,"column":null}},"type":"if","locations":[{"start":{"line":67,"column":4},"end":{"line":73,"column":null}},{"start":{"line":67,"column":4},"end":{"line":73,"column":null}}]},"11":{"loc":{"start":{"line":67,"column":8},"end":{"line":67,"column":17}},"type":"binary-expr","locations":[{"start":{"line":67,"column":8},"end":{"line":67,"column":17}},{"start":{"line":67,"column":21},"end":{"line":67,"column":30}}]},"12":{"loc":{"start":{"line":68,"column":6},"end":{"line":70,"column":null}},"type":"if","locations":[{"start":{"line":68,"column":6},"end":{"line":70,"column":null}},{"start":{"line":68,"column":6},"end":{"line":70,"column":null}}]},"13":{"loc":{"start":{"line":75,"column":4},"end":{"line":77,"column":null}},"type":"if","locations":[{"start":{"line":75,"column":4},"end":{"line":77,"column":null}},{"start":{"line":75,"column":4},"end":{"line":77,"column":null}}]},"14":{"loc":{"start":{"line":75,"column":8},"end":{"line":75,"column":29}},"type":"binary-expr","locations":[{"start":{"line":75,"column":8},"end":{"line":75,"column":29}},{"start":{"line":75,"column":33},"end":{"line":75,"column":59}}]},"15":{"loc":{"start":{"line":80,"column":6},"end":{"line":80,"column":39}},"type":"switch","locations":[{"start":{"line":80,"column":6},"end":{"line":80,"column":39}},{"start":{"line":81,"column":6},"end":{"line":81,"column":67}},{"start":{"line":82,"column":6},"end":{"line":82,"column":31}},{"start":{"line":83,"column":6},"end":{"line":83,"column":32}}]},"16":{"loc":{"start":{"line":86,"column":4},"end":{"line":88,"column":null}},"type":"if","locations":[{"start":{"line":86,"column":4},"end":{"line":88,"column":null}},{"start":{"line":86,"column":4},"end":{"line":88,"column":null}}]},"17":{"loc":{"start":{"line":86,"column":8},"end":{"line":86,"column":29}},"type":"binary-expr","locations":[{"start":{"line":86,"column":8},"end":{"line":86,"column":29}},{"start":{"line":86,"column":33},"end":{"line":86,"column":55}}]},"18":{"loc":{"start":{"line":90,"column":4},"end":{"line":100,"column":null}},"type":"if","locations":[{"start":{"line":90,"column":4},"end":{"line":100,"column":null}},{"start":{"line":90,"column":4},"end":{"line":100,"column":null}}]},"19":{"loc":{"start":{"line":91,"column":6},"end":{"line":93,"column":null}},"type":"if","locations":[{"start":{"line":91,"column":6},"end":{"line":93,"column":null}},{"start":{"line":91,"column":6},"end":{"line":93,"column":null}}]},"20":{"loc":{"start":{"line":95,"column":6},"end":{"line":97,"column":null}},"type":"if","locations":[{"start":{"line":95,"column":6},"end":{"line":97,"column":null}},{"start":{"line":95,"column":6},"end":{"line":97,"column":null}}]},"21":{"loc":{"start":{"line":95,"column":10},"end":{"line":95,"column":33}},"type":"binary-expr","locations":[{"start":{"line":95,"column":10},"end":{"line":95,"column":33}},{"start":{"line":95,"column":37},"end":{"line":95,"column":56}},{"start":{"line":95,"column":60},"end":{"line":95,"column":103}}]},"22":{"loc":{"start":{"line":103,"column":4},"end":{"line":105,"column":null}},"type":"if","locations":[{"start":{"line":103,"column":4},"end":{"line":105,"column":null}},{"start":{"line":103,"column":4},"end":{"line":105,"column":null}}]},"23":{"loc":{"start":{"line":103,"column":8},"end":{"line":103,"column":23}},"type":"binary-expr","locations":[{"start":{"line":103,"column":8},"end":{"line":103,"column":23}},{"start":{"line":103,"column":27},"end":{"line":103,"column":51}},{"start":{"line":103,"column":55},"end":{"line":103,"column":100}}]},"24":{"loc":{"start":{"line":108,"column":4},"end":{"line":111,"column":null}},"type":"if","locations":[{"start":{"line":108,"column":4},"end":{"line":111,"column":null}},{"start":{"line":108,"column":4},"end":{"line":111,"column":null}}]},"25":{"loc":{"start":{"line":122,"column":4},"end":{"line":124,"column":null}},"type":"if","locations":[{"start":{"line":122,"column":4},"end":{"line":124,"column":null}},{"start":{"line":122,"column":4},"end":{"line":124,"column":null}}]},"26":{"loc":{"start":{"line":151,"column":4},"end":{"line":153,"column":null}},"type":"if","locations":[{"start":{"line":151,"column":4},"end":{"line":153,"column":null}},{"start":{"line":151,"column":4},"end":{"line":153,"column":null}}]},"27":{"loc":{"start":{"line":163,"column":25},"end":{"line":163,"column":34}},"type":"binary-expr","locations":[{"start":{"line":163,"column":25},"end":{"line":163,"column":34}},{"start":{"line":163,"column":38},"end":{"line":163,"column":47}},{"start":{"line":163,"column":51},"end":{"line":163,"column":53}}]},"28":{"loc":{"start":{"line":164,"column":6},"end":{"line":166,"column":null}},"type":"if","locations":[{"start":{"line":164,"column":6},"end":{"line":166,"column":null}},{"start":{"line":164,"column":6},"end":{"line":166,"column":null}}]},"29":{"loc":{"start":{"line":168,"column":47},"end":{"line":168,"column":55}},"type":"cond-expr","locations":[{"start":{"line":168,"column":47},"end":{"line":168,"column":55}},{"start":{"line":168,"column":58},"end":{"line":168,"column":69}}]},"30":{"loc":{"start":{"line":199,"column":58},"end":{"line":199,"column":78}},"type":"binary-expr","locations":[{"start":{"line":199,"column":58},"end":{"line":199,"column":78}},{"start":{"line":199,"column":82},"end":{"line":199,"column":84}}]},"31":{"loc":{"start":{"line":201,"column":8},"end":{"line":203,"column":null}},"type":"if","locations":[{"start":{"line":201,"column":8},"end":{"line":203,"column":null}},{"start":{"line":201,"column":8},"end":{"line":203,"column":null}}]},"32":{"loc":{"start":{"line":205,"column":8},"end":{"line":208,"column":null}},"type":"if","locations":[{"start":{"line":205,"column":8},"end":{"line":208,"column":null}},{"start":{"line":205,"column":8},"end":{"line":208,"column":null}}]},"33":{"loc":{"start":{"line":222,"column":4},"end":{"line":224,"column":null}},"type":"if","locations":[{"start":{"line":222,"column":4},"end":{"line":224,"column":null}},{"start":{"line":222,"column":4},"end":{"line":224,"column":null}}]},"34":{"loc":{"start":{"line":228,"column":4},"end":{"line":230,"column":null}},"type":"if","locations":[{"start":{"line":228,"column":4},"end":{"line":230,"column":null}},{"start":{"line":228,"column":4},"end":{"line":230,"column":null}}]},"35":{"loc":{"start":{"line":235,"column":32},"end":{"line":235,"column":34}},"type":"cond-expr","locations":[{"start":{"line":235,"column":32},"end":{"line":235,"column":34}},{"start":{"line":235,"column":37},"end":{"line":235,"column":40}}]},"36":{"loc":{"start":{"line":245,"column":6},"end":{"line":247,"column":null}},"type":"if","locations":[{"start":{"line":245,"column":6},"end":{"line":247,"column":null}},{"start":{"line":245,"column":6},"end":{"line":247,"column":null}}]},"37":{"loc":{"start":{"line":245,"column":10},"end":{"line":245,"column":19}},"type":"binary-expr","locations":[{"start":{"line":245,"column":10},"end":{"line":245,"column":19}},{"start":{"line":245,"column":23},"end":{"line":245,"column":44}}]},"38":{"loc":{"start":{"line":249,"column":6},"end":{"line":251,"column":null}},"type":"if","locations":[{"start":{"line":249,"column":6},"end":{"line":251,"column":null}},{"start":{"line":249,"column":6},"end":{"line":251,"column":null}}]},"39":{"loc":{"start":{"line":258,"column":8},"end":{"line":260,"column":null}},"type":"if","locations":[{"start":{"line":258,"column":8},"end":{"line":260,"column":null}},{"start":{"line":258,"column":8},"end":{"line":260,"column":null}}]},"40":{"loc":{"start":{"line":275,"column":120},"end":{"line":275,"column":123}},"type":"default-arg","locations":[{"start":{"line":275,"column":120},"end":{"line":275,"column":123}}]},"41":{"loc":{"start":{"line":278,"column":4},"end":{"line":290,"column":null}},"type":"if","locations":[{"start":{"line":278,"column":4},"end":{"line":290,"column":null}},{"start":{"line":278,"column":4},"end":{"line":290,"column":null}}]},"42":{"loc":{"start":{"line":282,"column":18},"end":{"line":282,"column":32}},"type":"binary-expr","locations":[{"start":{"line":282,"column":18},"end":{"line":282,"column":32}},{"start":{"line":282,"column":36},"end":{"line":282,"column":53}}]},"43":{"loc":{"start":{"line":285,"column":6},"end":{"line":287,"column":null}},"type":"if","locations":[{"start":{"line":285,"column":6},"end":{"line":287,"column":null}},{"start":{"line":285,"column":6},"end":{"line":287,"column":null}}]},"44":{"loc":{"start":{"line":308,"column":4},"end":{"line":310,"column":null}},"type":"if","locations":[{"start":{"line":308,"column":4},"end":{"line":310,"column":null}},{"start":{"line":308,"column":4},"end":{"line":310,"column":null}}]},"45":{"loc":{"start":{"line":308,"column":8},"end":{"line":308,"column":17}},"type":"binary-expr","locations":[{"start":{"line":308,"column":8},"end":{"line":308,"column":17}},{"start":{"line":308,"column":21},"end":{"line":308,"column":49}}]},"46":{"loc":{"start":{"line":312,"column":4},"end":{"line":314,"column":null}},"type":"if","locations":[{"start":{"line":312,"column":4},"end":{"line":314,"column":null}},{"start":{"line":312,"column":4},"end":{"line":314,"column":null}}]},"47":{"loc":{"start":{"line":323,"column":4},"end":{"line":325,"column":null}},"type":"if","locations":[{"start":{"line":323,"column":4},"end":{"line":325,"column":null}},{"start":{"line":323,"column":4},"end":{"line":325,"column":null}}]},"48":{"loc":{"start":{"line":323,"column":8},"end":{"line":323,"column":18}},"type":"binary-expr","locations":[{"start":{"line":323,"column":8},"end":{"line":323,"column":18}},{"start":{"line":323,"column":22},"end":{"line":323,"column":52}}]},"49":{"loc":{"start":{"line":332,"column":4},"end":{"line":334,"column":null}},"type":"if","locations":[{"start":{"line":332,"column":4},"end":{"line":334,"column":null}},{"start":{"line":332,"column":4},"end":{"line":334,"column":null}}]},"50":{"loc":{"start":{"line":332,"column":8},"end":{"line":332,"column":12}},"type":"binary-expr","locations":[{"start":{"line":332,"column":8},"end":{"line":332,"column":12}},{"start":{"line":332,"column":16},"end":{"line":332,"column":51}}]},"51":{"loc":{"start":{"line":338,"column":4},"end":{"line":340,"column":null}},"type":"if","locations":[{"start":{"line":338,"column":4},"end":{"line":340,"column":null}},{"start":{"line":338,"column":4},"end":{"line":340,"column":null}}]},"52":{"loc":{"start":{"line":346,"column":11},"end":{"line":346,"column":44}},"type":"binary-expr","locations":[{"start":{"line":346,"column":11},"end":{"line":346,"column":44}},{"start":{"line":346,"column":48},"end":{"line":346,"column":85}}]},"53":{"loc":{"start":{"line":352,"column":6},"end":{"line":354,"column":null}},"type":"if","locations":[{"start":{"line":352,"column":6},"end":{"line":354,"column":null}},{"start":{"line":352,"column":6},"end":{"line":354,"column":null}}]},"54":{"loc":{"start":{"line":373,"column":4},"end":{"line":379,"column":null}},"type":"if","locations":[{"start":{"line":373,"column":4},"end":{"line":379,"column":null}},{"start":{"line":373,"column":4},"end":{"line":379,"column":null}}]},"55":{"loc":{"start":{"line":386,"column":9},"end":{"line":386,"column":13}},"type":"binary-expr","locations":[{"start":{"line":386,"column":9},"end":{"line":386,"column":13}},{"start":{"line":386,"column":18},"end":{"line":386,"column":43}},{"start":{"line":386,"column":47},"end":{"line":386,"column":77}}]}},"s":{"0":4,"1":4,"2":4,"3":4,"4":16,"5":16,"6":16,"7":16,"8":74,"9":0,"10":74,"11":7,"12":74,"13":0,"14":74,"15":9,"16":65,"17":2,"18":1,"19":64,"20":1,"21":63,"22":4,"23":3,"24":1,"25":1,"26":54,"27":10,"28":44,"29":17,"30":0,"31":17,"32":7,"33":2,"34":15,"35":27,"36":1,"37":26,"38":25,"39":25,"40":1,"41":1,"42":0,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":15,"50":25,"51":25,"52":25,"53":25,"54":25,"55":25,"56":28,"57":0,"58":28,"59":2,"60":2,"61":3,"62":1,"63":2,"64":2,"65":1,"66":1,"67":1,"68":1,"69":2,"70":2,"71":2,"72":2,"73":1,"74":1,"75":1,"76":1,"77":1,"78":25,"79":22,"80":22,"81":22,"82":46,"83":0,"84":46,"85":0,"86":0,"87":46,"88":22,"89":46,"90":46,"91":0,"92":46,"93":0,"94":46,"95":46,"96":46,"97":46,"98":46,"99":46,"100":2,"101":2,"102":0,"103":2,"104":0,"105":2,"106":2,"107":2,"108":7,"109":0,"110":7,"111":17,"112":7,"113":7,"114":2,"115":2,"116":71,"117":71,"118":22,"119":22,"120":22,"121":22,"122":22,"123":5,"124":22,"125":71,"126":71,"127":76,"128":71,"129":50,"130":152,"131":50,"132":9,"133":9,"134":1,"135":8,"136":0,"137":8,"138":8,"139":8,"140":7,"141":3,"142":0,"143":3,"144":8,"145":8,"146":0,"147":8,"148":8,"149":8,"150":1,"151":7,"152":46,"153":82,"154":0,"155":0,"156":0,"157":82,"158":4,"159":142,"160":142,"161":142,"162":152,"163":152,"164":10,"165":10,"166":10,"167":10,"168":10,"169":142,"170":4,"171":3},"f":{"0":16,"1":74,"2":7,"3":1,"4":15,"5":28,"6":2,"7":1,"8":25,"9":22,"10":46,"11":2,"12":2,"13":17,"14":71,"15":50,"16":152,"17":9,"18":3,"19":8,"20":46,"21":82,"22":142,"23":3},"b":{"0":[12],"1":[0,16],"2":[16,16],"3":[4,12],"4":[16,16],"5":[4],"6":[0,74],"7":[7,67],"8":[0,74],"9":[9,65],"10":[2,63],"11":[65,63],"12":[1,1],"13":[1,63],"14":[64,18],"15":[4,3,1,1],"16":[10,44],"17":[54,51],"18":[17,27],"19":[0,17],"20":[2,15],"21":[17,2,2],"22":[1,26],"23":[27,2,1],"24":[25,1],"25":[0,1],"26":[0,28],"27":[2,0,0],"28":[1,2],"29":[0,2],"30":[22,0],"31":[0,46],"32":[0,46],"33":[0,46],"34":[0,46],"35":[10,36],"36":[0,2],"37":[2,2],"38":[0,2],"39":[0,7],"40":[71],"41":[22,49],"42":[22,5],"43":[5,17],"44":[1,8],"45":[9,9],"46":[0,8],"47":[0,3],"48":[3,3],"49":[0,8],"50":[8,8],"51":[1,7],"52":[46,16],"53":[0,0],"54":[10,142],"55":[3,2,2]}}
{"/home/runner/work/json2jsii/json2jsii/lib/code.ts": {"path":"/home/runner/work/json2jsii/json2jsii/lib/code.ts","statementMap":{"0":{"start":{"line":2,"column":18},"end":{"line":2,"column":46}},"1":{"start":{"line":3,"column":10},"end":{"line":3,"column":21}},"2":{"start":{"line":6,"column":4},"end":{"line":6,"column":20}},"3":{"start":{"line":7,"column":4},"end":{"line":7,"column":21}},"4":{"start":{"line":11,"column":4},"end":{"line":11,"column":21}},"5":{"start":{"line":12,"column":4},"end":{"line":12,"column":20}},"6":{"start":{"line":16,"column":4},"end":{"line":16,"column":27}},"7":{"start":{"line":20,"column":4},"end":{"line":20,"column":20}},"8":{"start":{"line":24,"column":17},"end":{"line":24,"column":47}},"9":{"start":{"line":25,"column":4},"end":{"line":25,"column":26}},"10":{"start":{"line":29,"column":4},"end":{"line":29,"column":33}},"11":{"start":{"line":1,"column":0},"end":{"line":1,"column":13}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":1,"column":0},"end":{"line":1,"column":13}},"loc":{"start":{"line":1,"column":0},"end":{"line":31,"column":1}}},"1":{"name":"(anonymous_1)","decl":{"start":{"line":5,"column":9},"end":{"line":5,"column":13}},"loc":{"start":{"line":5,"column":31},"end":{"line":8,"column":3}}},"2":{"name":"(anonymous_2)","decl":{"start":{"line":10,"column":9},"end":{"line":10,"column":14}},"loc":{"start":{"line":10,"column":32},"end":{"line":13,"column":3}}},"3":{"name":"(anonymous_3)","decl":{"start":{"line":15,"column":9},"end":{"line":15,"column":18}},"loc":{"start":{"line":15,"column":31},"end":{"line":17,"column":3}}},"4":{"name":"(anonymous_4)","decl":{"start":{"line":19,"column":9},"end":{"line":19,"column":19}},"loc":{"start":{"line":19,"column":19},"end":{"line":21,"column":3}}},"5":{"name":"(anonymous_5)","decl":{"start":{"line":23,"column":9},"end":{"line":23,"column":13}},"loc":{"start":{"line":23,"column":31},"end":{"line":26,"column":3}}},"6":{"name":"(anonymous_6)","decl":{"start":{"line":28,"column":9},"end":{"line":28,"column":15}},"loc":{"start":{"line":28,"column":15},"end":{"line":30,"column":3}}}},"branchMap":{"0":{"loc":{"start":{"line":5,"column":29},"end":{"line":5,"column":31}},"type":"default-arg","locations":[{"start":{"line":5,"column":29},"end":{"line":5,"column":31}}]},"1":{"loc":{"start":{"line":10,"column":30},"end":{"line":10,"column":32}},"type":"default-arg","locations":[{"start":{"line":10,"column":30},"end":{"line":10,"column":32}}]},"2":{"loc":{"start":{"line":23,"column":29},"end":{"line":23,"column":31}},"type":"default-arg","locations":[{"start":{"line":23,"column":29},"end":{"line":23,"column":31}}]}},"s":{"0":15,"1":15,"2":28,"3":28,"4":28,"5":28,"6":28,"7":28,"8":452,"9":452,"10":15,"11":4},"f":{"0":15,"1":28,"2":28,"3":28,"4":28,"5":452,"6":15},"b":{"0":[0],"1":[0],"2":[71]}}
,"/home/runner/work/json2jsii/json2jsii/lib/index.ts": {"path":"/home/runner/work/json2jsii/json2jsii/lib/index.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":33}}},"fnMap":{},"branchMap":{},"s":{"0":4},"f":{},"b":{}}
,"/home/runner/work/json2jsii/json2jsii/lib/type-generator.ts": {"path":"/home/runner/work/json2jsii/json2jsii/lib/type-generator.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":30}},"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":39}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":39}},"3":{"start":{"line":7,"column":24},"end":{"line":7,"column":68}},"4":{"start":{"line":8,"column":27},"end":{"line":8,"column":43}},"5":{"start":{"line":52,"column":19},"end":{"line":52,"column":79}},"6":{"start":{"line":53,"column":19},"end":{"line":53,"column":52}},"7":{"start":{"line":63,"column":4},"end":{"line":63,"column":41}},"8":{"start":{"line":64,"column":4},"end":{"line":64,"column":50}},"9":{"start":{"line":35,"column":15},"end":{"line":35,"column":38}},"10":{"start":{"line":36,"column":17},"end":{"line":36,"column":25}},"11":{"start":{"line":38,"column":4},"end":{"line":47,"column":16}},"12":{"start":{"line":39,"column":6},"end":{"line":39,"column":28}},"13":{"start":{"line":40,"column":6},"end":{"line":46,"column":null}},"14":{"start":{"line":41,"column":23},"end":{"line":41,"column":47}},"15":{"start":{"line":42,"column":20},"end":{"line":42,"column":24}},"16":{"start":{"line":43,"column":23},"end":{"line":43,"column":58}},"17":{"start":{"line":44,"column":22},"end":{"line":44,"column":59}},"18":{"start":{"line":45,"column":8},"end":{"line":45,"column":41}},"19":{"start":{"line":49,"column":4},"end":{"line":49,"column":18}},"20":{"start":{"line":76,"column":4},"end":{"line":78,"column":null}},"21":{"start":{"line":77,"column":6},"end":{"line":77,"column":80}},"22":{"start":{"line":80,"column":4},"end":{"line":82,"column":null}},"23":{"start":{"line":81,"column":6},"end":{"line":81,"column":65}},"24":{"start":{"line":84,"column":4},"end":{"line":86,"column":null}},"25":{"start":{"line":85,"column":6},"end":{"line":85,"column":106}},"26":{"start":{"line":88,"column":4},"end":{"line":90,"column":null}},"27":{"start":{"line":89,"column":6},"end":{"line":89,"column":34}},"28":{"start":{"line":93,"column":4},"end":{"line":99,"column":null}},"29":{"start":{"line":94,"column":6},"end":{"line":96,"column":null}},"30":{"start":{"line":95,"column":8},"end":{"line":95,"column":24}},"31":{"start":{"line":101,"column":4},"end":{"line":103,"column":null}},"32":{"start":{"line":102,"column":6},"end":{"line":102,"column":20}},"33":{"start":{"line":105,"column":4},"end":{"line":110,"column":null}},"34":{"start":{"line":106,"column":22},"end":{"line":106,"column":39}},"35":{"start":{"line":107,"column":20},"end":{"line":107,"column":67}},"36":{"start":{"line":108,"column":18},"end":{"line":108,"column":31}},"37":{"start":{"line":109,"column":19},"end":{"line":109,"column":32}},"38":{"start":{"line":112,"column":4},"end":{"line":114,"column":null}},"39":{"start":{"line":113,"column":6},"end":{"line":113,"column":22}},"40":{"start":{"line":116,"column":4},"end":{"line":126,"column":null}},"41":{"start":{"line":117,"column":6},"end":{"line":119,"column":null}},"42":{"start":{"line":118,"column":8},"end":{"line":118,"column":22}},"43":{"start":{"line":121,"column":6},"end":{"line":123,"column":null}},"44":{"start":{"line":121,"column":80},"end":{"line":121,"column":102}},"45":{"start":{"line":122,"column":8},"end":{"line":122,"column":55}},"46":{"start":{"line":125,"column":6},"end":{"line":125,"column":22}},"47":{"start":{"line":129,"column":4},"end":{"line":131,"column":null}},"48":{"start":{"line":130,"column":6},"end":{"line":130,"column":94}},"49":{"start":{"line":134,"column":4},"end":{"line":137,"column":null}},"50":{"start":{"line":135,"column":6},"end":{"line":135,"column":null}},"51":{"start":{"line":136,"column":6},"end":{"line":136,"column":22}},"52":{"start":{"line":139,"column":4},"end":{"line":139,"column":17}},"53":{"start":{"line":148,"column":4},"end":{"line":150,"column":null}},"54":{"start":{"line":149,"column":6},"end":{"line":149,"column":13}},"55":{"start":{"line":152,"column":4},"end":{"line":152,"column":45}},"56":{"start":{"line":156,"column":17},"end":{"line":156,"column":27}},"57":{"start":{"line":157,"column":4},"end":{"line":157,"column":24}},"58":{"start":{"line":158,"column":4},"end":{"line":158,"column":25}},"59":{"start":{"line":167,"column":4},"end":{"line":174,"column":null}},"60":{"start":{"line":168,"column":19},"end":{"line":168,"column":51}},"61":{"start":{"line":169,"column":22},"end":{"line":169,"column":44}},"62":{"start":{"line":170,"column":6},"end":{"line":170,"column":20}},"63":{"start":{"line":171,"column":6},"end":{"line":171,"column":18}},"64":{"start":{"line":172,"column":6},"end":{"line":172,"column":36}},"65":{"start":{"line":173,"column":6},"end":{"line":173,"column":34}},"66":{"start":{"line":180,"column":20},"end":{"line":180,"column":39}},"67":{"start":{"line":181,"column":4},"end":{"line":188,"column":null}},"68":{"start":{"line":182,"column":6},"end":{"line":184,"column":null}},"69":{"start":{"line":183,"column":8},"end":{"line":183,"column":21}},"70":{"start":{"line":186,"column":19},"end":{"line":186,"column":69}},"71":{"start":{"line":187,"column":6},"end":{"line":187,"column":25}},"72":{"start":{"line":190,"column":4},"end":{"line":207,"column":7}},"73":{"start":{"line":191,"column":6},"end":{"line":191,"column":55}},"74":{"start":{"line":193,"column":6},"end":{"line":193,"column":49}},"75":{"start":{"line":195,"column":6},"end":{"line":200,"column":null}},"76":{"start":{"line":196,"column":27},"end":{"line":196,"column":74}},"77":{"start":{"line":197,"column":8},"end":{"line":197,"column":83}},"78":{"start":{"line":198,"column":8},"end":{"line":198,"column":52}},"79":{"start":{"line":199,"column":8},"end":{"line":199,"column":26}},"80":{"start":{"line":202,"column":6},"end":{"line":202,"column":56}},"81":{"start":{"line":203,"column":6},"end":{"line":203,"column":85}},"82":{"start":{"line":204,"column":6},"end":{"line":204,"column":24}},"83":{"start":{"line":206,"column":6},"end":{"line":206,"column":24}},"84":{"start":{"line":209,"column":4},"end":{"line":209,"column":16}},"85":{"start":{"line":213,"column":4},"end":{"line":232,"column":7}},"86":{"start":{"line":214,"column":6},"end":{"line":214,"column":67}},"87":{"start":{"line":215,"column":6},"end":{"line":215,"column":53}},"88":{"start":{"line":217,"column":6},"end":{"line":229,"column":null}},"89":{"start":{"line":219,"column":8},"end":{"line":221,"column":null}},"90":{"start":{"line":220,"column":10},"end":{"line":220,"column":19}},"91":{"start":{"line":223,"column":8},"end":{"line":226,"column":null}},"92":{"start":{"line":224,"column":10},"end":{"line":224,"column":110}},"93":{"start":{"line":225,"column":10},"end":{"line":225,"column":19}},"94":{"start":{"line":228,"column":8},"end":{"line":228,"column":74}},"95":{"start":{"line":231,"column":6},"end":{"line":231,"column":24}},"96":{"start":{"line":236,"column":25},"end":{"line":236,"column":29}},"97":{"start":{"line":240,"column":4},"end":{"line":242,"column":null}},"98":{"start":{"line":241,"column":6},"end":{"line":241,"column":29}},"99":{"start":{"line":246,"column":4},"end":{"line":248,"column":null}},"100":{"start":{"line":247,"column":6},"end":{"line":247,"column":31}},"101":{"start":{"line":250,"column":4},"end":{"line":250,"column":84}},"102":{"start":{"line":251,"column":25},"end":{"line":251,"column":78}},"103":{"start":{"line":252,"column":21},"end":{"line":252,"column":61}},"104":{"start":{"line":253,"column":21},"end":{"line":253,"column":40}},"105":{"start":{"line":255,"column":4},"end":{"line":255,"column":63}},"106":{"start":{"line":256,"column":4},"end":{"line":256,"column":16}},"107":{"start":{"line":261,"column":4},"end":{"line":288,"column":7}},"108":{"start":{"line":263,"column":6},"end":{"line":265,"column":null}},"109":{"start":{"line":264,"column":8},"end":{"line":264,"column":77}},"110":{"start":{"line":267,"column":6},"end":{"line":269,"column":null}},"111":{"start":{"line":268,"column":8},"end":{"line":268,"column":58}},"112":{"start":{"line":271,"column":6},"end":{"line":271,"column":61}},"113":{"start":{"line":273,"column":6},"end":{"line":273,"column":48}},"114":{"start":{"line":275,"column":6},"end":{"line":285,"column":null}},"115":{"start":{"line":276,"column":8},"end":{"line":278,"column":null}},"116":{"start":{"line":277,"column":10},"end":{"line":277,"column":71}},"117":{"start":{"line":281,"column":27},"end":{"line":281,"column":121}},"118":{"start":{"line":281,"column":95},"end":{"line":281,"column":96}},"119":{"start":{"line":283,"column":8},"end":{"line":283,"column":37}},"120":{"start":{"line":284,"column":8},"end":{"line":284,"column":49}},"121":{"start":{"line":287,"column":6},"end":{"line":287,"column":24}},"122":{"start":{"line":290,"column":4},"end":{"line":290,"column":20}},"123":{"start":{"line":294,"column":4},"end":{"line":294,"column":21}},"124":{"start":{"line":296,"column":4},"end":{"line":308,"column":null}},"125":{"start":{"line":297,"column":6},"end":{"line":297,"column":55}},"126":{"start":{"line":299,"column":29},"end":{"line":299,"column":76}},"127":{"start":{"line":300,"column":18},"end":{"line":300,"column":53}},"128":{"start":{"line":302,"column":6},"end":{"line":302,"column":37}},"129":{"start":{"line":303,"column":6},"end":{"line":305,"column":null}},"130":{"start":{"line":304,"column":8},"end":{"line":304,"column":37}},"131":{"start":{"line":307,"column":6},"end":{"line":307,"column":22}},"132":{"start":{"line":310,"column":4},"end":{"line":310,"column":32}},"133":{"start":{"line":312,"column":4},"end":{"line":314,"column":null}},"134":{"start":{"line":313,"column":6},"end":{"line":313,"column":40}},"135":{"start":{"line":316,"column":4},"end":{"line":316,"column":null}},"136":{"start":{"line":320,"column":20},"end":{"line":320,"column":108}},"137":{"start":{"line":320,"column":84},"end":{"line":320,"column":97}},"138":{"start":{"line":321,"column":4},"end":{"line":321,"column":47}},"139":{"start":{"line":325,"column":19},"end":{"line":325,"column":35}},"140":{"start":{"line":326,"column":4},"end":{"line":328,"column":null}},"141":{"start":{"line":327,"column":6},"end":{"line":327,"column":61}},"142":{"start":{"line":330,"column":4},"end":{"line":332,"column":null}},"143":{"start":{"line":331,"column":6},"end":{"line":331,"column":19}},"144":{"start":{"line":334,"column":18},"end":{"line":334,"column":62}},"145":{"start":{"line":335,"column":21},"end":{"line":335,"column":77}},"146":{"start":{"line":336,"column":19},"end":{"line":336,"column":45}},"147":{"start":{"line":337,"column":4},"end":{"line":337,"column":52}},"148":{"start":{"line":341,"column":4},"end":{"line":343,"column":null}},"149":{"start":{"line":342,"column":6},"end":{"line":342,"column":61}},"150":{"start":{"line":345,"column":4},"end":{"line":345,"column":56}},"151":{"start":{"line":349,"column":16},"end":{"line":349,"column":24}},"152":{"start":{"line":350,"column":4},"end":{"line":352,"column":null}},"153":{"start":{"line":351,"column":6},"end":{"line":351,"column":53}},"154":{"start":{"line":354,"column":19},"end":{"line":354,"column":56}},"155":{"start":{"line":355,"column":18},"end":{"line":355,"column":42}},"156":{"start":{"line":356,"column":4},"end":{"line":358,"column":null}},"157":{"start":{"line":357,"column":6},"end":{"line":357,"column":78}},"158":{"start":{"line":360,"column":4},"end":{"line":360,"column":17}},"159":{"start":{"line":364,"column":4},"end":{"line":364,"column":86}},"160":{"start":{"line":368,"column":4},"end":{"line":373,"column":null}},"161":{"start":{"line":369,"column":17},"end":{"line":369,"column":36}},"162":{"start":{"line":370,"column":6},"end":{"line":372,"column":null}},"163":{"start":{"line":371,"column":8},"end":{"line":371,"column":20}},"164":{"start":{"line":375,"column":4},"end":{"line":375,"column":17}},"165":{"start":{"line":27,"column":0},"end":{"line":27,"column":13}},"166":{"start":{"line":380,"column":2},"end":{"line":380,"column":79}},"167":{"start":{"line":384,"column":2},"end":{"line":384,"column":44}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":62,"column":2},"end":{"line":62,"column":14}},"loc":{"start":{"line":62,"column":49},"end":{"line":65,"column":3}}},"1":{"name":"(anonymous_1)","decl":{"start":{"line":33,"column":9},"end":{"line":33,"column":15}},"loc":{"start":{"line":33,"column":50},"end":{"line":50,"column":3}}},"2":{"name":"(anonymous_2)","decl":{"start":{"line":73,"column":9},"end":{"line":73,"column":16}},"loc":{"start":{"line":73,"column":81},"end":{"line":140,"column":3}}},"3":{"name":"(anonymous_3)","decl":{"start":{"line":121,"column":75},"end":{"line":121,"column":76}},"loc":{"start":{"line":121,"column":80},"end":{"line":121,"column":102}}},"4":{"name":"(anonymous_4)","decl":{"start":{"line":147,"column":9},"end":{"line":147,"column":16}},"loc":{"start":{"line":147,"column":68},"end":{"line":153,"column":3}}},"5":{"name":"(anonymous_5)","decl":{"start":{"line":155,"column":9},"end":{"line":155,"column":15}},"loc":{"start":{"line":155,"column":15},"end":{"line":159,"column":3}}},"6":{"name":"(anonymous_6)","decl":{"start":{"line":166,"column":9},"end":{"line":166,"column":17}},"loc":{"start":{"line":166,"column":28},"end":{"line":175,"column":3}}},"7":{"name":"(anonymous_7)","decl":{"start":{"line":179,"column":10},"end":{"line":179,"column":19}},"loc":{"start":{"line":179,"column":67},"end":{"line":210,"column":3}}},"8":{"name":"(anonymous_8)","decl":{"start":{"line":190,"column":27},"end":{"line":190,"column":31}},"loc":{"start":{"line":190,"column":34},"end":{"line":207,"column":5}}},"9":{"name":"(anonymous_9)","decl":{"start":{"line":212,"column":10},"end":{"line":212,"column":20}},"loc":{"start":{"line":212,"column":80},"end":{"line":233,"column":3}}},"10":{"name":"(anonymous_10)","decl":{"start":{"line":213,"column":27},"end":{"line":213,"column":31}},"loc":{"start":{"line":213,"column":34},"end":{"line":232,"column":5}}},"11":{"name":"(anonymous_11)","decl":{"start":{"line":235,"column":10},"end":{"line":235,"column":22}},"loc":{"start":{"line":235,"column":112},"end":{"line":257,"column":3}}},"12":{"name":"(anonymous_12)","decl":{"start":{"line":259,"column":10},"end":{"line":259,"column":18}},"loc":{"start":{"line":259,"column":72},"end":{"line":291,"column":3}}},"13":{"name":"(anonymous_13)","decl":{"start":{"line":261,"column":27},"end":{"line":261,"column":31}},"loc":{"start":{"line":261,"column":34},"end":{"line":288,"column":5}}},"14":{"name":"(anonymous_14)","decl":{"start":{"line":281,"column":90},"end":{"line":281,"column":91}},"loc":{"start":{"line":281,"column":95},"end":{"line":281,"column":96}}},"15":{"name":"(anonymous_15)","decl":{"start":{"line":293,"column":10},"end":{"line":293,"column":25}},"loc":{"start":{"line":293,"column":118},"end":{"line":317,"column":3}}},"16":{"name":"(anonymous_16)","decl":{"start":{"line":319,"column":10},"end":{"line":319,"column":25}},"loc":{"start":{"line":319,"column":63},"end":{"line":322,"column":3}}},"17":{"name":"(anonymous_17)","decl":{"start":{"line":320,"column":79},"end":{"line":320,"column":80}},"loc":{"start":{"line":320,"column":84},"end":{"line":320,"column":97}}},"18":{"name":"(anonymous_18)","decl":{"start":{"line":324,"column":10},"end":{"line":324,"column":20}},"loc":{"start":{"line":324,"column":37},"end":{"line":338,"column":3}}},"19":{"name":"(anonymous_19)","decl":{"start":{"line":340,"column":10},"end":{"line":340,"column":22}},"loc":{"start":{"line":340,"column":60},"end":{"line":346,"column":3}}},"20":{"name":"(anonymous_20)","decl":{"start":{"line":348,"column":10},"end":{"line":348,"column":26}},"loc":{"start":{"line":348,"column":43},"end":{"line":361,"column":3}}},"21":{"name":"(anonymous_21)","decl":{"start":{"line":363,"column":10},"end":{"line":363,"column":28}},"loc":{"start":{"line":363,"column":69},"end":{"line":365,"column":3}}},"22":{"name":"(anonymous_22)","decl":{"start":{"line":367,"column":10},"end":{"line":367,"column":20}},"loc":{"start":{"line":367,"column":32},"end":{"line":376,"column":3}}},"23":{"name":"supportedUnionOptionType","decl":{"start":{"line":379,"column":9},"end":{"line":379,"column":33}},"loc":{"start":{"line":379,"column":43},"end":{"line":381,"column":1}}},"24":{"name":"pascalCase","decl":{"start":{"line":383,"column":9},"end":{"line":383,"column":19}},"loc":{"start":{"line":383,"column":29},"end":{"line":385,"column":1}}}},"branchMap":{"0":{"loc":{"start":{"line":62,"column":46},"end":{"line":62,"column":49}},"type":"default-arg","locations":[{"start":{"line":62,"column":46},"end":{"line":62,"column":49}}]},"1":{"loc":{"start":{"line":63,"column":34},"end":{"line":63,"column":38}},"type":"cond-expr","locations":[{"start":{"line":63,"column":34},"end":{"line":63,"column":38}},{"start":{"line":63,"column":38},"end":{"line":63,"column":40}}]},"2":{"loc":{"start":{"line":63,"column":16},"end":{"line":63,"column":38}},"type":"binary-expr","locations":[{"start":{"line":63,"column":16},"end":{"line":63,"column":38}},{"start":{"line":63,"column":34},"end":{"line":63,"column":38}}]},"3":{"loc":{"start":{"line":64,"column":42},"end":{"line":64,"column":46}},"type":"cond-expr","locations":[{"start":{"line":64,"column":42},"end":{"line":64,"column":46}},{"start":{"line":64,"column":46},"end":{"line":64,"column":49}}]},"4":{"loc":{"start":{"line":64,"column":20},"end":{"line":64,"column":46}},"type":"binary-expr","locations":[{"start":{"line":64,"column":20},"end":{"line":64,"column":46}},{"start":{"line":64,"column":42},"end":{"line":64,"column":46}}]},"5":{"loc":{"start":{"line":40,"column":6},"end":{"line":46,"column":null}},"type":"if","locations":[{"start":{"line":40,"column":6},"end":{"line":46,"column":null}},{"start":{"line":40,"column":6},"end":{"line":46,"column":null}}]},"6":{"loc":{"start":{"line":73,"column":73},"end":{"line":73,"column":81}},"type":"default-arg","locations":[{"start":{"line":73,"column":73},"end":{"line":73,"column":81}}]},"7":{"loc":{"start":{"line":76,"column":4},"end":{"line":78,"column":null}},"type":"if","locations":[{"start":{"line":76,"column":4},"end":{"line":78,"column":null}},{"start":{"line":76,"column":4},"end":{"line":78,"column":null}}]},"8":{"loc":{"start":{"line":80,"column":4},"end":{"line":82,"column":null}},"type":"if","locations":[{"start":{"line":80,"column":4},"end":{"line":82,"column":null}},{"start":{"line":80,"column":4},"end":{"line":82,"column":null}}]},"9":{"loc":{"start":{"line":84,"column":4},"end":{"line":86,"column":null}},"type":"if","locations":[{"start":{"line":84,"column":4},"end":{"line":86,"column":null}},{"start":{"line":84,"column":4},"end":{"line":86,"column":null}}]},"10":{"loc":{"start":{"line":88,"column":4},"end":{"line":90,"column":null}},"type":"if","locations":[{"start":{"line":88,"column":4},"end":{"line":90,"column":null}},{"start":{"line":88,"column":4},"end":{"line":90,"column":null}}]},"11":{"loc":{"start":{"line":93,"column":4},"end":{"line":99,"column":null}},"type":"if","locations":[{"start":{"line":93,"column":4},"end":{"line":99,"column":null}},{"start":{"line":93,"column":4},"end":{"line":99,"column":null}}]},"12":{"loc":{"start":{"line":93,"column":8},"end":{"line":93,"column":17}},"type":"binary-expr","locations":[{"start":{"line":93,"column":8},"end":{"line":93,"column":17}},{"start":{"line":93,"column":21},"end":{"line":93,"column":30}}]},"13":{"loc":{"start":{"line":94,"column":6},"end":{"line":96,"column":null}},"type":"if","locations":[{"start":{"line":94,"column":6},"end":{"line":96,"column":null}},{"start":{"line":94,"column":6},"end":{"line":96,"column":null}}]},"14":{"loc":{"start":{"line":101,"column":4},"end":{"line":103,"column":null}},"type":"if","locations":[{"start":{"line":101,"column":4},"end":{"line":103,"column":null}},{"start":{"line":101,"column":4},"end":{"line":103,"column":null}}]},"15":{"loc":{"start":{"line":101,"column":8},"end":{"line":101,"column":29}},"type":"binary-expr","locations":[{"start":{"line":101,"column":8},"end":{"line":101,"column":29}},{"start":{"line":101,"column":33},"end":{"line":101,"column":59}}]},"16":{"loc":{"start":{"line":106,"column":6},"end":{"line":106,"column":39}},"type":"switch","locations":[{"start":{"line":106,"column":6},"end":{"line":106,"column":39}},{"start":{"line":107,"column":6},"end":{"line":107,"column":67}},{"start":{"line":108,"column":6},"end":{"line":108,"column":31}},{"start":{"line":109,"column":6},"end":{"line":109,"column":32}}]},"17":{"loc":{"start":{"line":112,"column":4},"end":{"line":114,"column":null}},"type":"if","locations":[{"start":{"line":112,"column":4},"end":{"line":114,"column":null}},{"start":{"line":112,"column":4},"end":{"line":114,"column":null}}]},"18":{"loc":{"start":{"line":112,"column":8},"end":{"line":112,"column":29}},"type":"binary-expr","locations":[{"start":{"line":112,"column":8},"end":{"line":112,"column":29}},{"start":{"line":112,"column":33},"end":{"line":112,"column":55}}]},"19":{"loc":{"start":{"line":116,"column":4},"end":{"line":126,"column":null}},"type":"if","locations":[{"start":{"line":116,"column":4},"end":{"line":126,"column":null}},{"start":{"line":116,"column":4},"end":{"line":126,"column":null}}]},"20":{"loc":{"start":{"line":117,"column":6},"end":{"line":119,"column":null}},"type":"if","locations":[{"start":{"line":117,"column":6},"end":{"line":119,"column":null}},{"start":{"line":117,"column":6},"end":{"line":119,"column":null}}]},"21":{"loc":{"start":{"line":121,"column":6},"end":{"line":123,"column":null}},"type":"if","locations":[{"start":{"line":121,"column":6},"end":{"line":123,"column":null}},{"start":{"line":121,"column":6},"end":{"line":123,"column":null}}]},"22":{"loc":{"start":{"line":121,"column":10},"end":{"line":121,"column":33}},"type":"binary-expr","locations":[{"start":{"line":121,"column":10},"end":{"line":121,"column":33}},{"start":{"line":121,"column":37},"end":{"line":121,"column":56}},{"start":{"line":121,"column":60},"end":{"line":121,"column":103}}]},"23":{"loc":{"start":{"line":129,"column":4},"end":{"line":131,"column":null}},"type":"if","locations":[{"start":{"line":129,"column":4},"end":{"line":131,"column":null}},{"start":{"line":129,"column":4},"end":{"line":131,"column":null}}]},"24":{"loc":{"start":{"line":129,"column":8},"end":{"line":129,"column":23}},"type":"binary-expr","locations":[{"start":{"line":129,"column":8},"end":{"line":129,"column":23}},{"start":{"line":129,"column":27},"end":{"line":129,"column":51}},{"start":{"line":129,"column":55},"end":{"line":129,"column":100}}]},"25":{"loc":{"start":{"line":134,"column":4},"end":{"line":137,"column":null}},"type":"if","locations":[{"start":{"line":134,"column":4},"end":{"line":137,"column":null}},{"start":{"line":134,"column":4},"end":{"line":137,"column":null}}]},"26":{"loc":{"start":{"line":148,"column":4},"end":{"line":150,"column":null}},"type":"if","locations":[{"start":{"line":148,"column":4},"end":{"line":150,"column":null}},{"start":{"line":148,"column":4},"end":{"line":150,"column":null}}]},"27":{"loc":{"start":{"line":181,"column":25},"end":{"line":181,"column":34}},"type":"binary-expr","locations":[{"start":{"line":181,"column":25},"end":{"line":181,"column":34}},{"start":{"line":181,"column":38},"end":{"line":181,"column":47}},{"start":{"line":181,"column":51},"end":{"line":181,"column":53}}]},"28":{"loc":{"start":{"line":182,"column":6},"end":{"line":184,"column":null}},"type":"if","locations":[{"start":{"line":182,"column":6},"end":{"line":184,"column":null}},{"start":{"line":182,"column":6},"end":{"line":184,"column":null}}]},"29":{"loc":{"start":{"line":186,"column":47},"end":{"line":186,"column":55}},"type":"cond-expr","locations":[{"start":{"line":186,"column":47},"end":{"line":186,"column":55}},{"start":{"line":186,"column":58},"end":{"line":186,"column":69}}]},"30":{"loc":{"start":{"line":217,"column":58},"end":{"line":217,"column":78}},"type":"binary-expr","locations":[{"start":{"line":217,"column":58},"end":{"line":217,"column":78}},{"start":{"line":217,"column":82},"end":{"line":217,"column":84}}]},"31":{"loc":{"start":{"line":219,"column":8},"end":{"line":221,"column":null}},"type":"if","locations":[{"start":{"line":219,"column":8},"end":{"line":221,"column":null}},{"start":{"line":219,"column":8},"end":{"line":221,"column":null}}]},"32":{"loc":{"start":{"line":223,"column":8},"end":{"line":226,"column":null}},"type":"if","locations":[{"start":{"line":223,"column":8},"end":{"line":226,"column":null}},{"start":{"line":223,"column":8},"end":{"line":226,"column":null}}]},"33":{"loc":{"start":{"line":240,"column":4},"end":{"line":242,"column":null}},"type":"if","locations":[{"start":{"line":240,"column":4},"end":{"line":242,"column":null}},{"start":{"line":240,"column":4},"end":{"line":242,"column":null}}]},"34":{"loc":{"start":{"line":246,"column":4},"end":{"line":248,"column":null}},"type":"if","locations":[{"start":{"line":246,"column":4},"end":{"line":248,"column":null}},{"start":{"line":246,"column":4},"end":{"line":248,"column":null}}]},"35":{"loc":{"start":{"line":253,"column":32},"end":{"line":253,"column":34}},"type":"cond-expr","locations":[{"start":{"line":253,"column":32},"end":{"line":253,"column":34}},{"start":{"line":253,"column":37},"end":{"line":253,"column":40}}]},"36":{"loc":{"start":{"line":263,"column":6},"end":{"line":265,"column":null}},"type":"if","locations":[{"start":{"line":263,"column":6},"end":{"line":265,"column":null}},{"start":{"line":263,"column":6},"end":{"line":265,"column":null}}]},"37":{"loc":{"start":{"line":263,"column":10},"end":{"line":263,"column":19}},"type":"binary-expr","locations":[{"start":{"line":263,"column":10},"end":{"line":263,"column":19}},{"start":{"line":263,"column":23},"end":{"line":263,"column":44}}]},"38":{"loc":{"start":{"line":267,"column":6},"end":{"line":269,"column":null}},"type":"if","locations":[{"start":{"line":267,"column":6},"end":{"line":269,"column":null}},{"start":{"line":267,"column":6},"end":{"line":269,"column":null}}]},"39":{"loc":{"start":{"line":276,"column":8},"end":{"line":278,"column":null}},"type":"if","locations":[{"start":{"line":276,"column":8},"end":{"line":278,"column":null}},{"start":{"line":276,"column":8},"end":{"line":278,"column":null}}]},"40":{"loc":{"start":{"line":293,"column":115},"end":{"line":293,"column":118}},"type":"default-arg","locations":[{"start":{"line":293,"column":115},"end":{"line":293,"column":118}}]},"41":{"loc":{"start":{"line":296,"column":4},"end":{"line":308,"column":null}},"type":"if","locations":[{"start":{"line":296,"column":4},"end":{"line":308,"column":null}},{"start":{"line":296,"column":4},"end":{"line":308,"column":null}}]},"42":{"loc":{"start":{"line":300,"column":18},"end":{"line":300,"column":32}},"type":"binary-expr","locations":[{"start":{"line":300,"column":18},"end":{"line":300,"column":32}},{"start":{"line":300,"column":36},"end":{"line":300,"column":53}}]},"43":{"loc":{"start":{"line":303,"column":6},"end":{"line":305,"column":null}},"type":"if","locations":[{"start":{"line":303,"column":6},"end":{"line":305,"column":null}},{"start":{"line":303,"column":6},"end":{"line":305,"column":null}}]},"44":{"loc":{"start":{"line":326,"column":4},"end":{"line":328,"column":null}},"type":"if","locations":[{"start":{"line":326,"column":4},"end":{"line":328,"column":null}},{"start":{"line":326,"column":4},"end":{"line":328,"column":null}}]},"45":{"loc":{"start":{"line":326,"column":8},"end":{"line":326,"column":17}},"type":"binary-expr","locations":[{"start":{"line":326,"column":8},"end":{"line":326,"column":17}},{"start":{"line":326,"column":21},"end":{"line":326,"column":49}}]},"46":{"loc":{"start":{"line":330,"column":4},"end":{"line":332,"column":null}},"type":"if","locations":[{"start":{"line":330,"column":4},"end":{"line":332,"column":null}},{"start":{"line":330,"column":4},"end":{"line":332,"column":null}}]},"47":{"loc":{"start":{"line":341,"column":4},"end":{"line":343,"column":null}},"type":"if","locations":[{"start":{"line":341,"column":4},"end":{"line":343,"column":null}},{"start":{"line":341,"column":4},"end":{"line":343,"column":null}}]},"48":{"loc":{"start":{"line":341,"column":8},"end":{"line":341,"column":18}},"type":"binary-expr","locations":[{"start":{"line":341,"column":8},"end":{"line":341,"column":18}},{"start":{"line":341,"column":22},"end":{"line":341,"column":52}}]},"49":{"loc":{"start":{"line":350,"column":4},"end":{"line":352,"column":null}},"type":"if","locations":[{"start":{"line":350,"column":4},"end":{"line":352,"column":null}},{"start":{"line":350,"column":4},"end":{"line":352,"column":null}}]},"50":{"loc":{"start":{"line":350,"column":8},"end":{"line":350,"column":12}},"type":"binary-expr","locations":[{"start":{"line":350,"column":8},"end":{"line":350,"column":12}},{"start":{"line":350,"column":16},"end":{"line":350,"column":51}}]},"51":{"loc":{"start":{"line":356,"column":4},"end":{"line":358,"column":null}},"type":"if","locations":[{"start":{"line":356,"column":4},"end":{"line":358,"column":null}},{"start":{"line":356,"column":4},"end":{"line":358,"column":null}}]},"52":{"loc":{"start":{"line":364,"column":11},"end":{"line":364,"column":44}},"type":"binary-expr","locations":[{"start":{"line":364,"column":11},"end":{"line":364,"column":44}},{"start":{"line":364,"column":48},"end":{"line":364,"column":85}}]},"53":{"loc":{"start":{"line":370,"column":6},"end":{"line":372,"column":null}},"type":"if","locations":[{"start":{"line":370,"column":6},"end":{"line":372,"column":null}},{"start":{"line":370,"column":6},"end":{"line":372,"column":null}}]},"54":{"loc":{"start":{"line":380,"column":9},"end":{"line":380,"column":13}},"type":"binary-expr","locations":[{"start":{"line":380,"column":9},"end":{"line":380,"column":13}},{"start":{"line":380,"column":18},"end":{"line":380,"column":43}},{"start":{"line":380,"column":47},"end":{"line":380,"column":77}}]}},"s":{"0":4,"1":4,"2":4,"3":4,"4":4,"5":16,"6":16,"7":16,"8":16,"9":142,"10":142,"11":142,"12":152,"13":152,"14":10,"15":10,"16":10,"17":10,"18":10,"19":142,"20":74,"21":0,"22":74,"23":7,"24":74,"25":0,"26":74,"27":9,"28":65,"29":2,"30":1,"31":64,"32":1,"33":63,"34":4,"35":3,"36":1,"37":1,"38":54,"39":10,"40":44,"41":17,"42":0,"43":17,"44":7,"45":2,"46":15,"47":27,"48":1,"49":26,"50":25,"51":25,"52":1,"53":28,"54":0,"55":28,"56":15,"57":15,"58":15,"59":15,"60":25,"61":25,"62":25,"63":25,"64":25,"65":25,"66":2,"67":2,"68":3,"69":1,"70":2,"71":2,"72":1,"73":1,"74":1,"75":1,"76":2,"77":2,"78":2,"79":2,"80":1,"81":1,"82":1,"83":1,"84":1,"85":25,"86":22,"87":22,"88":22,"89":46,"90":0,"91":46,"92":0,"93":0,"94":46,"95":22,"96":46,"97":46,"98":0,"99":46,"100":0,"101":46,"102":46,"103":46,"104":46,"105":46,"106":46,"107":2,"108":2,"109":0,"110":2,"111":0,"112":2,"113":2,"114":2,"115":7,"116":0,"117":7,"118":16,"119":7,"120":7,"121":2,"122":2,"123":71,"124":71,"125":22,"126":22,"127":22,"128":22,"129":22,"130":5,"131":22,"132":71,"133":71,"134":76,"135":71,"136":50,"137":152,"138":50,"139":9,"140":9,"141":1,"142":8,"143":0,"144":8,"145":8,"146":8,"147":7,"148":3,"149":0,"150":3,"151":8,"152":8,"153":0,"154":8,"155":8,"156":8,"157":1,"158":7,"159":46,"160":82,"161":0,"162":0,"163":0,"164":82,"165":4,"166":3,"167":152},"f":{"0":16,"1":142,"2":74,"3":7,"4":28,"5":15,"6":15,"7":2,"8":1,"9":25,"10":22,"11":46,"12":2,"13":2,"14":16,"15":71,"16":50,"17":152,"18":9,"19":3,"20":8,"21":46,"22":82,"23":3,"24":152},"b":{"0":[12],"1":[0,16],"2":[16,16],"3":[4,12],"4":[16,16],"5":[10,142],"6":[4],"7":[0,74],"8":[7,67],"9":[0,74],"10":[9,65],"11":[2,63],"12":[65,63],"13":[1,1],"14":[1,63],"15":[64,18],"16":[4,3,1,1],"17":[10,44],"18":[54,51],"19":[17,27],"20":[0,17],"21":[2,15],"22":[17,2,2],"23":[1,26],"24":[27,2,1],"25":[25,1],"26":[0,28],"27":[2,0,0],"28":[1,2],"29":[0,2],"30":[22,0],"31":[0,46],"32":[0,46],"33":[0,46],"34":[0,46],"35":[10,36],"36":[0,2],"37":[2,2],"38":[0,2],"39":[0,7],"40":[71],"41":[22,49],"42":[22,5],"43":[5,17],"44":[1,8],"45":[9,9],"46":[0,8],"47":[0,3],"48":[3,3],"49":[0,8],"50":[8,8],"51":[1,7],"52":[46,16],"53":[0,0],"54":[3,2,2]}}
}
import { JSONSchema4 } from 'json-schema';
import { CodeMaker } from 'codemaker';
import { Code } from './code';
export interface TypeGeneratorOptions {

@@ -21,2 +21,7 @@ /**

export declare class TypeGenerator {
/**
* Convert all-caps acronyms (e.g. "VPC", "FooBARZooFIGoo") to pascal case
* (e.g. "Vpc", "FooBarZooFiGoo").
*/
static normalizeTypeName(typeName: string): string;
private readonly typesToEmit;

@@ -38,9 +43,10 @@ private readonly emittedTypes;

*/
emitType(typeName: string, def: JSONSchema4, structFqn?: string): string;
addType(typeName: string, def: JSONSchema4, structFqn?: string): string;
/**
* Generates a file with all the types added to this generator.
*
* @param filePath The output file path, must have a ".ts" extension.
* Emits code once to the output file.
* @param uniqueid A unique identifier for the code snippet (e.g. the name of the type)
* @param codeEmitter A function that will be called to emit the code.
*/
writeToFile(filePath: string): Promise<void>;
addCode(uniqueid: string, codeEmitter: (code: Code) => void): void;
render(): string;
/**

@@ -51,4 +57,3 @@ * Writes all types to a `CodeMaker` with an open file.

*/
writeToCodeMaker(code: CodeMaker): void;
private emitLater;
emitCode(code: Code): void;
/**

@@ -55,0 +60,0 @@ * @returns true if this definition can be represented as a union or false if it cannot

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.normalizeTypeName = exports.TypeGenerator = void 0;
const codemaker_1 = require("codemaker");
const path = require("path");
exports.TypeGenerator = void 0;
const code_1 = require("./code");
const camelCase = require("camelcase");
const snake_case_1 = require("snake-case");
const PRIMITIVE_TYPES = ['string', 'number', 'integer', 'boolean'];

@@ -25,2 +26,23 @@ const DEFINITIONS_PREFIX = '#/definitions/';

/**
* Convert all-caps acronyms (e.g. "VPC", "FooBARZooFIGoo") to pascal case
* (e.g. "Vpc", "FooBarZooFiGoo").
*/
static normalizeTypeName(typeName) {
// start with the full string and then use the regex to match all-caps sequences.
const re = /([A-Z]+)(?:[^a-z]|$)/g;
let result = typeName;
let m;
do {
m = re.exec(typeName);
if (m) {
const before = result.slice(0, m.index); // all the text before the sequence
const cap = m[1]; // group #1 matches the all-caps sequence we are after
const pascal = cap[0] + cap.slice(1).toLowerCase(); // convert to pascal case by lowercasing all but the first char
const after = result.slice(m.index + pascal.length); // all the text after the sequence
result = before + pascal + after; // concat
}
} while (m);
return result;
}
/**
* Emit a type based on a JSON schema.

@@ -31,6 +53,6 @@ * @param typeName The name of th type

*/
emitType(typeName, def, structFqn = typeName) {
addType(typeName, def, structFqn = typeName) {
// callers expect that emit a type named `typeName` so we can't change it here
// but at least we can verify it's correct.
if (normalizeTypeName(typeName) !== typeName) {
if (TypeGenerator.normalizeTypeName(typeName) !== typeName) {
throw new Error(`${typeName} must be normalized before calling emitType`);

@@ -87,17 +109,17 @@ }

/**
* Generates a file with all the types added to this generator.
*
* @param filePath The output file path, must have a ".ts" extension.
* Emits code once to the output file.
* @param uniqueid A unique identifier for the code snippet (e.g. the name of the type)
* @param codeEmitter A function that will be called to emit the code.
*/
async writeToFile(filePath) {
if (path.extname(filePath) !== '.ts') {
throw new Error('file must have a .ts extension');
addCode(uniqueid, codeEmitter) {
if (this.emittedTypes.has(uniqueid)) {
return;
}
const code = new codemaker_1.CodeMaker();
const filename = path.basename(filePath);
code.openFile(filename);
this.writeToCodeMaker(code);
code.closeFile(filename);
await code.save(path.dirname(filePath));
this.typesToEmit[uniqueid] = codeEmitter;
}
render() {
const code = new code_1.Code();
this.emitCode(code);
return code.render();
}
/**

@@ -108,3 +130,3 @@ * Writes all types to a `CodeMaker` with an open file.

*/
writeToCodeMaker(code) {
emitCode(code) {
while (Object.keys(this.typesToEmit).length) {

@@ -119,8 +141,2 @@ const name = Object.keys(this.typesToEmit)[0];

}
emitLater(typeName, codeEmitter) {
if (this.emittedTypes.has(typeName)) {
return;
}
this.typesToEmit[typeName] = codeEmitter;
}
/**

@@ -138,3 +154,3 @@ * @returns true if this definition can be represented as a union or false if it cannot

}
this.emitLater(typeName, code => {
this.addCode(typeName, code => {
this.emitDescription(code, fqn, def.description);

@@ -156,3 +172,3 @@ code.openBlock(`export class ${typeName}`);

emitStruct(typeName, structDef, structFqn) {
this.emitLater(typeName, code => {
this.addCode(typeName, code => {
this.emitDescription(code, structFqn, structDef.description);

@@ -178,3 +194,3 @@ code.openBlock(`export interface ${typeName}`);

if (name[0] === name[0].toUpperCase()) {
name = code.toCamelCase(name);
name = camelCase(name);
}

@@ -194,3 +210,3 @@ // if the name starts with '$' (like $ref or $schema), we remove the "$"

emitEnum(typeName, def, structFqn) {
this.emitLater(typeName, code => {
this.addCode(typeName, code => {
if (!def.enum || def.enum.length === 0) {

@@ -209,3 +225,3 @@ throw new Error(`definition is not an enum: ${JSON.stringify(def)}`);

// sluggify and turn to UPPER_SNAKE_CASE
const memberName = code.toSnakeCase(value.replace(/[^a-z0-9]/gi, '_')).split('_').filter(x => x).join('_').toUpperCase();
const memberName = snake_case_1.snakeCase(value.replace(/[^a-z0-9]/gi, '_')).split('_').filter(x => x).join('_').toUpperCase();
code.line(`/** ${value} */`);

@@ -237,4 +253,4 @@ code.line(`${memberName} = "${value}",`);

typeForProperty(propertyFqn, def) {
const subtype = normalizeTypeName(propertyFqn.split('.').map(x => codemaker_1.toPascalCase(x)).join(''));
return this.emitType(subtype, def, subtype);
const subtype = TypeGenerator.normalizeTypeName(propertyFqn.split('.').map(x => pascalCase(x)).join(''));
return this.addType(subtype, def, subtype);
}

@@ -250,5 +266,5 @@ typeForRef(def) {

const comps = def.$ref.substring(prefix.length).split('.');
const typeName = normalizeTypeName(comps[comps.length - 1]);
const typeName = TypeGenerator.normalizeTypeName(comps[comps.length - 1]);
const schema = this.resolveReference(def);
return this.emitType(typeName, schema, def.$ref);
return this.addType(typeName, schema, def.$ref);
}

@@ -287,28 +303,8 @@ typeForArray(propertyFqn, def) {

exports.TypeGenerator = TypeGenerator;
/**
* Convert all-caps acronyms (e.g. "VPC", "FooBARZooFIGoo") to pascal case (e.g. "Vpc", "FooBarZooFiGoo").
*
* @internal exported for tests
*/
function normalizeTypeName(typeName) {
// start with the full string and then use the regex to match all-caps sequences.
const re = /([A-Z]+)(?:[^a-z]|$)/g;
let result = typeName;
let m;
do {
m = re.exec(typeName);
if (m) {
const before = result.slice(0, m.index); // all the text before the sequence
const cap = m[1]; // group #1 matches the all-caps sequence we are after
const pascal = cap[0] + cap.slice(1).toLowerCase(); // convert to pascal case by lowercasing all but the first char
const after = result.slice(m.index + pascal.length); // all the text after the sequence
result = before + pascal + after; // concat
}
} while (m);
return result;
}
exports.normalizeTypeName = normalizeTypeName;
function supportedUnionOptionType(type) {
return type && (typeof (type) === 'string' && PRIMITIVE_TYPES.includes(type));
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlLWdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5Q0FBb0Q7QUFDcEQsNkJBQTZCO0FBRTdCLE1BQU0sZUFBZSxHQUFHLENBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFFLENBQUM7QUFDckUsTUFBTSxrQkFBa0IsR0FBRyxnQkFBZ0IsQ0FBQztBQWdCNUM7O0dBRUc7QUFDSCxNQUFhLGFBQWE7SUFNeEI7Ozs7T0FJRztJQUNILFlBQVksVUFBZ0MsRUFBRzs7UUFWOUIsZ0JBQVcsR0FBa0QsRUFBRyxDQUFDO1FBQ2pFLGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztRQVVoRCxJQUFJLENBQUMsT0FBTyxTQUFHLE9BQU8sQ0FBQyxPQUFPLG1DQUFJLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsV0FBVyxTQUFHLE9BQU8sQ0FBQyxXQUFXLG1DQUFJLEVBQUcsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxRQUFRLENBQUMsUUFBZ0IsRUFBRSxHQUFnQixFQUFFLFlBQW9CLFFBQVE7UUFDOUUsOEVBQThFO1FBQzlFLDJDQUEyQztRQUMzQyxJQUFJLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLFFBQVEsRUFBRTtZQUM1QyxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsUUFBUSw2Q0FBNkMsQ0FBQyxDQUFDO1NBQzNFO1FBRUQsSUFBSSxTQUFTLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLEVBQUU7WUFDNUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDNUQ7UUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxRQUFRLFNBQVMsaUVBQWlFLENBQUMsQ0FBQztTQUNyRztRQUVELElBQUksR0FBRyxDQUFDLElBQUksRUFBRTtZQUNaLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM3QjtRQUVELDRFQUE0RTtRQUM1RSxJQUFJLEdBQUcsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRTtZQUMxQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxTQUFTLENBQUMsRUFBRTtnQkFDNUMsT0FBTyxRQUFRLENBQUM7YUFDakI7WUFFRCw2REFBNkQ7U0FDOUQ7UUFFRCxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssV0FBVyxFQUFFO1lBQ3ZELE9BQU8sTUFBTSxDQUFDO1NBQ2Y7UUFFRCxRQUFRLEdBQUcsQ0FBQyxJQUFJLEVBQUU7WUFDaEIsS0FBSyxTQUFTLENBQUMsQ0FBQyxPQUFPLFNBQVMsQ0FBQztZQUNqQyxLQUFLLE9BQU8sQ0FBQyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQzdELEtBQUssS0FBSyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUM7WUFDekIsS0FBSyxNQUFNLENBQUMsQ0FBQyxPQUFPLEtBQUssQ0FBQztTQUMzQjtRQUVELElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDbkQsT0FBTyxRQUFRLENBQUM7U0FDakI7UUFFRCxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQ3pCLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxXQUFXLEVBQUU7Z0JBQzlCLE9BQU8sTUFBTSxDQUFDO2FBQ2Y7WUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxFQUFFO2dCQUNqRyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQzthQUNoRDtZQUVELE9BQU8sUUFBUSxDQUFDO1NBQ2pCO1FBRUQsTUFBTTtRQUNOLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQyxvQkFBb0IsSUFBSSxPQUFNLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLEtBQUssUUFBUSxFQUFFO1lBQ2hHLE9BQU8sb0JBQW9CLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUM7U0FDekY7UUFFRCxTQUFTO1FBQ1QsSUFBSSxHQUFHLENBQUMsVUFBVSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQTtZQUN6QyxPQUFPLFFBQVEsQ0FBQztTQUNqQjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQWdCO1FBQ3ZDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxLQUFLLEVBQUU7WUFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1NBQ25EO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxxQkFBUyxFQUFFLENBQUM7UUFDN0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxnQkFBZ0IsQ0FBQyxJQUFlO1FBQ3JDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxFQUFFO1lBQzNDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVPLFNBQVMsQ0FBQyxRQUFnQixFQUFFLFdBQXNDO1FBQ3hFLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDbkMsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxXQUFXLENBQUM7SUFDM0MsQ0FBQztJQUVEOztPQUVHO0lBQ0ssU0FBUyxDQUFDLFFBQWdCLEVBQUUsR0FBZ0IsRUFBRSxHQUFXO1FBQy9ELE1BQU0sT0FBTyxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFDcEMsS0FBSyxNQUFNLE1BQU0sSUFBSSxHQUFHLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxFQUFFO1lBQ2pELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzFDLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7WUFFRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ2hFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDcEI7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUM5QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBRWpELElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFFM0MsS0FBSyxNQUFNLElBQUksSUFBSSxPQUFPLEVBQUU7Z0JBQzFCLE1BQU0sVUFBVSxHQUFHLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbkUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsVUFBVSxXQUFXLElBQUksTUFBTSxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUMzRSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsUUFBUSxVQUFVLENBQUMsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQ25CO1lBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxJQUFJLENBQUMsbUVBQW1FLENBQUMsQ0FBQztZQUMvRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFFbEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU8sVUFBVSxDQUFDLFFBQWdCLEVBQUUsU0FBc0IsRUFBRSxTQUFpQjtRQUM1RSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUM5QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFFL0MsS0FBSyxNQUFNLENBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBRSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsRUFBRTtnQkFFL0UsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUM3QixTQUFTLENBQUMsMEJBQTBCO2lCQUNyQztnQkFFRCxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQzFCLE9BQU8sQ0FBQyxLQUFLLENBQUMscUJBQXFCLFNBQVMsSUFBSSxRQUFRLDBDQUEwQyxDQUFDLENBQUM7b0JBQ3BHLFNBQVMsQ0FBQyxRQUFRO2lCQUNuQjtnQkFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQzthQUNuRTtZQUVELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxZQUFZLENBQUMsSUFBZSxFQUFFLElBQVksRUFBRSxPQUFvQixFQUFFLFNBQWlCLEVBQUUsU0FBc0I7UUFDakgsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBRTFCLDRFQUE0RTtRQUM1RSwrRUFBK0U7UUFDL0UsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQ3JDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQy9CO1FBRUQsd0VBQXdFO1FBQ3hFLHVEQUF1RDtRQUN2RCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDeEIsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDMUI7UUFFRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxHQUFHLFNBQVMsSUFBSSxZQUFZLEVBQUUsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEYsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLFNBQVMsSUFBSSxJQUFJLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMzRSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzFELE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFFckMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksR0FBRyxRQUFRLEtBQUssWUFBWSxHQUFHLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRU8sUUFBUSxDQUFDLFFBQWdCLEVBQUUsR0FBZ0IsRUFBRSxTQUFpQjtRQUVwRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUU5QixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ3RFO1lBRUQsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtnQkFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO2FBQ25EO1lBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUV2RCxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUUxQyxLQUFLLE1BQU0sS0FBSyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUU7Z0JBQzVCLElBQUksT0FBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLFFBQVEsRUFBRTtvQkFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO2lCQUM5RDtnQkFFRCx3Q0FBd0M7Z0JBQ3hDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUV6SCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUMsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsT0FBTyxLQUFLLElBQUksQ0FBQyxDQUFDO2FBQzFDO1lBRUQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVPLGVBQWUsQ0FBQyxJQUFlLEVBQUUsR0FBVyxFQUFFLFdBQW9CLEVBQUUsY0FBMEMsRUFBRztRQUN2SCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWpCLElBQUksV0FBVyxFQUFFO1lBQ2YsV0FBVyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBRWpELE1BQU0sY0FBYyxHQUFHLDZCQUE2QixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN2RSxNQUFNLEdBQUcsR0FBRyxjQUFjLElBQUksY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRWhELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQy9CLElBQUksR0FBRyxFQUFFO2dCQUNQLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLENBQUM7YUFDOUI7WUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pCO1FBRUQsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUU1QixLQUFLLE1BQU0sQ0FBRSxJQUFJLEVBQUUsS0FBSyxDQUFFLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDbkM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2xCLENBQUM7SUFFTyxlQUFlLENBQUMsV0FBbUIsRUFBRSxHQUFnQjtRQUMzRCxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLHdCQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM3RixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU8sVUFBVSxDQUFDLEdBQWdCO1FBQ2pDLE1BQU0sTUFBTSxHQUFHLGdCQUFnQixDQUFDO1FBQ2hDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDN0MsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDeEQ7UUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzdCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNELE1BQU0sUUFBUSxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU8sWUFBWSxDQUFDLFdBQW1CLEVBQUUsR0FBZ0I7UUFDeEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksT0FBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxRQUFRLEVBQUU7WUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDeEQ7UUFFRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsR0FBZ0I7UUFDdkMsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO1lBQy9DLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztTQUNoRDtRQUVELE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsTUFBTSxHQUFHLENBQUMsQ0FBQztTQUN6RTtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLGtCQUFrQixDQUFDLFFBQWdCLEVBQUUsU0FBc0I7UUFDakUsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRU8sVUFBVSxDQUFDLEdBQVc7UUFDNUIsS0FBSyxNQUFNLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2xDLE1BQU0sRUFBRSxHQUFHLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQy9CLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDaEIsT0FBTyxJQUFJLENBQUM7YUFDYjtTQUNGO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0Y7QUE5VUQsc0NBOFVDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLFFBQWdCO0lBQ2hELGlGQUFpRjtJQUNqRixNQUFNLEVBQUUsR0FBRyx1QkFBdUIsQ0FBQztJQUNuQyxJQUFJLE1BQU0sR0FBRyxRQUFRLENBQUM7SUFDdEIsSUFBSSxDQUFDLENBQUM7SUFDTixHQUFHO1FBQ0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLEVBQUU7WUFDTCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxtQ0FBbUM7WUFDNUUsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsc0RBQXNEO1lBQ3hFLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsK0RBQStEO1lBQ25ILE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxrQ0FBa0M7WUFDdkYsTUFBTSxHQUFHLE1BQU0sR0FBRyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsU0FBUztTQUM1QztLQUNGLFFBQVEsQ0FBQyxFQUFFO0lBRVosT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQWpCRCw4Q0FpQkM7QUFFRCxTQUFTLHdCQUF3QixDQUFDLElBQVM7SUFDekMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssUUFBUSxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUMvRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSlNPTlNjaGVtYTQgfSBmcm9tICdqc29uLXNjaGVtYSc7XG5pbXBvcnQgeyBDb2RlTWFrZXIsIHRvUGFzY2FsQ2FzZSB9IGZyb20gJ2NvZGVtYWtlcic7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuXG5jb25zdCBQUklNSVRJVkVfVFlQRVMgPSBbICdzdHJpbmcnLCAnbnVtYmVyJywgJ2ludGVnZXInLCAnYm9vbGVhbicgXTtcbmNvbnN0IERFRklOSVRJT05TX1BSRUZJWCA9ICcjL2RlZmluaXRpb25zLyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZUdlbmVyYXRvck9wdGlvbnMge1xuICAvKipcbiAgICogUGF0dGVybnMgb2YgdHlwZSBGUU5zIHRvIGV4Y2x1ZGUuXG4gICAqIEBkZWZhdWx0IC0gaW5jbHVkZSBhbGwgdHlwZXNcbiAgICovXG4gIHJlYWRvbmx5IGV4Y2x1ZGU/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogU2NoZW1hIGRlZmluaXRpb25zIGZvciByZXNvbHZpbmcgJHJlZnNcbiAgICogQGRlZmF1bHQgLSAkcmVmcyBhcmUgbm90IHN1cHBvcnRlZFxuICAgKi9cbiAgcmVhZG9ubHkgZGVmaW5pdGlvbnM/OiB7IFtkZWY6IHN0cmluZ106IEpTT05TY2hlbWE0IH07XG59XG5cbi8qKlxuICogR2VuZXJhdGVzIHR5cGVzY3JpcHQgdHlwZXMgZnJvbSBKU09OIHNjaGVtYXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBUeXBlR2VuZXJhdG9yIHtcbiAgcHJpdmF0ZSByZWFkb25seSB0eXBlc1RvRW1pdDogeyBbbmFtZTogc3RyaW5nXTogKGNvZGU6IENvZGVNYWtlcikgPT4gdm9pZCB9ID0geyB9O1xuICBwcml2YXRlIHJlYWRvbmx5IGVtaXR0ZWRUeXBlcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGV4Y2x1ZGU6IHN0cmluZ1tdO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlZmluaXRpb25zOiB7IFtkZWY6IHN0cmluZ106IEpTT05TY2hlbWE0IH07XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBzY2hlbWEgU2NoZW1hIGRlZmluaXRpb25zXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBUeXBlR2VuZXJhdG9yT3B0aW9ucyA9IHsgfSkge1xuICAgIHRoaXMuZXhjbHVkZSA9IG9wdGlvbnMuZXhjbHVkZSA/PyBbXTtcbiAgICB0aGlzLmRlZmluaXRpb25zID0gb3B0aW9ucy5kZWZpbml0aW9ucyA/PyB7IH07XG4gIH1cblxuICAvKipcbiAgICogRW1pdCBhIHR5cGUgYmFzZWQgb24gYSBKU09OIHNjaGVtYS5cbiAgICogQHBhcmFtIHR5cGVOYW1lIFRoZSBuYW1lIG9mIHRoIHR5cGVcbiAgICogQHBhcmFtIGRlZiBKU09OIHNjaGVtYVxuICAgKiBAcGFyYW0gc3RydWN0RnFuIEZRTiBmb3IgdGhlIHR5cGUgKGRlZmF1bHRzIHRvIGB0eXBlTmFtZWApXG4gICAqL1xuICBwdWJsaWMgZW1pdFR5cGUodHlwZU5hbWU6IHN0cmluZywgZGVmOiBKU09OU2NoZW1hNCwgc3RydWN0RnFuOiBzdHJpbmcgPSB0eXBlTmFtZSk6IHN0cmluZyB7XG4gICAgLy8gY2FsbGVycyBleHBlY3QgdGhhdCBlbWl0IGEgdHlwZSBuYW1lZCBgdHlwZU5hbWVgIHNvIHdlIGNhbid0IGNoYW5nZSBpdCBoZXJlXG4gICAgLy8gYnV0IGF0IGxlYXN0IHdlIGNhbiB2ZXJpZnkgaXQncyBjb3JyZWN0LlxuICAgIGlmIChub3JtYWxpemVUeXBlTmFtZSh0eXBlTmFtZSkgIT09IHR5cGVOYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7dHlwZU5hbWV9IG11c3QgYmUgbm9ybWFsaXplZCBiZWZvcmUgY2FsbGluZyBlbWl0VHlwZWApO1xuICAgIH1cblxuICAgIGlmIChzdHJ1Y3RGcW4uc3RhcnRzV2l0aChERUZJTklUSU9OU19QUkVGSVgpKSB7XG4gICAgICBzdHJ1Y3RGcW4gPSBzdHJ1Y3RGcW4uc3Vic3RyaW5nKERFRklOSVRJT05TX1BSRUZJWC5sZW5ndGgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzRXhjbHVkZWQoc3RydWN0RnFuKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUeXBlICR7c3RydWN0RnFufSBjYW5ub3QgYmUgYWRkZWQgc2luY2UgaXQgbWF0Y2hlcyBvbmUgb2YgdGhlIGV4Y2x1c2lvbiBwYXR0ZXJuc2ApO1xuICAgIH1cblxuICAgIGlmIChkZWYuJHJlZikge1xuICAgICAgcmV0dXJuIHRoaXMudHlwZUZvclJlZihkZWYpO1xuICAgIH1cblxuICAgIC8vIHVuaW9ucyAodW5sZXNzIHRoaXMgaXMgYSBzdHJ1Y3QsIGFuZCB0aGVuIHdlIGp1c3QgaWdub3JlIHRoZSBjb25zdHJhaW50cylcbiAgICBpZiAoZGVmLm9uZU9mIHx8IGRlZi5hbnlPZikge1xuICAgICAgaWYgKHRoaXMuZW1pdFVuaW9uKHR5cGVOYW1lLCBkZWYsIHN0cnVjdEZxbikpIHtcbiAgICAgICAgcmV0dXJuIHR5cGVOYW1lO1xuICAgICAgfVxuXG4gICAgICAvLyBjYXJyeSBvbiwgd2UgY2FuJ3QgcmVwcmVzZW50IHRoaXMgc2NoZW1hIGFzIGEgdW5pb24gKHlldD8pXG4gICAgfVxuXG4gICAgaWYgKGRlZi50eXBlID09PSAnc3RyaW5nJyAmJiBkZWYuZm9ybWF0ID09PSAnZGF0ZS10aW1lJykge1xuICAgICAgcmV0dXJuICdEYXRlJztcbiAgICB9XG4gIFxuICAgIHN3aXRjaCAoZGVmLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2Jvb2xlYW4nOiByZXR1cm4gJ2Jvb2xlYW4nO1xuICAgICAgY2FzZSAnYXJyYXknOiByZXR1cm4gYCR7dGhpcy50eXBlRm9yQXJyYXkodHlwZU5hbWUsIGRlZil9W11gO1xuICAgICAgY2FzZSAnYW55JzogcmV0dXJuICdhbnknO1xuICAgICAgY2FzZSAnbnVsbCc6IHJldHVybiAnYW55JztcbiAgICB9XG5cbiAgICBpZiAoZGVmLnR5cGUgPT09ICdudW1iZXInIHx8IGRlZi50eXBlID09PSAnaW50ZWdlcicpIHtcbiAgICAgIHJldHVybiAnbnVtYmVyJztcbiAgICB9XG5cbiAgICBpZiAoZGVmLnR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoZGVmLmZvcm1hdCA9PT0gJ2RhdGUtdGltZScpIHtcbiAgICAgICAgcmV0dXJuICdEYXRlJztcbiAgICAgIH1cblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGVmLmVudW0pICYmIGRlZi5lbnVtLmxlbmd0aCA+IDAgJiYgIWRlZi5lbnVtLmZpbmQoeCA9PiB0eXBlb2YoeCkgIT09ICdzdHJpbmcnKSkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbWl0RW51bSh0eXBlTmFtZSwgZGVmLCBzdHJ1Y3RGcW4pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gJ3N0cmluZyc7XG4gICAgfVxuICAgIFxuICAgIC8vIG1hcFxuICAgIGlmICghZGVmLnByb3BlcnRpZXMgJiYgZGVmLmFkZGl0aW9uYWxQcm9wZXJ0aWVzICYmIHR5cGVvZihkZWYuYWRkaXRpb25hbFByb3BlcnRpZXMpID09PSAnb2JqZWN0Jykge1xuICAgICAgcmV0dXJuIGB7IFtrZXk6IHN0cmluZ106ICR7dGhpcy50eXBlRm9yUHJvcGVydHkodHlwZU5hbWUsIGRlZi5hZGRpdGlvbmFsUHJvcGVydGllcyl9IH1gO1xuICAgIH1cblxuICAgIC8vIHN0cnVjdFxuICAgIGlmIChkZWYucHJvcGVydGllcykge1xuICAgICAgdGhpcy5lbWl0U3RydWN0KHR5cGVOYW1lLCBkZWYsIHN0cnVjdEZxbilcbiAgICAgIHJldHVybiB0eXBlTmFtZTtcbiAgICB9XG5cbiAgICByZXR1cm4gJ2FueSc7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIGEgZmlsZSB3aXRoIGFsbCB0aGUgdHlwZXMgYWRkZWQgdG8gdGhpcyBnZW5lcmF0b3IuXG4gICAqXG4gICAqIEBwYXJhbSBmaWxlUGF0aCBUaGUgb3V0cHV0IGZpbGUgcGF0aCwgbXVzdCBoYXZlIGEgXCIudHNcIiBleHRlbnNpb24uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgd3JpdGVUb0ZpbGUoZmlsZVBhdGg6IHN0cmluZykge1xuICAgIGlmIChwYXRoLmV4dG5hbWUoZmlsZVBhdGgpICE9PSAnLnRzJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdmaWxlIG11c3QgaGF2ZSBhIC50cyBleHRlbnNpb24nKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb2RlID0gbmV3IENvZGVNYWtlcigpO1xuICAgIGNvbnN0IGZpbGVuYW1lID0gcGF0aC5iYXNlbmFtZShmaWxlUGF0aCk7XG4gICAgY29kZS5vcGVuRmlsZShmaWxlbmFtZSk7XG4gICAgdGhpcy53cml0ZVRvQ29kZU1ha2VyKGNvZGUpO1xuICAgIGNvZGUuY2xvc2VGaWxlKGZpbGVuYW1lKTtcbiAgICBhd2FpdCBjb2RlLnNhdmUocGF0aC5kaXJuYW1lKGZpbGVQYXRoKSk7XG4gIH1cblxuICAvKipcbiAgICogV3JpdGVzIGFsbCB0eXBlcyB0byBhIGBDb2RlTWFrZXJgIHdpdGggYW4gb3BlbiBmaWxlLlxuICAgKiBVc2UgdGhpcyBtZXRob2QgaW4gY2FzZSB5b3UgbmVlZCB0byBhZGQgdGhvc2UgdHlwZSB0byBhbiBleGlzdGluZyBmaWxlLlxuICAgKiBAcGFyYW0gY29kZSBUaGUgYENvZGVNYWtlcmAgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgd3JpdGVUb0NvZGVNYWtlcihjb2RlOiBDb2RlTWFrZXIpIHtcbiAgICB3aGlsZSAoT2JqZWN0LmtleXModGhpcy50eXBlc1RvRW1pdCkubGVuZ3RoKSB7XG4gICAgICBjb25zdCBuYW1lID0gT2JqZWN0LmtleXModGhpcy50eXBlc1RvRW1pdClbMF07XG4gICAgICBjb25zdCBlbWl0dGVyID0gdGhpcy50eXBlc1RvRW1pdFtuYW1lXTtcbiAgICAgIGVtaXR0ZXIoY29kZSk7XG4gICAgICBjb2RlLmxpbmUoKTtcbiAgICAgIGRlbGV0ZSB0aGlzLnR5cGVzVG9FbWl0W25hbWVdO1xuICAgICAgdGhpcy5lbWl0dGVkVHlwZXMuYWRkKG5hbWUpO1xuICAgIH0gICAgXG4gIH1cblxuICBwcml2YXRlIGVtaXRMYXRlcih0eXBlTmFtZTogc3RyaW5nLCBjb2RlRW1pdHRlcjogKGNvZGU6IENvZGVNYWtlcikgPT4gdm9pZCkge1xuICAgIGlmICh0aGlzLmVtaXR0ZWRUeXBlcy5oYXModHlwZU5hbWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy50eXBlc1RvRW1pdFt0eXBlTmFtZV0gPSBjb2RlRW1pdHRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB0cnVlIGlmIHRoaXMgZGVmaW5pdGlvbiBjYW4gYmUgcmVwcmVzZW50ZWQgYXMgYSB1bmlvbiBvciBmYWxzZSBpZiBpdCBjYW5ub3RcbiAgICovXG4gIHByaXZhdGUgZW1pdFVuaW9uKHR5cGVOYW1lOiBzdHJpbmcsIGRlZjogSlNPTlNjaGVtYTQsIGZxbjogc3RyaW5nKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gICAgZm9yIChjb25zdCBvcHRpb24gb2YgZGVmLm9uZU9mIHx8IGRlZi5hbnlPZiB8fCBbXSkge1xuICAgICAgaWYgKCFzdXBwb3J0ZWRVbmlvbk9wdGlvblR5cGUob3B0aW9uLnR5cGUpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdHlwZSA9IG9wdGlvbi50eXBlID09PSAnaW50ZWdlcicgPyAnbnVtYmVyJyA6IG9wdGlvbi50eXBlO1xuICAgICAgb3B0aW9ucy5wdXNoKHR5cGUpO1xuICAgIH1cblxuICAgIHRoaXMuZW1pdExhdGVyKHR5cGVOYW1lLCBjb2RlID0+IHtcbiAgICAgIHRoaXMuZW1pdERlc2NyaXB0aW9uKGNvZGUsIGZxbiwgZGVmLmRlc2NyaXB0aW9uKTtcblxuICAgICAgY29kZS5vcGVuQmxvY2soYGV4cG9ydCBjbGFzcyAke3R5cGVOYW1lfWApO1xuXG4gICAgICBmb3IgKGNvbnN0IHR5cGUgb2Ygb3B0aW9ucykge1xuICAgICAgICBjb25zdCBtZXRob2ROYW1lID0gJ2Zyb20nICsgdHlwZVswXS50b1VwcGVyQ2FzZSgpICsgdHlwZS5zdWJzdHIoMSk7XG4gICAgICAgIGNvZGUub3BlbkJsb2NrKGBwdWJsaWMgc3RhdGljICR7bWV0aG9kTmFtZX0odmFsdWU6ICR7dHlwZX0pOiAke3R5cGVOYW1lfWApO1xuICAgICAgICBjb2RlLmxpbmUoYHJldHVybiBuZXcgJHt0eXBlTmFtZX0odmFsdWUpO2ApO1xuICAgICAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICAgIH1cblxuICAgICAgY29kZS5vcGVuQmxvY2soJ3ByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IGFueSknKTtcbiAgICAgIGNvZGUubGluZSgnT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIFxcJ3Jlc29sdmVcXCcsIHsgdmFsdWU6ICgpID0+IHZhbHVlIH0pOycpO1xuICAgICAgY29kZS5jbG9zZUJsb2NrKCk7XG5cbiAgICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIGVtaXRTdHJ1Y3QodHlwZU5hbWU6IHN0cmluZywgc3RydWN0RGVmOiBKU09OU2NoZW1hNCwgc3RydWN0RnFuOiBzdHJpbmcpIHtcbiAgICB0aGlzLmVtaXRMYXRlcih0eXBlTmFtZSwgY29kZSA9PiB7XG4gICAgICB0aGlzLmVtaXREZXNjcmlwdGlvbihjb2RlLCBzdHJ1Y3RGcW4sIHN0cnVjdERlZi5kZXNjcmlwdGlvbik7XG4gICAgICBjb2RlLm9wZW5CbG9jayhgZXhwb3J0IGludGVyZmFjZSAke3R5cGVOYW1lfWApO1xuXG4gICAgICBmb3IgKGNvbnN0IFsgcHJvcE5hbWUsIHByb3BTcGVjIF0gb2YgT2JqZWN0LmVudHJpZXMoc3RydWN0RGVmLnByb3BlcnRpZXMgfHwge30pKSB7XG4gIFxuICAgICAgICBpZiAocHJvcE5hbWUuc3RhcnRzV2l0aCgneC0nKSkge1xuICAgICAgICAgIGNvbnRpbnVlOyAvLyBza2lwIGV4dGVuc2lvbnMgZm9yIG5vd1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHByb3BOYW1lLmluY2x1ZGVzKCdfJykpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGB3YXJuaW5nOiBwcm9wZXJ0eSAke3N0cnVjdEZxbn0uJHtwcm9wTmFtZX0gb21pdHRlZCBzaW5jZSBpdCBpbmNsdWRlcyBhbiB1bmRlcnNjb3JlYCk7XG4gICAgICAgICAgY29udGludWU7IC8vIHNraXAgXG4gICAgICAgIH1cbiAgXG4gICAgICAgIHRoaXMuZW1pdFByb3BlcnR5KGNvZGUsIHByb3BOYW1lLCBwcm9wU3BlYywgc3RydWN0RnFuLCBzdHJ1Y3REZWYpO1xuICAgICAgfVxuICAgIFxuICAgICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRQcm9wZXJ0eShjb2RlOiBDb2RlTWFrZXIsIG5hbWU6IHN0cmluZywgcHJvcERlZjogSlNPTlNjaGVtYTQsIHN0cnVjdEZxbjogc3RyaW5nLCBzdHJ1Y3REZWY6IEpTT05TY2hlbWE0KSB7XG4gICAgY29uc3Qgb3JpZ2luYWxOYW1lID0gbmFtZTtcblxuICAgIC8vIGlmIG5hbWUgaXMgbm90IGNhbWVsQ2FzZSwgY29udmVydCBpdCB0byBjYW1lbCBjYXNlLCBidXQgdGhpcyBpcyBsaWtlbHkgdG9cbiAgICAvLyBwcm9kdWNlIGludmFsaWQgb3V0cHV0IGR1cmluZyBzeW50aGVzaXMsIHNvIGFkZCBzb21lIGFubm90YXRpb24gdG8gdGhlIGRvY3MuXG4gICAgaWYgKG5hbWVbMF0gPT09IG5hbWVbMF0udG9VcHBlckNhc2UoKSkge1xuICAgICAgbmFtZSA9IGNvZGUudG9DYW1lbENhc2UobmFtZSk7XG4gICAgfVxuXG4gICAgLy8gaWYgdGhlIG5hbWUgc3RhcnRzIHdpdGggJyQnIChsaWtlICRyZWYgb3IgJHNjaGVtYSksIHdlIHJlbW92ZSB0aGUgXCIkXCJcbiAgICAvLyBhbmQgaXQncyB0aGUgc2FtZSBkZWFsIC0gd2lsbCBwcm9kdWNlIGludmFsaWQgb3V0cHV0XG4gICAgaWYgKG5hbWUuc3RhcnRzV2l0aCgnJCcpKSB7XG4gICAgICBuYW1lID0gbmFtZS5zdWJzdHJpbmcoMSk7XG4gICAgfVxuXG4gICAgdGhpcy5lbWl0RGVzY3JpcHRpb24oY29kZSwgYCR7c3RydWN0RnFufSMke29yaWdpbmFsTmFtZX1gLCBwcm9wRGVmLmRlc2NyaXB0aW9uKTtcbiAgICBjb25zdCBwcm9wZXJ0eVR5cGUgPSB0aGlzLnR5cGVGb3JQcm9wZXJ0eShgJHtzdHJ1Y3RGcW59LiR7bmFtZX1gLCBwcm9wRGVmKTtcbiAgICBjb25zdCByZXF1aXJlZCA9IHRoaXMuaXNQcm9wZXJ0eVJlcXVpcmVkKG5hbWUsIHN0cnVjdERlZik7XG4gICAgY29uc3Qgb3B0aW9uYWwgPSByZXF1aXJlZCA/ICcnIDogJz8nO1xuXG4gICAgY29kZS5saW5lKGByZWFkb25seSAke25hbWV9JHtvcHRpb25hbH06ICR7cHJvcGVydHlUeXBlfTtgKTtcbiAgICBjb2RlLmxpbmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEVudW0odHlwZU5hbWU6IHN0cmluZywgZGVmOiBKU09OU2NoZW1hNCwgc3RydWN0RnFuOiBzdHJpbmcpIHtcblxuICAgIHRoaXMuZW1pdExhdGVyKHR5cGVOYW1lLCBjb2RlID0+IHtcblxuICAgICAgaWYgKCFkZWYuZW51bSB8fCBkZWYuZW51bS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBkZWZpbml0aW9uIGlzIG5vdCBhbiBlbnVtOiAke0pTT04uc3RyaW5naWZ5KGRlZil9YCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChkZWYudHlwZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdjYW4gb25seSBnZW5lcmF0ZSBzdHJpbmcgZW51bXMnKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5lbWl0RGVzY3JpcHRpb24oY29kZSwgc3RydWN0RnFuLCBkZWYuZGVzY3JpcHRpb24pO1xuXG4gICAgICBjb2RlLm9wZW5CbG9jayhgZXhwb3J0IGVudW0gJHt0eXBlTmFtZX1gKTtcblxuICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiBkZWYuZW51bSkge1xuICAgICAgICBpZiAodHlwZW9mKHZhbHVlKSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NhbiBvbmx5IGdlbmVyYXRlIGVudW1zIGZvciBzdHJpbmcgdmFsdWVzJyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzbHVnZ2lmeSBhbmQgdHVybiB0byBVUFBFUl9TTkFLRV9DQVNFXG4gICAgICAgIGNvbnN0IG1lbWJlck5hbWUgPSBjb2RlLnRvU25ha2VDYXNlKHZhbHVlLnJlcGxhY2UoL1teYS16MC05XS9naSwgJ18nKSkuc3BsaXQoJ18nKS5maWx0ZXIoeCA9PiB4KS5qb2luKCdfJykudG9VcHBlckNhc2UoKTtcblxuICAgICAgICBjb2RlLmxpbmUoYC8qKiAke3ZhbHVlfSAqL2ApO1xuICAgICAgICBjb2RlLmxpbmUoYCR7bWVtYmVyTmFtZX0gPSBcIiR7dmFsdWV9XCIsYCk7XG4gICAgICB9XG5cbiAgICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHR5cGVOYW1lO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0RGVzY3JpcHRpb24oY29kZTogQ29kZU1ha2VyLCBmcW46IHN0cmluZywgZGVzY3JpcHRpb24/OiBzdHJpbmcsIGFubm90YXRpb25zOiB7IFt0eXBlOiBzdHJpbmddOiBzdHJpbmcgfSA9IHsgfSkge1xuICAgIGNvZGUubGluZSgnLyoqJyk7XG5cbiAgICBpZiAoZGVzY3JpcHRpb24pIHtcbiAgICAgIGRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb24ucmVwbGFjZSgvXFwqXFwvL2csICdfLycpO1xuXG4gICAgICBjb25zdCBleHRyYWN0RGVmYXVsdCA9IC9EZWZhdWx0cz9cXFcrKHRvfGlzKVxcVysoLispL2cuZXhlYyhkZXNjcmlwdGlvbik7XG4gICAgICBjb25zdCBkZWYgPSBleHRyYWN0RGVmYXVsdCAmJiBleHRyYWN0RGVmYXVsdFsyXTtcbiAgICBcbiAgICAgIGNvZGUubGluZShgICogJHtkZXNjcmlwdGlvbn1gKTtcbiAgICAgIGlmIChkZWYpIHtcbiAgICAgICAgYW5ub3RhdGlvbnNbJ2RlZmF1bHQnXSA9IGRlZjtcbiAgICAgIH1cblxuICAgICAgY29kZS5saW5lKCcgKicpO1xuICAgIH1cblxuICAgIGFubm90YXRpb25zWydzY2hlbWEnXSA9IGZxbjtcblxuICAgIGZvciAoY29uc3QgWyB0eXBlLCB2YWx1ZSBdIG9mIE9iamVjdC5lbnRyaWVzKGFubm90YXRpb25zKSkge1xuICAgICAgY29kZS5saW5lKGAgKiBAJHt0eXBlfSAke3ZhbHVlfWApO1xuICAgIH1cblxuICAgIGNvZGUubGluZSgnICovJylcbiAgfVxuXG4gIHByaXZhdGUgdHlwZUZvclByb3BlcnR5KHByb3BlcnR5RnFuOiBzdHJpbmcsIGRlZjogSlNPTlNjaGVtYTQpOiBzdHJpbmcge1xuICAgIGNvbnN0IHN1YnR5cGUgPSBub3JtYWxpemVUeXBlTmFtZShwcm9wZXJ0eUZxbi5zcGxpdCgnLicpLm1hcCh4ID0+IHRvUGFzY2FsQ2FzZSh4KSkuam9pbignJykpO1xuICAgIHJldHVybiB0aGlzLmVtaXRUeXBlKHN1YnR5cGUsIGRlZiwgc3VidHlwZSk7XG4gIH1cblxuICBwcml2YXRlIHR5cGVGb3JSZWYoZGVmOiBKU09OU2NoZW1hNCk6IHN0cmluZyB7XG4gICAgY29uc3QgcHJlZml4ID0gJyMvZGVmaW5pdGlvbnMvJztcbiAgICBpZiAoIWRlZi4kcmVmIHx8ICFkZWYuJHJlZi5zdGFydHNXaXRoKHByZWZpeCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCAkcmVmICR7SlNPTi5zdHJpbmdpZnkoZGVmKX1gKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0V4Y2x1ZGVkKGRlZi4kcmVmKSkge1xuICAgICAgcmV0dXJuICdhbnknO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbXBzID0gZGVmLiRyZWYuc3Vic3RyaW5nKHByZWZpeC5sZW5ndGgpLnNwbGl0KCcuJyk7XG4gICAgY29uc3QgdHlwZU5hbWUgPSBub3JtYWxpemVUeXBlTmFtZShjb21wc1tjb21wcy5sZW5ndGggLSAxXSk7XG4gICAgY29uc3Qgc2NoZW1hID0gdGhpcy5yZXNvbHZlUmVmZXJlbmNlKGRlZik7XG4gICAgcmV0dXJuIHRoaXMuZW1pdFR5cGUodHlwZU5hbWUsIHNjaGVtYSwgZGVmLiRyZWYpO1xuICB9XG5cbiAgcHJpdmF0ZSB0eXBlRm9yQXJyYXkocHJvcGVydHlGcW46IHN0cmluZywgZGVmOiBKU09OU2NoZW1hNCk6IHN0cmluZyB7XG4gICAgaWYgKCFkZWYuaXRlbXMgfHwgdHlwZW9mKGRlZi5pdGVtcykgIT09ICdvYmplY3QnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHVuc3VwcG9ydGVkIGFycmF5IHR5cGUgJHtkZWYuaXRlbXN9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMudHlwZUZvclByb3BlcnR5KHByb3BlcnR5RnFuLCBkZWYuaXRlbXMpO1xuICB9ICBcblxuICBwcml2YXRlIHJlc29sdmVSZWZlcmVuY2UoZGVmOiBKU09OU2NoZW1hNCk6IEpTT05TY2hlbWE0IHtcbiAgICBjb25zdCByZWYgPSBkZWYuJHJlZjtcbiAgICBpZiAoIXJlZiB8fCAhcmVmLnN0YXJ0c1dpdGgoREVGSU5JVElPTlNfUFJFRklYKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdleHBlY3RpbmcgYSBsb2NhbCByZWZlcmVuY2UnKTtcbiAgICB9XG5cbiAgICBjb25zdCBsb29rdXAgPSByZWYuc3Vic3RyKERFRklOSVRJT05TX1BSRUZJWC5sZW5ndGgpO1xuICAgIGNvbnN0IGZvdW5kID0gdGhpcy5kZWZpbml0aW9uc1tsb29rdXBdO1xuICAgIGlmICghZm91bmQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdW5hYmxlIHRvIGZpbmQgYSBkZWZpbml0aW9uIGZvciB0aGUgJHJlZiBcIiR7bG9va3VwfVwiYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvdW5kO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1Byb3BlcnR5UmVxdWlyZWQocHJvcGVydHk6IHN0cmluZywgc3RydWN0RGVmOiBKU09OU2NoZW1hNCkge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHN0cnVjdERlZi5yZXF1aXJlZCkgJiYgc3RydWN0RGVmLnJlcXVpcmVkLmluY2x1ZGVzKHByb3BlcnR5KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNFeGNsdWRlZChmcW46IHN0cmluZykge1xuICAgIGZvciAoY29uc3QgcGF0dGVybiBvZiB0aGlzLmV4Y2x1ZGUpIHtcbiAgICAgIGNvbnN0IHJlID0gbmV3IFJlZ0V4cChwYXR0ZXJuKTtcbiAgICAgIGlmIChyZS50ZXN0KGZxbikpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogQ29udmVydCBhbGwtY2FwcyBhY3JvbnltcyAoZS5nLiBcIlZQQ1wiLCBcIkZvb0JBUlpvb0ZJR29vXCIpIHRvIHBhc2NhbCBjYXNlIChlLmcuIFwiVnBjXCIsIFwiRm9vQmFyWm9vRmlHb29cIikuXG4gKlxuICogQGludGVybmFsIGV4cG9ydGVkIGZvciB0ZXN0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplVHlwZU5hbWUodHlwZU5hbWU6IHN0cmluZykge1xuICAvLyBzdGFydCB3aXRoIHRoZSBmdWxsIHN0cmluZyBhbmQgdGhlbiB1c2UgdGhlIHJlZ2V4IHRvIG1hdGNoIGFsbC1jYXBzIHNlcXVlbmNlcy5cbiAgY29uc3QgcmUgPSAvKFtBLVpdKykoPzpbXmEtel18JCkvZztcbiAgbGV0IHJlc3VsdCA9IHR5cGVOYW1lO1xuICBsZXQgbTtcbiAgZG8ge1xuICAgIG0gPSByZS5leGVjKHR5cGVOYW1lKTtcbiAgICBpZiAobSkge1xuICAgICAgY29uc3QgYmVmb3JlID0gcmVzdWx0LnNsaWNlKDAsIG0uaW5kZXgpOyAvLyBhbGwgdGhlIHRleHQgYmVmb3JlIHRoZSBzZXF1ZW5jZVxuICAgICAgY29uc3QgY2FwID0gbVsxXTsgLy8gZ3JvdXAgIzEgbWF0Y2hlcyB0aGUgYWxsLWNhcHMgc2VxdWVuY2Ugd2UgYXJlIGFmdGVyXG4gICAgICBjb25zdCBwYXNjYWwgPSBjYXBbMF0gKyBjYXAuc2xpY2UoMSkudG9Mb3dlckNhc2UoKTsgLy8gY29udmVydCB0byBwYXNjYWwgY2FzZSBieSBsb3dlcmNhc2luZyBhbGwgYnV0IHRoZSBmaXJzdCBjaGFyXG4gICAgICBjb25zdCBhZnRlciA9IHJlc3VsdC5zbGljZShtLmluZGV4ICsgcGFzY2FsLmxlbmd0aCk7IC8vIGFsbCB0aGUgdGV4dCBhZnRlciB0aGUgc2VxdWVuY2VcbiAgICAgIHJlc3VsdCA9IGJlZm9yZSArIHBhc2NhbCArIGFmdGVyOyAvLyBjb25jYXRcbiAgICB9XG4gIH0gd2hpbGUgKG0pO1xuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIHN1cHBvcnRlZFVuaW9uT3B0aW9uVHlwZSh0eXBlOiBhbnkpOiB0eXBlIGlzIHN0cmluZyB7XG4gIHJldHVybiB0eXBlICYmICh0eXBlb2YodHlwZSkgPT09ICdzdHJpbmcnICYmIFBSSU1JVElWRV9UWVBFUy5pbmNsdWRlcyh0eXBlKSk7XG59XG4iXX0=
function pascalCase(s) {
return camelCase(s, { pascalCase: true });
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlLWdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxpQ0FBOEI7QUFFOUIsdUNBQXVDO0FBQ3ZDLDJDQUF1QztBQUV2QyxNQUFNLGVBQWUsR0FBRyxDQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBRSxDQUFDO0FBQ3JFLE1BQU0sa0JBQWtCLEdBQUcsZ0JBQWdCLENBQUM7QUFnQjVDOztHQUVHO0FBQ0gsTUFBYSxhQUFhO0lBOEJ4Qjs7OztPQUlHO0lBQ0gsWUFBWSxVQUFnQyxFQUFHOztRQVY5QixnQkFBVyxHQUE2QyxFQUFHLENBQUM7UUFDNUQsaUJBQVksR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO1FBVWhELElBQUksQ0FBQyxPQUFPLFNBQUcsT0FBTyxDQUFDLE9BQU8sbUNBQUksRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxXQUFXLFNBQUcsT0FBTyxDQUFDLFdBQVcsbUNBQUksRUFBRyxDQUFDO0lBQ2hELENBQUM7SUFwQ0Q7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLGlCQUFpQixDQUFDLFFBQWdCO1FBQzlDLGlGQUFpRjtRQUNqRixNQUFNLEVBQUUsR0FBRyx1QkFBdUIsQ0FBQztRQUNuQyxJQUFJLE1BQU0sR0FBRyxRQUFRLENBQUM7UUFDdEIsSUFBSSxDQUFDLENBQUM7UUFDTixHQUFHO1lBQ0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdEIsSUFBSSxDQUFDLEVBQUU7Z0JBQ0wsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsbUNBQW1DO2dCQUM1RSxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxzREFBc0Q7Z0JBQ3hFLE1BQU0sTUFB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LEVBQUUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMvQixJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2hCLE9BQU8sSUFBSSxDQUFDO2FBQ2I7U0FDRjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUNGO0FBOVZELHNDQThWQztBQUVELFNBQVMsd0JBQXdCLENBQUMsSUFBUztJQUN6QyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxRQUFRLElBQUksZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQy9FLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxDQUFTO0lBQzNCLE9BQU8sU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQzVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBKU09OU2NoZW1hNCB9IGZyb20gJ2pzb24tc2NoZW1hJztcbmltcG9ydCB7IENvZGUgfSBmcm9tICcuL2NvZGUnO1xuXG5pbXBvcnQgKiBhcyBjYW1lbENhc2UgZnJvbSAnY2FtZWxjYXNlJztcbmltcG9ydCB7IHNuYWtlQ2FzZSB9IGZyb20gJ3NuYWtlLWNhc2UnO1xuXG5jb25zdCBQUklNSVRJVkVfVFlQRVMgPSBbICdzdHJpbmcnLCAnbnVtYmVyJywgJ2ludGVnZXInLCAnYm9vbGVhbicgXTtcbmNvbnN0IERFRklOSVRJT05TX1BSRUZJWCA9ICcjL2RlZmluaXRpb25zLyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZUdlbmVyYXRvck9wdGlvbnMge1xuICAvKipcbiAgICogUGF0dGVybnMgb2YgdHlwZSBGUU5zIHRvIGV4Y2x1ZGUuXG4gICAqIEBkZWZhdWx0IC0gaW5jbHVkZSBhbGwgdHlwZXNcbiAgICovXG4gIHJlYWRvbmx5IGV4Y2x1ZGU/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogU2NoZW1hIGRlZmluaXRpb25zIGZvciByZXNvbHZpbmcgJHJlZnNcbiAgICogQGRlZmF1bHQgLSAkcmVmcyBhcmUgbm90IHN1cHBvcnRlZFxuICAgKi9cbiAgcmVhZG9ubHkgZGVmaW5pdGlvbnM/OiB7IFtkZWY6IHN0cmluZ106IEpTT05TY2hlbWE0IH07XG59XG5cbi8qKlxuICogR2VuZXJhdGVzIHR5cGVzY3JpcHQgdHlwZXMgZnJvbSBKU09OIHNjaGVtYXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBUeXBlR2VuZXJhdG9yIHtcblxuICAvKipcbiAgICogQ29udmVydCBhbGwtY2FwcyBhY3JvbnltcyAoZS5nLiBcIlZQQ1wiLCBcIkZvb0JBUlpvb0ZJR29vXCIpIHRvIHBhc2NhbCBjYXNlXG4gICAqIChlLmcuIFwiVnBjXCIsIFwiRm9vQmFyWm9vRmlHb29cIikuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG5vcm1hbGl6ZVR5cGVOYW1lKHR5cGVOYW1lOiBzdHJpbmcpIHtcbiAgICAvLyBzdGFydCB3aXRoIHRoZSBmdWxsIHN0cmluZyBhbmQgdGhlbiB1c2UgdGhlIHJlZ2V4IHRvIG1hdGNoIGFsbC1jYXBzIHNlcXVlbmNlcy5cbiAgICBjb25zdCByZSA9IC8oW0EtWl0rKSg/OlteYS16XXwkKS9nO1xuICAgIGxldCByZXN1bHQgPSB0eXBlTmFtZTtcbiAgICBsZXQgbTtcbiAgICBkbyB7XG4gICAgICBtID0gcmUuZXhlYyh0eXBlTmFtZSk7XG4gICAgICBpZiAobSkge1xuICAgICAgICBjb25zdCBiZWZvcmUgPSByZXN1bHQuc2xpY2UoMCwgbS5pbmRleCk7IC8vIGFsbCB0aGUgdGV4dCBiZWZvcmUgdGhlIHNlcXVlbmNlXG4gICAgICAgIGNvbnN0IGNhcCA9IG1bMV07IC8vIGdyb3VwICMxIG1hdGNoZXMgdGhlIGFsbC1jYXBzIHNlcXVlbmNlIHdlIGFyZSBhZnRlclxuICAgICAgICBjb25zdCBwYXNjYWwgPSBjYXBbMF0gKyBjYXAuc2xpY2UoMSkudG9Mb3dlckNhc2UoKTsgLy8gY29udmVydCB0byBwYXNjYWwgY2FzZSBieSBsb3dlcmNhc2luZyBhbGwgYnV0IHRoZSBmaXJzdCBjaGFyXG4gICAgICAgIGNvbnN0IGFmdGVyID0gcmVzdWx0LnNsaWNlKG0uaW5kZXggKyBwYXNjYWwubGVuZ3RoKTsgLy8gYWxsIHRoZSB0ZXh0IGFmdGVyIHRoZSBzZXF1ZW5jZVxuICAgICAgICByZXN1bHQgPSBiZWZvcmUgKyBwYXNjYWwgKyBhZnRlcjsgLy8gY29uY2F0XG4gICAgICB9XG4gICAgfSB3aGlsZSAobSk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSB0eXBlc1RvRW1pdDogeyBbbmFtZTogc3RyaW5nXTogKGNvZGU6IENvZGUpID0+IHZvaWQgfSA9IHsgfTtcbiAgcHJpdmF0ZSByZWFkb25seSBlbWl0dGVkVHlwZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBleGNsdWRlOiBzdHJpbmdbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZpbml0aW9uczogeyBbZGVmOiBzdHJpbmddOiBKU09OU2NoZW1hNCB9O1xuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gc2NoZW1hIFNjaGVtYSBkZWZpbml0aW9uc1xuICAgKiBAcGFyYW0gb3B0aW9uc1xuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0aW9uczogVHlwZUdlbmVyYXRvck9wdGlvbnMgPSB7IH0pIHtcbiAgICB0aGlzLmV4Y2x1ZGUgPSBvcHRpb25zLmV4Y2x1ZGUgPz8gW107XG4gICAgdGhpcy5kZWZpbml0aW9ucyA9IG9wdGlvbnMuZGVmaW5pdGlvbnMgPz8geyB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEVtaXQgYSB0eXBlIGJhc2VkIG9uIGEgSlNPTiBzY2hlbWEuXG4gICAqIEBwYXJhbSB0eXBlTmFtZSBUaGUgbmFtZSBvZiB0aCB0eXBlXG4gICAqIEBwYXJhbSBkZWYgSlNPTiBzY2hlbWFcbiAgICogQHBhcmFtIHN0cnVjdEZxbiBGUU4gZm9yIHRoZSB0eXBlIChkZWZhdWx0cyB0byBgdHlwZU5hbWVgKVxuICAgKi9cbiAgcHVibGljIGFkZFR5cGUodHlwZU5hbWU6IHN0cmluZywgZGVmOiBKU09OU2NoZW1hNCwgc3RydWN0RnFuOiBzdHJpbmcgPSB0eXBlTmFtZSk6IHN0cmluZyB7XG4gICAgLy8gY2FsbGVycyBleHBlY3QgdGhhdCBlbWl0IGEgdHlwZSBuYW1lZCBgdHlwZU5hbWVgIHNvIHdlIGNhbid0IGNoYW5nZSBpdCBoZXJlXG4gICAgLy8gYnV0IGF0IGxlYXN0IHdlIGNhbiB2ZXJpZnkgaXQncyBjb3JyZWN0LlxuICAgIGlmIChUeXBlR2VuZXJhdG9yLm5vcm1hbGl6ZVR5cGVOYW1lKHR5cGVOYW1lKSAhPT0gdHlwZU5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHt0eXBlTmFtZX0gbXVzdCBiZSBub3JtYWxpemVkIGJlZm9yZSBjYWxsaW5nIGVtaXRUeXBlYCk7XG4gICAgfVxuXG4gICAgaWYgKHN0cnVjdEZxbi5zdGFydHNXaXRoKERFRklOSVRJT05TX1BSRUZJWCkpIHtcbiAgICAgIHN0cnVjdEZxbiA9IHN0cnVjdEZxbi5zdWJzdHJpbmcoREVGSU5JVElPTlNfUFJFRklYLmxlbmd0aCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNFeGNsdWRlZChzdHJ1Y3RGcW4pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFR5cGUgJHtzdHJ1Y3RGcW59IGNhbm5vdCBiZSBhZGRlZCBzaW5jZSBpdCBtYXRjaGVzIG9uZSBvZiB0aGUgZXhjbHVzaW9uIHBhdHRlcm5zYCk7XG4gICAgfVxuXG4gICAgaWYgKGRlZi4kcmVmKSB7XG4gICAgICByZXR1cm4gdGhpcy50eXBlRm9yUmVmKGRlZik7XG4gICAgfVxuXG4gICAgLy8gdW5pb25zICh1bmxlc3MgdGhpcyBpcyBhIHN0cnVjdCwgYW5kIHRoZW4gd2UganVzdCBpZ25vcmUgdGhlIGNvbnN0cmFpbnRzKVxuICAgIGlmIChkZWYub25lT2YgfHwgZGVmLmFueU9mKSB7XG4gICAgICBpZiAodGhpcy5lbWl0VW5pb24odHlwZU5hbWUsIGRlZiwgc3RydWN0RnFuKSkge1xuICAgICAgICByZXR1cm4gdHlwZU5hbWU7XG4gICAgICB9XG5cbiAgICAgIC8vIGNhcnJ5IG9uLCB3ZSBjYW4ndCByZXByZXNlbnQgdGhpcyBzY2hlbWEgYXMgYSB1bmlvbiAoeWV0PylcbiAgICB9XG5cbiAgICBpZiAoZGVmLnR5cGUgPT09ICdzdHJpbmcnICYmIGRlZi5mb3JtYXQgPT09ICdkYXRlLXRpbWUnKSB7XG4gICAgICByZXR1cm4gJ0RhdGUnO1xuICAgIH1cbiAgXG4gICAgc3dpdGNoIChkZWYudHlwZSkge1xuICAgICAgY2FzZSAnYm9vbGVhbic6IHJldHVybiAnYm9vbGVhbic7XG4gICAgICBjYXNlICdhcnJheSc6IHJldHVybiBgJHt0aGlzLnR5cGVGb3JBcnJheSh0eXBlTmFtZSwgZGVmKX1bXWA7XG4gICAgICBjYXNlICdhbnknOiByZXR1cm4gJ2FueSc7XG4gICAgICBjYXNlICdudWxsJzogcmV0dXJuICdhbnknO1xuICAgIH1cblxuICAgIGlmIChkZWYudHlwZSA9PT0gJ251bWJlcicgfHwgZGVmLnR5cGUgPT09ICdpbnRlZ2VyJykge1xuICAgICAgcmV0dXJuICdudW1iZXInO1xuICAgIH1cblxuICAgIGlmIChkZWYudHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGlmIChkZWYuZm9ybWF0ID09PSAnZGF0ZS10aW1lJykge1xuICAgICAgICByZXR1cm4gJ0RhdGUnO1xuICAgICAgfVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShkZWYuZW51bSkgJiYgZGVmLmVudW0ubGVuZ3RoID4gMCAmJiAhZGVmLmVudW0uZmluZCh4ID0+IHR5cGVvZih4KSAhPT0gJ3N0cmluZycpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVtaXRFbnVtKHR5cGVOYW1lLCBkZWYsIHN0cnVjdEZxbik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnc3RyaW5nJztcbiAgICB9XG4gICAgXG4gICAgLy8gbWFwXG4gICAgaWYgKCFkZWYucHJvcGVydGllcyAmJiBkZWYuYWRkaXRpb25hbFByb3BlcnRpZXMgJiYgdHlwZW9mKGRlZi5hZGRpdGlvbmFsUHJvcGVydGllcykgPT09ICdvYmplY3QnKSB7XG4gICAgICByZXR1cm4gYHsgW2tleTogc3RyaW5nXTogJHt0aGlzLnR5cGVGb3JQcm9wZXJ0eSh0eXBlTmFtZSwgZGVmLmFkZGl0aW9uYWxQcm9wZXJ0aWVzKX0gfWA7XG4gICAgfVxuXG4gICAgLy8gc3RydWN0XG4gICAgaWYgKGRlZi5wcm9wZXJ0aWVzKSB7XG4gICAgICB0aGlzLmVtaXRTdHJ1Y3QodHlwZU5hbWUsIGRlZiwgc3RydWN0RnFuKVxuICAgICAgcmV0dXJuIHR5cGVOYW1lO1xuICAgIH1cblxuICAgIHJldHVybiAnYW55JztcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyBjb2RlIG9uY2UgdG8gdGhlIG91dHB1dCBmaWxlLlxuICAgKiBAcGFyYW0gdW5pcXVlaWQgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGNvZGUgc25pcHBldCAoZS5nLiB0aGUgbmFtZSBvZiB0aGUgdHlwZSlcbiAgICogQHBhcmFtIGNvZGVFbWl0dGVyIEEgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCB0byBlbWl0IHRoZSBjb2RlLlxuICAgKi9cbiAgcHVibGljIGFkZENvZGUodW5pcXVlaWQ6IHN0cmluZywgY29kZUVtaXR0ZXI6IChjb2RlOiBDb2RlKSA9PiB2b2lkKSB7XG4gICAgaWYgKHRoaXMuZW1pdHRlZFR5cGVzLmhhcyh1bmlxdWVpZCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnR5cGVzVG9FbWl0W3VuaXF1ZWlkXSA9IGNvZGVFbWl0dGVyO1xuICB9XG5cbiAgcHVibGljIHJlbmRlcigpIHtcbiAgICBjb25zdCBjb2RlID0gbmV3IENvZGUoKTtcbiAgICB0aGlzLmVtaXRDb2RlKGNvZGUpO1xuICAgIHJldHVybiBjb2RlLnJlbmRlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdyaXRlcyBhbGwgdHlwZXMgdG8gYSBgQ29kZU1ha2VyYCB3aXRoIGFuIG9wZW4gZmlsZS5cbiAgICogVXNlIHRoaXMgbWV0aG9kIGluIGNhc2UgeW91IG5lZWQgdG8gYWRkIHRob3NlIHR5cGUgdG8gYW4gZXhpc3RpbmcgZmlsZS5cbiAgICogQHBhcmFtIGNvZGUgVGhlIGBDb2RlTWFrZXJgIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIGVtaXRDb2RlKGNvZGU6IENvZGUpIHtcbiAgICB3aGlsZSAoT2JqZWN0LmtleXModGhpcy50eXBlc1RvRW1pdCkubGVuZ3RoKSB7XG4gICAgICBjb25zdCBuYW1lID0gT2JqZWN0LmtleXModGhpcy50eXBlc1RvRW1pdClbMF07XG4gICAgICBjb25zdCBlbWl0dGVyID0gdGhpcy50eXBlc1RvRW1pdFtuYW1lXTtcbiAgICAgIGVtaXR0ZXIoY29kZSk7XG4gICAgICBjb2RlLmxpbmUoKTtcbiAgICAgIGRlbGV0ZSB0aGlzLnR5cGVzVG9FbWl0W25hbWVdO1xuICAgICAgdGhpcy5lbWl0dGVkVHlwZXMuYWRkKG5hbWUpO1xuICAgIH0gICAgXG4gIH1cbiAgLyoqXG4gICAqIEByZXR1cm5zIHRydWUgaWYgdGhpcyBkZWZpbml0aW9uIGNhbiBiZSByZXByZXNlbnRlZCBhcyBhIHVuaW9uIG9yIGZhbHNlIGlmIGl0IGNhbm5vdFxuICAgKi9cbiAgcHJpdmF0ZSBlbWl0VW5pb24odHlwZU5hbWU6IHN0cmluZywgZGVmOiBKU09OU2NoZW1hNCwgZnFuOiBzdHJpbmcpIHtcbiAgICBjb25zdCBvcHRpb25zID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiBkZWYub25lT2YgfHwgZGVmLmFueU9mIHx8IFtdKSB7XG4gICAgICBpZiAoIXN1cHBvcnRlZFVuaW9uT3B0aW9uVHlwZShvcHRpb24udHlwZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0eXBlID0gb3B0aW9uLnR5cGUgPT09ICdpbnRlZ2VyJyA/ICdudW1iZXInIDogb3B0aW9uLnR5cGU7XG4gICAgICBvcHRpb25zLnB1c2godHlwZSk7XG4gICAgfVxuXG4gICAgdGhpcy5hZGRDb2RlKHR5cGVOYW1lLCBjb2RlID0+IHtcbiAgICAgIHRoaXMuZW1pdERlc2NyaXB0aW9uKGNvZGUsIGZxbiwgZGVmLmRlc2NyaXB0aW9uKTtcblxuICAgICAgY29kZS5vcGVuQmxvY2soYGV4cG9ydCBjbGFzcyAke3R5cGVOYW1lfWApO1xuXG4gICAgICBmb3IgKGNvbnN0IHR5cGUgb2Ygb3B0aW9ucykge1xuICAgICAgICBjb25zdCBtZXRob2ROYW1lID0gJ2Zyb20nICsgdHlwZVswXS50b1VwcGVyQ2FzZSgpICsgdHlwZS5zdWJzdHIoMSk7XG4gICAgICAgIGNvZGUub3BlbkJsb2NrKGBwdWJsaWMgc3RhdGljICR7bWV0aG9kTmFtZX0odmFsdWU6ICR7dHlwZX0pOiAke3R5cGVOYW1lfWApO1xuICAgICAgICBjb2RlLmxpbmUoYHJldHVybiBuZXcgJHt0eXBlTmFtZX0odmFsdWUpO2ApO1xuICAgICAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICAgIH1cblxuICAgICAgY29kZS5vcGVuQmxvY2soJ3ByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IGFueSknKTtcbiAgICAgIGNvZGUubGluZSgnT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIFxcJ3Jlc29sdmVcXCcsIHsgdmFsdWU6ICgpID0+IHZhbHVlIH0pOycpO1xuICAgICAgY29kZS5jbG9zZUJsb2NrKCk7XG5cbiAgICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIGVtaXRTdHJ1Y3QodHlwZU5hbWU6IHN0cmluZywgc3RydWN0RGVmOiBKU09OU2NoZW1hNCwgc3RydWN0RnFuOiBzdHJpbmcpIHtcbiAgICB0aGlzLmFkZENvZGUodHlwZU5hbWUsIGNvZGUgPT4ge1xuICAgICAgdGhpcy5lbWl0RGVzY3JpcHRpb24oY29kZSwgc3RydWN0RnFuLCBzdHJ1Y3REZWYuZGVzY3JpcHRpb24pO1xuICAgICAgY29kZS5vcGVuQmxvY2soYGV4cG9ydCBpbnRlcmZhY2UgJHt0eXBlTmFtZX1gKTtcblxuICAgICAgZm9yIChjb25zdCBbIHByb3BOYW1lLCBwcm9wU3BlYyBdIG9mIE9iamVjdC5lbnRyaWVzKHN0cnVjdERlZi5wcm9wZXJ0aWVzIHx8IHt9KSkge1xuICBcbiAgICAgICAgaWYgKHByb3BOYW1lLnN0YXJ0c1dpdGgoJ3gtJykpIHtcbiAgICAgICAgICBjb250aW51ZTsgLy8gc2tpcCBleHRlbnNpb25zIGZvciBub3dcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcm9wTmFtZS5pbmNsdWRlcygnXycpKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihgd2FybmluZzogcHJvcGVydHkgJHtzdHJ1Y3RGcW59LiR7cHJvcE5hbWV9IG9taXR0ZWQgc2luY2UgaXQgaW5jbHVkZXMgYW4gdW5kZXJzY29yZWApO1xuICAgICAgICAgIGNvbnRpbnVlOyAvLyBza2lwIFxuICAgICAgICB9XG4gIFxuICAgICAgICB0aGlzLmVtaXRQcm9wZXJ0eShjb2RlLCBwcm9wTmFtZSwgcHJvcFNwZWMsIHN0cnVjdEZxbiwgc3RydWN0RGVmKTtcbiAgICAgIH1cbiAgICBcbiAgICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0UHJvcGVydHkoY29kZTogQ29kZSwgbmFtZTogc3RyaW5nLCBwcm9wRGVmOiBKU09OU2NoZW1hNCwgc3RydWN0RnFuOiBzdHJpbmcsIHN0cnVjdERlZjogSlNPTlNjaGVtYTQpIHtcbiAgICBjb25zdCBvcmlnaW5hbE5hbWUgPSBuYW1lO1xuXG4gICAgLy8gaWYgbmFtZSBpcyBub3QgY2FtZWxDYXNlLCBjb252ZXJ0IGl0IHRvIGNhbWVsIGNhc2UsIGJ1dCB0aGlzIGlzIGxpa2VseSB0b1xuICAgIC8vIHByb2R1Y2UgaW52YWxpZCBvdXRwdXQgZHVyaW5nIHN5bnRoZXNpcywgc28gYWRkIHNvbWUgYW5ub3RhdGlvbiB0byB0aGUgZG9jcy5cbiAgICBpZiAobmFtZVswXSA9PT0gbmFtZVswXS50b1VwcGVyQ2FzZSgpKSB7XG4gICAgICBuYW1lID0gY2FtZWxDYXNlKG5hbWUpO1xuICAgIH1cblxuICAgIC8vIGlmIHRoZSBuYW1lIHN0YXJ0cyB3aXRoICckJyAobGlrZSAkcmVmIG9yICRzY2hlbWEpLCB3ZSByZW1vdmUgdGhlIFwiJFwiXG4gICAgLy8gYW5kIGl0J3MgdGhlIHNhbWUgZGVhbCAtIHdpbGwgcHJvZHVjZSBpbnZhbGlkIG91dHB1dFxuICAgIGlmIChuYW1lLnN0YXJ0c1dpdGgoJyQnKSkge1xuICAgICAgbmFtZSA9IG5hbWUuc3Vic3RyaW5nKDEpO1xuICAgIH1cblxuICAgIHRoaXMuZW1pdERlc2NyaXB0aW9uKGNvZGUsIGAke3N0cnVjdEZxbn0jJHtvcmlnaW5hbE5hbWV9YCwgcHJvcERlZi5kZXNjcmlwdGlvbik7XG4gICAgY29uc3QgcHJvcGVydHlUeXBlID0gdGhpcy50eXBlRm9yUHJvcGVydHkoYCR7c3RydWN0RnFufS4ke25hbWV9YCwgcHJvcERlZik7XG4gICAgY29uc3QgcmVxdWlyZWQgPSB0aGlzLmlzUHJvcGVydHlSZXF1aXJlZChuYW1lLCBzdHJ1Y3REZWYpO1xuICAgIGNvbnN0IG9wdGlvbmFsID0gcmVxdWlyZWQgPyAnJyA6ICc/JztcblxuICAgIGNvZGUubGluZShgcmVhZG9ubHkgJHtuYW1lfSR7b3B0aW9uYWx9OiAke3Byb3BlcnR5VHlwZX07YCk7XG4gICAgY29kZS5saW5lKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRFbnVtKHR5cGVOYW1lOiBzdHJpbmcsIGRlZjogSlNPTlNjaGVtYTQsIHN0cnVjdEZxbjogc3RyaW5nKSB7XG5cbiAgICB0aGlzLmFkZENvZGUodHlwZU5hbWUsIGNvZGUgPT4ge1xuXG4gICAgICBpZiAoIWRlZi5lbnVtIHx8IGRlZi5lbnVtLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGRlZmluaXRpb24gaXMgbm90IGFuIGVudW06ICR7SlNPTi5zdHJpbmdpZnkoZGVmKX1gKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGRlZi50eXBlICE9PSAnc3RyaW5nJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NhbiBvbmx5IGdlbmVyYXRlIHN0cmluZyBlbnVtcycpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmVtaXREZXNjcmlwdGlvbihjb2RlLCBzdHJ1Y3RGcW4sIGRlZi5kZXNjcmlwdGlvbik7XG5cbiAgICAgIGNvZGUub3BlbkJsb2NrKGBleHBvcnQgZW51bSAke3R5cGVOYW1lfWApO1xuXG4gICAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIGRlZi5lbnVtKSB7XG4gICAgICAgIGlmICh0eXBlb2YodmFsdWUpICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignY2FuIG9ubHkgZ2VuZXJhdGUgZW51bXMgZm9yIHN0cmluZyB2YWx1ZXMnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNsdWdnaWZ5IGFuZCB0dXJuIHRvIFVQUEVSX1NOQUtFX0NBU0VcbiAgICAgICAgY29uc3QgbWVtYmVyTmFtZSA9IHNuYWtlQ2FzZSh2YWx1ZS5yZXBsYWNlKC9bXmEtejAtOV0vZ2ksICdfJykpLnNwbGl0KCdfJykuZmlsdGVyKHggPT4geCkuam9pbignXycpLnRvVXBwZXJDYXNlKCk7XG5cbiAgICAgICAgY29kZS5saW5lKGAvKiogJHt2YWx1ZX0gKi9gKTtcbiAgICAgICAgY29kZS5saW5lKGAke21lbWJlck5hbWV9ID0gXCIke3ZhbHVlfVwiLGApO1xuICAgICAgfVxuXG4gICAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgICB9KTtcblxuICAgIHJldHVybiB0eXBlTmFtZTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdERlc2NyaXB0aW9uKGNvZGU6IENvZGUsIGZxbjogc3RyaW5nLCBkZXNjcmlwdGlvbj86IHN0cmluZywgYW5ub3RhdGlvbnM6IHsgW3R5cGU6IHN0cmluZ106IHN0cmluZyB9ID0geyB9KSB7XG4gICAgY29kZS5saW5lKCcvKionKTtcblxuICAgIGlmIChkZXNjcmlwdGlvbikge1xuICAgICAgZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbi5yZXBsYWNlKC9cXCpcXC8vZywgJ18vJyk7XG5cbiAgICAgIGNvbnN0IGV4dHJhY3REZWZhdWx0ID0gL0RlZmF1bHRzP1xcVysodG98aXMpXFxXKyguKykvZy5leGVjKGRlc2NyaXB0aW9uKTtcbiAgICAgIGNvbnN0IGRlZiA9IGV4dHJhY3REZWZhdWx0ICYmIGV4dHJhY3REZWZhdWx0WzJdO1xuICAgIFxuICAgICAgY29kZS5saW5lKGAgKiAke2Rlc2NyaXB0aW9ufWApO1xuICAgICAgaWYgKGRlZikge1xuICAgICAgICBhbm5vdGF0aW9uc1snZGVmYXVsdCddID0gZGVmO1xuICAgICAgfVxuXG4gICAgICBjb2RlLmxpbmUoJyAqJyk7XG4gICAgfVxuXG4gICAgYW5ub3RhdGlvbnNbJ3NjaGVtYSddID0gZnFuO1xuXG4gICAgZm9yIChjb25zdCBbIHR5cGUsIHZhbHVlIF0gb2YgT2JqZWN0LmVudHJpZXMoYW5ub3RhdGlvbnMpKSB7XG4gICAgICBjb2RlLmxpbmUoYCAqIEAke3R5cGV9ICR7dmFsdWV9YCk7XG4gICAgfVxuXG4gICAgY29kZS5saW5lKCcgKi8nKVxuICB9XG5cbiAgcHJpdmF0ZSB0eXBlRm9yUHJvcGVydHkocHJvcGVydHlGcW46IHN0cmluZywgZGVmOiBKU09OU2NoZW1hNCk6IHN0cmluZyB7XG4gICAgY29uc3Qgc3VidHlwZSA9IFR5cGVHZW5lcmF0b3Iubm9ybWFsaXplVHlwZU5hbWUocHJvcGVydHlGcW4uc3BsaXQoJy4nKS5tYXAoeCA9PiBwYXNjYWxDYXNlKHgpKS5qb2luKCcnKSk7XG4gICAgcmV0dXJuIHRoaXMuYWRkVHlwZShzdWJ0eXBlLCBkZWYsIHN1YnR5cGUpO1xuICB9XG5cbiAgcHJpdmF0ZSB0eXBlRm9yUmVmKGRlZjogSlNPTlNjaGVtYTQpOiBzdHJpbmcge1xuICAgIGNvbnN0IHByZWZpeCA9ICcjL2RlZmluaXRpb25zLyc7XG4gICAgaWYgKCFkZWYuJHJlZiB8fCAhZGVmLiRyZWYuc3RhcnRzV2l0aChwcmVmaXgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgJHJlZiAke0pTT04uc3RyaW5naWZ5KGRlZil9YCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNFeGNsdWRlZChkZWYuJHJlZikpIHtcbiAgICAgIHJldHVybiAnYW55JztcbiAgICB9XG5cbiAgICBjb25zdCBjb21wcyA9IGRlZi4kcmVmLnN1YnN0cmluZyhwcmVmaXgubGVuZ3RoKS5zcGxpdCgnLicpO1xuICAgIGNvbnN0IHR5cGVOYW1lID0gVHlwZUdlbmVyYXRvci5ub3JtYWxpemVUeXBlTmFtZShjb21wc1tjb21wcy5sZW5ndGggLSAxXSk7XG4gICAgY29uc3Qgc2NoZW1hID0gdGhpcy5yZXNvbHZlUmVmZXJlbmNlKGRlZik7XG4gICAgcmV0dXJuIHRoaXMuYWRkVHlwZSh0eXBlTmFtZSwgc2NoZW1hLCBkZWYuJHJlZik7XG4gIH1cblxuICBwcml2YXRlIHR5cGVGb3JBcnJheShwcm9wZXJ0eUZxbjogc3RyaW5nLCBkZWY6IEpTT05TY2hlbWE0KTogc3RyaW5nIHtcbiAgICBpZiAoIWRlZi5pdGVtcyB8fCB0eXBlb2YoZGVmLml0ZW1zKSAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdW5zdXBwb3J0ZWQgYXJyYXkgdHlwZSAke2RlZi5pdGVtc31gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy50eXBlRm9yUHJvcGVydHkocHJvcGVydHlGcW4sIGRlZi5pdGVtcyk7XG4gIH0gIFxuXG4gIHByaXZhdGUgcmVzb2x2ZVJlZmVyZW5jZShkZWY6IEpTT05TY2hlbWE0KTogSlNPTlNjaGVtYTQge1xuICAgIGNvbnN0IHJlZiA9IGRlZi4kcmVmO1xuICAgIGlmICghcmVmIHx8ICFyZWYuc3RhcnRzV2l0aChERUZJTklUSU9OU19QUkVGSVgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2V4cGVjdGluZyBhIGxvY2FsIHJlZmVyZW5jZScpO1xuICAgIH1cblxuICAgIGNvbnN0IGxvb2t1cCA9IHJlZi5zdWJzdHIoREVGSU5JVElPTlNfUFJFRklYLmxlbmd0aCk7XG4gICAgY29uc3QgZm91bmQgPSB0aGlzLmRlZmluaXRpb25zW2xvb2t1cF07XG4gICAgaWYgKCFmb3VuZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmFibGUgdG8gZmluZCBhIGRlZmluaXRpb24gZm9yIHRoZSAkcmVmIFwiJHtsb29rdXB9XCJgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm91bmQ7XG4gIH1cblxuICBwcml2YXRlIGlzUHJvcGVydHlSZXF1aXJlZChwcm9wZXJ0eTogc3RyaW5nLCBzdHJ1Y3REZWY6IEpTT05TY2hlbWE0KSB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoc3RydWN0RGVmLnJlcXVpcmVkKSAmJiBzdHJ1Y3REZWYucmVxdWlyZWQuaW5jbHVkZXMocHJvcGVydHkpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0V4Y2x1ZGVkKGZxbjogc3RyaW5nKSB7XG4gICAgZm9yIChjb25zdCBwYXR0ZXJuIG9mIHRoaXMuZXhjbHVkZSkge1xuICAgICAgY29uc3QgcmUgPSBuZXcgUmVnRXhwKHBhdHRlcm4pO1xuICAgICAgaWYgKHJlLnRlc3QoZnFuKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gc3VwcG9ydGVkVW5pb25PcHRpb25UeXBlKHR5cGU6IGFueSk6IHR5cGUgaXMgc3RyaW5nIHtcbiAgcmV0dXJuIHR5cGUgJiYgKHR5cGVvZih0eXBlKSA9PT0gJ3N0cmluZycgJiYgUFJJTUlUSVZFX1RZUEVTLmluY2x1ZGVzKHR5cGUpKTtcbn1cblxuZnVuY3Rpb24gcGFzY2FsQ2FzZShzOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gY2FtZWxDYXNlKHMsIHsgcGFzY2FsQ2FzZTogdHJ1ZSB9KTtcbn0iXX0=

@@ -47,3 +47,4 @@ {

"json-schema": "^0.2.5",
"codemaker": "^1.6.0"
"camelcase": "^6.0.0",
"snake-case": "^3.0.3"
},

@@ -55,3 +56,3 @@ "bundledDependencies": [],

"license": "Apache-2.0",
"version": "0.1.0",
"version": "0.1.1",
"jest": {

@@ -58,0 +59,0 @@ "clearMocks": true,

@@ -27,3 +27,3 @@ # json2jsii

g.emitType('Person', {
g.addType('Person', {
required: [ 'name' ],

@@ -42,3 +42,3 @@ properties: {

await g.writeToFile('gen/ts/person.ts');
fs.writeFileSync('gen/ts/person.ts', await g.render());
```

@@ -45,0 +45,0 @@

@@ -11,3 +11,3 @@ "use strict";

const g = new lib_1.TypeGenerator();
g.emitType('Name', {
g.addType('Name', {
properties: {

@@ -21,5 +21,6 @@ first: { type: 'string' },

const workdir = fs.mkdtempSync(path.join(os.tmpdir(), 'json2jsii'));
await g.writeToFile(path.join(workdir, 'typescript', 'index.ts'));
fs.mkdirSync(path.join(workdir, 'java'));
await jsii_srcmak_1.srcmak(path.join(workdir, 'typescript'), {
const src = path.join(workdir, 'tyepscript');
fs.mkdirSync(src);
fs.writeFileSync(path.join(src, 'index.ts'), await g.render());
await jsii_srcmak_1.srcmak(src, {
java: {

@@ -42,2 +43,2 @@ outdir: path.join(workdir, 'java'),

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluZGluZ3MudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJpbmRpbmdzLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxnQ0FBdUM7QUFDdkMsNkNBQXFDO0FBQ3JDLHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekIsNkJBQTZCO0FBRTdCLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUUvQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxJQUFJLEVBQUU7SUFDbkMsTUFBTSxDQUFDLEdBQUcsSUFBSSxtQkFBYSxFQUFFLENBQUM7SUFFOUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7UUFDakIsVUFBVSxFQUFFO1lBQ1YsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUN6QixNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQzFCLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7U0FDekI7UUFDRCxRQUFRLEVBQUUsQ0FBRSxPQUFPLEVBQUUsTUFBTSxDQUFFO0tBQzlCLENBQUMsQ0FBQztJQUVILE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNwRSxNQUFNLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFFbEUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBRXpDLE1BQU0sb0JBQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsRUFBRTtRQUM3QyxJQUFJLEVBQUU7WUFDSixNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDO1lBQ2xDLE9BQU8sRUFBRSxXQUFXO1NBQ3JCO1FBQ0QsTUFBTSxFQUFFO1lBQ04sTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQztZQUNwQyxVQUFVLEVBQUUsT0FBTztTQUNwQjtLQUNGLENBQUMsQ0FBQztJQUVILE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsMEJBQTBCLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDbkYsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSx3Q0FBd0MsQ0FBQyxFQUFFLENBQUUsNkJBQTZCLENBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7QUFDdEksQ0FBQyxDQUFDLENBQUM7QUFFSCxTQUFTLFFBQVEsQ0FBQyxRQUFnQixFQUFFLGNBQXdCLEVBQUU7SUFDNUQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvRCxNQUFNLGFBQWEsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzdGLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDaEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGVHZW5lcmF0b3IgfSBmcm9tICcuLi9saWInO1xuaW1wb3J0IHsgc3JjbWFrIH0gZnJvbSAnanNpaS1zcmNtYWsnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcblxuamVzdC5zZXRUaW1lb3V0KDUgKiA2MCAqIDEwMDApO1xuXG50ZXN0KCdsYW5ndWFnZSBiaW5kaW5ncycsIGFzeW5jICgpID0+IHtcbiAgY29uc3QgZyA9IG5ldyBUeXBlR2VuZXJhdG9yKCk7XG5cbiAgZy5lbWl0VHlwZSgnTmFtZScsIHtcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICBmaXJzdDogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgbWlkZGxlOiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICBsYXN0OiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgfSxcbiAgICByZXF1aXJlZDogWyAnZmlyc3QnLCAnbGFzdCcgXSxcbiAgfSk7XG5cbiAgY29uc3Qgd29ya2RpciA9IGZzLm1rZHRlbXBTeW5jKHBhdGguam9pbihvcy50bXBkaXIoKSwgJ2pzb24yanNpaScpKTtcbiAgYXdhaXQgZy53cml0ZVRvRmlsZShwYXRoLmpvaW4od29ya2RpciwgJ3R5cGVzY3JpcHQnLCAnaW5kZXgudHMnKSk7XG5cbiAgZnMubWtkaXJTeW5jKHBhdGguam9pbih3b3JrZGlyLCAnamF2YScpKTtcblxuICBhd2FpdCBzcmNtYWsocGF0aC5qb2luKHdvcmtkaXIsICd0eXBlc2NyaXB0JyksIHtcbiAgICBqYXZhOiB7XG4gICAgICBvdXRkaXI6IHBhdGguam9pbih3b3JrZGlyLCAnamF2YScpLFxuICAgICAgcGFja2FnZTogJ29yZy5teW9yZycsXG4gICAgfSxcbiAgICBweXRob246IHtcbiAgICAgIG91dGRpcjogcGF0aC5qb2luKHdvcmtkaXIsICdweXRob24nKSxcbiAgICAgIG1vZHVsZU5hbWU6ICdteW9yZycsXG4gICAgfSxcbiAgfSk7XG5cbiAgZXhwZWN0KHJlYWRGaWxlKHBhdGguam9pbih3b3JrZGlyLCAncHl0aG9uL215b3JnL19faW5pdF9fLnB5JykpKS50b01hdGNoU25hcHNob3QoKTtcbiAgZXhwZWN0KHJlYWRGaWxlKHBhdGguam9pbih3b3JrZGlyLCAnamF2YS9zcmMvbWFpbi9qYXZhL29yZy9teW9yZy9OYW1lLmphdmEnKSwgWyAnQGphdmF4LmFubm90YXRpb24uR2VuZXJhdGVkJyBdKSkudG9NYXRjaFNuYXBzaG90KCk7XG59KTtcblxuZnVuY3Rpb24gcmVhZEZpbGUoZmlsZVBhdGg6IHN0cmluZywgaWdub3JlTGluZXM6IHN0cmluZ1tdID0gW10pIHtcbiAgY29uc3QgbGluZXMgPSAoZnMucmVhZEZpbGVTeW5jKGZpbGVQYXRoLCAndXRmLTgnKSkuc3BsaXQoJ1xcbicpO1xuICBjb25zdCBzaG91bGRJbmNsdWRlID0gKGxpbmU6IHN0cmluZykgPT4gIWlnbm9yZUxpbmVzLmZpbmQocGF0dGVybiA9PiBsaW5lLmluY2x1ZGVzKHBhdHRlcm4pKTtcbiAgcmV0dXJuIGxpbmVzLmZpbHRlcihzaG91bGRJbmNsdWRlKS5qb2luKCdcXG4nKTtcbn0iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluZGluZ3MudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJpbmRpbmdzLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxnQ0FBdUM7QUFDdkMsNkNBQXFDO0FBQ3JDLHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekIsNkJBQTZCO0FBRTdCLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUUvQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxJQUFJLEVBQUU7SUFDbkMsTUFBTSxDQUFDLEdBQUcsSUFBSSxtQkFBYSxFQUFFLENBQUM7SUFFOUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7UUFDaEIsVUFBVSxFQUFFO1lBQ1YsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUN6QixNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQzFCLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7U0FDekI7UUFDRCxRQUFRLEVBQUUsQ0FBRSxPQUFPLEVBQUUsTUFBTSxDQUFFO0tBQzlCLENBQUMsQ0FBQztJQUVILE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUVwRSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztJQUM3QyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xCLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUUvRCxNQUFNLG9CQUFNLENBQUMsR0FBRyxFQUFFO1FBQ2hCLElBQUksRUFBRTtZQUNKLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUM7WUFDbEMsT0FBTyxFQUFFLFdBQVc7U0FDckI7UUFDRCxNQUFNLEVBQUU7WUFDTixNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDO1lBQ3BDLFVBQVUsRUFBRSxPQUFPO1NBQ3BCO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSwwQkFBMEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNuRixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLHdDQUF3QyxDQUFDLEVBQUUsQ0FBRSw2QkFBNkIsQ0FBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztBQUN0SSxDQUFDLENBQUMsQ0FBQztBQUVILFNBQVMsUUFBUSxDQUFDLFFBQWdCLEVBQUUsY0FBd0IsRUFBRTtJQUM1RCxNQUFNLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9ELE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDN0YsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNoRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZUdlbmVyYXRvciB9IGZyb20gJy4uL2xpYic7XG5pbXBvcnQgeyBzcmNtYWsgfSBmcm9tICdqc2lpLXNyY21hayc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuXG5qZXN0LnNldFRpbWVvdXQoNSAqIDYwICogMTAwMCk7XG5cbnRlc3QoJ2xhbmd1YWdlIGJpbmRpbmdzJywgYXN5bmMgKCkgPT4ge1xuICBjb25zdCBnID0gbmV3IFR5cGVHZW5lcmF0b3IoKTtcblxuICBnLmFkZFR5cGUoJ05hbWUnLCB7XG4gICAgcHJvcGVydGllczoge1xuICAgICAgZmlyc3Q6IHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgIG1pZGRsZTogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgbGFzdDogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgIH0sXG4gICAgcmVxdWlyZWQ6IFsgJ2ZpcnN0JywgJ2xhc3QnIF0sXG4gIH0pO1xuXG4gIGNvbnN0IHdvcmtkaXIgPSBmcy5ta2R0ZW1wU3luYyhwYXRoLmpvaW4ob3MudG1wZGlyKCksICdqc29uMmpzaWknKSk7XG5cbiAgY29uc3Qgc3JjID0gcGF0aC5qb2luKHdvcmtkaXIsICd0eWVwc2NyaXB0Jyk7XG4gIGZzLm1rZGlyU3luYyhzcmMpO1xuICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihzcmMsICdpbmRleC50cycpLCBhd2FpdCBnLnJlbmRlcigpKTtcblxuICBhd2FpdCBzcmNtYWsoc3JjLCB7XG4gICAgamF2YToge1xuICAgICAgb3V0ZGlyOiBwYXRoLmpvaW4od29ya2RpciwgJ2phdmEnKSxcbiAgICAgIHBhY2thZ2U6ICdvcmcubXlvcmcnLFxuICAgIH0sXG4gICAgcHl0aG9uOiB7XG4gICAgICBvdXRkaXI6IHBhdGguam9pbih3b3JrZGlyLCAncHl0aG9uJyksXG4gICAgICBtb2R1bGVOYW1lOiAnbXlvcmcnLFxuICAgIH0sXG4gIH0pO1xuXG4gIGV4cGVjdChyZWFkRmlsZShwYXRoLmpvaW4od29ya2RpciwgJ3B5dGhvbi9teW9yZy9fX2luaXRfXy5weScpKSkudG9NYXRjaFNuYXBzaG90KCk7XG4gIGV4cGVjdChyZWFkRmlsZShwYXRoLmpvaW4od29ya2RpciwgJ2phdmEvc3JjL21haW4vamF2YS9vcmcvbXlvcmcvTmFtZS5qYXZhJyksIFsgJ0BqYXZheC5hbm5vdGF0aW9uLkdlbmVyYXRlZCcgXSkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xufSk7XG5cbmZ1bmN0aW9uIHJlYWRGaWxlKGZpbGVQYXRoOiBzdHJpbmcsIGlnbm9yZUxpbmVzOiBzdHJpbmdbXSA9IFtdKSB7XG4gIGNvbnN0IGxpbmVzID0gKGZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgJ3V0Zi04JykpLnNwbGl0KCdcXG4nKTtcbiAgY29uc3Qgc2hvdWxkSW5jbHVkZSA9IChsaW5lOiBzdHJpbmcpID0+ICFpZ25vcmVMaW5lcy5maW5kKHBhdHRlcm4gPT4gbGluZS5pbmNsdWRlcyhwYXR0ZXJuKSk7XG4gIHJldHVybiBsaW5lcy5maWx0ZXIoc2hvdWxkSW5jbHVkZSkuam9pbignXFxuJyk7XG59Il19

@@ -6,16 +6,16 @@ "use strict";

test('no normalization needed', () => {
expect(lib_1.normalizeTypeName('Foo')).toEqual('Foo');
expect(lib_1.normalizeTypeName('FooBar')).toEqual('FooBar');
expect(lib_1.normalizeTypeName('Implement')).toEqual('Implement');
expect(lib_1.TypeGenerator.normalizeTypeName('Foo')).toEqual('Foo');
expect(lib_1.TypeGenerator.normalizeTypeName('FooBar')).toEqual('FooBar');
expect(lib_1.TypeGenerator.normalizeTypeName('Implement')).toEqual('Implement');
});
test('TLAs are converted to PascalCase', () => {
expect(lib_1.normalizeTypeName('ICQResource')).toEqual('IcqResource');
expect(lib_1.normalizeTypeName('IXXXFoo')).toEqual('IxxxFoo');
expect(lib_1.normalizeTypeName('IXXFoo')).toEqual('IxxFoo');
expect(lib_1.normalizeTypeName('STARTFooBARZingSOCalEND')).toEqual('StartFooBarZingSoCalEnd');
expect(lib_1.normalizeTypeName('VPC')).toEqual('Vpc');
expect(lib_1.normalizeTypeName('StorageIO')).toEqual('StorageIo');
expect(lib_1.normalizeTypeName('AFoo')).toEqual('AFoo');
expect(lib_1.TypeGenerator.normalizeTypeName('ICQResource')).toEqual('IcqResource');
expect(lib_1.TypeGenerator.normalizeTypeName('IXXXFoo')).toEqual('IxxxFoo');
expect(lib_1.TypeGenerator.normalizeTypeName('IXXFoo')).toEqual('IxxFoo');
expect(lib_1.TypeGenerator.normalizeTypeName('STARTFooBARZingSOCalEND')).toEqual('StartFooBarZingSoCalEnd');
expect(lib_1.TypeGenerator.normalizeTypeName('VPC')).toEqual('Vpc');
expect(lib_1.TypeGenerator.normalizeTypeName('StorageIO')).toEqual('StorageIo');
expect(lib_1.TypeGenerator.normalizeTypeName('AFoo')).toEqual('AFoo');
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1nZW5lcmF0b3IubmFtaW5nLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlLWdlbmVyYXRvci5uYW1pbmcudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGdDQUEyQztBQUUzQyxRQUFRLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxFQUFFO0lBQ2pDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxHQUFHLEVBQUU7UUFDbkMsTUFBTSxDQUFDLHVCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELE1BQU0sQ0FBQyx1QkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0RCxNQUFNLENBQUMsdUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDOUQsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsa0NBQWtDLEVBQUUsR0FBRyxFQUFFO1FBQzVDLE1BQU0sQ0FBQyx1QkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNoRSxNQUFNLENBQUMsdUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEQsTUFBTSxDQUFDLHVCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sQ0FBQyx1QkFBaUIsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDeEYsTUFBTSxDQUFDLHVCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELE1BQU0sQ0FBQyx1QkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1RCxNQUFNLENBQUMsdUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEQsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vcm1hbGl6ZVR5cGVOYW1lIH0gZnJvbSAnLi4vbGliJztcblxuZGVzY3JpYmUoJ25vcm1hbGl6ZVR5cGVOYW1lJywgKCkgPT4ge1xuICB0ZXN0KCdubyBub3JtYWxpemF0aW9uIG5lZWRlZCcsICgpID0+IHtcbiAgICBleHBlY3Qobm9ybWFsaXplVHlwZU5hbWUoJ0ZvbycpKS50b0VxdWFsKCdGb28nKTtcbiAgICBleHBlY3Qobm9ybWFsaXplVHlwZU5hbWUoJ0Zvb0JhcicpKS50b0VxdWFsKCdGb29CYXInKTtcbiAgICBleHBlY3Qobm9ybWFsaXplVHlwZU5hbWUoJ0ltcGxlbWVudCcpKS50b0VxdWFsKCdJbXBsZW1lbnQnKTtcbiAgfSk7XG5cbiAgdGVzdCgnVExBcyBhcmUgY29udmVydGVkIHRvIFBhc2NhbENhc2UnLCAoKSA9PiB7XG4gICAgZXhwZWN0KG5vcm1hbGl6ZVR5cGVOYW1lKCdJQ1FSZXNvdXJjZScpKS50b0VxdWFsKCdJY3FSZXNvdXJjZScpO1xuICAgIGV4cGVjdChub3JtYWxpemVUeXBlTmFtZSgnSVhYWEZvbycpKS50b0VxdWFsKCdJeHh4Rm9vJyk7XG4gICAgZXhwZWN0KG5vcm1hbGl6ZVR5cGVOYW1lKCdJWFhGb28nKSkudG9FcXVhbCgnSXh4Rm9vJyk7XG4gICAgZXhwZWN0KG5vcm1hbGl6ZVR5cGVOYW1lKCdTVEFSVEZvb0JBUlppbmdTT0NhbEVORCcpKS50b0VxdWFsKCdTdGFydEZvb0JhclppbmdTb0NhbEVuZCcpO1xuICAgIGV4cGVjdChub3JtYWxpemVUeXBlTmFtZSgnVlBDJykpLnRvRXF1YWwoJ1ZwYycpO1xuICAgIGV4cGVjdChub3JtYWxpemVUeXBlTmFtZSgnU3RvcmFnZUlPJykpLnRvRXF1YWwoJ1N0b3JhZ2VJbycpO1xuICAgIGV4cGVjdChub3JtYWxpemVUeXBlTmFtZSgnQUZvbycpKS50b0VxdWFsKCdBRm9vJyk7XG4gIH0pO1xufSk7Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1nZW5lcmF0b3IubmFtaW5nLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlLWdlbmVyYXRvci5uYW1pbmcudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGdDQUF1QztBQUV2QyxRQUFRLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxFQUFFO0lBQ2pDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxHQUFHLEVBQUU7UUFDbkMsTUFBTSxDQUFDLG1CQUFhLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUQsTUFBTSxDQUFDLG1CQUFhLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEUsTUFBTSxDQUFDLG1CQUFhLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDNUUsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsa0NBQWtDLEVBQUUsR0FBRyxFQUFFO1FBQzVDLE1BQU0sQ0FBQyxtQkFBYSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlFLE1BQU0sQ0FBQyxtQkFBYSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sQ0FBQyxtQkFBYSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sQ0FBQyxtQkFBYSxDQUFDLGlCQUFpQixDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUN0RyxNQUFNLENBQUMsbUJBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RCxNQUFNLENBQUMsbUJBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxRSxNQUFNLENBQUMsbUJBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsRSxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZUdlbmVyYXRvciB9IGZyb20gJy4uL2xpYic7XG5cbmRlc2NyaWJlKCdub3JtYWxpemVUeXBlTmFtZScsICgpID0+IHtcbiAgdGVzdCgnbm8gbm9ybWFsaXphdGlvbiBuZWVkZWQnLCAoKSA9PiB7XG4gICAgZXhwZWN0KFR5cGVHZW5lcmF0b3Iubm9ybWFsaXplVHlwZU5hbWUoJ0ZvbycpKS50b0VxdWFsKCdGb28nKTtcbiAgICBleHBlY3QoVHlwZUdlbmVyYXRvci5ub3JtYWxpemVUeXBlTmFtZSgnRm9vQmFyJykpLnRvRXF1YWwoJ0Zvb0JhcicpO1xuICAgIGV4cGVjdChUeXBlR2VuZXJhdG9yLm5vcm1hbGl6ZVR5cGVOYW1lKCdJbXBsZW1lbnQnKSkudG9FcXVhbCgnSW1wbGVtZW50Jyk7XG4gIH0pO1xuXG4gIHRlc3QoJ1RMQXMgYXJlIGNvbnZlcnRlZCB0byBQYXNjYWxDYXNlJywgKCkgPT4ge1xuICAgIGV4cGVjdChUeXBlR2VuZXJhdG9yLm5vcm1hbGl6ZVR5cGVOYW1lKCdJQ1FSZXNvdXJjZScpKS50b0VxdWFsKCdJY3FSZXNvdXJjZScpO1xuICAgIGV4cGVjdChUeXBlR2VuZXJhdG9yLm5vcm1hbGl6ZVR5cGVOYW1lKCdJWFhYRm9vJykpLnRvRXF1YWwoJ0l4eHhGb28nKTtcbiAgICBleHBlY3QoVHlwZUdlbmVyYXRvci5ub3JtYWxpemVUeXBlTmFtZSgnSVhYRm9vJykpLnRvRXF1YWwoJ0l4eEZvbycpO1xuICAgIGV4cGVjdChUeXBlR2VuZXJhdG9yLm5vcm1hbGl6ZVR5cGVOYW1lKCdTVEFSVEZvb0JBUlppbmdTT0NhbEVORCcpKS50b0VxdWFsKCdTdGFydEZvb0JhclppbmdTb0NhbEVuZCcpO1xuICAgIGV4cGVjdChUeXBlR2VuZXJhdG9yLm5vcm1hbGl6ZVR5cGVOYW1lKCdWUEMnKSkudG9FcXVhbCgnVnBjJyk7XG4gICAgZXhwZWN0KFR5cGVHZW5lcmF0b3Iubm9ybWFsaXplVHlwZU5hbWUoJ1N0b3JhZ2VJTycpKS50b0VxdWFsKCdTdG9yYWdlSW8nKTtcbiAgICBleHBlY3QoVHlwZUdlbmVyYXRvci5ub3JtYWxpemVUeXBlTmFtZSgnQUZvbycpKS50b0VxdWFsKCdBRm9vJyk7XG4gIH0pO1xufSk7Il19

@@ -7,3 +7,2 @@ "use strict";

const os = require("os");
const codemaker_1 = require("codemaker");
const jsii_srcmak_1 = require("jsii-srcmak");

@@ -253,19 +252,14 @@ jest.setTimeout(3 * 60000); // 1min

const gen = new lib_1.TypeGenerator(definitions);
gen.emitType('TestType', schema, 'fqn.of.TestType');
await mkdtemp(async (workdir) => {
expect(await generate(workdir, gen)).toMatchSnapshot();
});
gen.addType('TestType', schema, 'fqn.of.TestType');
expect(await generate(gen)).toMatchSnapshot();
});
}
async function generate(workdir, gen) {
const code = new codemaker_1.CodeMaker();
const entrypoint = 'index.ts';
code.openFile(entrypoint);
gen.writeToCodeMaker(code);
code.closeFile(entrypoint);
await code.save(workdir);
const source = await fs_1.promises.readFile(path.join(workdir, entrypoint), 'utf-8');
async function generate(gen) {
const source = await gen.render();
const deps = ['@types/node'].map(d => path.dirname(require.resolve(`${d}/package.json`)));
// check that the output compiles & is jsii-compatible
await jsii_srcmak_1.srcmak(workdir, { deps });
await mkdtemp(async (workdir) => {
await fs_1.promises.writeFile(path.join(workdir, 'index.ts'), source);
await jsii_srcmak_1.srcmak(workdir, { deps });
});
return source;

@@ -277,2 +271,2 @@ }

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1nZW5lcmF0b3IudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInR5cGUtZ2VuZXJhdG9yLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxnQ0FBdUM7QUFDdkMsMkJBQW9DO0FBQ3BDLDZCQUE2QjtBQUM3Qix5QkFBeUI7QUFDekIseUNBQXNDO0FBRXRDLDZDQUFxQztBQUVyQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxLQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU87QUFFcEMsUUFBUSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7SUFFdEIsS0FBSyxDQUFDLG9CQUFvQixFQUFFO1FBQzFCLEtBQUssRUFBRTtZQUNMLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUNsQixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7U0FDbkI7S0FDRixDQUFDLENBQUM7SUFFSCxLQUFLLENBQUMscUNBQXFDLEVBQUU7UUFDM0MsYUFBYSxFQUFFLGtEQUFrRDtRQUNqRSxNQUFNLEVBQUUsT0FBTztRQUNmLE9BQU8sRUFBRTtZQUNQLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLFlBQVksRUFBRTtnQkFDWixPQUFPLEVBQUU7b0JBQ1AsTUFBTSxFQUFFLFFBQVE7b0JBQ2hCLGFBQWEsRUFBRSxzRUFBc0U7b0JBQ3JGLFlBQVksRUFBRTt3QkFDWixPQUFPLEVBQUU7NEJBQ1AsT0FBTyxFQUFFO2dDQUNQO29DQUNFLE9BQU8sRUFBRTt3Q0FDUCxFQUFFLFVBQVUsRUFBRSxDQUFFLFlBQVksQ0FBRSxFQUFFO3dDQUNoQyxFQUFFLFVBQVUsRUFBRSxDQUFFLGtCQUFrQixDQUFFLEVBQUU7cUNBQ3ZDO2lDQUNGO2dDQUNELEVBQUUsVUFBVSxFQUFFLENBQUUsWUFBWSxDQUFFLEVBQUU7Z0NBQ2hDLEVBQUUsVUFBVSxFQUFFLENBQUUsa0JBQWtCLENBQUUsRUFBRTs2QkFDdkM7NEJBQ0QsWUFBWSxFQUFFO2dDQUNaLGtCQUFrQixFQUFF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QUFPLENBQUMsQ0FBQztJQUV6QixNQUFNLE1BQU0sR0FBRyxNQUFNLGFBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUUsTUFBTSxJQUFJLEdBQUcsQ0FBRSxhQUFhLENBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUU1RixzREFBc0Q7SUFDdEQsTUFBTSxvQkFBTSxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFaEMsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELEtBQUssVUFBVSxPQUFPLENBQUMsT0FBdUM7SUFDNUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxhQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDbkUsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGVHZW5lcmF0b3IgfSBmcm9tICcuLi9saWInO1xuaW1wb3J0IHsgcHJvbWlzZXMgYXMgZnMgfSBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0IHsgQ29kZU1ha2VyIH0gZnJvbSAnY29kZW1ha2VyJztcbmltcG9ydCB7IEpTT05TY2hlbWE0IH0gZnJvbSAnanNvbi1zY2hlbWEnO1xuaW1wb3J0IHsgc3JjbWFrIH0gZnJvbSAnanNpaS1zcmNtYWsnO1xuXG5qZXN0LnNldFRpbWVvdXQoMyAqIDYwXzAwMCk7IC8vIDFtaW5cblxuZGVzY3JpYmUoJ3VuaW9ucycsICgpID0+IHtcblxuICB3aGljaCgnaW5jbHVkZSBwcmltaXRpdmVzJywge1xuICAgIG9uZU9mOiBbXG4gICAgICB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICB7IHR5cGU6ICdudW1iZXInIH0sXG4gICAgXSxcbiAgfSk7XG5cbiAgd2hpY2goJ2NvbnN0cmFpbnRzIGFyZSBpZ25vcmVkIGZvciBvYmplY3RzJywge1xuICAgICdkZXNjcmlwdGlvbic6ICdBbiBvcmRlcmVkIGxpc3Qgb2Ygcm91dGUgcnVsZXMgZm9yIEhUVFAgdHJhZmZpYy4nLFxuICAgICd0eXBlJzogJ2FycmF5JyxcbiAgICAnaXRlbXMnOiB7XG4gICAgICAndHlwZSc6ICdvYmplY3QnLFxuICAgICAgJ3Byb3BlcnRpZXMnOiB7XG4gICAgICAgICdmYXVsdCc6IHtcbiAgICAgICAgICAndHlwZSc6ICdvYmplY3QnLFxuICAgICAgICAgICdkZXNjcmlwdGlvbic6ICdGYXVsdCBpbmplY3Rpb24gcG9saWN5IHRvIGFwcGx5IG9uIEhUVFAgdHJhZmZpYyBhdFxcbnRoZSBjbGllbnQgc2lkZS4nLFxuICAgICAgICAgICdwcm9wZXJ0aWVzJzoge1xuICAgICAgICAgICAgJ2RlbGF5Jzoge1xuICAgICAgICAgICAgICAnb25lT2YnOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgJ2FueU9mJzogW1xuICAgICAgICAgICAgICAgICAgICB7ICdyZXF1aXJlZCc6IFsgJ2ZpeGVkRGVsYXknIF0gfSxcbiAgICAgICAgICAgICAgICAgICAgeyAncmVxdWlyZWQnOiBbICdleHBvbmVudGlhbERlbGF5JyBdIH0sXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgeyAncmVxdWlyZWQnOiBbICdmaXhlZERlbGF5JyBdIH0sXG4gICAgICAgICAgICAgICAgeyAncmVxdWlyZWQnOiBbICdleHBvbmVudGlhbERlbGF5JyBdIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICdwcm9wZXJ0aWVzJzoge1xuICAgICAgICAgICAgICAgICdleHBvbmVudGlhbERlbGF5Jzoge1xuICAgICAgICAgICAgICAgICAgJ3R5cGUnOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICdmaXhlZERlbGF5Jzoge1xuICAgICAgICAgICAgICAgICAgJ2Rlc2NyaXB0aW9uJzogJ0FkZCBhIGZpeGVkIGRlbGF5IGJlZm9yZSBmb3J3YXJkaW5nIHRoZSByZXF1ZXN0LicsXG4gICAgICAgICAgICAgICAgICAndHlwZSc6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgJ3BlcmNlbnQnOiB7XG4gICAgICAgICAgICAgICAgICAnZGVzY3JpcHRpb24nOiAnUGVyY2VudGFnZSBvZiByZXF1ZXN0cyBvbiB3aGljaCB0aGUgZGVsYXlcXG53aWxsIGJlIGluamVjdGVkICgwLTEwMCkuJyxcbiAgICAgICAgICAgICAgICAgICdmb3JtYXQnOiAnaW50MzInLFxuICAgICAgICAgICAgICAgICAgJ3R5cGUnOiAnaW50ZWdlcicsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAncGVyY2VudGFnZSc6IHtcbiAgICAgICAgICAgICAgICAgICdkZXNjcmlwdGlvbic6ICdQZXJjZW50YWdlIG9mIHJlcXVlc3RzIG9uIHdoaWNoIHRoZSBkZWxheVxcbndpbGwgYmUgaW5qZWN0ZWQuJyxcbiAgICAgICAgICAgICAgICAgICdwcm9wZXJ0aWVzJzoge1xuICAgICAgICAgICAgICAgICAgICAndmFsdWUnOiB7XG4gICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdCc6ICdkb3VibGUnLFxuICAgICAgICAgICAgICAgICAgICAgICd0eXBlJzogJ251bWJlcicsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgJ3R5cGUnOiAnb2JqZWN0JyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAndHlwZSc6ICdvYmplY3QnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcblxufSk7XG5cblxuZGVzY3JpYmUoJ3N0cnVjdHMnLCAoKSA9PiB7XG5cbiAgd2hpY2goJ2hhcyBwcmltaXRpdmUgdHlwZXMgYW5kIGNvbGxlY3Rpb25zIG9mIHByaW1pdGl2ZSB0eXBlcycsIHtcbiAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICBzdHJpbmdWYWx1ZTogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgYm9vbFZhbHVlOiB7IHR5cGU6ICdib29sZWFuJyB9LFxuICAgICAgbnVtYmVyVmFsdWU6IHsgdHlwZTogJ251bWJlcicgfSxcbiAgICAgIGludGVnZXJWYWx1ZToge3R5cGU6ICdpbnRlZ2VyJyB9LFxuICAgICAgYXJyYXlPZlN0cmluZzoge1xuICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICBpdGVtczogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcblxuICB3aGljaCgnaGFzIGEgZmllbGQgdGhhdCByZWZlcmVuY2VzIGFub3RoZXIgc3RydWN0ICh3aXRoIHJlcXVpcmVkIGZpZWxkcyknLCB7XG4gICAgdHlwZTogJ29iamVjdCcsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgb3RoZXI6IHtcbiAgICAgICAgJHJlZjogJyMvZGVmaW5pdGlvbnMvT3RoZXInLFxuICAgICAgfSxcbiAgICB9LFxuICB9LCB7XG4gICAgZGVmaW5pdGlvbnM6IHtcbiAgICAgIE90aGVyOiB7XG4gICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgc3RyaW5nVmFsdWU6IHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVxdWlyZWQ6IFsgJ3N0cmluZ1ZhbHVlJyBdLFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcblxuICB3aGljaCgncmVmZXJlbmNlcyBpdHNlbGYnLCB7XG4gICAgdHlwZTogJ29iamVjdCcsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgZW50cnlwb2ludDoge1xuICAgICAgICAkcmVmOiAnIy9kZWZpbml0aW9ucy9NeVR5cGUnLFxuICAgICAgfSxcbiAgICB9LFxuICB9LCB7XG4gICAgZGVmaW5pdGlvbnM6IHtcbiAgICAgIE15VHlwZToge1xuICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIHNlbGY6IHsgJHJlZjogJyMvZGVmaW5pdGlvbnMvTXlUeXBlJyB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcblxuICB3aGljaCgnYXJyYXkgb2Ygc3RydWN0cyBpcyBjb25zaWRlcmVkIG9wdGlvbmFsJywge1xuICAgIHR5cGU6ICdvYmplY3QnLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIHNob3VsZEJlUmVxdWlyZWQ6IHsgJHJlZjogJyMvZGVmaW5pdGlvbnMvSXRlbVR5cGUnIH0sXG4gICAgICBtYXBTaG91bGRCZU9wdGlvbmFsOiB7XG4gICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogeyAkcmVmOiAnIy9kZWZpbml0aW9ucy9JdGVtVHlwZScgfSxcbiAgICAgIH0sXG4gICAgICBhcnJheVNob3VsZEJlT3B0aW9uYWw6IHtcbiAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAkcmVmOiAnIy9kZWZpbml0aW9ucy9JdGVtVHlwZScsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0sIHtcbiAgICBkZWZpbml0aW9uczoge1xuICAgICAgSXRlbVR5cGU6IHtcbiAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgIHJlcXVpcmVkOiBbICdyZXF1aXJlZEZpZWxkJyBdLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgcmVxdWlyZWRGaWVsZDogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcblxuICB3aGljaCgnaW5jbHVkZXMgcmVxdWlyZWQgZmllbGRzJywge1xuICAgIHJlcXVpcmVkOiBbXG4gICAgICAnbWluUmVhZHlTZWNvbmRzJyxcbiAgICAgICdyZXZpc2lvbkhpc3RvcnlMaW1pdCcsXG4gICAgXSxcbiAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICBtaW5SZWFkeVNlY29uZHM6IHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdNaW5pbXVtIG51bWJlciBvZiBzZWNvbmRzIGZvciB3aGljaCBhIG5ld2x5IGNyZWF0ZWQgcG9kIHNob3VsZCBiZSByZWFkeSB3aXRob3V0IGFueSBvZiBpdHMgY29udGFpbmVyIGNyYXNoaW5nLCBmb3IgaXQgdG8gYmUgY29uc2lkZXJlZCBhdmFpbGFibGUuIERlZmF1bHRzIHRvIDAgKHBvZCB3aWxsIGJlIGNvbnNpZGVyZWQgYXZhaWxhYmxlIGFzIHNvb24gYXMgaXQgaXMgcmVhZHkpJyxcbiAgICAgICAgZm9ybWF0OiAnaW50MzInLFxuICAgICAgICB0eXBlOiAnaW50ZWdlcicsXG4gICAgICB9LFxuICAgICAgcGF1c2VkOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnSW5kaWNhdGVzIHRoYXQgdGhlIGRlcGxveW1lbnQgaXMgcGF1c2VkLicsXG4gICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgIH0sXG4gICAgICBwcm9ncmVzc0RlYWRsaW5lU2Vjb25kczoge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ1RoZSBtYXhpbXVtIHRpbWUgaW4gc2Vjb25kcyBmb3IgYSBkZXBsb3ltZW50IHRvIG1ha2UgcHJvZ3Jlc3MgYmVmb3JlIGl0IGlzIGNvbnNpZGVyZWQgdG8gYmUgZmFpbGVkLiBUaGUgZGVwbG95bWVudCBjb250cm9sbGVyIHdpbGwgY29udGludWUgdG8gcHJvY2VzcyBmYWlsZWQgZGVwbG95bWVudHMgYW5kIGEgY29uZGl0aW9uIHdpdGggYSBQcm9ncmVzc0RlYWRsaW5lRXhjZWVkZWQgcmVhc29uIHdpbGwgYmUgc3VyZmFjZWQgaW4gdGhlIGRlcGxveW1lbnQgc3RhdHVzLiBOb3RlIHRoYXQgcHJvZ3Jlc3Mgd2lsbCBub3QgYmUgZXN0aW1hdGVkIGR1cmluZyB0aGUgdGltZSBhIGRlcGxveW1lbnQgaXMgcGF1c2VkLiBEZWZhdWx0cyB0byA2MDBzLicsXG4gICAgICAgIGZvcm1hdDogJ2ludDMyJyxcbiAgICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgfSxcbiAgICAgIHJlcGxpY2FzOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnTnVtYmVyIG9mIGRlc2lyZWQgcG9kcy4gVGhpcyBpcyBhIHBvaW50ZXIgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBleHBsaWNpdCB6ZXJvIGFuZCBub3Qgc3BlY2lmaWVkLiBEZWZhdWx0cyB0byAxLicsXG4gICAgICAgIGZvcm1hdDogJ2ludDMyJyxcbiAgICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgfSxcbiAgICAgIHJldmlzaW9uSGlzdG9yeUxpbWl0OiB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVGhlIG51bWJlciBvZiBvbGQgUmVwbGljYVNldHMgdG8gcmV0YWluIHRvIGFsbG93IHJvbGxiYWNrLiBUaGlzIGlzIGEgcG9pbnRlciB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIGV4cGxpY2l0IHplcm8gYW5kIG5vdCBzcGVjaWZpZWQuIERlZmF1bHRzIHRvIDEwLicsXG4gICAgICAgIGZvcm1hdDogJ2ludDMyJyxcbiAgICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcblxuICB3aGljaCgnaWYgd2UgaGF2ZSBcInByb3BlcnRpZXNcIiBhbmQgXCJ0eXBlXCIgaXMgb21pdHRlZCwgaXQgaXMgY29uc2lkZXJlZCBhIHN0cnVjdCcsIHtcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICBmb286IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuXG59KTtcblxuXG5kZXNjcmliZSgnZG9jdW1lbnRhdGlvbicsICgpID0+IHtcblxuICB3aGljaCgnZG9lcyBub3QgcmVuZGVyIGlmIG5vdCBkZWZpbmVkJywge1xuICAgIHR5cGU6ICdvYmplY3QnLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIGZpZWxkOiB7XG4gICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG5cbiAgd2hpY2goJ3JlbmRlcnMgYmFzZWQgb24gZGVzY3JpcHRpb24nLCB7XG4gICAgdHlwZTogJ29iamVjdCcsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgZmllbGQ6IHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdoZWxsbywgZGVzY3JpcHRpb24nLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG5cbiAgd2hpY2goJ1wiKi9cIiBpcyBpcyBlc2NhcGVkJywge1xuICAgIHR5cGU6ICdvYmplY3QnLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIGZpZWxkOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnaGVsbG8gKi93b3JsZCcsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcblxufSk7XG5cbmRlc2NyaWJlKCdlbnVtcycsICgpID0+IHtcblxuICB3aGljaCgncmVuZGVycyBhIHR5cGVzY3JpcHQgZW51bScsIHtcbiAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICByZXF1aXJlZDogWyAnZmlyc3RFbnVtJyBdLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIGZpcnN0RW51bToge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ2Rlc2NyaXB0aW9uIG9mIGZpcnN0IGVudW0nLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZW51bTogWyAndmFsdWUxJywgJ3ZhbHVlMicsICd2YWx1ZS1vZi10aHJlZScsICd2YWx1ZU9mRm91cicgXSxcbiAgICAgIH0sXG4gICAgICBjaGlsZDoge1xuICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIHNlY29uZEVudW06IHtcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnZGVzY3JpcHRpb24gb2Ygc2Vjb25kIGVudW0nLFxuICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICBlbnVtOiBbICdoZXknLCAnZW51bSB2YWx1ZXMgY2FuIGJlIGNyYXp5JywgJ3llcz4+MTIzJyBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuXG59KTtcblxud2hpY2goJ3ByaW1pdGl2ZXMnLCB7XG4gIHR5cGU6ICdvYmplY3QnLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgc3RyaW5nVmFsdWU6IHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICBib29sZWFuVmFsdWU6IHsgdHlwZTogJ2Jvb2xlYW4nIH0sXG4gICAgZGF0ZVZhbHVlOiB7IHR5cGU6ICdzdHJpbmcnLCBmb3JtYXQ6ICdkYXRlLXRpbWUnIH0sXG4gICAgYW55VmFsdWU6IHsgdHlwZTogJ2FueScgfSxcbiAgICBudWxsVmFsdWU6IHsgdHlwZTogJ251bGwnIH0sXG4gICAgbnVtYmVyVmFsdWU6IHsgdHlwZTogJ251bWJlcicgfSxcbiAgICBpbnRlZ2VyVmFsdWU6IHsgdHlwZTogJ2ludGVnZXInIH0sXG4gIH0sXG59KTtcblxuZnVuY3Rpb24gd2hpY2gobmFtZTogc3RyaW5nLCBzY2hlbWE6IEpTT05TY2hlbWE0LCBkZWZpbml0aW9ucz86IEpTT05TY2hlbWE0KSB7XG4gIHRlc3QobmFtZSwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGdlbiA9IG5ldyBUeXBlR2VuZXJhdG9yKGRlZmluaXRpb25zKTtcbiAgICBnZW4uZW1pdFR5cGUoJ1Rlc3RUeXBlJywgc2NoZW1hLCAnZnFuLm9mLlRlc3RUeXBlJyk7XG5cbiAgICBhd2FpdCBta2R0ZW1wKGFzeW5jIHdvcmtkaXIgPT4ge1xuICAgICAgZXhwZWN0KGF3YWl0IGdlbmVyYXRlKHdvcmtkaXIsIGdlbikpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgIH0pO1xuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGUod29ya2Rpcjogc3RyaW5nLCBnZW46IFR5cGVHZW5lcmF0b3IpIHtcbiAgY29uc3QgY29kZSA9IG5ldyBDb2RlTWFrZXIoKTtcblxuICBjb25zdCBlbnRyeXBvaW50ID0gJ2luZGV4LnRzJztcblxuICBjb2RlLm9wZW5GaWxlKGVudHJ5cG9pbnQpO1xuICBnZW4ud3JpdGVUb0NvZGVNYWtlcihjb2RlKTtcbiAgY29kZS5jbG9zZUZpbGUoZW50cnlwb2ludClcblxuICBhd2FpdCBjb2RlLnNhdmUod29ya2Rpcik7XG5cbiAgY29uc3Qgc291cmNlID0gYXdhaXQgZnMucmVhZEZpbGUocGF0aC5qb2luKHdvcmtkaXIsIGVudHJ5cG9pbnQpLCAndXRmLTgnKTtcbiAgY29uc3QgZGVwcyA9IFsgJ0B0eXBlcy9ub2RlJyBdLm1hcChkID0+IHBhdGguZGlybmFtZShyZXF1aXJlLnJlc29sdmUoYCR7ZH0vcGFja2FnZS5qc29uYCkpKTtcblxuICAvLyBjaGVjayB0aGF0IHRoZSBvdXRwdXQgY29tcGlsZXMgJiBpcyBqc2lpLWNvbXBhdGlibGVcbiAgYXdhaXQgc3JjbWFrKHdvcmtkaXIsIHsgZGVwcyB9KTtcblxuICByZXR1cm4gc291cmNlO1xufVxuXG5hc3luYyBmdW5jdGlvbiBta2R0ZW1wKGNsb3N1cmU6IChkaXI6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPikge1xuICBjb25zdCB3b3JrZGlyID0gYXdhaXQgZnMubWtkdGVtcChwYXRoLmpvaW4ob3MudG1wZGlyKCksICdjZGs4cy0nKSk7XG4gIGF3YWl0IGNsb3N1cmUod29ya2Rpcik7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1nZW5lcmF0b3IudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInR5cGUtZ2VuZXJhdG9yLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxnQ0FBdUM7QUFDdkMsMkJBQW9DO0FBQ3BDLDZCQUE2QjtBQUM3Qix5QkFBeUI7QUFFekIsNkNBQXFDO0FBRXJDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEtBQU0sQ0FBQyxDQUFDLENBQUMsT0FBTztBQUVwQyxRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtJQUV0QixLQUFLLENBQUMsb0JBQW9CLEVBQUU7UUFDMUIsS0FBSyxFQUFFO1lBQ0wsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQ2xCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtTQUNuQjtLQUNGLENBQUMsQ0FBQztJQUVILEtBQUssQ0FBQyxxQ0FBcUMsRUFBRTtRQUMzQyxhQUFhLEVBQUUsa0RBQWtEO1FBQ2pFLE1BQU0sRUFBRSxPQUFPO1FBQ2YsT0FBTyxFQUFFO1lBQ1AsTUFBTSxFQUFFLFFBQVE7WUFDaEIsWUFBWSxFQUFFO2dCQUNaLE9BQU8sRUFBRTtvQkFDUCxNQUFNLEVBQUUsUUFBUTtvQkFDaEIsYUFBYSxFQUFFLHNFQUFzRTtvQkFDckYsWUFBWSxFQUFFO3dCQUNaLE9BQU8sRUFBRTs0QkFDUCxPQUFPLEVBQUU7Z0NBQ1A7b0NBQ0UsT0FBTyxFQUFFO3dDQUNQLEVBQUUsVUFBVSxFQUFFLENBQUUsWUFBWSxDQUFFLEVBQUU7d0NBQ2hDLEVBQUUsVUFBVSxFQUFFLENBQUUsa0JBQWtCLENBQUUsRUFBRTtxQ0FDdkM7aUNBQ0Y7Z0NBQ0QsRUFBRSxVQUFVLEVBQUUsQ0FBRSxZQUFZLENBQUUsRUFBRTtnQ0FDaEMsRUFBRSxVQUFVLEVBQUUsQ0FBRSxrQkFBa0IsQ0FBRSxFQUFFOzZCQUN2Qzs0QkFDRCxZQUFZLEVBQUU7Z0NBQ1osa0JBQWtCLEVBQUU7b0NBQ2xCLE1BQU0s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QUUsTUFBTSxDQUFDLENBQUM7UUFDM0QsTUFBTSxvQkFBTSxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFHSCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsS0FBSyxVQUFVLE9BQU8sQ0FBQyxPQUF1QztJQUM1RCxNQUFNLE9BQU8sR0FBRyxNQUFNLGFBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNuRSxNQUFNLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZUdlbmVyYXRvciB9IGZyb20gJy4uL2xpYic7XG5pbXBvcnQgeyBwcm9taXNlcyBhcyBmcyB9IGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgeyBKU09OU2NoZW1hNCB9IGZyb20gJ2pzb24tc2NoZW1hJztcbmltcG9ydCB7IHNyY21hayB9IGZyb20gJ2pzaWktc3JjbWFrJztcblxuamVzdC5zZXRUaW1lb3V0KDMgKiA2MF8wMDApOyAvLyAxbWluXG5cbmRlc2NyaWJlKCd1bmlvbnMnLCAoKSA9PiB7XG5cbiAgd2hpY2goJ2luY2x1ZGUgcHJpbWl0aXZlcycsIHtcbiAgICBvbmVPZjogW1xuICAgICAgeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgeyB0eXBlOiAnbnVtYmVyJyB9LFxuICAgIF0sXG4gIH0pO1xuXG4gIHdoaWNoKCdjb25zdHJhaW50cyBhcmUgaWdub3JlZCBmb3Igb2JqZWN0cycsIHtcbiAgICAnZGVzY3JpcHRpb24nOiAnQW4gb3JkZXJlZCBsaXN0IG9mIHJvdXRlIHJ1bGVzIGZvciBIVFRQIHRyYWZmaWMuJyxcbiAgICAndHlwZSc6ICdhcnJheScsXG4gICAgJ2l0ZW1zJzoge1xuICAgICAgJ3R5cGUnOiAnb2JqZWN0JyxcbiAgICAgICdwcm9wZXJ0aWVzJzoge1xuICAgICAgICAnZmF1bHQnOiB7XG4gICAgICAgICAgJ3R5cGUnOiAnb2JqZWN0JyxcbiAgICAgICAgICAnZGVzY3JpcHRpb24nOiAnRmF1bHQgaW5qZWN0aW9uIHBvbGljeSB0byBhcHBseSBvbiBIVFRQIHRyYWZmaWMgYXRcXG50aGUgY2xpZW50IHNpZGUuJyxcbiAgICAgICAgICAncHJvcGVydGllcyc6IHtcbiAgICAgICAgICAgICdkZWxheSc6IHtcbiAgICAgICAgICAgICAgJ29uZU9mJzogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICdhbnlPZic6IFtcbiAgICAgICAgICAgICAgICAgICAgeyAncmVxdWlyZWQnOiBbICdmaXhlZERlbGF5JyBdIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgJ3JlcXVpcmVkJzogWyAnZXhwb25lbnRpYWxEZWxheScgXSB9LFxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHsgJ3JlcXVpcmVkJzogWyAnZml4ZWREZWxheScgXSB9LFxuICAgICAgICAgICAgICAgIHsgJ3JlcXVpcmVkJzogWyAnZXhwb25lbnRpYWxEZWxheScgXSB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAncHJvcGVydGllcyc6IHtcbiAgICAgICAgICAgICAgICAnZXhwb25lbnRpYWxEZWxheSc6IHtcbiAgICAgICAgICAgICAgICAgICd0eXBlJzogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAnZml4ZWREZWxheSc6IHtcbiAgICAgICAgICAgICAgICAgICdkZXNjcmlwdGlvbic6ICdBZGQgYSBmaXhlZCBkZWxheSBiZWZvcmUgZm9yd2FyZGluZyB0aGUgcmVxdWVzdC4nLFxuICAgICAgICAgICAgICAgICAgJ3R5cGUnOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICdwZXJjZW50Jzoge1xuICAgICAgICAgICAgICAgICAgJ2Rlc2NyaXB0aW9uJzogJ1BlcmNlbnRhZ2Ugb2YgcmVxdWVzdHMgb24gd2hpY2ggdGhlIGRlbGF5XFxud2lsbCBiZSBpbmplY3RlZCAoMC0xMDApLicsXG4gICAgICAgICAgICAgICAgICAnZm9ybWF0JzogJ2ludDMyJyxcbiAgICAgICAgICAgICAgICAgICd0eXBlJzogJ2ludGVnZXInLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgJ3BlcmNlbnRhZ2UnOiB7XG4gICAgICAgICAgICAgICAgICAnZGVzY3JpcHRpb24nOiAnUGVyY2VudGFnZSBvZiByZXF1ZXN0cyBvbiB3aGljaCB0aGUgZGVsYXlcXG53aWxsIGJlIGluamVjdGVkLicsXG4gICAgICAgICAgICAgICAgICAncHJvcGVydGllcyc6IHtcbiAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlJzoge1xuICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXQnOiAnZG91YmxlJyxcbiAgICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICdudW1iZXInLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICd0eXBlJzogJ29iamVjdCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgJ3R5cGUnOiAnb2JqZWN0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG5cbn0pO1xuXG5cbmRlc2NyaWJlKCdzdHJ1Y3RzJywgKCkgPT4ge1xuXG4gIHdoaWNoKCdoYXMgcHJpbWl0aXZlIHR5cGVzIGFuZCBjb2xsZWN0aW9ucyBvZiBwcmltaXRpdmUgdHlwZXMnLCB7XG4gICAgdHlwZTogJ29iamVjdCcsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgc3RyaW5nVmFsdWU6IHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgIGJvb2xWYWx1ZTogeyB0eXBlOiAnYm9vbGVhbicgfSxcbiAgICAgIG51bWJlclZhbHVlOiB7IHR5cGU6ICdudW1iZXInIH0sXG4gICAgICBpbnRlZ2VyVmFsdWU6IHt0eXBlOiAnaW50ZWdlcicgfSxcbiAgICAgIGFycmF5T2ZTdHJpbmc6IHtcbiAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgaXRlbXM6IHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG5cbiAgd2hpY2goJ2hhcyBhIGZpZWxkIHRoYXQgcmVmZXJlbmNlcyBhbm90aGVyIHN0cnVjdCAod2l0aCByZXF1aXJlZCBmaWVsZHMpJywge1xuICAgIHR5cGU6ICdvYmplY3QnLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIG90aGVyOiB7XG4gICAgICAgICRyZWY6ICcjL2RlZmluaXRpb25zL090aGVyJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSwge1xuICAgIGRlZmluaXRpb25zOiB7XG4gICAgICBPdGhlcjoge1xuICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIHN0cmluZ1ZhbHVlOiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHJlcXVpcmVkOiBbICdzdHJpbmdWYWx1ZScgXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG5cbiAgd2hpY2goJ3JlZmVyZW5jZXMgaXRzZWxmJywge1xuICAgIHR5cGU6ICdvYmplY3QnLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIGVudHJ5cG9pbnQ6IHtcbiAgICAgICAgJHJlZjogJyMvZGVmaW5pdGlvbnMvTXlUeXBlJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSwge1xuICAgIGRlZmluaXRpb25zOiB7XG4gICAgICBNeVR5cGU6IHtcbiAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBzZWxmOiB7ICRyZWY6ICcjL2RlZmluaXRpb25zL015VHlwZScgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG5cbiAgd2hpY2goJ2FycmF5IG9mIHN0cnVjdHMgaXMgY29uc2lkZXJlZCBvcHRpb25hbCcsIHtcbiAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICBzaG91bGRCZVJlcXVpcmVkOiB7ICRyZWY6ICcjL2RlZmluaXRpb25zL0l0ZW1UeXBlJyB9LFxuICAgICAgbWFwU2hvdWxkQmVPcHRpb25hbDoge1xuICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHsgJHJlZjogJyMvZGVmaW5pdGlvbnMvSXRlbVR5cGUnIH0sXG4gICAgICB9LFxuICAgICAgYXJyYXlTaG91bGRCZU9wdGlvbmFsOiB7XG4gICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgJHJlZjogJyMvZGVmaW5pdGlvbnMvSXRlbVR5cGUnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9LCB7XG4gICAgZGVmaW5pdGlvbnM6IHtcbiAgICAgIEl0ZW1UeXBlOiB7XG4gICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICByZXF1aXJlZDogWyAncmVxdWlyZWRGaWVsZCcgXSxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIHJlcXVpcmVkRmllbGQ6IHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG5cbiAgd2hpY2goJ2luY2x1ZGVzIHJlcXVpcmVkIGZpZWxkcycsIHtcbiAgICByZXF1aXJlZDogW1xuICAgICAgJ21pblJlYWR5U2Vjb25kcycsXG4gICAgICAncmV2aXNpb25IaXN0b3J5TGltaXQnLFxuICAgIF0sXG4gICAgdHlwZTogJ29iamVjdCcsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgbWluUmVhZHlTZWNvbmRzOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnTWluaW11bSBudW1iZXIgb2Ygc2Vjb25kcyBmb3Igd2hpY2ggYSBuZXdseSBjcmVhdGVkIHBvZCBzaG91bGQgYmUgcmVhZHkgd2l0aG91dCBhbnkgb2YgaXRzIGNvbnRhaW5lciBjcmFzaGluZywgZm9yIGl0IHRvIGJlIGNvbnNpZGVyZWQgYXZhaWxhYmxlLiBEZWZhdWx0cyB0byAwIChwb2Qgd2lsbCBiZSBjb25zaWRlcmVkIGF2YWlsYWJsZSBhcyBzb29uIGFzIGl0IGlzIHJlYWR5KScsXG4gICAgICAgIGZvcm1hdDogJ2ludDMyJyxcbiAgICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgfSxcbiAgICAgIHBhdXNlZDoge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ0luZGljYXRlcyB0aGF0IHRoZSBkZXBsb3ltZW50IGlzIHBhdXNlZC4nLFxuICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICB9LFxuICAgICAgcHJvZ3Jlc3NEZWFkbGluZVNlY29uZHM6IHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdUaGUgbWF4aW11bSB0aW1lIGluIHNlY29uZHMgZm9yIGEgZGVwbG95bWVudCB0byBtYWtlIHByb2dyZXNzIGJlZm9yZSBpdCBpcyBjb25zaWRlcmVkIHRvIGJlIGZhaWxlZC4gVGhlIGRlcGxveW1lbnQgY29udHJvbGxlciB3aWxsIGNvbnRpbnVlIHRvIHByb2Nlc3MgZmFpbGVkIGRlcGxveW1lbnRzIGFuZCBhIGNvbmRpdGlvbiB3aXRoIGEgUHJvZ3Jlc3NEZWFkbGluZUV4Y2VlZGVkIHJlYXNvbiB3aWxsIGJlIHN1cmZhY2VkIGluIHRoZSBkZXBsb3ltZW50IHN0YXR1cy4gTm90ZSB0aGF0IHByb2dyZXNzIHdpbGwgbm90IGJlIGVzdGltYXRlZCBkdXJpbmcgdGhlIHRpbWUgYSBkZXBsb3ltZW50IGlzIHBhdXNlZC4gRGVmYXVsdHMgdG8gNjAwcy4nLFxuICAgICAgICBmb3JtYXQ6ICdpbnQzMicsXG4gICAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgIH0sXG4gICAgICByZXBsaWNhczoge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ051bWJlciBvZiBkZXNpcmVkIHBvZHMuIFRoaXMgaXMgYSBwb2ludGVyIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gZXhwbGljaXQgemVybyBhbmQgbm90IHNwZWNpZmllZC4gRGVmYXVsdHMgdG8gMS4nLFxuICAgICAgICBmb3JtYXQ6ICdpbnQzMicsXG4gICAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgIH0sXG4gICAgICByZXZpc2lvbkhpc3RvcnlMaW1pdDoge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ1RoZSBudW1iZXIgb2Ygb2xkIFJlcGxpY2FTZXRzIHRvIHJldGFpbiB0byBhbGxvdyByb2xsYmFjay4gVGhpcyBpcyBhIHBvaW50ZXIgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBleHBsaWNpdCB6ZXJvIGFuZCBub3Qgc3BlY2lmaWVkLiBEZWZhdWx0cyB0byAxMC4nLFxuICAgICAgICBmb3JtYXQ6ICdpbnQzMicsXG4gICAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG5cbiAgd2hpY2goJ2lmIHdlIGhhdmUgXCJwcm9wZXJ0aWVzXCIgYW5kIFwidHlwZVwiIGlzIG9taXR0ZWQsIGl0IGlzIGNvbnNpZGVyZWQgYSBzdHJ1Y3QnLCB7XG4gICAgcHJvcGVydGllczoge1xuICAgICAgZm9vOiB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcblxufSk7XG5cblxuZGVzY3JpYmUoJ2RvY3VtZW50YXRpb24nLCAoKSA9PiB7XG5cbiAgd2hpY2goJ2RvZXMgbm90IHJlbmRlciBpZiBub3QgZGVmaW5lZCcsIHtcbiAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICBmaWVsZDoge1xuICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuXG4gIHdoaWNoKCdyZW5kZXJzIGJhc2VkIG9uIGRlc2NyaXB0aW9uJywge1xuICAgIHR5cGU6ICdvYmplY3QnLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIGZpZWxkOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnaGVsbG8sIGRlc2NyaXB0aW9uJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuXG4gIHdoaWNoKCdcIiovXCIgaXMgaXMgZXNjYXBlZCcsIHtcbiAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICBmaWVsZDoge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ2hlbGxvICovd29ybGQnLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG5cbn0pO1xuXG5kZXNjcmliZSgnZW51bXMnLCAoKSA9PiB7XG5cbiAgd2hpY2goJ3JlbmRlcnMgYSB0eXBlc2NyaXB0IGVudW0nLCB7XG4gICAgdHlwZTogJ29iamVjdCcsXG4gICAgcmVxdWlyZWQ6IFsgJ2ZpcnN0RW51bScgXSxcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICBmaXJzdEVudW06IHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdkZXNjcmlwdGlvbiBvZiBmaXJzdCBlbnVtJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIGVudW06IFsgJ3ZhbHVlMScsICd2YWx1ZTInLCAndmFsdWUtb2YtdGhyZWUnLCAndmFsdWVPZkZvdXInIF0sXG4gICAgICB9LFxuICAgICAgY2hpbGQ6IHtcbiAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBzZWNvbmRFbnVtOiB7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ2Rlc2NyaXB0aW9uIG9mIHNlY29uZCBlbnVtJyxcbiAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgZW51bTogWyAnaGV5JywgJ2VudW0gdmFsdWVzIGNhbiBiZSBjcmF6eScsICd5ZXM+PjEyMycgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcblxufSk7XG5cbndoaWNoKCdwcmltaXRpdmVzJywge1xuICB0eXBlOiAnb2JqZWN0JyxcbiAgcHJvcGVydGllczoge1xuICAgIHN0cmluZ1ZhbHVlOiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgYm9vbGVhblZhbHVlOiB7IHR5cGU6ICdib29sZWFuJyB9LFxuICAgIGRhdGVWYWx1ZTogeyB0eXBlOiAnc3RyaW5nJywgZm9ybWF0OiAnZGF0ZS10aW1lJyB9LFxuICAgIGFueVZhbHVlOiB7IHR5cGU6ICdhbnknIH0sXG4gICAgbnVsbFZhbHVlOiB7IHR5cGU6ICdudWxsJyB9LFxuICAgIG51bWJlclZhbHVlOiB7IHR5cGU6ICdudW1iZXInIH0sXG4gICAgaW50ZWdlclZhbHVlOiB7IHR5cGU6ICdpbnRlZ2VyJyB9LFxuICB9LFxufSk7XG5cbmZ1bmN0aW9uIHdoaWNoKG5hbWU6IHN0cmluZywgc2NoZW1hOiBKU09OU2NoZW1hNCwgZGVmaW5pdGlvbnM/OiBKU09OU2NoZW1hNCkge1xuICB0ZXN0KG5hbWUsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBnZW4gPSBuZXcgVHlwZUdlbmVyYXRvcihkZWZpbml0aW9ucyk7XG4gICAgZ2VuLmFkZFR5cGUoJ1Rlc3RUeXBlJywgc2NoZW1hLCAnZnFuLm9mLlRlc3RUeXBlJyk7XG4gICAgZXhwZWN0KGF3YWl0IGdlbmVyYXRlKGdlbikpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGUoZ2VuOiBUeXBlR2VuZXJhdG9yKSB7XG4gIGNvbnN0IHNvdXJjZSA9IGF3YWl0IGdlbi5yZW5kZXIoKTtcbiAgY29uc3QgZGVwcyA9IFsgJ0B0eXBlcy9ub2RlJyBdLm1hcChkID0+IHBhdGguZGlybmFtZShyZXF1aXJlLnJlc29sdmUoYCR7ZH0vcGFja2FnZS5qc29uYCkpKTtcblxuICAvLyBjaGVjayB0aGF0IHRoZSBvdXRwdXQgY29tcGlsZXMgJiBpcyBqc2lpLWNvbXBhdGlibGVcbiAgYXdhaXQgbWtkdGVtcChhc3luYyB3b3JrZGlyID0+IHtcbiAgICBhd2FpdCBmcy53cml0ZUZpbGUocGF0aC5qb2luKHdvcmtkaXIsICdpbmRleC50cycpLCBzb3VyY2UpO1xuICAgIGF3YWl0IHNyY21hayh3b3JrZGlyLCB7IGRlcHMgfSk7XG4gIH0pO1xuXG5cbiAgcmV0dXJuIHNvdXJjZTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gbWtkdGVtcChjbG9zdXJlOiAoZGlyOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD4pIHtcbiAgY29uc3Qgd29ya2RpciA9IGF3YWl0IGZzLm1rZHRlbXAocGF0aC5qb2luKG9zLnRtcGRpcigpLCAnY2RrOHMtJykpO1xuICBhd2FpdCBjbG9zdXJlKHdvcmtkaXIpO1xufVxuIl19
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const lib_1 = require("../lib");
const codemaker_1 = require("codemaker");
const fs = require("fs");
const os = require("os");
const path = require("path");
test('example with $ref', async () => {

@@ -27,3 +23,3 @@ const g = new lib_1.TypeGenerator({

});
g.emitType('Person', {
g.addType('Person', {
required: ['name'],

@@ -41,15 +37,9 @@ properties: {

});
const code = new codemaker_1.CodeMaker();
code.openFile('person.ts');
g.writeToCodeMaker(code);
code.closeFile('person.ts');
const outdir = fs.mkdtempSync(path.join(os.tmpdir(), 'json2jsii'));
await code.save(outdir);
expect(fs.readFileSync(path.join(outdir, 'person.ts'), 'utf-8')).toMatchSnapshot();
expect(await g.render()).toMatchSnapshot();
});
test('fails when trying to resolve an undefined $ref', () => {
const g = new lib_1.TypeGenerator();
expect(() => g.emitType('Foo', { $ref: 'unresolvable' })).toThrow(/invalid \$ref {\"\$ref\":\"unresolvable\"}/);
expect(() => g.emitType('Foo', { $ref: '#/definitions/unresolvable' })).toThrow(/unable to find a definition for the \$ref \"unresolvable\"/);
expect(() => g.addType('Foo', { $ref: 'unresolvable' })).toThrow(/invalid \$ref {\"\$ref\":\"unresolvable\"}/);
expect(() => g.addType('Foo', { $ref: '#/definitions/unresolvable' })).toThrow(/unable to find a definition for the \$ref \"unresolvable\"/);
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNhZ2UudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInVzYWdlLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxnQ0FBdUM7QUFDdkMseUNBQXNDO0FBQ3RDLHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekIsNkJBQTZCO0FBRTdCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxLQUFLLElBQUksRUFBRTtJQUNuQyxNQUFNLENBQUMsR0FBRyxJQUFJLG1CQUFhLENBQUM7UUFDMUIsV0FBVyxFQUFFO1lBQ1gsSUFBSSxFQUFFO2dCQUNKLFdBQVcsRUFBRSwrQkFBK0I7Z0JBQzVDLFFBQVEsRUFBRSxDQUFFLFdBQVcsRUFBRSxVQUFVLENBQUU7Z0JBQ3JDLFVBQVUsRUFBRTtvQkFDVixTQUFTLEVBQUU7d0JBQ1QsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsV0FBVyxFQUFFLDhCQUE4QjtxQkFDNUM7b0JBQ0QsUUFBUSxFQUFFO3dCQUNSLElBQUksRUFBRSxRQUFRO3dCQUNkLFdBQVcsRUFBRSw2QkFBNkI7cUJBQzNDO2lCQUNGO2FBQ0Y7U0FDRjtLQUNGLENBQUMsQ0FBQztJQUVILENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFO1FBQ25CLFFBQVEsRUFBRSxDQUFFLE1BQU0sQ0FBRTtRQUNwQixVQUFVLEVBQUU7WUFDVixJQUFJLEVBQUU7Z0JBQ0osV0FBVyxFQUFFLG9CQUFvQjtnQkFDakMsSUFBSSxFQUFFLG9CQUFvQjthQUMzQjtZQUNELEtBQUssRUFBRTtnQkFDTCxXQUFXLEVBQUUsa0NBQWtDO2dCQUMvQyxJQUFJLEVBQUUsQ0FBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUU7YUFDM0M7U0FDRjtLQUNGLENBQUMsQ0FBQztJQUVILE1BQU0sSUFBSSxHQUFHLElBQUkscUJBQVMsRUFBRSxDQUFDO0lBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDM0IsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFNUIsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ25FLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV4QixNQUFNLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0FBQ3JGLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLGdEQUFnRCxFQUFFLEdBQUcsRUFBRTtJQUMxRCxNQUFNLENBQUMsR0FBRyxJQUFJLG1CQUFhLEVBQUUsQ0FBQztJQUM5QixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO0lBQ2hILE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSw0QkFBNEIsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsNERBQTRELENBQUMsQ0FBQztBQUNoSixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGVHZW5lcmF0b3IgfSBmcm9tICcuLi9saWInO1xuaW1wb3J0IHsgQ29kZU1ha2VyIH0gZnJvbSAnY29kZW1ha2VyJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5cbnRlc3QoJ2V4YW1wbGUgd2l0aCAkcmVmJywgYXN5bmMgKCkgPT4ge1xuICBjb25zdCBnID0gbmV3IFR5cGVHZW5lcmF0b3Ioe1xuICAgIGRlZmluaXRpb25zOiB7XG4gICAgICBOYW1lOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnUmVwcmVzZW50cyBhIG5hbWUgb2YgYSBwZXJzb24nLFxuICAgICAgICByZXF1aXJlZDogWyAnZmlyc3ROYW1lJywgJ2xhc3ROYW1lJyBdLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgZmlyc3ROYW1lOiB7XG4gICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVGhlIGZpcnN0IG5hbWUgb2YgdGhlIHBlcnNvbicsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsYXN0TmFtZToge1xuICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1RoZSBsYXN0IG5hbWUgb2YgdGhlIHBlcnNvbicsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG5cbiAgZy5lbWl0VHlwZSgnUGVyc29uJywge1xuICAgIHJlcXVpcmVkOiBbICduYW1lJyBdLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIG5hbWU6IHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdUaGUgcGVyc29uXFwncyBuYW1lJyxcbiAgICAgICAgJHJlZjogJyMvZGVmaW5pdGlvbnMvTmFtZScsXG4gICAgICB9LFxuICAgICAgY29sb3I6IHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdGYXZvcml0ZSBjb2xvci4gRGVmYXVsdCBpcyBncmVlbicsXG4gICAgICAgIGVudW06IFsgJ3JlZCcsICdncmVlbicsICdibHVlJywgJ3llbGxvdycgXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG5cbiAgY29uc3QgY29kZSA9IG5ldyBDb2RlTWFrZXIoKTtcbiAgY29kZS5vcGVuRmlsZSgncGVyc29uLnRzJyk7XG4gIGcud3JpdGVUb0NvZGVNYWtlcihjb2RlKTtcbiAgY29kZS5jbG9zZUZpbGUoJ3BlcnNvbi50cycpO1xuXG4gIGNvbnN0IG91dGRpciA9IGZzLm1rZHRlbXBTeW5jKHBhdGguam9pbihvcy50bXBkaXIoKSwgJ2pzb24yanNpaScpKTtcbiAgYXdhaXQgY29kZS5zYXZlKG91dGRpcik7XG5cbiAgZXhwZWN0KGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4ob3V0ZGlyLCAncGVyc29uLnRzJyksICd1dGYtOCcpKS50b01hdGNoU25hcHNob3QoKTtcbn0pO1xuXG50ZXN0KCdmYWlscyB3aGVuIHRyeWluZyB0byByZXNvbHZlIGFuIHVuZGVmaW5lZCAkcmVmJywgKCkgPT4ge1xuICBjb25zdCBnID0gbmV3IFR5cGVHZW5lcmF0b3IoKTtcbiAgZXhwZWN0KCgpID0+IGcuZW1pdFR5cGUoJ0ZvbycsIHsgJHJlZjogJ3VucmVzb2x2YWJsZScgfSkpLnRvVGhyb3coL2ludmFsaWQgXFwkcmVmIHtcXFwiXFwkcmVmXFxcIjpcXFwidW5yZXNvbHZhYmxlXFxcIn0vKTtcbiAgZXhwZWN0KCgpID0+IGcuZW1pdFR5cGUoJ0ZvbycsIHsgJHJlZjogJyMvZGVmaW5pdGlvbnMvdW5yZXNvbHZhYmxlJyB9KSkudG9UaHJvdygvdW5hYmxlIHRvIGZpbmQgYSBkZWZpbml0aW9uIGZvciB0aGUgXFwkcmVmIFxcXCJ1bnJlc29sdmFibGVcXFwiLyk7XG59KTsiXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNhZ2UudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInVzYWdlLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxnQ0FBdUM7QUFFdkMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEtBQUssSUFBSSxFQUFFO0lBQ25DLE1BQU0sQ0FBQyxHQUFHLElBQUksbUJBQWEsQ0FBQztRQUMxQixXQUFXLEVBQUU7WUFDWCxJQUFJLEVBQUU7Z0JBQ0osV0FBVyxFQUFFLCtCQUErQjtnQkFDNUMsUUFBUSxFQUFFLENBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBRTtnQkFDckMsVUFBVSxFQUFFO29CQUNWLFNBQVMsRUFBRTt3QkFDVCxJQUFJLEVBQUUsUUFBUTt3QkFDZCxXQUFXLEVBQUUsOEJBQThCO3FCQUM1QztvQkFDRCxRQUFRLEVBQUU7d0JBQ1IsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsV0FBVyxFQUFFLDZCQUE2QjtxQkFDM0M7aUJBQ0Y7YUFDRjtTQUNGO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7UUFDbEIsUUFBUSxFQUFFLENBQUUsTUFBTSxDQUFFO1FBQ3BCLFVBQVUsRUFBRTtZQUNWLElBQUksRUFBRTtnQkFDSixXQUFXLEVBQUUsb0JBQW9CO2dCQUNqQyxJQUFJLEVBQUUsb0JBQW9CO2FBQzNCO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLFdBQVcsRUFBRSxrQ0FBa0M7Z0JBQy9DLElBQUksRUFBRSxDQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBRTthQUMzQztTQUNGO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7QUFDN0MsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsZ0RBQWdELEVBQUUsR0FBRyxFQUFFO0lBQzFELE1BQU0sQ0FBQyxHQUFHLElBQUksbUJBQWEsRUFBRSxDQUFDO0lBQzlCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7SUFDL0csTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLDRCQUE0QixFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyw0REFBNEQsQ0FBQyxDQUFDO0FBQy9JLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZUdlbmVyYXRvciB9IGZyb20gJy4uL2xpYic7XG5cbnRlc3QoJ2V4YW1wbGUgd2l0aCAkcmVmJywgYXN5bmMgKCkgPT4ge1xuICBjb25zdCBnID0gbmV3IFR5cGVHZW5lcmF0b3Ioe1xuICAgIGRlZmluaXRpb25zOiB7XG4gICAgICBOYW1lOiB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnUmVwcmVzZW50cyBhIG5hbWUgb2YgYSBwZXJzb24nLFxuICAgICAgICByZXF1aXJlZDogWyAnZmlyc3ROYW1lJywgJ2xhc3ROYW1lJyBdLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgZmlyc3ROYW1lOiB7XG4gICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVGhlIGZpcnN0IG5hbWUgb2YgdGhlIHBlcnNvbicsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsYXN0TmFtZToge1xuICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1RoZSBsYXN0IG5hbWUgb2YgdGhlIHBlcnNvbicsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG5cbiAgZy5hZGRUeXBlKCdQZXJzb24nLCB7XG4gICAgcmVxdWlyZWQ6IFsgJ25hbWUnIF0sXG4gICAgcHJvcGVydGllczoge1xuICAgICAgbmFtZToge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ1RoZSBwZXJzb25cXCdzIG5hbWUnLFxuICAgICAgICAkcmVmOiAnIy9kZWZpbml0aW9ucy9OYW1lJyxcbiAgICAgIH0sXG4gICAgICBjb2xvcjoge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ0Zhdm9yaXRlIGNvbG9yLiBEZWZhdWx0IGlzIGdyZWVuJyxcbiAgICAgICAgZW51bTogWyAncmVkJywgJ2dyZWVuJywgJ2JsdWUnLCAneWVsbG93JyBdLFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcblxuICBleHBlY3QoYXdhaXQgZy5yZW5kZXIoKSkudG9NYXRjaFNuYXBzaG90KCk7XG59KTtcblxudGVzdCgnZmFpbHMgd2hlbiB0cnlpbmcgdG8gcmVzb2x2ZSBhbiB1bmRlZmluZWQgJHJlZicsICgpID0+IHtcbiAgY29uc3QgZyA9IG5ldyBUeXBlR2VuZXJhdG9yKCk7XG4gIGV4cGVjdCgoKSA9PiBnLmFkZFR5cGUoJ0ZvbycsIHsgJHJlZjogJ3VucmVzb2x2YWJsZScgfSkpLnRvVGhyb3coL2ludmFsaWQgXFwkcmVmIHtcXFwiXFwkcmVmXFxcIjpcXFwidW5yZXNvbHZhYmxlXFxcIn0vKTtcbiAgZXhwZWN0KCgpID0+IGcuYWRkVHlwZSgnRm9vJywgeyAkcmVmOiAnIy9kZWZpbml0aW9ucy91bnJlc29sdmFibGUnIH0pKS50b1Rocm93KC91bmFibGUgdG8gZmluZCBhIGRlZmluaXRpb24gZm9yIHRoZSBcXCRyZWYgXFxcInVucmVzb2x2YWJsZVxcXCIvKTtcbn0pOyJdfQ==

@@ -1,1 +0,3 @@

{"version":"0.1.0"}
{
"version": "0.1.1"
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc