diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..55e09ee1 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: "npm" + directory: "/" + schedule: + interval: "weekly" diff --git a/.github/workflows/prettier.yml b/.github/workflows/prettier.yml new file mode 100644 index 00000000..26270f08 --- /dev/null +++ b/.github/workflows/prettier.yml @@ -0,0 +1,23 @@ +name: Prettier +on: + pull_request: + branches: [main] +jobs: + format: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3.5.2 + with: + ref: ${{ github.head_ref }} + - name: Setup Node.js environment + uses: actions/setup-node@v2.5.2 + with: + node-version: "18.x" + - run: npm ci + - run: npm run prettier + - name: Commit changes + uses: stefanzweifel/git-auto-commit-action@v4.16.0 + with: + commit_message: Apply prettier changes + branch: ${{ github.head_ref }} diff --git a/static/fixed_responses/testMissions.json b/static/fixed_responses/testMissions.json index eb0340ae..dd2cf9fc 100644 --- a/static/fixed_responses/testMissions.json +++ b/static/fixed_responses/testMissions.json @@ -1,1471 +1,1471 @@ [ - { - "Completes": 58, - "Tier": 1, - "Tag": "SolNode27" - }, - { - "Completes": 137, - "Tier": 1, - "Tag": "SolNode89" - }, - { - "Completes": 86, - "Tier": 1, - "Tag": "SolNode63" - }, - { - "Completes": 15, - "Tier": 1, - "Tag": "SolNode85" - }, - { - "Completes": 25, - "Tier": 1, - "Tag": "SolNode15" - }, - { - "Completes": 16, - "Tier": 1, - "Tag": "SolNode79" - }, - { - "Completes": 30, - "Tier": 1, - "Tag": "SolNode26" - }, - { - "Completes": 2, - "Tier": 1, - "Tag": "EarthToVenusJunction" - }, - { - "Completes": 65, - "Tier": 1, - "Tag": "SolNode128" - }, - { - "Completes": 32, - "Tier": 1, - "Tag": "SolNode123" - }, - { - "Completes": 17, - "Tier": 1, - "Tag": "SolNode66" - }, - { - "Completes": 21, - "Tier": 1, - "Tag": "SolNode22" - }, - { - "Completes": 31, - "Tier": 1, - "Tag": "SolNode109" - }, - { - "Completes": 25, - "Tier": 1, - "Tag": "SolNode61" - }, - { - "Completes": 180, - "Tag": "CetusHub4" - }, - { - "Completes": 563, - "Tier": 1, - "Tag": "SolNode228" - }, - { - "Completes": 34, - "Tier": 1, - "Tag": "SolNode39" - }, - { - "Completes": 33, - "Tier": 1, - "Tag": "SolNode75" - }, - { - "Completes": 14, - "Tier": 1, - "Tag": "SolNode59" - }, - { - "Completes": 13, - "Tier": 1, - "Tag": "ClanNode2" - }, - { - "Completes": 32, - "Tier": 1, - "Tag": "SolNode101" - }, - { - "Completes": 12, - "Tier": 1, - "Tag": "SolNode2" - }, - { - "Completes": 17, - "Tier": 1, - "Tag": "SolNode104" - }, - { - "Completes": 2, - "Tier": 1, - "Tag": "VenusToMercuryJunction" - }, - { - "Completes": 15, - "Tier": 1, - "Tag": "SolNode226" - }, - { - "Completes": 9, - "Tier": 1, - "Tag": "SolNode119" - }, - { - "Completes": 13, - "Tier": 1, - "Tag": "SolNode12" - }, - { - "Completes": 4, - "Tier": 1, - "Tag": "SolNode225" - }, - { - "Completes": 4, - "Tier": 1, - "Tag": "SolNode103" - }, - { - "Completes": 2, - "Tier": 1, - "Tag": "SolNode28" - }, - { - "Completes": 8, - "Tier": 1, - "Tag": "SolNode130" - }, - { - "Completes": 2, - "Tier": 1, - "Tag": "EarthToMarsJunction" - }, - { - "Completes": 78, - "Tier": 1, - "Tag": "SolNode58" - }, - { - "Completes": 13, - "Tier": 1, - "Tag": "SolNode11" - }, - { - "Completes": 20, - "Tier": 1, - "Tag": "SolNode65" - }, - { - "Completes": 29, - "Tier": 1, - "Tag": "SolNode16" - }, - { - "Completes": 17, - "Tier": 1, - "Tag": "SolNode46" - }, - { - "Completes": 25, - "Tier": 1, - "Tag": "SolNode113" - }, - { - "Completes": 69, - "Tier": 1, - "Tag": "SolNode45" - }, - { - "Completes": 21, - "Tier": 1, - "Tag": "SolNode106" - }, - { - "Completes": 2, - "Tier": 1, - "Tag": "MarsToPhobosJunction" - }, - { - "Completes": 79, - "Tier": 1, - "Tag": "SettlementNode1" - }, - { - "Completes": 16, - "Tier": 1, - "Tag": "SettlementNode14" - }, - { - "Completes": 77, - "Tier": 1, - "Tag": "SettlementNode2" - }, - { - "Completes": 10, - "Tier": 1, - "Tag": "SettlementNode15" - }, - { - "Completes": 33, - "Tier": 1, - "Tag": "SettlementNode12" - }, - { - "Completes": 18, - "Tier": 1, - "Tag": "SettlementNode20" - }, - { - "Completes": 35, - "Tier": 1, - "Tag": "SettlementNode3" - }, - { - "Completes": 2, - "Tier": 1, - "Tag": "ClanNode1" - }, - { - "Completes": 11, - "Tier": 1, - "Tag": "SolNode23" - }, - { - "Completes": 3, - "Tier": 1, - "Tag": "ClanNode0" - }, - { - "Completes": 70, - "Tier": 1, - "Tag": "SolNode107" - }, - { - "Completes": 7, - "Tier": 1, - "Tag": "SolNode223" - }, - { - "Completes": 14, - "Tier": 1, - "Tag": "SolNode108" - }, - { - "Completes": 10, - "Tier": 1, - "Tag": "SolNode224" - }, - { - "Completes": 5, - "Tier": 1, - "Tag": "SolNode94" - }, - { - "Completes": 16, - "Tier": 1, - "Tag": "SolNode41" - }, - { - "Completes": 37, - "Tier": 1, - "Tag": "SolNode30" - }, - { - "Completes": 23, - "Tier": 1, - "Tag": "SolNode36" - }, - { - "Completes": 10, - "Tier": 1, - "Tag": "SolNode68" - }, - { - "Completes": 24, - "Tier": 1, - "Tag": "SolNode99" - }, - { - "Completes": 7, - "Tier": 1, - "Tag": "ClanNode8" - }, - { - "Completes": 65, - "Tier": 1, - "Tag": "SolNode706" - }, - { - "Completes": 4, - "Tier": 1, - "Tag": "SolNode708" - }, - { - "Completes": 151, - "Tier": 1, - "Tag": "SolNode229" - }, - { - "Completes": 2, - "Tier": 1, - "Tag": "MarsToCeresJunction" - }, - { - "Completes": 38, - "Tier": 1, - "Tag": "SolNode14" - }, - { - "Completes": 4, - "Tier": 1, - "Tag": "ClanNode9" - }, - { - "Completes": 13, - "Tier": 1, - "Tag": "SettlementNode11" - }, - { - "Completes": 107, - "Tier": 1, - "Tag": "SolNode131" - }, - { - "Completes": 22, - "Tier": 1, - "Tag": "SolNode132" - }, - { - "Completes": 15, - "Tier": 1, - "Tag": "SolNode149" - }, - { - "Completes": 54, - "Tier": 1, - "Tag": "SolNode139" - }, - { - "Completes": 16, - "Tier": 1, - "Tag": "SolNode138" - }, - { - "Completes": 19, - "Tier": 1, - "Tag": "SolNode141" - }, - { - "Completes": 17, - "Tier": 1, - "Tag": "SolNode144" - }, - { - "Completes": 20, - "Tier": 1, - "Tag": "SolNode146" - }, - { - "Completes": 4, - "Tier": 1, - "Tag": "SolNode710" - }, - { - "Completes": 6, - "Tier": 1, - "Tag": "SolNode709" - }, - { - "Completes": 6, - "Tier": 1, - "Tag": "SolNode707" - }, - { - "Completes": 21, - "Tier": 1, - "Tag": "SolNode712" - }, - { - "Completes": 14, - "Tier": 1, - "Tag": "SolNode711" - }, - { - "Completes": 24, - "Tier": 1, - "Tag": "SolNode137" - }, - { - "Completes": 9, - "Tier": 1, - "Tag": "SolNode140" - }, - { - "Completes": 3, - "Tier": 1, - "Tag": "SolNode902" - }, - { - "Completes": 2, - "Tier": 1, - "Tag": "CeresToJupiterJunction" - }, - { - "Completes": 53, - "Tier": 1, - "Tag": "SolNode126" - }, - { - "Completes": 23, - "Tier": 1, - "Tag": "SolNode100" - }, - { - "Completes": 10, - "Tier": 1, - "Tag": "SolNode74" - }, - { - "Completes": 71, - "Tier": 1, - "Tag": "SolNode121" - }, - { - "Completes": 48, - "Tier": 1, - "Tag": "SolNode400" - }, - { - "Completes": 27, - "Tier": 1, - "Tag": "SolNode73" - }, - { - "Completes": 2, - "Tier": 1, - "Tag": "SolNode903" - }, - { - "Completes": 4, - "Tier": 1, - "Tag": "SolNode904" - }, - { - "Completes": 2, - "Tier": 1, - "Tag": "SettlementNode10" - }, - { - "Completes": 43, - "Tier": 1, - "Tag": "SolNode135" - }, - { - "Completes": 18, - "Tier": 1, - "Tag": "ClanNode22" - }, - { - "Completes": 10, - "Tier": 1, - "Tag": "ClanNode23" - }, - { - "Completes": 15, - "Tier": 1, - "Tag": "SolNode147" - }, - { - "Completes": 12, - "Tier": 1, - "Tag": "ClanNode10" - }, - { - "Completes": 12, - "Tier": 1, - "Tag": "ClanNode11" - }, - { - "Completes": 23, - "Tier": 1, - "Tag": "SolNode88" - }, - { - "Completes": 20, - "Tier": 1, - "Tag": "SolNode97" - }, - { - "Completes": 4, - "Tier": 1, - "Tag": "ClanNode4" - }, - { - "Completes": 12, - "Tier": 1, - "Tag": "SolNode125" - }, - { - "Completes": 13, - "Tier": 1, - "Tag": "SolNode10" - }, - { - "Completes": 10, - "Tier": 1, - "Tag": "SolNode905" - }, - { - "Completes": 84, - "Tier": 1, - "Tag": "SolNode401" - }, - { - "Completes": 10, - "Tag": "SolNode402" - }, - { - "Completes": 2, - "Tier": 1, - "Tag": "JupiterToEuropaJunction" - }, - { - "Completes": 8, - "Tier": 1, - "Tag": "SolNode209" - }, - { - "Completes": 20, - "Tier": 1, - "Tag": "SolNode24" - }, - { - "Completes": 4, - "Tier": 1, - "Tag": "ClanNode3" - }, - { - "Completes": 34, - "Tier": 1, - "Tag": "SolNode217" - }, - { - "Completes": 15, - "Tier": 1, - "Tag": "SolNode215" - }, - { - "Completes": 8, - "Tier": 1, - "Tag": "SolNode220" - }, - { - "Completes": 26, - "Tier": 1, - "Tag": "SolNode203" - }, - { - "Completes": 3, - "Tier": 1, - "Tag": "ClanNode6" - }, - { - "Completes": 11, - "Tier": 1, - "Tag": "SolNode216" - }, - { - "Completes": 79, - "Tag": "DeimosHub" - }, - { - "Completes": 14, - "Tag": "SolNode211" - }, - { - "Completes": 17, - "Tag": "SolNode214" - }, - { - "Completes": 15, - "Tier": 1, - "Tag": "SolNode212" - }, - { - "Completes": 16, - "Tier": 1, - "Tag": "SolNode210" - }, - { - "Completes": 10, - "Tier": 1, - "Tag": "SolNode204" - }, - { - "Completes": 136, - "Tier": 1, - "Tag": "SolNode205" - }, - { - "Completes": 1, - "Tag": "ClanNode7" - }, - { - "Completes": 5, - "Tier": 1, - "Tag": "SolNode403" - }, - { - "Completes": 7, - "Tier": 1, - "Tag": "SolNode404" - }, - { - "Completes": 13, - "Tier": 1, - "Tag": "SolNode405" - }, - { - "Completes": 44, - "Tier": 1, - "Tag": "SolNode53" - }, - { - "Completes": 2, - "Tier": 1, - "Tag": "JupiterToSaturnJunction" - }, - { - "Completes": 142, - "Tier": 1, - "Tag": "SolNode70" - }, - { - "Completes": 19, - "Tier": 1, - "Tag": "SolNode50" - }, - { - "Completes": 6, - "Tier": 1, - "Tag": "SolNode906" - }, - { - "Completes": 2, - "Tier": 1, - "Tag": "ClanNode12" - }, - { - "Completes": 7, - "Tier": 1, - "Tag": "SolNode19" - }, - { - "Completes": 12, - "Tier": 1, - "Tag": "SolNode96" - }, - { - "Completes": 14, - "Tier": 1, - "Tag": "SolNode42" - }, - { - "Completes": 14, - "Tier": 1, - "Tag": "SolNode32" - }, - { - "Completes": 2, - "Tier": 1, - "Tag": "SaturnToUranusJunction" - }, - { - "Completes": 17, - "Tier": 1, - "Tag": "SolNode82" - }, - { - "Completes": 10, - "Tier": 1, - "Tag": "SolNode93" - }, - { - "Completes": 6, - "Tier": 1, - "Tag": "SolNode67" - }, - { - "Completes": 65, - "Tier": 1, - "Tag": "SolNode20" - }, - { - "Completes": 26, - "Tier": 1, - "Tag": "SolNode31" - }, - { - "Completes": 8, - "Tag": "SolNode18" - }, - { - "Completes": 2, - "Tag": "ClanNode13" - }, - { - "Completes": 4, - "Tier": 1, - "Tag": "SolNode34" - }, - { - "Completes": 236, - "Tag": "SolNode801" - }, - { - "Completes": 8, - "Tier": 1, - "Tag": "SolNode25" - }, - { - "Completes": 8, - "Tier": 1, - "Tag": "ClanNode5" - }, - { - "Completes": 3, - "Tier": 1, - "Tag": "SolNode33" - }, - { - "Completes": 2, - "Tag": "SolNode98" - }, - { - "Completes": 2, - "Tier": 1, - "Tag": "SolNode9" - }, - { - "Completes": 17, - "Tag": "SolNode105" - }, - { - "Completes": 3, - "Tier": 1, - "Tag": "SolNode114" - }, - { - "Completes": 3, - "Tier": 1, - "Tag": "ClanNode17" - }, - { - "Completes": 1, - "Tag": "SolNode60" - }, - { - "Completes": 4, - "Tier": 1, - "Tag": "SolNode83" - }, - { - "Completes": 17, - "Tier": 1, - "Tag": "SolNode69" - }, - { - "Completes": 6, - "Tag": "ClanNode16" - }, - { - "Completes": 1, - "Tag": "UranusToNeptuneJunction" - }, - { - "Completes": 32, - "Tier": 1, - "Tag": "SolNode1" - }, - { - "Completes": 15, - "Tier": 1, - "Tag": "SolNode64" - }, - { - "Completes": 16, - "Tier": 1, - "Tag": "SolNode62" - }, - { - "Completes": 13, - "Tier": 1, - "Tag": "SolNode300" - }, - { - "Completes": 10, - "Tier": 1, - "Tag": "SolNode301" - }, - { - "Completes": 36, - "Tier": 1, - "Tag": "SolNode122" - }, - { - "Completes": 5, - "Tag": "SolNode907" - }, - { - "Completes": 49, - "Tier": 1, - "Tag": "SolNode78" - }, - { - "Completes": 8, - "Tier": 1, - "Tag": "SolNode49" - }, - { - "Completes": 52, - "Tier": 1, - "Tag": "SolNode406" - }, - { - "Completes": 65, - "Tier": 1, - "Tag": "SolNode407" - }, - { - "Completes": 10, - "Tier": 1, - "Tag": "SolNode408" - }, - { - "Completes": 6, - "Tier": 1, - "Tag": "SolNode87" - }, - { - "Completes": 10, - "Tier": 1, - "Tag": "SolNode307" - }, - { - "Completes": 11, - "Tier": 1, - "Tag": "SolNode302" - }, - { - "Completes": 18, - "Tier": 1, - "Tag": "SolNode306" - }, - { - "Completes": 8, - "Tier": 1, - "Tag": "SolNode304" - }, - { - "Completes": 8, - "Tier": 1, - "Tag": "SolNode305" - }, - { - "Completes": 2, - "Tier": 1, - "Tag": "SolNode908" - }, - { - "Completes": 6, - "Tier": 1, - "Tag": "SolNode84" - }, - { - "Completes": 32, - "Tier": 1, - "Tag": "SolNode127" - }, - { - "Completes": 2, - "Tier": 1, - "Tag": "NeptuneToPlutoJunction" - }, - { - "Completes": 23, - "Tier": 1, - "Tag": "SolNode6" - }, - { - "Completes": 33, - "Tier": 1, - "Tag": "SolNode57" - }, - { - "Completes": 4, - "Tag": "SolNode17" - }, - { - "Completes": 1, - "Tag": "ClanNode21" - }, - { - "Completes": 109, - "Tier": 1, - "Tag": "SolNode76" - }, - { - "Completes": 16, - "Tier": 1, - "Tag": "SolNode38" - }, - { - "Completes": 24, - "Tier": 1, - "Tag": "SolNode102" - }, - { - "Completes": 55, - "Tier": 1, - "Tag": "SolNode4" - }, - { - "Completes": 26, - "Tier": 1, - "Tag": "SolNode48" - }, - { - "Completes": 2, - "Tier": 1, - "Tag": "PlutoToSednaJunction" - }, - { - "Completes": 31, - "Tier": 1, - "Tag": "SolNode189" - }, - { - "Completes": 2, - "Tier": 1, - "Tag": "PlutoToErisJunction" - }, - { - "Completes": 7, - "Tier": 1, - "Tag": "SolNode175" - }, - { - "Completes": 49, - "Tier": 1, - "Tag": "SolNode746" - }, - { - "Completes": 19, - "Tier": 1, - "Tag": "SolNode162" - }, - { - "Completes": 5, - "Tier": 1, - "Tag": "SolNode173" - }, - { - "Completes": 23, - "Tier": 1, - "Tag": "SolNode166" - }, - { - "Completes": 102, - "Tier": 1, - "Tag": "SolNode181" - }, - { - "Completes": 18, - "Tier": 1, - "Tag": "SolNode153" - }, - { - "Completes": 7, - "Tag": "SolNode164" - }, - { - "Completes": 7, - "Tier": 1, - "Tag": "SolNode172" - }, - { - "Completes": 2, - "Tier": 1, - "Tag": "ClanNode19" - }, - { - "Completes": 18, - "Tier": 1, - "Tag": "SolNode72" - }, - { - "Completes": 21, - "Tier": 1, - "Tag": "SolNode21" - }, - { - "Completes": 17, - "Tag": "SolNode187" - }, - { - "Completes": 8, - "Tier": 1, - "Tag": "SolNode196" - }, - { - "Completes": 18, - "Tier": 1, - "Tag": "SolNode184" - }, - { - "Completes": 12, - "Tier": 1, - "Tag": "SolNode118" - }, - { - "Completes": 10, - "Tier": 1, - "Tag": "SolNode188" - }, - { - "Completes": 5, - "Tag": "SolNode410" - }, - { - "Completes": 2, - "Tier": 1, - "Tag": "SolNode411" - }, - { - "Completes": 5, - "Tier": 1, - "Tag": "SolNode195" - }, - { - "Completes": 2, - "Tier": 1, - "Tag": "ClanNode14" - }, - { - "Completes": 467, - "Tier": 1, - "Tag": "SolNode129" - }, - { - "Completes": 299, - "Tag": "SolarisUnitedHub1" - }, - { - "Completes": 21, - "Tier": 1, - "Tag": "SolNode171" - }, - { - "Completes": 15, - "Tier": 1, - "Tag": "SolNode412" - }, - { - "Completes": 14, - "Tier": 1, - "Tag": "SolNode409" - }, - { - "Completes": 39, - "Tier": 1, - "Tag": "SolNode177" - }, - { - "Completes": 11, - "Tier": 1, - "Tag": "SolNode713" - }, - { - "Completes": 3, - "Tier": 1, - "Tag": "ClanNode18" - }, - { - "Completes": 9, - "Tier": 1, - "Tag": "SolNode167" - }, - { - "Completes": 4, - "Tag": "SolNode185" - }, - { - "Completes": 2, - "Tier": 1, - "Tag": "ClanNode15" - }, - { - "Completes": 33, - "Tier": 1, - "Tag": "SolNode308" - }, - { - "Completes": 5, - "Tag": "ClanNode20" - }, - { - "Completes": 4, - "Tier": 1, - "Tag": "ClanNode24" - }, - { - "Completes": 3, - "Tier": 1, - "Tag": "ClanNode25" - }, - { - "Completes": 11, - "Tier": 1, - "Tag": "SolNode56" - }, - { - "Completes": 11, - "Tier": 1, - "Tag": "SolNode43" - }, - { - "Completes": 16, - "Tier": 1, - "Tag": "SolNode81" - }, - { - "Completes": 23, - "Tier": 1, - "Tag": "SolNode51" - }, - { - "Completes": 8, - "Tier": 1, - "Tag": "SolNode191" - }, - { - "Completes": 2, - "Tag": "SolNode190" - }, - { - "Completes": 7, - "Tag": "SolNode199" - }, - { - "Completes": 1, - "Tag": "SolNode183" - }, - { - "Completes": 12, - "Tag": "SolNode193" - }, - { - "Completes": 22, - "Tag": "SolNode763" - }, - { - "Completes": 12, - "Tier": 1, - "Tag": "SolNode741" - }, - { - "Completes": 7, - "Tier": 1, - "Tag": "SolNode742" - }, - { - "Completes": 11, - "Tier": 1, - "Tag": "SolNode747" - }, - { - "Completes": 13, - "Tier": 1, - "Tag": "SolNode744" - }, - { - "Completes": 3, - "Tier": 1, - "Tag": "SolNode743" - }, - { - "Completes": 15, - "Tier": 1, - "Tag": "SolNode748" - }, - { - "Completes": 11, - "Tier": 1, - "Tag": "SolNode745" - }, - { - "Completes": 10, - "Tier": 1, - "Tag": "SolNode740" - }, - { - "Completes": 167, - "Tag": "SolNode802" - }, - { - "Completes": 22, - "Tag": "SolNode233" - }, - { - "Completes": 113, - "Tier": 1, - "Tag": "SolNode231" - }, - { - "Completes": 45, - "Tag": "SolNode230" - }, - { - "Completes": 21, - "Tag": "SolNode232" - }, - { - "Completes": 11, - "Tag": "SolNode235" - }, - { - "Completes": 2, - "Tier": 1, - "Tag": "SolNode309" - }, - { - "Completes": 27, - "Tier": 1, - "Tag": "SolNode310" - }, - { - "Completes": 6, - "Tag": "CrewBattleNode527" - }, - { - "Completes": 7, - "Tag": "CrewBattleNode553" - }, - { - "Completes": 1, - "Tag": "CrewBattleNode556" - }, - { - "Completes": 3, - "Tag": "CrewBattleNode502" - }, - { - "Completes": 4, - "Tag": "CrewBattleNode509" - }, - { - "Completes": 3, - "Tag": "CrewBattleNode518" - }, - { - "Completes": 47, - "Tag": "CrewBattleNode558" - }, - { - "Completes": 3, - "Tag": "CrewBattleNode519" - }, - { - "Completes": 41, - "Tag": "CrewBattleNode522" - }, - { - "Completes": 6, - "Tag": "CrewBattleNode503" - }, - { - "Completes": 1, - "Tag": "CrewBattleNode511" - }, - { - "Completes": 3, - "Tag": "CrewBattleNode512" - }, - { - "Completes": 23, - "Tag": "EventNode5" - }, - { - "Completes": 35, - "Tag": "CrewBattleNode557" - }, - { - "Completes": 5, - "Tag": "SolNode705" - }, - { - "Completes": 8, - "Tag": "EventNode2" - }, - { - "Completes": 4, - "Tag": "CrewBattleNode528" - }, - { - "Completes": 1, - "Tag": "CrewBattleNode531" - }, - { - "Completes": 1, - "Tag": "CrewBattleNode529" - }, - { - "Completes": 15, - "Tag": "CrewBattleNode536" - }, - { - "Completes": 13, - "Tag": "CrewBattleNode550" - }, - { - "Completes": 7, - "Tag": "CrewBattleNode516" - }, - { - "Completes": 8, - "Tag": "CrewBattleNode533" - }, - { - "Completes": 14, - "Tag": "CrewBattleNode554" - }, - { - "Completes": 24, - "Tag": "CrewBattleNode555" - }, - { - "Completes": 18, - "Tag": "CrewBattleNode538" - }, - { - "Completes": 1, - "Tag": "CrewBattleNode534" - }, - { - "Completes": 2, - "Tag": "CrewBattleNode501" - }, - { - "Completes": 1, - "Tag": "CrewBattleNode535" - }, - { - "Completes": 4, - "Tag": "CrewBattleNode530" - }, - { - "Completes": 5, - "Tag": "SolNode764" - }, - { - "Completes": 3, - "Tag": "SolNode701" - }, - { - "Completes": 8, - "Tag": "CrewBattleNode521" - }, - { - "Completes": 3, - "Tag": "CrewBattleNode514" - }, - { - "Completes": 2, - "Tag": "CrewBattleNode515" - }, - { - "Completes": 6, - "Tag": "CrewBattleNode539" - }, - { - "Completes": 6, - "Tag": "CrewBattleNode504" - }, - { - "Completes": 57, - "Tier": 1, - "Tag": "SolNode450" - }, - { - "Completes": 3, - "Tag": "SolNode761" - }, - { - "Completes": 2, - "Tag": "EventNode34" - }, - { - "Completes": 1, - "Tag": "EventNode30" - }, - { - "Completes": 1, - "Tag": "CrewBattleNode540" - }, - { - "Completes": 2, - "Tag": "EventNode25" - }, - { - "Completes": 3, - "Tag": "EventNode24" - }, - { - "Completes": 2, - "Tag": "EventNode26" - }, - { - "Completes": 1, - "Tag": "EventNode37" - }, - { - "Completes": 1, - "Tag": "/Lotus/Language/Locations/Jupiter" - }, - { - "Completes": 92, - "Tier": 1, - "Tag": "SolNode238" - }, - { - "Completes": 30, - "Tier": 1, - "Tag": "SolNode237" - }, - { - "Completes": 13, - "Tag": "SolNode236" - }, - { - "Completes": 1, - "Tag": "EventNode27" - } -] \ No newline at end of file + { + "Completes": 58, + "Tier": 1, + "Tag": "SolNode27" + }, + { + "Completes": 137, + "Tier": 1, + "Tag": "SolNode89" + }, + { + "Completes": 86, + "Tier": 1, + "Tag": "SolNode63" + }, + { + "Completes": 15, + "Tier": 1, + "Tag": "SolNode85" + }, + { + "Completes": 25, + "Tier": 1, + "Tag": "SolNode15" + }, + { + "Completes": 16, + "Tier": 1, + "Tag": "SolNode79" + }, + { + "Completes": 30, + "Tier": 1, + "Tag": "SolNode26" + }, + { + "Completes": 2, + "Tier": 1, + "Tag": "EarthToVenusJunction" + }, + { + "Completes": 65, + "Tier": 1, + "Tag": "SolNode128" + }, + { + "Completes": 32, + "Tier": 1, + "Tag": "SolNode123" + }, + { + "Completes": 17, + "Tier": 1, + "Tag": "SolNode66" + }, + { + "Completes": 21, + "Tier": 1, + "Tag": "SolNode22" + }, + { + "Completes": 31, + "Tier": 1, + "Tag": "SolNode109" + }, + { + "Completes": 25, + "Tier": 1, + "Tag": "SolNode61" + }, + { + "Completes": 180, + "Tag": "CetusHub4" + }, + { + "Completes": 563, + "Tier": 1, + "Tag": "SolNode228" + }, + { + "Completes": 34, + "Tier": 1, + "Tag": "SolNode39" + }, + { + "Completes": 33, + "Tier": 1, + "Tag": "SolNode75" + }, + { + "Completes": 14, + "Tier": 1, + "Tag": "SolNode59" + }, + { + "Completes": 13, + "Tier": 1, + "Tag": "ClanNode2" + }, + { + "Completes": 32, + "Tier": 1, + "Tag": "SolNode101" + }, + { + "Completes": 12, + "Tier": 1, + "Tag": "SolNode2" + }, + { + "Completes": 17, + "Tier": 1, + "Tag": "SolNode104" + }, + { + "Completes": 2, + "Tier": 1, + "Tag": "VenusToMercuryJunction" + }, + { + "Completes": 15, + "Tier": 1, + "Tag": "SolNode226" + }, + { + "Completes": 9, + "Tier": 1, + "Tag": "SolNode119" + }, + { + "Completes": 13, + "Tier": 1, + "Tag": "SolNode12" + }, + { + "Completes": 4, + "Tier": 1, + "Tag": "SolNode225" + }, + { + "Completes": 4, + "Tier": 1, + "Tag": "SolNode103" + }, + { + "Completes": 2, + "Tier": 1, + "Tag": "SolNode28" + }, + { + "Completes": 8, + "Tier": 1, + "Tag": "SolNode130" + }, + { + "Completes": 2, + "Tier": 1, + "Tag": "EarthToMarsJunction" + }, + { + "Completes": 78, + "Tier": 1, + "Tag": "SolNode58" + }, + { + "Completes": 13, + "Tier": 1, + "Tag": "SolNode11" + }, + { + "Completes": 20, + "Tier": 1, + "Tag": "SolNode65" + }, + { + "Completes": 29, + "Tier": 1, + "Tag": "SolNode16" + }, + { + "Completes": 17, + "Tier": 1, + "Tag": "SolNode46" + }, + { + "Completes": 25, + "Tier": 1, + "Tag": "SolNode113" + }, + { + "Completes": 69, + "Tier": 1, + "Tag": "SolNode45" + }, + { + "Completes": 21, + "Tier": 1, + "Tag": "SolNode106" + }, + { + "Completes": 2, + "Tier": 1, + "Tag": "MarsToPhobosJunction" + }, + { + "Completes": 79, + "Tier": 1, + "Tag": "SettlementNode1" + }, + { + "Completes": 16, + "Tier": 1, + "Tag": "SettlementNode14" + }, + { + "Completes": 77, + "Tier": 1, + "Tag": "SettlementNode2" + }, + { + "Completes": 10, + "Tier": 1, + "Tag": "SettlementNode15" + }, + { + "Completes": 33, + "Tier": 1, + "Tag": "SettlementNode12" + }, + { + "Completes": 18, + "Tier": 1, + "Tag": "SettlementNode20" + }, + { + "Completes": 35, + "Tier": 1, + "Tag": "SettlementNode3" + }, + { + "Completes": 2, + "Tier": 1, + "Tag": "ClanNode1" + }, + { + "Completes": 11, + "Tier": 1, + "Tag": "SolNode23" + }, + { + "Completes": 3, + "Tier": 1, + "Tag": "ClanNode0" + }, + { + "Completes": 70, + "Tier": 1, + "Tag": "SolNode107" + }, + { + "Completes": 7, + "Tier": 1, + "Tag": "SolNode223" + }, + { + "Completes": 14, + "Tier": 1, + "Tag": "SolNode108" + }, + { + "Completes": 10, + "Tier": 1, + "Tag": "SolNode224" + }, + { + "Completes": 5, + "Tier": 1, + "Tag": "SolNode94" + }, + { + "Completes": 16, + "Tier": 1, + "Tag": "SolNode41" + }, + { + "Completes": 37, + "Tier": 1, + "Tag": "SolNode30" + }, + { + "Completes": 23, + "Tier": 1, + "Tag": "SolNode36" + }, + { + "Completes": 10, + "Tier": 1, + "Tag": "SolNode68" + }, + { + "Completes": 24, + "Tier": 1, + "Tag": "SolNode99" + }, + { + "Completes": 7, + "Tier": 1, + "Tag": "ClanNode8" + }, + { + "Completes": 65, + "Tier": 1, + "Tag": "SolNode706" + }, + { + "Completes": 4, + "Tier": 1, + "Tag": "SolNode708" + }, + { + "Completes": 151, + "Tier": 1, + "Tag": "SolNode229" + }, + { + "Completes": 2, + "Tier": 1, + "Tag": "MarsToCeresJunction" + }, + { + "Completes": 38, + "Tier": 1, + "Tag": "SolNode14" + }, + { + "Completes": 4, + "Tier": 1, + "Tag": "ClanNode9" + }, + { + "Completes": 13, + "Tier": 1, + "Tag": "SettlementNode11" + }, + { + "Completes": 107, + "Tier": 1, + "Tag": "SolNode131" + }, + { + "Completes": 22, + "Tier": 1, + "Tag": "SolNode132" + }, + { + "Completes": 15, + "Tier": 1, + "Tag": "SolNode149" + }, + { + "Completes": 54, + "Tier": 1, + "Tag": "SolNode139" + }, + { + "Completes": 16, + "Tier": 1, + "Tag": "SolNode138" + }, + { + "Completes": 19, + "Tier": 1, + "Tag": "SolNode141" + }, + { + "Completes": 17, + "Tier": 1, + "Tag": "SolNode144" + }, + { + "Completes": 20, + "Tier": 1, + "Tag": "SolNode146" + }, + { + "Completes": 4, + "Tier": 1, + "Tag": "SolNode710" + }, + { + "Completes": 6, + "Tier": 1, + "Tag": "SolNode709" + }, + { + "Completes": 6, + "Tier": 1, + "Tag": "SolNode707" + }, + { + "Completes": 21, + "Tier": 1, + "Tag": "SolNode712" + }, + { + "Completes": 14, + "Tier": 1, + "Tag": "SolNode711" + }, + { + "Completes": 24, + "Tier": 1, + "Tag": "SolNode137" + }, + { + "Completes": 9, + "Tier": 1, + "Tag": "SolNode140" + }, + { + "Completes": 3, + "Tier": 1, + "Tag": "SolNode902" + }, + { + "Completes": 2, + "Tier": 1, + "Tag": "CeresToJupiterJunction" + }, + { + "Completes": 53, + "Tier": 1, + "Tag": "SolNode126" + }, + { + "Completes": 23, + "Tier": 1, + "Tag": "SolNode100" + }, + { + "Completes": 10, + "Tier": 1, + "Tag": "SolNode74" + }, + { + "Completes": 71, + "Tier": 1, + "Tag": "SolNode121" + }, + { + "Completes": 48, + "Tier": 1, + "Tag": "SolNode400" + }, + { + "Completes": 27, + "Tier": 1, + "Tag": "SolNode73" + }, + { + "Completes": 2, + "Tier": 1, + "Tag": "SolNode903" + }, + { + "Completes": 4, + "Tier": 1, + "Tag": "SolNode904" + }, + { + "Completes": 2, + "Tier": 1, + "Tag": "SettlementNode10" + }, + { + "Completes": 43, + "Tier": 1, + "Tag": "SolNode135" + }, + { + "Completes": 18, + "Tier": 1, + "Tag": "ClanNode22" + }, + { + "Completes": 10, + "Tier": 1, + "Tag": "ClanNode23" + }, + { + "Completes": 15, + "Tier": 1, + "Tag": "SolNode147" + }, + { + "Completes": 12, + "Tier": 1, + "Tag": "ClanNode10" + }, + { + "Completes": 12, + "Tier": 1, + "Tag": "ClanNode11" + }, + { + "Completes": 23, + "Tier": 1, + "Tag": "SolNode88" + }, + { + "Completes": 20, + "Tier": 1, + "Tag": "SolNode97" + }, + { + "Completes": 4, + "Tier": 1, + "Tag": "ClanNode4" + }, + { + "Completes": 12, + "Tier": 1, + "Tag": "SolNode125" + }, + { + "Completes": 13, + "Tier": 1, + "Tag": "SolNode10" + }, + { + "Completes": 10, + "Tier": 1, + "Tag": "SolNode905" + }, + { + "Completes": 84, + "Tier": 1, + "Tag": "SolNode401" + }, + { + "Completes": 10, + "Tag": "SolNode402" + }, + { + "Completes": 2, + "Tier": 1, + "Tag": "JupiterToEuropaJunction" + }, + { + "Completes": 8, + "Tier": 1, + "Tag": "SolNode209" + }, + { + "Completes": 20, + "Tier": 1, + "Tag": "SolNode24" + }, + { + "Completes": 4, + "Tier": 1, + "Tag": "ClanNode3" + }, + { + "Completes": 34, + "Tier": 1, + "Tag": "SolNode217" + }, + { + "Completes": 15, + "Tier": 1, + "Tag": "SolNode215" + }, + { + "Completes": 8, + "Tier": 1, + "Tag": "SolNode220" + }, + { + "Completes": 26, + "Tier": 1, + "Tag": "SolNode203" + }, + { + "Completes": 3, + "Tier": 1, + "Tag": "ClanNode6" + }, + { + "Completes": 11, + "Tier": 1, + "Tag": "SolNode216" + }, + { + "Completes": 79, + "Tag": "DeimosHub" + }, + { + "Completes": 14, + "Tag": "SolNode211" + }, + { + "Completes": 17, + "Tag": "SolNode214" + }, + { + "Completes": 15, + "Tier": 1, + "Tag": "SolNode212" + }, + { + "Completes": 16, + "Tier": 1, + "Tag": "SolNode210" + }, + { + "Completes": 10, + "Tier": 1, + "Tag": "SolNode204" + }, + { + "Completes": 136, + "Tier": 1, + "Tag": "SolNode205" + }, + { + "Completes": 1, + "Tag": "ClanNode7" + }, + { + "Completes": 5, + "Tier": 1, + "Tag": "SolNode403" + }, + { + "Completes": 7, + "Tier": 1, + "Tag": "SolNode404" + }, + { + "Completes": 13, + "Tier": 1, + "Tag": "SolNode405" + }, + { + "Completes": 44, + "Tier": 1, + "Tag": "SolNode53" + }, + { + "Completes": 2, + "Tier": 1, + "Tag": "JupiterToSaturnJunction" + }, + { + "Completes": 142, + "Tier": 1, + "Tag": "SolNode70" + }, + { + "Completes": 19, + "Tier": 1, + "Tag": "SolNode50" + }, + { + "Completes": 6, + "Tier": 1, + "Tag": "SolNode906" + }, + { + "Completes": 2, + "Tier": 1, + "Tag": "ClanNode12" + }, + { + "Completes": 7, + "Tier": 1, + "Tag": "SolNode19" + }, + { + "Completes": 12, + "Tier": 1, + "Tag": "SolNode96" + }, + { + "Completes": 14, + "Tier": 1, + "Tag": "SolNode42" + }, + { + "Completes": 14, + "Tier": 1, + "Tag": "SolNode32" + }, + { + "Completes": 2, + "Tier": 1, + "Tag": "SaturnToUranusJunction" + }, + { + "Completes": 17, + "Tier": 1, + "Tag": "SolNode82" + }, + { + "Completes": 10, + "Tier": 1, + "Tag": "SolNode93" + }, + { + "Completes": 6, + "Tier": 1, + "Tag": "SolNode67" + }, + { + "Completes": 65, + "Tier": 1, + "Tag": "SolNode20" + }, + { + "Completes": 26, + "Tier": 1, + "Tag": "SolNode31" + }, + { + "Completes": 8, + "Tag": "SolNode18" + }, + { + "Completes": 2, + "Tag": "ClanNode13" + }, + { + "Completes": 4, + "Tier": 1, + "Tag": "SolNode34" + }, + { + "Completes": 236, + "Tag": "SolNode801" + }, + { + "Completes": 8, + "Tier": 1, + "Tag": "SolNode25" + }, + { + "Completes": 8, + "Tier": 1, + "Tag": "ClanNode5" + }, + { + "Completes": 3, + "Tier": 1, + "Tag": "SolNode33" + }, + { + "Completes": 2, + "Tag": "SolNode98" + }, + { + "Completes": 2, + "Tier": 1, + "Tag": "SolNode9" + }, + { + "Completes": 17, + "Tag": "SolNode105" + }, + { + "Completes": 3, + "Tier": 1, + "Tag": "SolNode114" + }, + { + "Completes": 3, + "Tier": 1, + "Tag": "ClanNode17" + }, + { + "Completes": 1, + "Tag": "SolNode60" + }, + { + "Completes": 4, + "Tier": 1, + "Tag": "SolNode83" + }, + { + "Completes": 17, + "Tier": 1, + "Tag": "SolNode69" + }, + { + "Completes": 6, + "Tag": "ClanNode16" + }, + { + "Completes": 1, + "Tag": "UranusToNeptuneJunction" + }, + { + "Completes": 32, + "Tier": 1, + "Tag": "SolNode1" + }, + { + "Completes": 15, + "Tier": 1, + "Tag": "SolNode64" + }, + { + "Completes": 16, + "Tier": 1, + "Tag": "SolNode62" + }, + { + "Completes": 13, + "Tier": 1, + "Tag": "SolNode300" + }, + { + "Completes": 10, + "Tier": 1, + "Tag": "SolNode301" + }, + { + "Completes": 36, + "Tier": 1, + "Tag": "SolNode122" + }, + { + "Completes": 5, + "Tag": "SolNode907" + }, + { + "Completes": 49, + "Tier": 1, + "Tag": "SolNode78" + }, + { + "Completes": 8, + "Tier": 1, + "Tag": "SolNode49" + }, + { + "Completes": 52, + "Tier": 1, + "Tag": "SolNode406" + }, + { + "Completes": 65, + "Tier": 1, + "Tag": "SolNode407" + }, + { + "Completes": 10, + "Tier": 1, + "Tag": "SolNode408" + }, + { + "Completes": 6, + "Tier": 1, + "Tag": "SolNode87" + }, + { + "Completes": 10, + "Tier": 1, + "Tag": "SolNode307" + }, + { + "Completes": 11, + "Tier": 1, + "Tag": "SolNode302" + }, + { + "Completes": 18, + "Tier": 1, + "Tag": "SolNode306" + }, + { + "Completes": 8, + "Tier": 1, + "Tag": "SolNode304" + }, + { + "Completes": 8, + "Tier": 1, + "Tag": "SolNode305" + }, + { + "Completes": 2, + "Tier": 1, + "Tag": "SolNode908" + }, + { + "Completes": 6, + "Tier": 1, + "Tag": "SolNode84" + }, + { + "Completes": 32, + "Tier": 1, + "Tag": "SolNode127" + }, + { + "Completes": 2, + "Tier": 1, + "Tag": "NeptuneToPlutoJunction" + }, + { + "Completes": 23, + "Tier": 1, + "Tag": "SolNode6" + }, + { + "Completes": 33, + "Tier": 1, + "Tag": "SolNode57" + }, + { + "Completes": 4, + "Tag": "SolNode17" + }, + { + "Completes": 1, + "Tag": "ClanNode21" + }, + { + "Completes": 109, + "Tier": 1, + "Tag": "SolNode76" + }, + { + "Completes": 16, + "Tier": 1, + "Tag": "SolNode38" + }, + { + "Completes": 24, + "Tier": 1, + "Tag": "SolNode102" + }, + { + "Completes": 55, + "Tier": 1, + "Tag": "SolNode4" + }, + { + "Completes": 26, + "Tier": 1, + "Tag": "SolNode48" + }, + { + "Completes": 2, + "Tier": 1, + "Tag": "PlutoToSednaJunction" + }, + { + "Completes": 31, + "Tier": 1, + "Tag": "SolNode189" + }, + { + "Completes": 2, + "Tier": 1, + "Tag": "PlutoToErisJunction" + }, + { + "Completes": 7, + "Tier": 1, + "Tag": "SolNode175" + }, + { + "Completes": 49, + "Tier": 1, + "Tag": "SolNode746" + }, + { + "Completes": 19, + "Tier": 1, + "Tag": "SolNode162" + }, + { + "Completes": 5, + "Tier": 1, + "Tag": "SolNode173" + }, + { + "Completes": 23, + "Tier": 1, + "Tag": "SolNode166" + }, + { + "Completes": 102, + "Tier": 1, + "Tag": "SolNode181" + }, + { + "Completes": 18, + "Tier": 1, + "Tag": "SolNode153" + }, + { + "Completes": 7, + "Tag": "SolNode164" + }, + { + "Completes": 7, + "Tier": 1, + "Tag": "SolNode172" + }, + { + "Completes": 2, + "Tier": 1, + "Tag": "ClanNode19" + }, + { + "Completes": 18, + "Tier": 1, + "Tag": "SolNode72" + }, + { + "Completes": 21, + "Tier": 1, + "Tag": "SolNode21" + }, + { + "Completes": 17, + "Tag": "SolNode187" + }, + { + "Completes": 8, + "Tier": 1, + "Tag": "SolNode196" + }, + { + "Completes": 18, + "Tier": 1, + "Tag": "SolNode184" + }, + { + "Completes": 12, + "Tier": 1, + "Tag": "SolNode118" + }, + { + "Completes": 10, + "Tier": 1, + "Tag": "SolNode188" + }, + { + "Completes": 5, + "Tag": "SolNode410" + }, + { + "Completes": 2, + "Tier": 1, + "Tag": "SolNode411" + }, + { + "Completes": 5, + "Tier": 1, + "Tag": "SolNode195" + }, + { + "Completes": 2, + "Tier": 1, + "Tag": "ClanNode14" + }, + { + "Completes": 467, + "Tier": 1, + "Tag": "SolNode129" + }, + { + "Completes": 299, + "Tag": "SolarisUnitedHub1" + }, + { + "Completes": 21, + "Tier": 1, + "Tag": "SolNode171" + }, + { + "Completes": 15, + "Tier": 1, + "Tag": "SolNode412" + }, + { + "Completes": 14, + "Tier": 1, + "Tag": "SolNode409" + }, + { + "Completes": 39, + "Tier": 1, + "Tag": "SolNode177" + }, + { + "Completes": 11, + "Tier": 1, + "Tag": "SolNode713" + }, + { + "Completes": 3, + "Tier": 1, + "Tag": "ClanNode18" + }, + { + "Completes": 9, + "Tier": 1, + "Tag": "SolNode167" + }, + { + "Completes": 4, + "Tag": "SolNode185" + }, + { + "Completes": 2, + "Tier": 1, + "Tag": "ClanNode15" + }, + { + "Completes": 33, + "Tier": 1, + "Tag": "SolNode308" + }, + { + "Completes": 5, + "Tag": "ClanNode20" + }, + { + "Completes": 4, + "Tier": 1, + "Tag": "ClanNode24" + }, + { + "Completes": 3, + "Tier": 1, + "Tag": "ClanNode25" + }, + { + "Completes": 11, + "Tier": 1, + "Tag": "SolNode56" + }, + { + "Completes": 11, + "Tier": 1, + "Tag": "SolNode43" + }, + { + "Completes": 16, + "Tier": 1, + "Tag": "SolNode81" + }, + { + "Completes": 23, + "Tier": 1, + "Tag": "SolNode51" + }, + { + "Completes": 8, + "Tier": 1, + "Tag": "SolNode191" + }, + { + "Completes": 2, + "Tag": "SolNode190" + }, + { + "Completes": 7, + "Tag": "SolNode199" + }, + { + "Completes": 1, + "Tag": "SolNode183" + }, + { + "Completes": 12, + "Tag": "SolNode193" + }, + { + "Completes": 22, + "Tag": "SolNode763" + }, + { + "Completes": 12, + "Tier": 1, + "Tag": "SolNode741" + }, + { + "Completes": 7, + "Tier": 1, + "Tag": "SolNode742" + }, + { + "Completes": 11, + "Tier": 1, + "Tag": "SolNode747" + }, + { + "Completes": 13, + "Tier": 1, + "Tag": "SolNode744" + }, + { + "Completes": 3, + "Tier": 1, + "Tag": "SolNode743" + }, + { + "Completes": 15, + "Tier": 1, + "Tag": "SolNode748" + }, + { + "Completes": 11, + "Tier": 1, + "Tag": "SolNode745" + }, + { + "Completes": 10, + "Tier": 1, + "Tag": "SolNode740" + }, + { + "Completes": 167, + "Tag": "SolNode802" + }, + { + "Completes": 22, + "Tag": "SolNode233" + }, + { + "Completes": 113, + "Tier": 1, + "Tag": "SolNode231" + }, + { + "Completes": 45, + "Tag": "SolNode230" + }, + { + "Completes": 21, + "Tag": "SolNode232" + }, + { + "Completes": 11, + "Tag": "SolNode235" + }, + { + "Completes": 2, + "Tier": 1, + "Tag": "SolNode309" + }, + { + "Completes": 27, + "Tier": 1, + "Tag": "SolNode310" + }, + { + "Completes": 6, + "Tag": "CrewBattleNode527" + }, + { + "Completes": 7, + "Tag": "CrewBattleNode553" + }, + { + "Completes": 1, + "Tag": "CrewBattleNode556" + }, + { + "Completes": 3, + "Tag": "CrewBattleNode502" + }, + { + "Completes": 4, + "Tag": "CrewBattleNode509" + }, + { + "Completes": 3, + "Tag": "CrewBattleNode518" + }, + { + "Completes": 47, + "Tag": "CrewBattleNode558" + }, + { + "Completes": 3, + "Tag": "CrewBattleNode519" + }, + { + "Completes": 41, + "Tag": "CrewBattleNode522" + }, + { + "Completes": 6, + "Tag": "CrewBattleNode503" + }, + { + "Completes": 1, + "Tag": "CrewBattleNode511" + }, + { + "Completes": 3, + "Tag": "CrewBattleNode512" + }, + { + "Completes": 23, + "Tag": "EventNode5" + }, + { + "Completes": 35, + "Tag": "CrewBattleNode557" + }, + { + "Completes": 5, + "Tag": "SolNode705" + }, + { + "Completes": 8, + "Tag": "EventNode2" + }, + { + "Completes": 4, + "Tag": "CrewBattleNode528" + }, + { + "Completes": 1, + "Tag": "CrewBattleNode531" + }, + { + "Completes": 1, + "Tag": "CrewBattleNode529" + }, + { + "Completes": 15, + "Tag": "CrewBattleNode536" + }, + { + "Completes": 13, + "Tag": "CrewBattleNode550" + }, + { + "Completes": 7, + "Tag": "CrewBattleNode516" + }, + { + "Completes": 8, + "Tag": "CrewBattleNode533" + }, + { + "Completes": 14, + "Tag": "CrewBattleNode554" + }, + { + "Completes": 24, + "Tag": "CrewBattleNode555" + }, + { + "Completes": 18, + "Tag": "CrewBattleNode538" + }, + { + "Completes": 1, + "Tag": "CrewBattleNode534" + }, + { + "Completes": 2, + "Tag": "CrewBattleNode501" + }, + { + "Completes": 1, + "Tag": "CrewBattleNode535" + }, + { + "Completes": 4, + "Tag": "CrewBattleNode530" + }, + { + "Completes": 5, + "Tag": "SolNode764" + }, + { + "Completes": 3, + "Tag": "SolNode701" + }, + { + "Completes": 8, + "Tag": "CrewBattleNode521" + }, + { + "Completes": 3, + "Tag": "CrewBattleNode514" + }, + { + "Completes": 2, + "Tag": "CrewBattleNode515" + }, + { + "Completes": 6, + "Tag": "CrewBattleNode539" + }, + { + "Completes": 6, + "Tag": "CrewBattleNode504" + }, + { + "Completes": 57, + "Tier": 1, + "Tag": "SolNode450" + }, + { + "Completes": 3, + "Tag": "SolNode761" + }, + { + "Completes": 2, + "Tag": "EventNode34" + }, + { + "Completes": 1, + "Tag": "EventNode30" + }, + { + "Completes": 1, + "Tag": "CrewBattleNode540" + }, + { + "Completes": 2, + "Tag": "EventNode25" + }, + { + "Completes": 3, + "Tag": "EventNode24" + }, + { + "Completes": 2, + "Tag": "EventNode26" + }, + { + "Completes": 1, + "Tag": "EventNode37" + }, + { + "Completes": 1, + "Tag": "/Lotus/Language/Locations/Jupiter" + }, + { + "Completes": 92, + "Tier": 1, + "Tag": "SolNode238" + }, + { + "Completes": 30, + "Tier": 1, + "Tag": "SolNode237" + }, + { + "Completes": 13, + "Tag": "SolNode236" + }, + { + "Completes": 1, + "Tag": "EventNode27" + } +] diff --git a/static/fixed_responses/testQuestKeys.json b/static/fixed_responses/testQuestKeys.json index 5dcc460e..df32ed3d 100644 --- a/static/fixed_responses/testQuestKeys.json +++ b/static/fixed_responses/testQuestKeys.json @@ -1,11 +1,11 @@ [ - { - "ItemType": "/Lotus/Types/Keys/InfestedIntroQuest/InfestedIntroQuestKeyChain" - }, - { - "ItemType": "/Lotus/Types/Keys/KubrowQuest/KubrowQuestKeyChain" - }, - { - "ItemType": "/Lotus/Types/Keys/DuviriQuest/DuviriQuestKeyChain" - } -] \ No newline at end of file + { + "ItemType": "/Lotus/Types/Keys/InfestedIntroQuest/InfestedIntroQuestKeyChain" + }, + { + "ItemType": "/Lotus/Types/Keys/KubrowQuest/KubrowQuestKeyChain" + }, + { + "ItemType": "/Lotus/Types/Keys/DuviriQuest/DuviriQuestKeyChain" + } +] diff --git a/tsconfig.json b/tsconfig.json index 58fa269b..a75f01a3 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,113 +1,113 @@ { - "extends": "@tsconfig/node20/tsconfig.json", - "compilerOptions": { - /* Visit https://aka.ms/tsconfig to read more about this file */ + "extends": "@tsconfig/node20/tsconfig.json", + "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. */ + /* 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": "es2016" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, - // "lib": ["es2023"], /* 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. */ + /* Language and Environment */ + //"target": "es2016" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, + // "lib": ["es2023"], /* 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": "commonjs" /* 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. */ + /* Modules */ + //"module": "commonjs" /* 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'. */ + /* 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": "./build/" /* 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. */ + /* 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": "./build/" /* 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. */, + /* 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. */ + /* 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. */, - "paths": { - "@/*": ["./*"] - } + /* Completeness */ + // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ + "skipLibCheck": true /* Skip type checking all .d.ts files. */, + "paths": { + "@/*": ["./*"] } + } }