From a01bfa434380c2b8846cc9bf734aca2e7636d206 Mon Sep 17 00:00:00 2001 From: legonzaur Date: Sun, 3 Dec 2023 18:23:02 +0100 Subject: [PATCH] first commit --- .gitignore | 1 + .vscode/launch.json | 19 + .vscode/settings.json | 3 + 1.1.ts | 12 + 1.2.ts | 44 ++ 2.1.ts | 34 ++ 2.2.ts | 36 ++ inputs/1 | 1000 +++++++++++++++++++++++++++++++++++++++++ inputs/1.example | 7 + inputs/2 | 100 +++++ inputs/2.example | 5 + package-lock.json | 769 +++++++++++++++++++++++++++++++ package.json | 11 + tsconfig.json | 109 +++++ 14 files changed, 2150 insertions(+) create mode 100644 .gitignore create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 1.1.ts create mode 100644 1.2.ts create mode 100644 2.1.ts create mode 100644 2.2.ts create mode 100644 inputs/1 create mode 100644 inputs/1.example create mode 100644 inputs/2 create mode 100644 inputs/2.example create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 tsconfig.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..30bc162 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/node_modules \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..283ef30 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,19 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "launch", + "request": "launch", + "args": [ + "--experimental-specifier-resolution=node", + "--trace-warnings", + "--loader", + "ts-node/esm", + "${file}" + ], + "skipFiles": [ + "/**" + ], + }, + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..55712c1 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "typescript.tsdk": "node_modules/typescript/lib" +} \ No newline at end of file diff --git a/1.1.ts b/1.1.ts new file mode 100644 index 0000000..6f60029 --- /dev/null +++ b/1.1.ts @@ -0,0 +1,12 @@ +import { open } from 'node:fs/promises'; + + +const file = await open('./inputs/1'); +let sum = 0 +for await (const line of file.readLines()) { + const numbers = line.replace(/\D/g, "") + sum += Number(numbers[0] + numbers.at(-1)) +} +console.log(sum) + + diff --git a/1.2.ts b/1.2.ts new file mode 100644 index 0000000..738f6cb --- /dev/null +++ b/1.2.ts @@ -0,0 +1,44 @@ +import { open } from 'node:fs/promises'; +const asso = { + "one": "1", + "two": "2", + "three": "3", + "four": "4", + "five": "5", + "six": "6", + "seven": "7", + "eight": "8", + "nine": "9" +} +const mapping = Object.entries(asso) + +const file = await open('./inputs/1'); +let sum = 0 +for await (let origLine of file.readLines()) { + let numbers = "" + let line = origLine + let index = line.search(/(one|two|three|four|five|six|seven|eight|nine|[1-9])/) + if (isNaN(Number(line[index]))) { + mapping.forEach(([str, val]) => { + if (line.indexOf(str) != index) return + numbers += val + }) + }else{ + numbers += line[index] + } + + let reversed = line.split('').reverse().join('') + index = reversed.search(/(eno|owt|eerht|ruof|evif|xis|neves|thgie|enin|[1-9])/) + if (isNaN(Number(reversed[index]))) { + mapping.forEach(([str, val]) => { + const strReversed = str.split('').reverse().join('') + if (reversed.indexOf(strReversed) != index) return + numbers += val + }) + }else{ + numbers += reversed[index] + } + console.log(numbers) + sum += Number(numbers) +} +console.log(sum) \ No newline at end of file diff --git a/2.1.ts b/2.1.ts new file mode 100644 index 0000000..a2e2b59 --- /dev/null +++ b/2.1.ts @@ -0,0 +1,34 @@ +import { open } from 'node:fs/promises'; + +const bag = { + "red": 12, + "green": 13, + "blue": 14 +} as { [key: string]: number } + +const file = await open('./inputs/2'); +let sum = 0 +for await (let origLine of file.readLines()) { + const result = (/Game (?[0-9]+): (?.*)/gm).exec(origLine) + + if (result == null) throw Error('result is null') + const pulls = result.groups?.pulls.split('; ') + if (pulls == undefined) throw Error('pulls is undefined') + const id = Number(result.groups?.id) + if (isNaN(id)) throw Error('id is undefined') + + const possible = pulls.reduce((acc, pull) => { + const balls = pull.split(', ') + return balls.reduce((acc, ball)=>{ + const singles = (/(?:(?\d+) (?\w+)(?:, )?)+/gm).exec(ball) + if (singles == null || singles.groups == null) throw Error() + if (Number(singles.groups.n) > bag[singles.groups.c]) { return false } + return true && acc + }, true) && acc + + }, true) + if(possible){ + sum += id + } +} +console.log(sum) \ No newline at end of file diff --git a/2.2.ts b/2.2.ts new file mode 100644 index 0000000..371f681 --- /dev/null +++ b/2.2.ts @@ -0,0 +1,36 @@ +import { open } from 'node:fs/promises'; + +const file = await open('./inputs/2'); +let sum = 0 +for await (let origLine of file.readLines()) { + + const bag = { + "red": 0, + "green": 0, + "blue": 0 + } as { [key: string]: number } + + const result = (/Game (?[0-9]+): (?.*)/gm).exec(origLine) + + if (result == null) throw Error('result is null') + const pulls = result.groups?.pulls.split('; ') + if (pulls == undefined) throw Error('pulls is undefined') + const id = Number(result.groups?.id) + if (isNaN(id)) throw Error('id is undefined') + + + pulls.forEach((pull) => { + const balls = pull.split(', ') + balls.forEach((ball)=>{ + const singles = (/(?:(?\d+) (?\w+)(?:, )?)+/gm).exec(ball) + if (singles == null || singles.groups == null) throw Error() + if (Number(singles.groups.n) > bag[singles.groups.c]) { + bag[singles.groups.c] = Number(singles.groups.n) + } + return + }) + }) + sum += Object.values(bag).reduce((acc, val) => val * acc, 1) +} + +console.log(sum) \ No newline at end of file diff --git a/inputs/1 b/inputs/1 new file mode 100644 index 0000000..ccb4708 --- /dev/null +++ b/inputs/1 @@ -0,0 +1,1000 @@ +qzjggk1one +two2seven7 +vszthreetwo6threethree4two3 +zcsvvlslqvfive11chhzmdjdgz8vbgldl +jjsmsksvbr77cfdrdseven1zd +947lkkgznlhxseventwo +8twohprsxmz47 +five11eight1 +seventhree1eightztszfourfivesix +cbcvd9 +hg91fourhhpvkrxbn +1mqbdkqxnine817four +btr4seventhree7hbkkg +4fivegtbqthreeeight421six +ninefivekd7 +9onetwofprmrhmonedb +threemtmjpfzqkdnlpl81one +six7eight5 +twonkhnine22fivep9two +qfqtkz9fivetst +rkzxrhvsgonerqqkpf7nined +fivezg8jmf6hrxnhgxxttwoneg +21nine9two2tfmfxjrvkznkjzs +rhcdx54 +jhnpkkp5seven +one8xrjsk9rrgkt +nine58 +1twohphpl +eight3pfzvrt9msgxtrbdclsix5 +874eighttcpzdbrlj +qlxkgtwo9 +ninedbvone1sixlnzdccpsixgzrfdnddmtgf +7eightppzmhmpn4bvvxp39sspf +four48rvhnzsnzmjxrl258 +342 +three2mmqxh391 +eight7vcmhfqznbccrvl4onehfqmjone1 +6kgchb4xggs75two +five6ntbssixvvtvs8spgdxl1six +one7one +27three2seven +rbmgfive4snq +four239threenineeightzrbvbgthree +two4one3 +sixcpcthzvczjp725 +fjninetwo6 +seventwonine7 +1twoonepzrjzsdfourdbdrxg1 +vzskvvbtjfeight2sltfdnine +oneeightfive3lthns49 +cxkqdgrftbhzsnine6 +onethreesixsix5jsj +43347two7 +threexfcvbv9qkthree3 +7qbpndqrzdzfjnineznpfrtkrjqthnkrpvcflfr +prcjmkhg9242eightjtcxmljchpchkkftqfk7 +four2bdhjzsfctwothree5 +1qkhgpms6two +foursixqgeight5b +8eightxtzp +21bcfkqgjndone +five56fivefiveg9six3 +seven1fivegrgcmp +prxgtm9threezfqsvpshjnrhbtthree +2eightsevenonenine2 +sevennine8vr +htssttpntwolpghms7dhqzpcssnqtwozxxj +4hggpthreefive +httwone6hhrvkknd +six2r828 +four42xhlgfour +8one8 +6twoseven8onextcj7zcl +lqx9848 +xdsvgtm8672sixsmlndlc2four +8vrvqdrcmx9 +one42nine +dstdftnine8three7 +hhpbcz3 +6tdzgbkdjmfourtworfmjnmlqs2three63 +5fivejbcjfqjnd34qcjkjvnnkrtwo86 +ztkbh8threezjfkcm2eight1six +gpkzlpfq4kghqlzqfkfivenine +gxnlcr6four92 +qoneight55five3 +brhzqvk6 +sevenlzvktjftcvfkvjzn6thlzf +2tnvkdzrtshfzxvzpc +mbndnhq3one9one2one3 +six11eightoneightklv +1lrtvfzszkqlcstmztkninenine14llmfive +1four69two8shhmd +five7xtvtlzpsfsz1htsjxzph5 +9seven4fcp +fqhbptgthdfnng6zzzksevenbchrtvtwo +two7712two +fdkbn4lhcfqcdjbfiveeight6 +foursjlrleight2five +nzfmprckbcdvnzzj4xcpngq6 +kczeightwo4fzshkzoneonesixfivegpnnrpsp +nine5fivethree +ninerjkcvrjr8koneseven23 +sncnb4gb9 +four3five21 +8seventwo +pknhg9jql51one4 +1threetwo6rfvsgjbhjlcfour +four7fiveseven3fourdqvsnkkdrbrhnfsx +7rcqcbqsfz766 +4hdzzzggfzs18eight2twoqmnlcxzxs +x8 +eightsixdqcpvsgzndqqone716three +6sixeightnsmkckmssfive12 +7threesixninejrbthreebqpqtl38 +five11nine9cljfjk83 +qhrgg313jjhzptpvnrjb +mm23 +onenineseventhreeseven5thxmgzlxm2 +threevhrfjnvv9sevenone +7onehnxssvbgeightsixone5 +sixone9sfsix +seven3five6nineleighttwo +6fiveeight3bxtt8 +tvtzseven3ljkqmnkprmsevenmdnpfour1 +twovjjnznn36fourpvjfourk +4zk2slkstxjxhr9 +6qzhhzgvpfoureightljcfxcjntwoseven +73p43cqqpjrsrmzgqzhtrl +32fivemxfdldrkrvstffive2 +fivethree3eight86 +six33rxgscqrpqtkjrqtwonet +3ssmlszjgtd8sixznrvstmbjqjthzkszx27pbsgkvsj +4eightnjvnvd57sixjtbrthmtlh +3eightsix28 +18mnrnlppvxdjg88 +qbnmt4fivepbqrlzkd7eight3twonehzh +5xkmvfive8two +72fourpbrsix48tg +8eighttwo28eight +68dvfxsix5trrftjmgsevenslnjvzggnine +zblphhsrhr2nine +7fivethree35ninet +sevensix1cmqgxjdpj3jqct2 +5fourtwogrpxkgxvtcfive1sevenjhxzb +oneseven9sixone5 +four4klsixnbkxmeightfourtwonekmc +2vzknhhhznx4one +kndone4three942lqxdxddfour +vrcmxdgssevenseventwothree9 +stxvhlsqb9jccxph8three38kbrxvkr +fjxhcbbczfmt7twoxfmdgxsps +5715threefgtsgrjb +254hnjrpsbbffxmvtjsjstkxkponeljcqhdll +qmvlxjjklmkhvmmjd7dfkztjvtnqfn +seven34five5mflmvnine6five +jtqdgkv3three +6four1fcmhbpmbknkpxthpcthreesevenonethree +three18frtwo +boneightvlgzbzrqzhrsfvsevenninenine8nqlzrcqslqxkn +7seven6sevenvrlnvqjdsix +hprgnr2hmgnjnvzleighttssseven42seven +fivethreevhscfxqrz42sixseventhreefour +9onettcqgvvgcpone +threeseven2sevenpxsjphvdzj51 +26onecmkcseven583six +nine3csevenpzhjxssxsix52 +2seveneightsixthree2 +7vxxfxjkfkeight69 +f3714fivedrzst +qvlrmrgdjsdsevenxjf1fournprtlbpngkqt +9four7rd549four +3xrnlfivehsnkzdgmfoursixninenine +two1onelkqgvceight +four7vbrkrcnine +twotwo8fshnvrzrhgksbf4two +1eighthdnrtpglhk6bfqtjqkgvcpztrf2 +93five6hrxc8six +onechldlktgq5xckxbtlhhszjmsjlsttxrncssffh4sccgxjz +fiveninenbkxzqtbqglx69 +xpkfldsggg3eightbqtbrfthd +1six1kk54sixnine5 +onethreefourfour99threethree +cbpgjltprj5 +seveneightfivezrsrseight9 +sevenbqpkone7six9 +2sixfour9fivehrksb2six +386mfggvhgksmnine1 +tlrkxpbnmmcjfzgbh697 +8bkksmcbnxsgzsixpv24 +four5qtjjcvnjnxfhcblfdgsssqmcqfive +3jppthreezkvjnxptwoonefourjtbxfllqf +sixtffm85ninefour +19seven +twocxxzkcv37kleightwod +dncbnpbch1sjjbdnfjqj +twosixjmljjllk67 +hggzqspzbllqeightzbckfllhtwoseven9 +tvsrsix9ninefivefour5twoneg +5eightwox +zvpkkrs734sj +88threekmzzbfsfxnrztbgkqseven5ltfcmzpxxvb +fivesix62twonine +xrcssevenp2 +seven6eightjkfqnrkntmgfgccrvjcninemsix8 +jcnnjbttlf7522fqxpcvd4sjq7 +dvqlsgd1szspcmfhmptnphk32five +93nqrmmbfbhvhkbjxcj6pzjb +4fourp +35522 +1462 +four5eightsevenxcqsevenqxxp +2pmthree +five73fivelkcfbxttlkxgqrq +7hcjtq +3c2 +stmtgdlxz9mm13mdkpn3fqmfnghmn +fivellbhrntmseven7vltvqrclblsxg +ninebrfbxcrsgxhmn61kndonegfbfrdseven +xbq5two9 +hrmsgltrlllrrnd3seven +fivexfs9 +6eightqvqdpxltsrldc6xrxjpdz14qxfnsvbzgj +sixfourfivershtwo9dfvnqkpzczpxgsfsgb2 +8sevenfive9twoonevmjcpklsvmsixbghd +sixgcdjdhgglhdv5 +dmxvdp62g6six +fsseven8fcqkl +6ninexkgqsglbninedcgtmsp4qhngtvs1 +62nine2threesix +m8rpxcjgcvtseven7five4 +kxx13 +plptcvbzh3fourfiveczxdrckjbg8twoninecrhfkll +8six8 +xlvngzxlrnhh3fiverf3 +vk3eight78 +eightone97six3jdztsg +4mmdsmdllrkld +twotdnlkbdqmqtwo1foursevenxbbtrfjztbthree +fivetzszgzbvtwoone6 +snine52bmvkdkeight9 +fourponelvrncjhkmv5 +onexvnine2xtjkjvmhpvkzrzczthree3two +5xbdg5klzcxxfsix +seveneight17 +gnxptlnhfr32 +vcnfhslqb1nine +sixfour7oneights +sninefour9three +ddhmpjnnchkkc1hlb +mzvsgpbp21four468 +four8s3kfqhlxfeightkjbfv +83threexgsvhrnvfive +dhqtdfcl4sbvthreeckqr +1nineptcsbtckgrgeightjjcn82xtkzmjhnsb +bprldcvpqx94onezmcgntk6 +816 +sixone9nineeightclrvctwojfjskplgtx +twofourpqkvbs8kgtdrsqd +hgqxn9psdeightpmpqtrzpncxx +lvk1nine9 +twothree7eightqqhzbhbmntpknmnvckfourhbsdqlzs +nine61one +759fkfnzgjkhvztssv39 +gfhnrfone16eight +threepqxzpeighttwoseventgvjvgl1 +dgthhx1 +shdffcqfxpvpfsv4hmknbfnvmt5seven +sixsevenkgdvdqbp7tfqjpjfive4 +ngvqc6three88nlnhzjndss7two +sroneight8 +77seven114sixgzrnlh6 +8fourfive7two1 +nccsjq6twothree14vzjnnrjbxjhkdcvmvzzc +six4hxrjdztttqssvhslpqjlxtqhgtqf +five4dlmdtsdxrg73one8eight +1sevensevenhb +vbnmfr3knfncgtseven +8sceightnine +x3two +hjhknjmbhnpsl1six2six5 +ninenine4b74eightthreefive +twofive5fhnnsq32mdflndlft7 +threesix7 +sixfivefivesixthreeseven84 +ghzgpxjqj4threeone2153 +3threefive5 +four5one59fivesevenzlpgnmjtqh +47jznslzfdgklndmpcjdksrqfg4threefourgctxp +kjk9pxsdgsheight6 +four6mbskcnpgkb +48nine +3ninekncjthtk9rbnmdmdrhrksevenpcpnnk +jgqqvd71twoqmzr +fr8six93nine3 +29sevenppgrb3pqbbrthreeseven +onetwo3fivethree +2nineninefourpstb72 +one6two +971 +nine4foureight1dsftjdrq +msgbxbbtb3pnlnjsixthreefoureightwobm +69mqfclsqhss +one166eightbtchdlppone +zpg29lnksjlsxqmtwo1k +76ninetwo56 +fourbpmgdl38qmnfrlntxzthree7 +jjxvqchjzscxq1vfmjvklg +psixseven57 +qxgqsfhf54 +zcjshnthree45hhpdfninevhrlhzxthree +sgkztgmsbs7ndtvpm8twofive7 +ntwonemktccptwotwoseven4one +2sixnine4nine +onelzjlkttzqthree34threethreeeighthrfzgzzbr +2eightxktjp6tmlrlmkpbcz +four974 +9ngnj +7fjrh9 +2fxpcdjcnm1two +ninerpbnjfbfourtwoone61lndjmzqfrj +8vklltm1pthreedtp +onemfmhgfjcbptwosix31 +lrzvkvvffvlfjgzcxgqpf769fvppsmfivegktg +five7sevennine +6vjcfhkf2bgjknzlfour +nine7eightwoczx +gccdbvjlzeightfour4fcvxdqg +hsvjdlhqxmq1575two +8rtlptb5xjptxk +4seven3hcpnqhzz3xxkjzltgjmpnmthree +threejlsninefour12 +bg915kmgdfzmqp4 +four2lsix8zjhmkq +tmjtwonesevenktwophvrsqpntwobg9 +ht8fhqqsvzpg12 +fgbd11eight7486 +vzrtrfiveoneeightsixseven8xdklgqj +ninejg34 +2zlrpcf +318fbtmxdlnbr7sngkjbzt +hgneightwogrfkcxpthree98threefourxshxvpbone +ninesix6onekzffggjtvh3ninethree +5vn +7dctbvpm +cvvpszdheight6 +sjtlseven42threemsdfnfive +km6zcxpzlhmd +3sixbfs +clkpxpmtrthree4one +bthreethree42eightqzjfnc +v955onezltllqmk +vrqkjpr1rkjmljn1fourninezpkfvvqsldxzlnl +sixnfivetchsccgr5s7fourgnsxqg +hqkgndxmdthree5npf76seven +six7grnnxhgg4 +jthree432mvppjpbk2vcrnthzzc +9seventwo48jpvvkgf +86jhtmsftsmkxpjgjvdqjchpmt +kmpqfnvstncrxq3hpbk +hfbknxzrmqlzsdk79 +jxdlfivemplvrsl9eight +931 +hcfssghtwonsjcdhbnfx42 +49sixeight +vpc2eight7two +3sixlqdzbf2nine54five +twoone92threenphjgdlztslfourvlfpbdqpvh +eight1347eightdhfdqnp +3fiveone761 +9hbgljt +sixlfivet9qtsvhlfour +six35two +2one3vhzfxjp68 +seventnqpllcxcxbzkznqs24 +1twoeightsix +five2sixnine975ffjtdslzvhmgzxmjp +four53eight +6fivesevensixbnpbqvfvkc91kkcth +4hdfvjblpmhhgvssmzhgtspjc +xtftqpvbfbzlgmrrvmctwo4cqhrdsqjnjone +hbqllzxhz5t +qrxoneight3sixlcsldhone +hjdsevenqffone5threeljqpdxxxs +one79hdbrttptvpfoursix9seven +ninetwoczt18threenine4vlcrcnmxr +h9fourseven8kbbfkxpmfll +ztrqpd88fjfive +1onetwoxprmpthreevbjmjzqgcms1one +9qgpzftfq +lpsninevdxdxpfbbm2 +41hdnzrrv7 +vhdbnkjhxbsmsix5zppbcrhhv +fourlnfive19 +threedjjkssbhsevensevenfive8vzsrprh3fcnlz +zkgp95znpqjdgtsclscf6 +9z3 +fnrkmtkz4 +sixfour1qpzzzrtcneight +67kseven +4lrqrhone +vxqtbgltwosptqhznnine7 +1tqcxmxhtdljmsklfzfb9 +eight2mqcmcxqzdjnpddqjptwocznvhzone +g7 +1gzmnlvrmlfscdbnine +18qjtq6nine +three9six85four +vrhfclpzteightdvjdsjhseventhree2 +bblhvdcjfqgfive6ninenine7 +8nrjbqnfkfiveqhbbc7lfjhsfour7 +cjkphrvninefour2nine6 +kscvmlxssevenonelqdrtcqcqthree3two4 +1333 +sfrzr9 +onez2eight7 +tbsxcmgmnb636nfcdsbj +2vvqhrczfnmngbpgtsnlfourfiveqzk +7gsskljk6bmgstmptsixcdjzm61jzgxbjrtl +fourvfph31 +tpzfive8 +fiveseven62 +six55sevenvrxdeightnine4 +pffbhkpvhtmsr3 +4eightninemzbkzmkd +jntwo4twofdgrl3fgtqmnfnz +6threetvzjn8 +5kvc82tksgsxvm +mrtwone3seventhree +8six7gxgfmpkheightxxqbshrn +fivevtbcgzmvrdkxnssneight2three +fiveseven2ndpkqtxxkninesix +one7jslcxd +7vfjpjfsxgcfbgtsbcnfjfvdql +35ninexmssjbzvflcsgjlgf4 +jfnknfxsrp6hpmnclmone6hzpnfnbhsfive9 +jhmmvkspvdltqcmqlqmbsevengsvfvxhct7vnjntseven +lzml9ninerbnpl3ltsclmjvfour +fourpzsbmv2oneeightseven +fourcptgpkm5onepkbpbmzhsnbftflkthreeznnjkrmqkp +vflqthspgjrxnvvone9fourfour +two4jtcqdrbmfs2six +1five2seven +seveneight8threerspnbsxhjkeightnblhlj +cxnhsl6three +eight96nineone1oneone +twotwo5ffngqkkjc +sixnine9ptxjjbhhpxmxllvd +69tkdpg +tgrtrd4 +7xj99 +6kjgvlfivedfourseven +sixjvbqzs9 +1336threeseven +3mzfgkcgrkm668 +eight639five +zzg25s2mccdfrfsthreeklsqnbgpzbjmgqlntc +np9twofive57four +nrkxxt9mbxfnbrjvfzf +55gfl +five4ninepnpdrfqonepblsnm1 +2svkthgrhgrkjjvcxxgjjlnm +3758rn6 +rghbnfjdz6kj +brnfvpdxrkhfsql216seven +xchkrlrn5rqfcgznxjnfour4hpb +three658 +72sevensix +6four569rmcnhcqb6three +fourfoursix8eightqkpvbns2 +sixh6fourfive +465 +8oneightmx +dkdnrtqxhx6 +m13oneonethreeldjsbrrvbg +5tqvlxnfournddkxcfchr3 +ninefive418lfgb32 +cfjbm18 +eight6jdgnxxmgg +boneight2seven1 +vltwone3eight2one +five1xf1foursix +ninecgznbgcrfseven8hkqtwo +vttwone6tjnftjsmkb +sixdfthkdcq84chsrtwofdjm +hgtvtqbgchlntttzht34twojpjzqh17 +6qqpsnkdscgzvplqpdqkbmtv +eightjbone3cpfvrrpvjeight +9twondldz +974 +2jtnd7oneccdhldpghxjp +54fkqhzjgssixtkhvtmkggtpgpn +four7twosixninelmmhzttthtprgd +qkjtzllg7mhvhrdmhlvcjxkqlvplfeightk +xcndxmmqnj6bzhkx +m9one +nzcdtnk8one +onesevenvspvtnlx829one +32fbfbpblxjlsn +7tkgxjdk598xbkxzbt1xqgzppfcrh +zbffthreexqgtzpeight11csbcvrdsdnjxrf +twonine6sixnine +sqlzbx8llrvtzmgdjfrtvjxctp +5nine95nineonethree8 +three814fourb5eight +tcgrxfxjqthreemdzj1 +kpfbjlftxzcvqjmbtbjhzsnhknlcrdntseven8 +8572xrjm9bzrnzz +klkdgszqphbdt4 +seven69 +nineseventwosixseven6fourone +hkmhpdlxrxtbljnlq6twovszpngfdx5dpktd +nfcxsr5eight63one +8eighttwonine5five7eightwokv +4nkv +6klbcjh9rnhvrznrtvkktnhone +597twoseven +xlrfzngpffhjc18 +nine57seven3xfhs +377 +fivefourcxdfgbtnhmscdlsrnnljvgjlthree1f +4hsgqrzthtk +3ninez24 +k9qgqsbbqdsj44tr +djcsxdmd6jrgtmxpk5onegrljnflbhmnnx +sxxrhpkpclbjms3jq +8ngmpfiveoneninerpbscdgjxztkzldcjbrk +637zbrfpsvhj2hzmvx +4eight6chc6 +5one9nine +7sevengqrqztfvmhkqnjveightl2twovtgdlhv +twosixeighteightmm62 +zlbtcjgninevbctrmsqkqkkjmvcfthnfvnl4 +fivesjmgr7two +twotwofivexmsqvjv6four +7fiveeightsixnine +ptkdvqjbniner3five6 +68threepkzgtdhmmznine +5jhmzcznnppzpzvmtmn +onethree2nine +9six9 +fivek4qhqpdd +ninexqrfqddhsix96eight +one1nxzzlj +four6gjkhkmqvq3jn +6scthreedtsqfzdjdpb614 +77tqrbpsrkvvf +7ncjgtb854 +threeggknmtwofour9kjlnfkhfive +t5trbxmkss17qvbdbl +jjftkk5 +xqkxrsevennrlqqmcdtwo6srsxdmqffx +3six4 +bssbzmgdvs9qnsfznvone8seventfx4 +fiveckftrzxhmtwobrlgzeightkscfxzqqvm3five +pngggbvtpsfkjcnine18one +zkgg9sevensixhlxb3 +gxxgrmqfbrsvm3xdpzqzhjthreefivemz +9sixshcpfivetblntkvqrfcrqbgxcvgzxdq4 +1prnmqrteight9three6twozvbmhttzqzhjmxxg +191mjpnddq +4gtddmzprpvgrgbczcxbz +2onesevensixbmsmstbqeight9dxtjkndsz +mtwoneeightmdseventwo24qn +two69bmvplcfhgxqxzbnb32 +282seventwo1582 +19cmqgjn +8ninesxkxtjbmsssevenmtwoptlsx3 +5ninefourpc68eightonefour +nineoneseven3four7 +83fivevlndzxsix4njnine +4ninengdkgtt4eight +threenine1 +461q583 +37mtppzmdtonedfrgxxr +dbkqbcpgjgonejbrsdvgfmgftwo8 +four52bnine6 +17 +9mmjzvlgnk6 +1three3twonett +123threesixklzxonesix +two5ninebcsrkvldtkfseventx14oneightt +eightscsbpjfvzqqzvphgqb5fivermgpnztwo +zlvgbkztbzbbrfive9jqp +eightphzrnbdxshhhkvtv8 +mqbqlznsr6 +87twobrcxzxgrjqs97pskfour +fivecthreekfrmsjvcmlbrcjxjf8four +vgscjjrxtwo6llhdnsevenpb +jrkrbndlphnnfvstthree6ninespchtjzht +flcffqpthznrhmxklztqtdqhone2 +2811fourseveneighttwokqsfzvgn +8nvrdhmlnrjqsixpjdbrfrp +thnpqfntttmbbjeightfourxgcone4 +5leightkvsjfjttxlrpnmjxzxsevenlhc +eightqrqvtcclqfive42 +5threesix +qrpfive2mlhgctblhns6sixglnllttvdtwonekls +6six8two +4fourninerrppmzxlfdsixbzvdjljsx4 +rjfpktwo7nndlnmsixxtbngv +lpgfs9eight12krtktzsix9four +3one1x +pjnvpbbb3 +5nine1ninejxccxrrcdf4 +gdnmpnineldhxrtpxbfn8zkmcpgpz4 +r821sixxktbpncp +7glxnlfrvlqgkfour +8three28 +fourtwo3twopllxrjtcthree4 +txhrhxpbg6 +psfrrdvdglrgb9 +nfjnshb4seven764xmrkhfgpgtsmsix +2vflvfgkcktqlqrktkx3eight8h +hmzhxctkv8tftvzxkoneightdb +cnklbqdseven6kdrvbjthreeone48fiveeightwoj +sevenfouronetwo5323 +tworpfmhd12 +tlconeightjcktcngts1eightmxnsd6qgzlvrg22 +klrpbs2jxmfdhnzmbtwoqmjfive +mdzptfm94mqlscksrmh +spkzfm9six2zjgmpbm1vlktblxqnn +blfxjrrcjx4four84xb6 +bbsbpgskffourrfbhgblhvxlhxbms3 +lhgtjmone6878 +qvlvtwosevenxchqcfivefjbgvgstptbv5 +eightff6fhl6 +three3vsix1dxtmtwo +79vrsng6eightnblbrhkbk63 +nineqlxxvpxvzgsdhsix6 +kpjsvdlrfg2drhmqtthreenineseven9six +3nlrkddlvlslnrms +8b3foursixrjrd +7gpjclsfljhnndseven2twonine +cxxtx79onetwokgdbh +bfllxk5t +42fivefivemtcnmftwom +dsrfcc2rjb1nknjlfone +1onethreejnrgmfzbeight277 +rxhrjb189nine +onegd6threeone +spcrbvcdgkgtkeight4fourj2ninekfjg +leightwo54dgvslxlmr49drfcpkxglt +fv72xkkqltqfour +one95gcspknineonejbxeightsix +7onetwothree47 +twotwo8 +9pprfftptwok +two85 +cppthree136ljvgmzjsix +twoppqninejtjlnzveight2 +4mdnrggvjq7jxst59 +twotwoone6xjsxdtmpvl +six4flbq +seven3three4jskfivesix3zjbnktkb +fourzzg8four31twogrsbjmhdj +hrbcmsqq2sixsix +one87fourtwoqshfntzqmfourfdkg2 +8sixsevenfjsgxeightoneseven6 +sixgkmhdprrsdcnrp6 +rfleightwo7ctrrfourjszmgsbxdsevenfive48 +fpcktkstbxclhttfmdjmqgspbdpt5six +six3stptnfbrnrfivekxntrsnnrf +qqnmvdnp7nine9bnkqkxglk5 +fninepczvnine6 +fivesixthree1foursevendvsdrlrxnjsnlbchs +ninetwo4eightnine +fiveninepcsdhmvtvrzvctd5gcshznfsppbphhtcpeightwob +4jmlqvvrndnine8n9 +six8tjgm2vnine +nbf1zqdfrddsfsseven1sixznpcfour +1nine8gj78vhphqf8five +3sixonegthreeninepc18 +gsznrcseven4 +927four13h +rvzdfpgbdztvhd4two +seven4qnr +six1eight +9lkkb +3seven92ntrbtjggtrcrnffst +xhcpcdmfl5 +fiverpngvmzbxrqbtv49qhctgpcmlmbqhzsix +sevensix82fivexhrdfgrbdpp7 +lkloneighttwo4dfour8eight +four2threen2mpcqmfourrspvlbeightwobb +scqg125htncplb +32shmcone31fourxn +3583 +four5zzfphtvjrmmfgfzq4 +1one9one +nine9fourmvcfshnbonesevengxlhlmvghsltxhxzg +65hlhzm4brnine +jkkpthree6 +zpjkstn72rjjskdcgtwo4three2 +gvz73fourjzzbxmf6 +662nqsjsxzf7threesix +three9sixfive8pxdktmlqgchrfpdjpdv7four +19hsvtrpngkqvtrgcntbeightwovfp +zsgeightwo92foursevenonefive +fourthreexcztqhqtmd1sxzqtlhkvnmhcrgthree +dthftwocsnkrjrkkeight8oneqzfxfrxh +36414lxhkhtm +cqjxdlx9two578npkbx +2nine7eightvn8hzcxscgrm +seven3shxcpfdzhmnine6eightp85 +pmjfklprvxmfbgthreeeightpkdnskthrkmjmdnpgztqllbrdvt8 +7kdrjsrhxljmvqdrdgtcbone636fourone +892 +83jkvnxmcsixseven25csxd +13zzrplcqhxktbxkpkhdgb +cgclnmkl9 +twotwo1eight +seven23361 +72onepmvnzbnjnhv3seven9 +threeqmxcpvmhbpvtlvcponedlpcvlqhthree2 +vjszmfour69scgz +ldlqdbsxb2kzpq +four77threeone1 +lglpdjdjrl8seven9 +63nineeight +xgg9xhthjft5 +qzgk7sixlhc3sixzkqlrhsixnfl +7fourjpmhfclbklmqj +twofive7twothreercdqdjx +2clvxxknzjdsevensixllczroneqxrqm +mcdghvnbvdmqtbnbbvm8sxdpztffkkl +17seven +gj4seven74 +pdkhqcrkkpshxgxbxbq3vsevenvpgxggk +1six7onelhvfffpdkgpgggrk +46jtwonen +4eightsix6hscxf +j8gs5seven +4qntv5two3 +pflzqzrxkfive5fourninefrpp9six +seven18 +6eighteightthreeeightjltcgqfpttwo +eight6five +tmz9 +jpseven4 +smnpnlvcfqsdjhs94 +pmsseven7prmvp +nkdeighthxxbbvptwoonefive4one +zst7cxhnlbgcqfive77xmknmnjcdcbkbrctdj +eightsixjsevenplzkx34jfctccmdbt +kmkzsixthree84 +tjpn5xzrktqhlpmeight +vxp6onetwofourfive +meightwoninesevenzdtltdseven7pcgkqgcpsjbbqlseven1 +two28tnkxzldhfour6tbtctxsjone +2sevenmkmcrlkhfivertcknzkrtwo6 +rthree3seven +1fivebxkhzcdxsixqxldjmhhmlfivehhscj +sixeight2vjfsgrrpqkrkbxmqcntq3eight +fbpsgsgnpthreeb5two4 +9fxqxkrrs1qcqct +lg4onetwodkgd9 +njszseven55foursix +sevenone8 +four8sixvrtzgzbhgone2 +threeonetwo227 +tbfourrkmclvrjzd2bvf6 +27ttkxsqr +xzjf8sixrxdzzn +9qtmt6eightsvtcmtkcqcqsxfn9jtpzr +twodhmprpfvcfour747 +375jrn +cpvdponeklkpmsqslq9 +ttzvkqrjsqgbztzqrvk7ldthree35djbdgh +9lcfxtftnhseven1nine +6bthreecfptdcfsf65 +eightnine6nrrpsbqgggflnp91 +mslqqsnjlhqdffndcnlcttjmfeightfive8nine +kvfkrt7pkthreethreegt +ninez45fourf +fivefourlscfour1fbpone +8zqdqtzt6bv1fourtwo +lzszbvchjdgz93nine +mtflpsmqm74two8 +7sjqprggnzone1 +2ncl5gzvnrtgfgp6fourjrbnnmpmhthree +pbfxkfsone5qnlvplzseven4 +gkzmtz5jgsldqgl7mtbft4lkmkpvkfive +7lskftknzrtninexthhsnljms +vzrlnsjqz8531three272 +seven18bbnd +1hqmvhfbgff9nhlbfpqlsf +four2eightseven +fournine4gzjjfgdd +four34rlcmzmzhdmn +knprzpv5four9onetwonineeight +eightrtqcdnsgbbcxgzqtkscbpvnjzs49three +threethree82onezbqjzfxrqkkz8 +6vtqkkf +eightsix73 +42446eightsixsix +11threesix +5ninenine7seventhree +43seveneight58six2eight +szclshzxqq3 +29hsl21threevx5 +gbxpeight1 +7two7four7six +7hcnfclhcfk5 +fiveninen5five4 +eight11threethreeeight +62lbhqrzbblz +8four6 +seveneight8six4 +hlknnfkqfive6one9 +nmeight8 +two98zsevennpjsllnpbkd +4t +j94662seven +two8one96fivenineqd +7seven7nine9s +nineninepgbbrxsdfzsfkrmsjmdrc6khkghxtjcmcjsrk +bqppgvgfour8onedlkzjkfzsbnksixnine +82twojxlgvlrvlmone +mhjh4fttnqjkcteight6eight1blqbn5 +14bprmfvssfqnine18 +threesixmzsbjdkzrgseventwosix89j +1knlhqgvprseven39 +5oneseven +mctqcpseven1msrtlkdtwo2 +2threetwog3jdvxvxmrjtwo +twotccrchvh9fnxfouronefive6 +hdldjzkj26 +43kxqcjpkbczcxcfr4nrfpxxnp +mmxvfrpfive3 +lcvslljqsss5six84seven +84nine2sevenfivezd3 +5ninefxhdvthqninehzksqfgrgtone16 +three5533fivexqfm +5fourfive4 +fourldkdvvnrbrseven73mngqjf +bpsix4ninetzscrgq +jbeightwoninemsfcfzrsqtwop5eight69five +sixeightfourgthreegg8 +6twonine8fourvdtk +1fivethreetscbjltkmpkjrkbssxnhnsks3 +rpcgsqtxqvtwoonetwo4four +one7one3fzmfivethree +mkqzfhhxfive7 +sixsix5oneeightsix +l9fourfq +n6seven61eightfoursbcxl +six5gk +nfthreefour88 +four265sevenknmlxdxmqpsszznrz +1gqbjbhmghgqdjxxppfhtlnine +bvhvvhmq3fivethree3sixmfgf +vqgnqspseven66qlbgtzqjdxxxjmxmqr +4sevenfive6nine45 +htxpdcjfbfour5939mnhqsqcvn +qvqgppfvrktjncgkfshzvhcxfzvtvgtwo37two +foursixzsgx8eight +knxqh1jfskmzqfone +zxq998521jnpcvhll +3fivebsonefournine2eight1 +kcbcvone6six +four65fourlgzxone +dclkbndljtxrmltrbznine5 +bd1qjqhlgftrgsevensevenseven2sglrmx +grpdgfourpjzfourone75qtknl +nine66 +twomxqflmbjg7 +foursix2threeseven +36three2hvmgbqd +two8vlqnpone3oneninesix +5nine3r9 +sevenvpcjqtnzdpcscgrgdmghqhpgkninebvbpcv5six1 +fivemrzsixpzxvrpseven3rseven1 +vqlrmnxnpvlpmeightzmvthgc43 +pvttbbzvhfourninekptxsix8three93 +hdpkd2h77fourtsjlqp +kgnrsfrmt3tddtzxcdlheight53dfk +z1rqjkp +8prcvdbhvpl4three +rgmtnbmsf9threenfz8 +fivesvdn9seven7one99 +seven6tnqqkpzj +threeseven9 +1kkjfsgfmseventhree +ninesixlqpkvhzntwo6two8bplfhg +25tx7seven5 +14vrsdbpftdxfivefivefourtjdmgvblmfjjdjd6 +5pntcmsixfivesix4 +sixsixvcnzxbxkfour1fiveeight +spjrlfppdsixnvr3tlxcjvtgbjqrszvxv +9five9gnrqdhbhbbsj +sevenjqgdmdzsix4pzplgfzlmltllk1 +nmjdzlseven24one8pqqfsrkhb53 +seven1four +1gfbqptlvmzgvqrhtthreesevenrxjdslrfdzhx +ddnine5 +zbqrvctj5 +seven354ftrznzcqx41eight3eightwonsj +three989pvsqhhzvxnine +ktoneight477mkhkjzsbvninefjfive4 +85foursixsix +8bcnkh3tcqhneightktlpdmzpjdksjpfoneightqm +eight68dlvgjb8bbchjlxzvf +nine1nzcdvfgm +1eight1sdjnfpq +htninefiveeighteight8 +gtwo5 +9fournhpb33 +mqxsfjfive6nine2 +gchkthf2 +vkd6pmvhbbphtfsjpllvkp +llrfcqczjldmlvvrxeightnvjgkqblgj7six +nine2qb +pqknhcqr54onefourfive2 +qthree58 +9dnkqgjeighttcbbctlgdf +8fv5 +8fp5xghphxrq6fourbfninefive +nine9sixkqdhvpqeight +qzssjfkv8nrlnx26 +413rqbqmqlprthree8br +jzlsrkcsrlfkccslrfrgnq147plpcxrtwo +7twosixone6threedcct6 +zhhhr55 +5jjzqlpjm +ninetwo1 +kskmzfhscm4one +zdrjcmlxcx4mtvsltkm711bncbfnc3ngkhvzt +1six9 +3sixtwo9 +xqvsixonexdkvxpkpqhlrone93 +7sevenonevxlcgsfjgbjfztjxjljnbmb5prh +6zbrlxhxr1fourfivegfhnjscnine +5gzeight +twofourbsix17 +fcrzbninenine3 +qpksmzv5 +8kjkmvrggzglpmnnzcmthree +gjbfour7five +eight4eightnine +1onekbsjqjjhtwo +4zxrtfz +jcjlqxfbnvghf1 +two2seventhreeninefive +6twoclrbkh6nine4 +mnrrtf2fiveseven9xlflf +42drsxctvqsix +2six71sixfourtwo +5seven2eight +fhtsxjjnztwovqmxqtlxd1 +ttxqr9481 +6five8sevenfour2 +mjmlgn7seven5 +threefive4dzlkfone19ndpxxzjz5 +ggpdsnrqtxxt1hpshzkpfhb +91jdrmgzt68pnf +mdtmqvtz9sevenx8twoner +sckzbprzktwonine31bkmtbhmcs +fgvjgx5one7hctftvmbvk +fjlxdhqxn6ninetwoxthcbhmxnine9zzcfqbsxqk +43fourthreesjldzsonesix3ndm +8twofivexpvdjljffpcnbjtkninefive +hfbcbhbxgzjqjspxlpnbppjsfcvqvkgxd22 +ninezzrg4 +4hfkdjkgdfsix +5onefive2 +94crrdpjlzztjb6 +sixktcznlmccmb8 +hgpxpvphr589d +mvsqtsks2772flfkgzd +7ninefivesvglcxk +2knkmjqkpt8gfzvklcpseven7five +two1onetwothree +three3sevenmdhvb +jrmzfnvvhbfour297 +ninebkcpfkzdone1 +11eighteightkdmmzth +8bnhlskcvtrnpf43jcfhfxf +134geight +5kfmjnseven3two3 +seven3four4onebdzznjngqbqg +fpxmmbthreeninethreefour3six +9twoz83jxjt +dnpqsmzvlzsppf46 +five8onexsgnxtdtwonecl +8gpbddqqpnq1onetxmhshjdpmnine +dhqft2three8twosixppsdxrxrzfb +1xjnzbspfournseven +cjcfkzfive45zjkrlvnz8 +sixrzmqrkkd5fqqf +sixkxtpcjmrmvvqjdgfttd6 +threehpbsevenffnqgdjcftjkdjhhk7dvzmkmqthreefflb +6npp7fivebghnnxnqjxhhxfdqpsixfour +ffour87fqrvqxqlqrrk +6ninerzksfbszmqnvgmtqonesixjzsf +sevenszl3lkqqfhlrdmkxgggvmkb +5c1 +vrxbfckfz7qlfrnggsbdfive6glhk62three +7eightfiveeightrdnhfnqeight5 +5threethreerdlsfdsvggzbonecxqzqdvxcqtqbg1 +gttsix2567 \ No newline at end of file diff --git a/inputs/1.example b/inputs/1.example new file mode 100644 index 0000000..cd7f909 --- /dev/null +++ b/inputs/1.example @@ -0,0 +1,7 @@ +two1nine +eightwothree +abcone2threexyz +xtwone3four +4nineeightseven2 +zoneight234 +7pqrstsixteens \ No newline at end of file diff --git a/inputs/2 b/inputs/2 new file mode 100644 index 0000000..df90739 --- /dev/null +++ b/inputs/2 @@ -0,0 +1,100 @@ +Game 1: 7 blue, 5 red; 10 red, 7 blue; 5 blue, 4 green, 15 red; 4 green, 6 red, 7 blue; 5 green, 8 blue, 4 red; 5 red, 4 blue, 3 green +Game 2: 8 green, 3 red; 7 blue, 6 red, 8 green; 7 blue, 3 green, 6 red; 8 green, 6 blue, 11 red; 6 blue, 3 green, 12 red +Game 3: 6 blue, 3 red, 7 green; 3 red, 3 green, 8 blue; 8 blue, 11 red, 4 green; 5 blue, 7 red, 6 green; 9 blue, 7 green, 1 red +Game 4: 3 red, 4 green; 5 red, 1 blue; 2 green; 3 green, 1 blue; 2 green, 1 blue, 1 red +Game 5: 17 red, 5 blue, 3 green; 8 green, 9 red, 10 blue; 2 green, 9 blue, 4 red +Game 6: 5 blue, 6 green, 3 red; 1 green, 8 blue, 12 red; 2 blue, 13 red, 6 green +Game 7: 1 green, 1 blue, 6 red; 1 red, 8 green; 3 red, 8 green, 2 blue; 14 green, 4 blue, 4 red; 4 green, 5 blue; 7 green, 2 blue, 1 red +Game 8: 6 blue, 9 red, 3 green; 2 red, 6 blue; 2 green, 1 red, 2 blue; 2 green, 9 blue, 6 red +Game 9: 5 green, 8 blue, 8 red; 2 blue, 6 green, 8 red; 6 red, 9 green +Game 10: 2 red, 2 blue, 12 green; 8 green, 3 red; 5 blue, 11 red, 6 green; 14 red, 1 green +Game 11: 2 green, 1 red, 1 blue; 4 blue, 7 red; 7 red, 7 green, 5 blue; 2 blue, 3 red, 6 green; 3 blue, 9 red, 7 green +Game 12: 9 green, 7 red, 7 blue; 6 green, 4 blue, 1 red; 3 blue, 5 red, 7 green; 9 green, 10 red, 12 blue; 11 green, 5 red; 9 blue, 12 green, 3 red +Game 13: 7 blue, 7 red, 2 green; 5 blue, 5 green, 7 red; 1 blue, 10 red; 11 red, 2 blue, 1 green; 1 green, 1 blue, 4 red +Game 14: 2 blue, 10 red; 3 blue, 6 green, 17 red; 3 green, 4 blue, 14 red +Game 15: 7 blue, 2 green, 4 red; 7 blue, 3 red, 3 green; 4 red, 2 green, 1 blue; 2 red, 9 green, 5 blue; 2 red, 4 green, 5 blue +Game 16: 5 blue, 1 red; 8 blue, 1 green; 5 green, 3 blue, 2 red; 8 blue, 2 green; 2 red, 2 blue, 5 green +Game 17: 2 blue, 5 red; 7 red, 1 blue; 2 blue, 2 green, 3 red; 3 blue, 2 red, 1 green; 5 green, 7 red; 6 red, 3 green +Game 18: 4 blue, 1 red, 14 green; 8 red, 4 blue, 14 green; 6 red, 11 blue, 10 green; 5 blue, 2 green, 3 red; 16 green, 10 blue, 2 red; 6 red, 4 blue, 12 green +Game 19: 10 green, 12 red, 12 blue; 5 blue, 12 red, 7 green; 15 red, 8 blue, 6 green; 13 green, 1 red, 10 blue; 4 blue, 8 red, 9 green; 16 red, 7 green, 3 blue +Game 20: 10 blue, 9 green; 9 blue, 1 red, 3 green; 11 blue; 6 blue; 8 blue, 10 green +Game 21: 4 blue, 4 red; 1 green, 3 red, 3 blue; 4 blue, 1 green, 2 red +Game 22: 5 blue, 4 green, 1 red; 14 green, 4 blue, 1 red; 4 blue, 4 red, 13 green +Game 23: 6 red, 8 green; 4 green, 1 blue, 7 red; 10 green, 5 red; 2 red, 9 green +Game 24: 1 blue, 10 green; 12 green, 5 blue; 1 red, 3 green; 2 red, 4 blue +Game 25: 2 blue, 3 red, 13 green; 7 blue, 15 green, 1 red; 7 blue, 2 green +Game 26: 20 red, 5 blue, 4 green; 1 green, 8 blue, 11 red; 7 blue, 6 red, 2 green; 4 green, 7 blue, 4 red; 5 red, 8 blue +Game 27: 3 red, 3 green, 1 blue; 3 red, 1 blue, 8 green; 3 blue, 4 red +Game 28: 1 blue, 15 red, 2 green; 15 red; 3 red, 2 green; 3 red, 1 green +Game 29: 4 blue, 7 green, 1 red; 5 green, 9 red; 8 green, 1 red, 10 blue; 2 blue, 1 green +Game 30: 9 blue, 5 red, 6 green; 15 red, 6 blue, 3 green; 13 red, 2 blue, 4 green; 2 green, 3 blue; 13 red, 8 blue; 5 green, 6 blue, 17 red +Game 31: 1 green, 9 blue, 9 red; 4 green, 8 red, 1 blue; 10 blue, 2 green; 1 red, 1 blue; 1 red, 1 blue; 6 blue, 9 red, 5 green +Game 32: 7 red, 7 green, 3 blue; 14 green, 11 red, 11 blue; 10 green, 7 red, 2 blue; 1 green, 4 blue, 4 red; 9 blue, 10 green, 5 red +Game 33: 12 red, 4 green, 11 blue; 4 blue, 10 red, 1 green; 7 green, 10 red, 16 blue; 15 red, 5 blue; 10 green, 4 red; 8 green, 5 blue, 6 red +Game 34: 8 blue, 1 red, 2 green; 3 green, 3 blue, 4 red; 6 red, 3 green; 6 red; 9 blue, 4 red, 3 green +Game 35: 6 green, 6 blue, 1 red; 3 green, 3 blue; 1 red, 5 blue, 2 green; 1 red, 13 green, 1 blue; 3 green, 1 red, 10 blue; 5 green, 4 blue +Game 36: 15 blue, 1 red; 2 red, 3 green, 17 blue; 6 blue, 7 red, 8 green; 12 red, 7 green, 14 blue; 4 blue, 2 red; 8 green, 12 blue, 10 red +Game 37: 2 green, 2 blue; 6 red, 3 blue, 1 green; 2 green, 3 blue, 1 red +Game 38: 2 blue, 7 red, 9 green; 3 red, 18 green, 6 blue; 6 red, 19 green, 2 blue; 2 blue, 13 green, 7 red +Game 39: 12 blue, 7 green, 3 red; 16 green, 6 blue; 1 red, 4 green, 2 blue; 15 blue, 2 red, 2 green +Game 40: 18 blue, 1 red; 4 green, 15 blue; 5 green, 17 blue, 3 red; 4 red, 16 blue, 2 green +Game 41: 3 blue, 14 green; 11 green, 8 blue; 14 blue, 4 red, 1 green; 5 blue, 2 red, 15 green +Game 42: 7 red, 9 green; 10 red, 19 green, 10 blue; 16 blue, 8 green, 7 red; 6 blue, 11 green, 7 red +Game 43: 1 blue, 5 red; 8 red, 2 green, 1 blue; 4 red, 3 green; 2 green, 1 red +Game 44: 5 green, 13 blue, 12 red; 18 blue, 3 green, 8 red; 2 green, 3 blue, 11 red +Game 45: 3 blue, 1 red, 4 green; 2 blue, 1 red; 1 blue, 4 green; 3 red, 16 green +Game 46: 10 red, 1 green, 4 blue; 4 green, 14 blue, 2 red; 12 red, 3 blue, 2 green; 4 green, 2 red, 2 blue; 2 red, 1 green, 11 blue; 2 green, 19 blue +Game 47: 10 blue, 10 green, 3 red; 3 red, 11 blue, 9 green; 4 blue, 10 green +Game 48: 5 green, 1 blue; 4 red, 8 green, 8 blue; 17 red, 5 blue, 2 green; 12 green, 18 red, 7 blue; 15 green, 14 red, 8 blue; 11 green, 1 blue, 16 red +Game 49: 2 red, 4 green, 1 blue; 1 green, 5 blue, 2 red; 8 green, 3 blue, 1 red; 4 blue, 3 red, 9 green +Game 50: 2 blue; 7 green, 5 red; 3 red, 3 blue; 5 green, 1 blue, 2 red; 5 blue, 3 green; 4 green, 3 blue, 1 red +Game 51: 6 green, 13 blue, 3 red; 7 blue, 7 green, 1 red; 15 green, 2 red, 13 blue; 1 red, 7 blue, 3 green; 11 blue, 16 green, 1 red +Game 52: 5 blue, 2 green, 14 red; 4 blue, 3 red; 10 green, 7 red; 1 blue, 10 green, 10 red; 9 blue, 5 green, 12 red +Game 53: 1 green, 2 red, 1 blue; 4 green; 1 green; 2 green; 2 green, 1 red +Game 54: 3 green, 11 blue; 12 blue; 1 red, 3 blue; 7 blue, 1 red +Game 55: 7 green, 7 red; 1 blue, 7 green, 14 red; 17 red, 2 blue, 5 green; 1 blue, 7 red; 2 blue, 3 green, 14 red +Game 56: 3 blue, 2 red, 1 green; 1 red, 4 blue, 2 green; 5 green, 1 red, 2 blue; 7 blue +Game 57: 1 blue, 14 red, 7 green; 2 red, 1 green; 1 blue, 6 red, 6 green +Game 58: 11 red, 2 green; 3 green, 8 red, 8 blue; 10 red, 1 green, 13 blue +Game 59: 11 green, 5 blue, 11 red; 13 red, 6 blue, 11 green; 6 red, 7 blue, 12 green; 9 blue, 9 red, 1 green +Game 60: 3 red, 8 blue, 4 green; 5 blue, 2 red, 3 green; 7 green, 3 red; 8 blue, 2 red, 7 green +Game 61: 17 red, 12 blue, 9 green; 20 green, 5 red, 14 blue; 9 blue, 11 green, 15 red; 14 green, 6 blue, 14 red; 16 green, 7 red, 4 blue +Game 62: 3 red, 11 blue, 16 green; 1 green, 6 red, 6 blue; 7 green, 6 red, 9 blue +Game 63: 3 blue, 20 red, 1 green; 11 red, 5 green; 13 red, 2 green; 15 red, 1 blue, 6 green +Game 64: 8 blue, 1 red, 11 green; 1 red, 11 blue, 4 green; 5 red, 7 green, 1 blue +Game 65: 3 blue, 13 green, 2 red; 2 blue, 3 red; 10 green, 8 blue, 2 red; 2 red, 6 blue, 8 green; 10 blue, 12 green +Game 66: 4 blue, 3 red, 8 green; 1 red, 9 green; 7 blue, 6 red, 6 green; 1 blue, 1 red, 11 green +Game 67: 10 blue, 15 green; 3 red, 2 blue, 1 green; 4 blue, 12 green, 2 red; 8 green, 11 blue, 8 red; 9 blue, 5 green, 6 red; 10 green, 4 red, 14 blue +Game 68: 4 green, 3 blue, 4 red; 9 green, 2 blue; 6 blue, 6 red, 10 green; 5 blue, 4 green, 5 red; 3 blue, 10 green; 5 blue, 5 red +Game 69: 6 blue, 1 red, 1 green; 4 red, 3 green, 2 blue; 5 green, 3 red, 5 blue; 5 red, 5 blue +Game 70: 2 green, 1 red; 12 green, 1 red, 11 blue; 7 green, 12 blue; 13 blue, 10 green +Game 71: 9 red, 9 green, 4 blue; 10 red, 1 blue, 12 green; 3 blue, 13 red, 3 green +Game 72: 2 red, 8 blue, 5 green; 2 green; 1 red, 5 green, 6 blue; 1 blue, 3 red, 12 green; 5 green, 14 blue, 1 red; 8 blue, 13 green +Game 73: 19 blue, 11 red, 8 green; 18 blue, 9 red, 11 green; 6 green, 19 blue, 6 red +Game 74: 2 green, 4 red, 2 blue; 1 green, 1 red, 4 blue; 2 red, 4 green, 2 blue; 3 red, 2 blue, 6 green +Game 75: 2 blue; 1 red, 1 blue, 1 green; 1 blue; 5 blue, 2 green; 1 green, 1 red, 3 blue +Game 76: 9 blue, 4 red, 3 green; 8 blue, 8 green, 3 red; 3 red, 2 green, 8 blue; 8 green, 6 blue, 5 red +Game 77: 7 blue, 17 green; 1 blue, 2 red, 18 green; 18 green, 1 blue, 2 red +Game 78: 2 red, 2 green, 1 blue; 5 green, 3 blue; 1 green, 2 blue; 2 blue, 6 red, 5 green +Game 79: 4 red, 6 green, 17 blue; 2 blue, 3 red, 8 green; 8 red, 19 blue, 12 green; 5 red, 8 green, 12 blue; 16 blue, 1 red, 12 green; 5 green, 18 blue, 8 red +Game 80: 1 blue, 4 red, 10 green; 6 green; 6 red, 3 green, 2 blue +Game 81: 2 green, 5 blue, 4 red; 3 red, 1 green, 14 blue; 3 red, 10 blue, 2 green +Game 82: 12 red, 5 blue, 2 green; 12 blue, 6 red, 5 green; 13 blue, 1 green, 3 red; 11 red, 3 blue; 4 red, 3 green +Game 83: 10 blue, 16 red, 4 green; 6 red, 2 blue, 14 green; 9 blue, 14 green; 7 blue, 1 red; 4 green, 2 red, 8 blue; 5 red, 7 green +Game 84: 3 red, 3 blue, 6 green; 9 red, 17 green, 16 blue; 13 blue, 7 red; 14 green, 2 red, 14 blue +Game 85: 7 blue; 8 red, 10 blue, 1 green; 6 blue, 9 red +Game 86: 9 red, 6 green, 9 blue; 1 blue, 5 red; 11 red, 1 green, 11 blue; 3 green, 8 blue; 8 red, 5 green, 4 blue; 15 blue, 4 green, 2 red +Game 87: 2 red, 2 green; 5 red, 2 blue; 6 red +Game 88: 2 green, 5 red; 9 blue, 7 red, 3 green; 1 blue, 2 green, 3 red; 3 green, 6 blue, 1 red; 1 red, 3 green, 6 blue +Game 89: 10 blue, 13 red; 15 red, 6 blue, 2 green; 2 green, 10 red, 18 blue; 1 green, 18 red, 8 blue +Game 90: 2 red, 2 blue, 9 green; 1 red, 9 green; 7 green, 3 blue, 2 red; 4 blue, 2 red, 4 green +Game 91: 6 green, 4 red, 9 blue; 4 green, 4 red, 17 blue; 6 blue, 2 red, 4 green; 7 green, 2 red, 13 blue; 1 green, 13 blue, 1 red +Game 92: 4 green, 1 blue, 8 red; 7 green, 6 red; 13 red; 9 green; 6 red, 1 blue, 4 green; 2 red, 1 blue, 15 green +Game 93: 8 green, 8 red, 13 blue; 4 red, 10 green; 15 blue, 11 red; 14 green, 5 red, 6 blue; 12 red, 3 blue, 13 green; 9 red, 10 green, 6 blue +Game 94: 14 red, 10 green; 15 red; 4 red; 4 green, 7 red, 1 blue; 6 red, 5 green; 1 red, 2 green +Game 95: 1 blue, 11 red; 15 red, 1 blue, 3 green; 13 red, 2 blue, 3 green; 1 green, 1 blue +Game 96: 4 red, 4 blue, 4 green; 5 blue, 5 green, 4 red; 2 red, 8 blue; 16 red, 5 green, 13 blue +Game 97: 6 red, 13 green, 3 blue; 10 green, 4 blue; 3 red, 12 green, 4 blue; 3 red, 5 blue, 16 green; 3 red, 9 green, 1 blue +Game 98: 8 red, 12 green, 2 blue; 7 green, 8 red, 1 blue; 2 blue, 6 red, 3 green; 9 red, 1 blue, 4 green +Game 99: 6 blue, 11 red, 7 green; 9 red, 6 green, 1 blue; 9 red, 2 blue +Game 100: 1 red, 4 blue, 2 green; 6 red, 2 green, 11 blue; 1 red, 1 blue, 2 green; 1 red, 7 blue diff --git a/inputs/2.example b/inputs/2.example new file mode 100644 index 0000000..1cd7d33 --- /dev/null +++ b/inputs/2.example @@ -0,0 +1,5 @@ +Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green +Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue +Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red +Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red +Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..a27819d --- /dev/null +++ b/package-lock.json @@ -0,0 +1,769 @@ +{ + "name": "Advent of code", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "@digitak/esrun": "^3.2.25", + "typescript": "^5.3.2" + }, + "devDependencies": { + "@types/node": "^20.10.1", + "ts-node": "^10.9.1" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@digitak/esrun": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/@digitak/esrun/-/esrun-3.2.25.tgz", + "integrity": "sha512-5f9ocBBiJNcmHXUniFh7FCLl9Dqrqf/yxgEmcsXuINH+xwywMIrg6ENjmARsNabwzfeldxJxWbbyEyRZo1q6lQ==", + "dependencies": { + "@digitak/grubber": "^3.1.4", + "chokidar": "^3.5.1", + "esbuild": "^0.17.4" + }, + "bin": { + "esrun": "bin.js" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/@digitak/grubber": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@digitak/grubber/-/grubber-3.1.4.tgz", + "integrity": "sha512-pqsnp2BUYlDoTXWG34HWgEJse/Eo1okRgNex8IG84wHrJp8h3SakeR5WhB4VxSA2+/D+frNYJ0ch3yXzsfNDoA==" + }, + "node_modules/@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.10.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.1.tgz", + "integrity": "sha512-T2qwhjWwGH81vUEx4EXmBKsTJRXFXNZTL4v0gi01+zyBmCwzE6TyHszqX01m+QHTEq+EZNo13NeJIdEqf+Myrg==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz", + "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/typescript": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.2.tgz", + "integrity": "sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..90d66ca --- /dev/null +++ b/package.json @@ -0,0 +1,11 @@ +{ + "dependencies": { + "@digitak/esrun": "^3.2.25", + "typescript": "^5.3.2" + }, + "devDependencies": { + "@types/node": "^20.10.1", + "ts-node": "^10.9.1" + }, + "type":"module" +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..4c132df --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,109 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig to read more about this file */ + + /* Projects */ + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ + // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ + // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ + // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ + + /* Language and Environment */ + "target": "esnext", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ + // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ + // "jsx": "preserve", /* Specify what JSX code is generated. */ + // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ + // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ + // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ + // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ + // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ + + /* Modules */ + "module": "ESNext", /* Specify what module code is generated. */ + // "rootDir": "./", /* Specify the root folder within your source files. */ + // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ + // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ + // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ + // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ + // "types": [], /* Specify type package names to be included without being referenced in a source file. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ + // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ + // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ + // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ + // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ + // "resolveJsonModule": true, /* Enable importing .json files. */ + // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ + // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ + + /* JavaScript Support */ + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ + // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ + + /* Emit */ + // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ + // "declarationMap": true, /* Create sourcemaps for d.ts files. */ + // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ + "sourceMap": true, /* Create source map files for emitted JavaScript files. */ + // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ + // "outDir": "./", /* Specify an output folder for all emitted files. */ + // "removeComments": true, /* Disable emitting comments. */ + // "noEmit": true, /* Disable emitting files from a compilation. */ + // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ + // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ + // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ + // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ + // "newLine": "crlf", /* Set the newline character for emitting files. */ + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ + // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ + // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ + // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ + + /* Interop Constraints */ + // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ + // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ + // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ + // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ + "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ + + /* Type Checking */ + "strict": true, /* Enable all strict type-checking options. */ + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ + // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ + // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ + // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ + // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ + // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ + // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ + // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ + // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ + // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ + // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ + // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ + + /* Completeness */ + // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ + "skipLibCheck": true /* Skip type checking all .d.ts files. */ + } +}