The re-designed Penguin Statistics v4 Backend.

Overview

Penguin Statistics - Logo

Penguin Statistics - V4 Backend

License Last Commit

The re-designed Penguin Statistics v4 Backend, built with Go.

Architecture

This Go project mainly uses:

This project mainly follows a RESTful API design.

Maintainers

This frontend project has mainly being maintained by the following contributors (in alphabetical order):

The full list of active contributors of the Penguin Statistics project can be found at the Team Members page of the website.

Comments
  • refactor/idiomatic-go

    refactor/idiomatic-go

    The effort is to lay down a better future path for the v3 api development. To better distinguish different structs and interfaces of APIs, a better way than simple shims should be implemented.

    This change has fixed some naming based on naming conventions from

    • Effective Go
    • The kubernetes code repo: they do have a huge codebase consisting of type definitions for different API versions, as well for feature gates which are hard to done right without any guidance.
    • Idiomatic Go (community)
    opened by GalvinGao 9
  • Update item formulas (`/api/v2/formula`)

    Update item formulas (`/api/v2/formula`)

    Just do: UPDATE properties SET value = ? WHERE key = 'formula', where ? is the following:

    [{"id":"3131","name":"基础加固建材","goldCost":800,"costs":[{"id":"3112","name":"碳","rarity":1,"count":2}],"extraOutcome":[{"id":"3112","name":"碳","rarity":1,"count":1,"weight":100}],"totalWeight":100},{"id":"3132","name":"进阶加固建材","goldCost":2400,"costs":[{"id":"3113","name":"碳素","rarity":2,"count":2}],"extraOutcome":[{"id":"3113","name":"碳素","rarity":2,"count":1,"weight":100}],"totalWeight":100},{"id":"3133","name":"高级加固建材","goldCost":7200,"costs":[{"id":"3114","name":"碳素组","rarity":3,"count":2}],"extraOutcome":[{"id":"3114","name":"碳素组","rarity":3,"count":1,"weight":100}],"totalWeight":100},{"id":"3113","name":"碳素","goldCost":0,"costs":[{"id":"3112","name":"碳","rarity":1,"count":3}],"extraOutcome":[{"id":"3113","name":"碳素","rarity":2,"count":1,"weight":100}],"totalWeight":100},{"id":"3114","name":"碳素组","goldCost":0,"costs":[{"id":"3113","name":"碳素","rarity":2,"count":3}],"extraOutcome":[{"id":"3114","name":"碳素组","rarity":3,"count":1,"weight":100}],"totalWeight":100},{"id":"3401","name":"家具零件","goldCost":200,"costs":[{"id":"3112","name":"碳","rarity":1,"count":1}],"extraOutcome":[{"id":"3112","name":"碳","rarity":1,"count":1,"weight":100}],"totalWeight":100},{"id":"3401","name":"家具零件","goldCost":200,"costs":[{"id":"3113","name":"碳素","rarity":2,"count":1}],"extraOutcome":[{"id":"3113","name":"碳素","rarity":2,"count":1,"weight":100}],"totalWeight":100},{"id":"3401","name":"家具零件","goldCost":200,"costs":[{"id":"3114","name":"碳素组","rarity":3,"count":1}],"extraOutcome":[{"id":"3114","name":"碳素组","rarity":3,"count":1,"weight":100}],"totalWeight":100},{"id":"3401","name":"家具零件","goldCost":0,"costs":[{"id":"3131","name":"基础加固建材","rarity":1,"count":1}],"extraOutcome":[{"id":"3112","name":"碳","rarity":1,"count":1,"weight":100}],"totalWeight":100},{"id":"3401","name":"家具零件","goldCost":0,"costs":[{"id":"3132","name":"进阶加固建材","rarity":2,"count":1}],"extraOutcome":[{"id":"3113","name":"碳素","rarity":2,"count":1,"weight":100}],"totalWeight":100},{"id":"3401","name":"家具零件","goldCost":0,"costs":[{"id":"3133","name":"高级加固建材","rarity":3,"count":1}],"extraOutcome":[{"id":"3114","name":"碳素组","rarity":3,"count":1,"weight":100}],"totalWeight":100},{"id":"30135","name":"D32钢","goldCost":400,"costs":[{"id":"30084","name":"三水锰矿","rarity":3,"count":1},{"id":"30094","name":"五水研磨石","rarity":3,"count":1},{"id":"30104","name":"RMA70-24","rarity":3,"count":1}],"extraOutcome":[{"id":"30014","name":"提纯源岩","rarity":3,"count":1,"weight":84},{"id":"30024","name":"糖聚块","rarity":3,"count":1,"weight":63},{"id":"30034","name":"聚酸酯块","rarity":3,"count":1,"weight":63},{"id":"30044","name":"异铁块","rarity":3,"count":1,"weight":56},{"id":"30054","name":"酮阵列","rarity":3,"count":1,"weight":56},{"id":"30064","name":"改量装置","rarity":3,"count":1,"weight":42},{"id":"30074","name":"白马醇","rarity":3,"count":1,"weight":72},{"id":"30084","name":"三水锰矿","rarity":3,"count":1,"weight":63},{"id":"30094","name":"五水研磨石","rarity":3,"count":1,"weight":63},{"id":"30104","name":"RMA70-24","rarity":3,"count":1,"weight":56},{"id":"31014","name":"聚合凝胶","rarity":3,"count":1,"weight":72},{"id":"31024","name":"炽合金块","rarity":3,"count":1,"weight":63},{"id":"31034","name":"晶体电路","rarity":3,"count":1,"weight":56},{"id":"31044","name":"精炼溶剂","rarity":3,"count":1,"weight":63},{"id":"31054","name":"切削原液","rarity":3,"count":1,"weight":63}],"totalWeight":935},{"id":"30125","name":"双极纳米片","goldCost":400,"costs":[{"id":"30064","name":"改量装置","rarity":3,"count":1},{"id":"30074","name":"白马醇","rarity":3,"count":2}],"extraOutcome":[{"id":"30014","name":"提纯源岩","rarity":3,"count":1,"weight":84},{"id":"30024","name":"糖聚块","rarity":3,"count":1,"weight":63},{"id":"30034","name":"聚酸酯块","rarity":3,"count":1,"weight":63},{"id":"30044","name":"异铁块","rarity":3,"count":1,"weight":56},{"id":"30054","name":"酮阵列","rarity":3,"count":1,"weight":56},{"id":"30064","name":"改量装置","rarity":3,"count":1,"weight":42},{"id":"30074","name":"白马醇","rarity":3,"count":1,"weight":72},{"id":"30084","name":"三水锰矿","rarity":3,"count":1,"weight":63},{"id":"30094","name":"五水研磨石","rarity":3,"count":1,"weight":63},{"id":"30104","name":"RMA70-24","rarity":3,"count":1,"weight":56},{"id":"31014","name":"聚合凝胶","rarity":3,"count":1,"weight":72},{"id":"31024","name":"炽合金块","rarity":3,"count":1,"weight":63},{"id":"31034","name":"晶体电路","rarity":3,"count":1,"weight":56},{"id":"31044","name":"精炼溶剂","rarity":3,"count":1,"weight":63},{"id":"31054","name":"切削原液","rarity":3,"count":1,"weight":63}],"totalWeight":935},{"id":"30115","name":"聚合剂","goldCost":400,"costs":[{"id":"30014","name":"提纯源岩","rarity":3,"count":1},{"id":"30044","name":"异铁块","rarity":3,"count":1},{"id":"30054","name":"酮阵列","rarity":3,"count":1}],"extraOutcome":[{"id":"30014","name":"提纯源岩","rarity":3,"count":1,"weight":84},{"id":"30024","name":"糖聚块","rarity":3,"count":1,"weight":63},{"id":"30034","name":"聚酸酯块","rarity":3,"count":1,"weight":63},{"id":"30044","name":"异铁块","rarity":3,"count":1,"weight":56},{"id":"30054","name":"酮阵列","rarity":3,"count":1,"weight":56},{"id":"30064","name":"改量装置","rarity":3,"count":1,"weight":42},{"id":"30074","name":"白马醇","rarity":3,"count":1,"weight":72},{"id":"30084","name":"三水锰矿","rarity":3,"count":1,"weight":63},{"id":"30094","name":"五水研磨石","rarity":3,"count":1,"weight":63},{"id":"30104","name":"RMA70-24","rarity":3,"count":1,"weight":56},{"id":"31014","name":"聚合凝胶","rarity":3,"count":1,"weight":72},{"id":"31024","name":"炽合金块","rarity":3,"count":1,"weight":63},{"id":"31034","name":"晶体电路","rarity":3,"count":1,"weight":56},{"id":"31044","name":"精炼溶剂","rarity":3,"count":1,"weight":63},{"id":"31054","name":"切削原液","rarity":3,"count":1,"weight":63}],"totalWeight":935},{"id":"30104","name":"RMA70-24","goldCost":300,"costs":[{"id":"30103","name":"RMA70-12","rarity":2,"count":1},{"id":"30013","name":"固源岩组","rarity":2,"count":2},{"id":"30053","name":"酮凝集组","rarity":2,"count":1}],"extraOutcome":[{"id":"30013","name":"固源岩组","rarity":2,"count":1,"weight":60},{"id":"30023","name":"糖组","rarity":2,"count":1,"weight":50},{"id":"30033","name":"聚酸酯组","rarity":2,"count":1,"weight":50},{"id":"30043","name":"异铁组","rarity":2,"count":1,"weight":40},{"id":"30053","name":"酮凝集组","rarity":2,"count":1,"weight":40},{"id":"30063","name":"全新装置","rarity":2,"count":1,"weight":30},{"id":"30073","name":"扭转醇","rarity":2,"count":1,"weight":45},{"id":"30083","name":"轻锰矿","rarity":2,"count":1,"weight":40},{"id":"30093","name":"研磨石","rarity":2,"count":1,"weight":36},{"id":"30103","name":"RMA70-12","rarity":2,"count":1,"weight":30},{"id":"31013","name":"凝胶","rarity":2,"count":1,"weight":36},{"id":"31023","name":"炽合金","rarity":2,"count":1,"weight":40},{"id":"31033","name":"晶体元件","rarity":2,"count":1,"weight":40},{"id":"31043","name":"半自然溶剂","rarity":2,"count":1,"weight":36},{"id":"31053","name":"化合切削液","rarity":2,"count":1,"weight":36}],"totalWeight":609},{"id":"30094","name":"五水研磨石","goldCost":300,"costs":[{"id":"30093","name":"研磨石","rarity":2,"count":1},{"id":"30043","name":"异铁组","rarity":2,"count":1},{"id":"30063","name":"全新装置","rarity":2,"count":1}],"extraOutcome":[{"id":"30013","name":"固源岩组","rarity":2,"count":1,"weight":60},{"id":"30023","name":"糖组","rarity":2,"count":1,"weight":50},{"id":"30033","name":"聚酸酯组","rarity":2,"count":1,"weight":50},{"id":"30043","name":"异铁组","rarity":2,"count":1,"weight":40},{"id":"30053","name":"酮凝集组","rarity":2,"count":1,"weight":40},{"id":"30063","name":"全新装置","rarity":2,"count":1,"weight":30},{"id":"30073","name":"扭转醇","rarity":2,"count":1,"weight":45},{"id":"30083","name":"轻锰矿","rarity":2,"count":1,"weight":40},{"id":"30093","name":"研磨石","rarity":2,"count":1,"weight":36},{"id":"30103","name":"RMA70-12","rarity":2,"count":1,"weight":30},{"id":"31013","name":"凝胶","rarity":2,"count":1,"weight":36},{"id":"31023","name":"炽合金","rarity":2,"count":1,"weight":40},{"id":"31033","name":"晶体元件","rarity":2,"count":1,"weight":40},{"id":"31043","name":"半自然溶剂","rarity":2,"count":1,"weight":36},{"id":"31053","name":"化合切削液","rarity":2,"count":1,"weight":36}],"totalWeight":609},{"id":"30084","name":"三水锰矿","goldCost":300,"costs":[{"id":"30083","name":"轻锰矿","rarity":2,"count":2},{"id":"30033","name":"聚酸酯组","rarity":2,"count":1},{"id":"30073","name":"扭转醇","rarity":2,"count":1}],"extraOutcome":[{"id":"30013","name":"固源岩组","rarity":2,"count":1,"weight":60},{"id":"30023","name":"糖组","rarity":2,"count":1,"weight":50},{"id":"30033","name":"聚酸酯组","rarity":2,"count":1,"weight":50},{"id":"30043","name":"异铁组","rarity":2,"count":1,"weight":40},{"id":"30053","name":"酮凝集组","rarity":2,"count":1,"weight":40},{"id":"30063","name":"全新装置","rarity":2,"count":1,"weight":30},{"id":"30073","name":"扭转醇","rarity":2,"count":1,"weight":45},{"id":"30083","name":"轻锰矿","rarity":2,"count":1,"weight":40},{"id":"30093","name":"研磨石","rarity":2,"count":1,"weight":36},{"id":"30103","name":"RMA70-12","rarity":2,"count":1,"weight":30},{"id":"31013","name":"凝胶","rarity":2,"count":1,"weight":36},{"id":"31023","name":"炽合金","rarity":2,"count":1,"weight":40},{"id":"31033","name":"晶体元件","rarity":2,"count":1,"weight":40},{"id":"31043","name":"半自然溶剂","rarity":2,"count":1,"weight":36},{"id":"31053","name":"化合切削液","rarity":2,"count":1,"weight":36}],"totalWeight":609},{"id":"30074","name":"白马醇","goldCost":300,"costs":[{"id":"30073","name":"扭转醇","rarity":2,"count":1},{"id":"30023","name":"糖组","rarity":2,"count":1},{"id":"30103","name":"RMA70-12","rarity":2,"count":1}],"extraOutcome":[{"id":"30013","name":"固源岩组","rarity":2,"count":1,"weight":60},{"id":"30023","name":"糖组","rarity":2,"count":1,"weight":50},{"id":"30033","name":"聚酸酯组","rarity":2,"count":1,"weight":50},{"id":"30043","name":"异铁组","rarity":2,"count":1,"weight":40},{"id":"30053","name":"酮凝集组","rarity":2,"count":1,"weight":40},{"id":"30063","name":"全新装置","rarity":2,"count":1,"weight":30},{"id":"30073","name":"扭转醇","rarity":2,"count":1,"weight":45},{"id":"30083","name":"轻锰矿","rarity":2,"count":1,"weight":40},{"id":"30093","name":"研磨石","rarity":2,"count":1,"weight":36},{"id":"30103","name":"RMA70-12","rarity":2,"count":1,"weight":30},{"id":"31013","name":"凝胶","rarity":2,"count":1,"weight":36},{"id":"31023","name":"炽合金","rarity":2,"count":1,"weight":40},{"id":"31033","name":"晶体元件","rarity":2,"count":1,"weight":40},{"id":"31043","name":"半自然溶剂","rarity":2,"count":1,"weight":36},{"id":"31053","name":"化合切削液","rarity":2,"count":1,"weight":36}],"totalWeight":609},{"id":"30062","name":"装置","goldCost":100,"costs":[{"id":"30061","name":"破损装置","rarity":0,"count":3}],"extraOutcome":[{"id":"30011","name":"源岩","rarity":0,"count":1,"weight":15},{"id":"30021","name":"代糖","rarity":0,"count":1,"weight":10},{"id":"30031","name":"酯原料","rarity":0,"count":1,"weight":10},{"id":"30041","name":"异铁碎片","rarity":0,"count":1,"weight":8},{"id":"30051","name":"双酮","rarity":0,"count":1,"weight":8},{"id":"30061","name":"破损装置","rarity":0,"count":1,"weight":6}],"totalWeight":57},{"id":"30063","name":"全新装置","goldCost":200,"costs":[{"id":"30062","name":"装置","rarity":1,"count":4}],"extraOutcome":[{"id":"30012","name":"固源岩","rarity":1,"count":1,"weight":15},{"id":"30022","name":"糖","rarity":1,"count":1,"weight":10},{"id":"30032","name":"聚酸酯","rarity":1,"count":1,"weight":10},{"id":"30042","name":"异铁","rarity":1,"count":1,"weight":8},{"id":"30052","name":"酮凝集","rarity":1,"count":1,"weight":8},{"id":"30062","name":"装置","rarity":1,"count":1,"weight":6}],"totalWeight":57},{"id":"30064","name":"改量装置","goldCost":300,"costs":[{"id":"30063","name":"全新装置","rarity":2,"count":1},{"id":"30013","name":"固源岩组","rarity":2,"count":2},{"id":"30093","name":"研磨石","rarity":2,"count":1}],"extraOutcome":[{"id":"30013","name":"固源岩组","rarity":2,"count":1,"weight":60},{"id":"30023","name":"糖组","rarity":2,"count":1,"weight":50},{"id":"30033","name":"聚酸酯组","rarity":2,"count":1,"weight":50},{"id":"30043","name":"异铁组","rarity":2,"count":1,"weight":40},{"id":"30053","name":"酮凝集组","rarity":2,"count":1,"weight":40},{"id":"30063","name":"全新装置","rarity":2,"count":1,"weight":30},{"id":"30073","name":"扭转醇","rarity":2,"count":1,"weight":45},{"id":"30083","name":"轻锰矿","rarity":2,"count":1,"weight":40},{"id":"30093","name":"研磨石","rarity":2,"count":1,"weight":36},{"id":"30103","name":"RMA70-12","rarity":2,"count":1,"weight":30},{"id":"31013","name":"凝胶","rarity":2,"count":1,"weight":36},{"id":"31023","name":"炽合金","rarity":2,"count":1,"weight":40},{"id":"31033","name":"晶体元件","rarity":2,"count":1,"weight":40},{"id":"31043","name":"半自然溶剂","rarity":2,"count":1,"weight":36},{"id":"31053","name":"化合切削液","rarity":2,"count":1,"weight":36}],"totalWeight":609},{"id":"30052","name":"酮凝集","goldCost":100,"costs":[{"id":"30051","name":"双酮","rarity":0,"count":3}],"extraOutcome":[{"id":"30011","name":"源岩","rarity":0,"count":1,"weight":15},{"id":"30021","name":"代糖","rarity":0,"count":1,"weight":10},{"id":"30031","name":"酯原料","rarity":0,"count":1,"weight":10},{"id":"30041","name":"异铁碎片","rarity":0,"count":1,"weight":8},{"id":"30051","name":"双酮","rarity":0,"count":1,"weight":8},{"id":"30061","name":"破损装置","rarity":0,"count":1,"weight":6}],"totalWeight":57},{"id":"30053","name":"酮凝集组","goldCost":200,"costs":[{"id":"30052","name":"酮凝集","rarity":1,"count":4}],"extraOutcome":[{"id":"30012","name":"固源岩","rarity":1,"count":1,"weight":15},{"id":"30022","name":"糖","rarity":1,"count":1,"weight":10},{"id":"30032","name":"聚酸酯","rarity":1,"count":1,"weight":10},{"id":"30042","name":"异铁","rarity":1,"count":1,"weight":8},{"id":"30052","name":"酮凝集","rarity":1,"count":1,"weight":8},{"id":"30062","name":"装置","rarity":1,"count":1,"weight":6}],"totalWeight":57},{"id":"30054","name":"酮阵列","goldCost":300,"costs":[{"id":"30053","name":"酮凝集组","rarity":2,"count":2},{"id":"30023","name":"糖组","rarity":2,"count":1},{"id":"30083","name":"轻锰矿","rarity":2,"count":1}],"extraOutcome":[{"id":"30013","name":"固源岩组","rarity":2,"count":1,"weight":60},{"id":"30023","name":"糖组","rarity":2,"count":1,"weight":50},{"id":"30033","name":"聚酸酯组","rarity":2,"count":1,"weight":50},{"id":"30043","name":"异铁组","rarity":2,"count":1,"weight":40},{"id":"30053","name":"酮凝集组","rarity":2,"count":1,"weight":40},{"id":"30063","name":"全新装置","rarity":2,"count":1,"weight":30},{"id":"30073","name":"扭转醇","rarity":2,"count":1,"weight":45},{"id":"30083","name":"轻锰矿","rarity":2,"count":1,"weight":40},{"id":"30093","name":"研磨石","rarity":2,"count":1,"weight":36},{"id":"30103","name":"RMA70-12","rarity":2,"count":1,"weight":30},{"id":"31013","name":"凝胶","rarity":2,"count":1,"weight":36},{"id":"31023","name":"炽合金","rarity":2,"count":1,"weight":40},{"id":"31033","name":"晶体元件","rarity":2,"count":1,"weight":40},{"id":"31043","name":"半自然溶剂","rarity":2,"count":1,"weight":36},{"id":"31053","name":"化合切削液","rarity":2,"count":1,"weight":36}],"totalWeight":609},{"id":"30042","name":"异铁","goldCost":100,"costs":[{"id":"30041","name":"异铁碎片","rarity":0,"count":3}],"extraOutcome":[{"id":"30011","name":"源岩","rarity":0,"count":1,"weight":15},{"id":"30021","name":"代糖","rarity":0,"count":1,"weight":10},{"id":"30031","name":"酯原料","rarity":0,"count":1,"weight":10},{"id":"30041","name":"异铁碎片","rarity":0,"count":1,"weight":8},{"id":"30051","name":"双酮","rarity":0,"count":1,"weight":8},{"id":"30061","name":"破损装置","rarity":0,"count":1,"weight":6}],"totalWeight":57},{"id":"30043","name":"异铁组","goldCost":200,"costs":[{"id":"30042","name":"异铁","rarity":1,"count":4}],"extraOutcome":[{"id":"30012","name":"固源岩","rarity":1,"count":1,"weight":15},{"id":"30022","name":"糖","rarity":1,"count":1,"weight":10},{"id":"30032","name":"聚酸酯","rarity":1,"count":1,"weight":10},{"id":"30042","name":"异铁","rarity":1,"count":1,"weight":8},{"id":"30052","name":"酮凝集","rarity":1,"count":1,"weight":8},{"id":"30062","name":"装置","rarity":1,"count":1,"weight":6}],"totalWeight":57},{"id":"30044","name":"异铁块","goldCost":300,"costs":[{"id":"30043","name":"异铁组","rarity":2,"count":2},{"id":"30063","name":"全新装置","rarity":2,"count":1},{"id":"30033","name":"聚酸酯组","rarity":2,"count":1}],"extraOutcome":[{"id":"30013","name":"固源岩组","rarity":2,"count":1,"weight":60},{"id":"30023","name":"糖组","rarity":2,"count":1,"weight":50},{"id":"30033","name":"聚酸酯组","rarity":2,"count":1,"weight":50},{"id":"30043","name":"异铁组","rarity":2,"count":1,"weight":40},{"id":"30053","name":"酮凝集组","rarity":2,"count":1,"weight":40},{"id":"30063","name":"全新装置","rarity":2,"count":1,"weight":30},{"id":"30073","name":"扭转醇","rarity":2,"count":1,"weight":45},{"id":"30083","name":"轻锰矿","rarity":2,"count":1,"weight":40},{"id":"30093","name":"研磨石","rarity":2,"count":1,"weight":36},{"id":"30103","name":"RMA70-12","rarity":2,"count":1,"weight":30},{"id":"31013","name":"凝胶","rarity":2,"count":1,"weight":36},{"id":"31023","name":"炽合金","rarity":2,"count":1,"weight":40},{"id":"31033","name":"晶体元件","rarity":2,"count":1,"weight":40},{"id":"31043","name":"半自然溶剂","rarity":2,"count":1,"weight":36},{"id":"31053","name":"化合切削液","rarity":2,"count":1,"weight":36}],"totalWeight":609},{"id":"30032","name":"聚酸酯","goldCost":100,"costs":[{"id":"30031","name":"酯原料","rarity":0,"count":3}],"extraOutcome":[{"id":"30011","name":"源岩","rarity":0,"count":1,"weight":15},{"id":"30021","name":"代糖","rarity":0,"count":1,"weight":10},{"id":"30031","name":"酯原料","rarity":0,"count":1,"weight":10},{"id":"30041","name":"异铁碎片","rarity":0,"count":1,"weight":8},{"id":"30051","name":"双酮","rarity":0,"count":1,"weight":8},{"id":"30061","name":"破损装置","rarity":0,"count":1,"weight":6}],"totalWeight":57},{"id":"30033","name":"聚酸酯组","goldCost":200,"costs":[{"id":"30032","name":"聚酸酯","rarity":1,"count":4}],"extraOutcome":[{"id":"30012","name":"固源岩","rarity":1,"count":1,"weight":15},{"id":"30022","name":"糖","rarity":1,"count":1,"weight":10},{"id":"30032","name":"聚酸酯","rarity":1,"count":1,"weight":10},{"id":"30042","name":"异铁","rarity":1,"count":1,"weight":8},{"id":"30052","name":"酮凝集","rarity":1,"count":1,"weight":8},{"id":"30062","name":"装置","rarity":1,"count":1,"weight":6}],"totalWeight":57},{"id":"30034","name":"聚酸酯块","goldCost":300,"costs":[{"id":"30033","name":"聚酸酯组","rarity":2,"count":2},{"id":"30053","name":"酮凝集组","rarity":2,"count":1},{"id":"30073","name":"扭转醇","rarity":2,"count":1}],"extraOutcome":[{"id":"30013","name":"固源岩组","rarity":2,"count":1,"weight":60},{"id":"30023","name":"糖组","rarity":2,"count":1,"weight":50},{"id":"30033","name":"聚酸酯组","rarity":2,"count":1,"weight":50},{"id":"30043","name":"异铁组","rarity":2,"count":1,"weight":40},{"id":"30053","name":"酮凝集组","rarity":2,"count":1,"weight":40},{"id":"30063","name":"全新装置","rarity":2,"count":1,"weight":30},{"id":"30073","name":"扭转醇","rarity":2,"count":1,"weight":45},{"id":"30083","name":"轻锰矿","rarity":2,"count":1,"weight":40},{"id":"30093","name":"研磨石","rarity":2,"count":1,"weight":36},{"id":"30103","name":"RMA70-12","rarity":2,"count":1,"weight":30},{"id":"31013","name":"凝胶","rarity":2,"count":1,"weight":36},{"id":"31023","name":"炽合金","rarity":2,"count":1,"weight":40},{"id":"31033","name":"晶体元件","rarity":2,"count":1,"weight":40},{"id":"31043","name":"半自然溶剂","rarity":2,"count":1,"weight":36},{"id":"31053","name":"化合切削液","rarity":2,"count":1,"weight":36}],"totalWeight":609},{"id":"30022","name":"糖","goldCost":100,"costs":[{"id":"30021","name":"代糖","rarity":0,"count":3}],"extraOutcome":[{"id":"30011","name":"源岩","rarity":0,"count":1,"weight":15},{"id":"30021","name":"代糖","rarity":0,"count":1,"weight":10},{"id":"30031","name":"酯原料","rarity":0,"count":1,"weight":10},{"id":"30041","name":"异铁碎片","rarity":0,"count":1,"weight":8},{"id":"30051","name":"双酮","rarity":0,"count":1,"weight":8},{"id":"30061","name":"破损装置","rarity":0,"count":1,"weight":6}],"totalWeight":57},{"id":"30023","name":"糖组","goldCost":200,"costs":[{"id":"30022","name":"糖","rarity":1,"count":4}],"extraOutcome":[{"id":"30012","name":"固源岩","rarity":1,"count":1,"weight":15},{"id":"30022","name":"糖","rarity":1,"count":1,"weight":10},{"id":"30032","name":"聚酸酯","rarity":1,"count":1,"weight":10},{"id":"30042","name":"异铁","rarity":1,"count":1,"weight":8},{"id":"30052","name":"酮凝集","rarity":1,"count":1,"weight":8},{"id":"30062","name":"装置","rarity":1,"count":1,"weight":6}],"totalWeight":57},{"id":"30024","name":"糖聚块","goldCost":300,"costs":[{"id":"30023","name":"糖组","rarity":2,"count":2},{"id":"30043","name":"异铁组","rarity":2,"count":1},{"id":"30083","name":"轻锰矿","rarity":2,"count":1}],"extraOutcome":[{"id":"30013","name":"固源岩组","rarity":2,"count":1,"weight":60},{"id":"30023","name":"糖组","rarity":2,"count":1,"weight":50},{"id":"30033","name":"聚酸酯组","rarity":2,"count":1,"weight":50},{"id":"30043","name":"异铁组","rarity":2,"count":1,"weight":40},{"id":"30053","name":"酮凝集组","rarity":2,"count":1,"weight":40},{"id":"30063","name":"全新装置","rarity":2,"count":1,"weight":30},{"id":"30073","name":"扭转醇","rarity":2,"count":1,"weight":45},{"id":"30083","name":"轻锰矿","rarity":2,"count":1,"weight":40},{"id":"30093","name":"研磨石","rarity":2,"count":1,"weight":36},{"id":"30103","name":"RMA70-12","rarity":2,"count":1,"weight":30},{"id":"31013","name":"凝胶","rarity":2,"count":1,"weight":36},{"id":"31023","name":"炽合金","rarity":2,"count":1,"weight":40},{"id":"31033","name":"晶体元件","rarity":2,"count":1,"weight":40},{"id":"31043","name":"半自然溶剂","rarity":2,"count":1,"weight":36},{"id":"31053","name":"化合切削液","rarity":2,"count":1,"weight":36}],"totalWeight":609},{"id":"30012","name":"固源岩","goldCost":100,"costs":[{"id":"30011","name":"源岩","rarity":0,"count":3}],"extraOutcome":[{"id":"30011","name":"源岩","rarity":0,"count":1,"weight":15},{"id":"30021","name":"代糖","rarity":0,"count":1,"weight":10},{"id":"30031","name":"酯原料","rarity":0,"count":1,"weight":10},{"id":"30041","name":"异铁碎片","rarity":0,"count":1,"weight":8},{"id":"30051","name":"双酮","rarity":0,"count":1,"weight":8},{"id":"30061","name":"破损装置","rarity":0,"count":1,"weight":6}],"totalWeight":57},{"id":"30013","name":"固源岩组","goldCost":200,"costs":[{"id":"30012","name":"固源岩","rarity":1,"count":5}],"extraOutcome":[{"id":"30012","name":"固源岩","rarity":1,"count":1,"weight":15},{"id":"30022","name":"糖","rarity":1,"count":1,"weight":10},{"id":"30032","name":"聚酸酯","rarity":1,"count":1,"weight":10},{"id":"30042","name":"异铁","rarity":1,"count":1,"weight":8},{"id":"30052","name":"酮凝集","rarity":1,"count":1,"weight":8},{"id":"30062","name":"装置","rarity":1,"count":1,"weight":6}],"totalWeight":57},{"id":"30014","name":"提纯源岩","goldCost":300,"costs":[{"id":"30013","name":"固源岩组","rarity":2,"count":4}],"extraOutcome":[{"id":"30013","name":"固源岩组","rarity":2,"count":1,"weight":60},{"id":"30023","name":"糖组","rarity":2,"count":1,"weight":50},{"id":"30033","name":"聚酸酯组","rarity":2,"count":1,"weight":50},{"id":"30043","name":"异铁组","rarity":2,"count":1,"weight":40},{"id":"30053","name":"酮凝集组","rarity":2,"count":1,"weight":40},{"id":"30063","name":"全新装置","rarity":2,"count":1,"weight":30},{"id":"30073","name":"扭转醇","rarity":2,"count":1,"weight":45},{"id":"30083","name":"轻锰矿","rarity":2,"count":1,"weight":40},{"id":"30093","name":"研磨石","rarity":2,"count":1,"weight":36},{"id":"30103","name":"RMA70-12","rarity":2,"count":1,"weight":30},{"id":"31013","name":"凝胶","rarity":2,"count":1,"weight":36},{"id":"31023","name":"炽合金","rarity":2,"count":1,"weight":40},{"id":"31033","name":"晶体元件","rarity":2,"count":1,"weight":40},{"id":"31043","name":"半自然溶剂","rarity":2,"count":1,"weight":36},{"id":"31053","name":"化合切削液","rarity":2,"count":1,"weight":36}],"totalWeight":609},{"id":"3302","name":"技巧概要·卷2","goldCost":0,"costs":[{"id":"3301","name":"技巧概要·卷1","rarity":1,"count":3}],"extraOutcome":[{"id":"3302","name":"技巧概要·卷2","rarity":2,"count":1,"weight":100}],"totalWeight":100},{"id":"3303","name":"技巧概要·卷3","goldCost":0,"costs":[{"id":"3302","name":"技巧概要·卷2","rarity":2,"count":3}],"extraOutcome":[{"id":"3303","name":"技巧概要·卷3","rarity":3,"count":1,"weight":100}],"totalWeight":100},{"id":"3231","name":"重装芯片","goldCost":0,"costs":[{"id":"3261","name":"医疗芯片","rarity":2,"count":3}],"extraOutcome":[{"id":"3231","name":"重装芯片","rarity":2,"count":1,"weight":100},{"id":"3261","name":"医疗芯片","rarity":2,"count":1,"weight":100},{"id":"3241","name":"狙击芯片","rarity":2,"count":1,"weight":100},{"id":"3251","name":"术师芯片","rarity":2,"count":1,"weight":100},{"id":"3211","name":"先锋芯片","rarity":2,"count":1,"weight":100},{"id":"3271","name":"辅助芯片","rarity":2,"count":1,"weight":100},{"id":"3221","name":"近卫芯片","rarity":2,"count":1,"weight":100},{"id":"3281","name":"特种芯片","rarity":2,"count":1,"weight":100}],"totalWeight":800},{"id":"3261","name":"医疗芯片","goldCost":0,"costs":[{"id":"3231","name":"重装芯片","rarity":2,"count":3}],"extraOutcome":[{"id":"3231","name":"重装芯片","rarity":2,"count":1,"weight":100},{"id":"3261","name":"医疗芯片","rarity":2,"count":1,"weight":100},{"id":"3241","name":"狙击芯片","rarity":2,"count":1,"weight":100},{"id":"3251","name":"术师芯片","rarity":2,"count":1,"weight":100},{"id":"3211","name":"先锋芯片","rarity":2,"count":1,"weight":100},{"id":"3271","name":"辅助芯片","rarity":2,"count":1,"weight":100},{"id":"3221","name":"近卫芯片","rarity":2,"count":1,"weight":100},{"id":"3281","name":"特种芯片","rarity":2,"count":1,"weight":100}],"totalWeight":800},{"id":"3241","name":"狙击芯片","goldCost":0,"costs":[{"id":"3251","name":"术师芯片","rarity":2,"count":3}],"extraOutcome":[{"id":"3231","name":"重装芯片","rarity":2,"count":1,"weight":100},{"id":"3261","name":"医疗芯片","rarity":2,"count":1,"weight":100},{"id":"3241","name":"狙击芯片","rarity":2,"count":1,"weight":100},{"id":"3251","name":"术师芯片","rarity":2,"count":1,"weight":100},{"id":"3211","name":"先锋芯片","rarity":2,"count":1,"weight":100},{"id":"3271","name":"辅助芯片","rarity":2,"count":1,"weight":100},{"id":"3221","name":"近卫芯片","rarity":2,"count":1,"weight":100},{"id":"3281","name":"特种芯片","rarity":2,"count":1,"weight":100}],"totalWeight":800},{"id":"3251","name":"术师芯片","goldCost":0,"costs":[{"id":"3241","name":"狙击芯片","rarity":2,"count":3}],"extraOutcome":[{"id":"3231","name":"重装芯片","rarity":2,"count":1,"weight":100},{"id":"3261","name":"医疗芯片","rarity":2,"count":1,"weight":100},{"id":"3241","name":"狙击芯片","rarity":2,"count":1,"weight":100},{"id":"3251","name":"术师芯片","rarity":2,"count":1,"weight":100},{"id":"3211","name":"先锋芯片","rarity":2,"count":1,"weight":100},{"id":"3271","name":"辅助芯片","rarity":2,"count":1,"weight":100},{"id":"3221","name":"近卫芯片","rarity":2,"count":1,"weight":100},{"id":"3281","name":"特种芯片","rarity":2,"count":1,"weight":100}],"totalWeight":800},{"id":"3211","name":"先锋芯片","goldCost":0,"costs":[{"id":"3271","name":"辅助芯片","rarity":2,"count":3}],"extraOutcome":[{"id":"3231","name":"重装芯片","rarity":2,"count":1,"weight":100},{"id":"3261","name":"医疗芯片","rarity":2,"count":1,"weight":100},{"id":"3241","name":"狙击芯片","rarity":2,"count":1,"weight":100},{"id":"3251","name":"术师芯片","rarity":2,"count":1,"weight":100},{"id":"3211","name":"先锋芯片","rarity":2,"count":1,"weight":100},{"id":"3271","name":"辅助芯片","rarity":2,"count":1,"weight":100},{"id":"3221","name":"近卫芯片","rarity":2,"count":1,"weight":100},{"id":"3281","name":"特种芯片","rarity":2,"count":1,"weight":100}],"totalWeight":800},{"id":"3271","name":"辅助芯片","goldCost":0,"costs":[{"id":"3211","name":"先锋芯片","rarity":2,"count":3}],"extraOutcome":[{"id":"3231","name":"重装芯片","rarity":2,"count":1,"weight":100},{"id":"3261","name":"医疗芯片","rarity":2,"count":1,"weight":100},{"id":"3241","name":"狙击芯片","rarity":2,"count":1,"weight":100},{"id":"3251","name":"术师芯片","rarity":2,"count":1,"weight":100},{"id":"3211","name":"先锋芯片","rarity":2,"count":1,"weight":100},{"id":"3271","name":"辅助芯片","rarity":2,"count":1,"weight":100},{"id":"3221","name":"近卫芯片","rarity":2,"count":1,"weight":100},{"id":"3281","name":"特种芯片","rarity":2,"count":1,"weight":100}],"totalWeight":800},{"id":"3221","name":"近卫芯片","goldCost":0,"costs":[{"id":"3281","name":"特种芯片","rarity":2,"count":3}],"extraOutcome":[{"id":"3231","name":"重装芯片","rarity":2,"count":1,"weight":100},{"id":"3261","name":"医疗芯片","rarity":2,"count":1,"weight":100},{"id":"3241","name":"狙击芯片","rarity":2,"count":1,"weight":100},{"id":"3251","name":"术师芯片","rarity":2,"count":1,"weight":100},{"id":"3211","name":"先锋芯片","rarity":2,"count":1,"weight":100},{"id":"3271","name":"辅助芯片","rarity":2,"count":1,"weight":100},{"id":"3221","name":"近卫芯片","rarity":2,"count":1,"weight":100},{"id":"3281","name":"特种芯片","rarity":2,"count":1,"weight":100}],"totalWeight":800},{"id":"3281","name":"特种芯片","goldCost":0,"costs":[{"id":"3221","name":"近卫芯片","rarity":2,"count":3}],"extraOutcome":[{"id":"3231","name":"重装芯片","rarity":2,"count":1,"weight":100},{"id":"3261","name":"医疗芯片","rarity":2,"count":1,"weight":100},{"id":"3241","name":"狙击芯片","rarity":2,"count":1,"weight":100},{"id":"3251","name":"术师芯片","rarity":2,"count":1,"weight":100},{"id":"3211","name":"先锋芯片","rarity":2,"count":1,"weight":100},{"id":"3271","name":"辅助芯片","rarity":2,"count":1,"weight":100},{"id":"3221","name":"近卫芯片","rarity":2,"count":1,"weight":100},{"id":"3281","name":"特种芯片","rarity":2,"count":1,"weight":100}],"totalWeight":800},{"id":"3232","name":"重装芯片组","goldCost":0,"costs":[{"id":"3262","name":"医疗芯片组","rarity":3,"count":3}],"extraOutcome":[{"id":"3232","name":"重装芯片组","rarity":3,"count":1,"weight":100},{"id":"3262","name":"医疗芯片组","rarity":3,"count":1,"weight":100},{"id":"3242","name":"狙击芯片组","rarity":3,"count":1,"weight":100},{"id":"3252","name":"术师芯片组","rarity":3,"count":1,"weight":100},{"id":"3212","name":"先锋芯片组","rarity":3,"count":1,"weight":100},{"id":"3272","name":"辅助芯片组","rarity":3,"count":1,"weight":100},{"id":"3222","name":"近卫芯片组","rarity":3,"count":1,"weight":100},{"id":"3282","name":"特种芯片组","rarity":3,"count":1,"weight":100}],"totalWeight":800},{"id":"3262","name":"医疗芯片组","goldCost":0,"costs":[{"id":"3232","name":"重装芯片组","rarity":3,"count":3}],"extraOutcome":[{"id":"3232","name":"重装芯片组","rarity":3,"count":1,"weight":100},{"id":"3262","name":"医疗芯片组","rarity":3,"count":1,"weight":100},{"id":"3242","name":"狙击芯片组","rarity":3,"count":1,"weight":100},{"id":"3252","name":"术师芯片组","rarity":3,"count":1,"weight":100},{"id":"3212","name":"先锋芯片组","rarity":3,"count":1,"weight":100},{"id":"3272","name":"辅助芯片组","rarity":3,"count":1,"weight":100},{"id":"3222","name":"近卫芯片组","rarity":3,"count":1,"weight":100},{"id":"3282","name":"特种芯片组","rarity":3,"count":1,"weight":100}],"totalWeight":800},{"id":"3242","name":"狙击芯片组","goldCost":0,"costs":[{"id":"3252","name":"术师芯片组","rarity":3,"count":3}],"extraOutcome":[{"id":"3232","name":"重装芯片组","rarity":3,"count":1,"weight":100},{"id":"3262","name":"医疗芯片组","rarity":3,"count":1,"weight":100},{"id":"3242","name":"狙击芯片组","rarity":3,"count":1,"weight":100},{"id":"3252","name":"术师芯片组","rarity":3,"count":1,"weight":100},{"id":"3212","name":"先锋芯片组","rarity":3,"count":1,"weight":100},{"id":"3272","name":"辅助芯片组","rarity":3,"count":1,"weight":100},{"id":"3222","name":"近卫芯片组","rarity":3,"count":1,"weight":100},{"id":"3282","name":"特种芯片组","rarity":3,"count":1,"weight":100}],"totalWeight":800},{"id":"3252","name":"术师芯片组","goldCost":0,"costs":[{"id":"3242","name":"狙击芯片组","rarity":3,"count":3}],"extraOutcome":[{"id":"3232","name":"重装芯片组","rarity":3,"count":1,"weight":100},{"id":"3262","name":"医疗芯片组","rarity":3,"count":1,"weight":100},{"id":"3242","name":"狙击芯片组","rarity":3,"count":1,"weight":100},{"id":"3252","name":"术师芯片组","rarity":3,"count":1,"weight":100},{"id":"3212","name":"先锋芯片组","rarity":3,"count":1,"weight":100},{"id":"3272","name":"辅助芯片组","rarity":3,"count":1,"weight":100},{"id":"3222","name":"近卫芯片组","rarity":3,"count":1,"weight":100},{"id":"3282","name":"特种芯片组","rarity":3,"count":1,"weight":100}],"totalWeight":800},{"id":"3212","name":"先锋芯片组","goldCost":0,"costs":[{"id":"3272","name":"辅助芯片组","rarity":3,"count":3}],"extraOutcome":[{"id":"3232","name":"重装芯片组","rarity":3,"count":1,"weight":100},{"id":"3262","name":"医疗芯片组","rarity":3,"count":1,"weight":100},{"id":"3242","name":"狙击芯片组","rarity":3,"count":1,"weight":100},{"id":"3252","name":"术师芯片组","rarity":3,"count":1,"weight":100},{"id":"3212","name":"先锋芯片组","rarity":3,"count":1,"weight":100},{"id":"3272","name":"辅助芯片组","rarity":3,"count":1,"weight":100},{"id":"3222","name":"近卫芯片组","rarity":3,"count":1,"weight":100},{"id":"3282","name":"特种芯片组","rarity":3,"count":1,"weight":100}],"totalWeight":800},{"id":"3272","name":"辅助芯片组","goldCost":0,"costs":[{"id":"3212","name":"先锋芯片组","rarity":3,"count":3}],"extraOutcome":[{"id":"3232","name":"重装芯片组","rarity":3,"count":1,"weight":100},{"id":"3262","name":"医疗芯片组","rarity":3,"count":1,"weight":100},{"id":"3242","name":"狙击芯片组","rarity":3,"count":1,"weight":100},{"id":"3252","name":"术师芯片组","rarity":3,"count":1,"weight":100},{"id":"3212","name":"先锋芯片组","rarity":3,"count":1,"weight":100},{"id":"3272","name":"辅助芯片组","rarity":3,"count":1,"weight":100},{"id":"3222","name":"近卫芯片组","rarity":3,"count":1,"weight":100},{"id":"3282","name":"特种芯片组","rarity":3,"count":1,"weight":100}],"totalWeight":800},{"id":"3222","name":"近卫芯片组","goldCost":0,"costs":[{"id":"3282","name":"特种芯片组","rarity":3,"count":3}],"extraOutcome":[{"id":"3232","name":"重装芯片组","rarity":3,"count":1,"weight":100},{"id":"3262","name":"医疗芯片组","rarity":3,"count":1,"weight":100},{"id":"3242","name":"狙击芯片组","rarity":3,"count":1,"weight":100},{"id":"3252","name":"术师芯片组","rarity":3,"count":1,"weight":100},{"id":"3212","name":"先锋芯片组","rarity":3,"count":1,"weight":100},{"id":"3272","name":"辅助芯片组","rarity":3,"count":1,"weight":100},{"id":"3222","name":"近卫芯片组","rarity":3,"count":1,"weight":100},{"id":"3282","name":"特种芯片组","rarity":3,"count":1,"weight":100}],"totalWeight":800},{"id":"3282","name":"特种芯片组","goldCost":0,"costs":[{"id":"3222","name":"近卫芯片组","rarity":3,"count":3}],"extraOutcome":[{"id":"3232","name":"重装芯片组","rarity":3,"count":1,"weight":100},{"id":"3262","name":"医疗芯片组","rarity":3,"count":1,"weight":100},{"id":"3242","name":"狙击芯片组","rarity":3,"count":1,"weight":100},{"id":"3252","name":"术师芯片组","rarity":3,"count":1,"weight":100},{"id":"3212","name":"先锋芯片组","rarity":3,"count":1,"weight":100},{"id":"3272","name":"辅助芯片组","rarity":3,"count":1,"weight":100},{"id":"3222","name":"近卫芯片组","rarity":3,"count":1,"weight":100},{"id":"3282","name":"特种芯片组","rarity":3,"count":1,"weight":100}],"totalWeight":800},{"id":"31024","name":"炽合金块","goldCost":300,"costs":[{"id":"30063","name":"全新装置","rarity":2,"count":1},{"id":"30093","name":"研磨石","rarity":2,"count":1},{"id":"31023","name":"炽合金","rarity":2,"count":1}],"extraOutcome":[{"id":"30013","name":"固源岩组","rarity":2,"count":1,"weight":60},{"id":"30023","name":"糖组","rarity":2,"count":1,"weight":50},{"id":"30033","name":"聚酸酯组","rarity":2,"count":1,"weight":50},{"id":"30043","name":"异铁组","rarity":2,"count":1,"weight":40},{"id":"30053","name":"酮凝集组","rarity":2,"count":1,"weight":40},{"id":"30063","name":"全新装置","rarity":2,"count":1,"weight":30},{"id":"30073","name":"扭转醇","rarity":2,"count":1,"weight":45},{"id":"30083","name":"轻锰矿","rarity":2,"count":1,"weight":40},{"id":"30093","name":"研磨石","rarity":2,"count":1,"weight":36},{"id":"30103","name":"RMA70-12","rarity":2,"count":1,"weight":30},{"id":"31013","name":"凝胶","rarity":2,"count":1,"weight":36},{"id":"31023","name":"炽合金","rarity":2,"count":1,"weight":40},{"id":"31033","name":"晶体元件","rarity":2,"count":1,"weight":40},{"id":"31043","name":"半自然溶剂","rarity":2,"count":1,"weight":36},{"id":"31053","name":"化合切削液","rarity":2,"count":1,"weight":36}],"totalWeight":609},{"id":"31014","name":"聚合凝胶","goldCost":300,"costs":[{"id":"30043","name":"异铁组","rarity":2,"count":1},{"id":"31013","name":"凝胶","rarity":2,"count":1},{"id":"31023","name":"炽合金","rarity":2,"count":1}],"extraOutcome":[{"id":"30013","name":"固源岩组","rarity":2,"count":1,"weight":60},{"id":"30023","name":"糖组","rarity":2,"count":1,"weight":50},{"id":"30033","name":"聚酸酯组","rarity":2,"count":1,"weight":50},{"id":"30043","name":"异铁组","rarity":2,"count":1,"weight":40},{"id":"30053","name":"酮凝集组","rarity":2,"count":1,"weight":40},{"id":"30063","name":"全新装置","rarity":2,"count":1,"weight":30},{"id":"30073","name":"扭转醇","rarity":2,"count":1,"weight":45},{"id":"30083","name":"轻锰矿","rarity":2,"count":1,"weight":40},{"id":"30093","name":"研磨石","rarity":2,"count":1,"weight":36},{"id":"30103","name":"RMA70-12","rarity":2,"count":1,"weight":30},{"id":"31013","name":"凝胶","rarity":2,"count":1,"weight":36},{"id":"31023","name":"炽合金","rarity":2,"count":1,"weight":40},{"id":"31033","name":"晶体元件","rarity":2,"count":1,"weight":40},{"id":"31043","name":"半自然溶剂","rarity":2,"count":1,"weight":36},{"id":"31053","name":"化合切削液","rarity":2,"count":1,"weight":36}],"totalWeight":609},{"id":"30145","name":"晶体电子单元","goldCost":400,"costs":[{"id":"31034","name":"晶体电路","rarity":3,"count":1},{"id":"31014","name":"聚合凝胶","rarity":3,"count":2},{"id":"31024","name":"炽合金块","rarity":3,"count":1}],"extraOutcome":[{"id":"30014","name":"提纯源岩","rarity":3,"count":1,"weight":84},{"id":"30024","name":"糖聚块","rarity":3,"count":1,"weight":63},{"id":"30034","name":"聚酸酯块","rarity":3,"count":1,"weight":63},{"id":"30044","name":"异铁块","rarity":3,"count":1,"weight":56},{"id":"30054","name":"酮阵列","rarity":3,"count":1,"weight":56},{"id":"30064","name":"改量装置","rarity":3,"count":1,"weight":42},{"id":"30074","name":"白马醇","rarity":3,"count":1,"weight":72},{"id":"30084","name":"三水锰矿","rarity":3,"count":1,"weight":63},{"id":"30094","name":"五水研磨石","rarity":3,"count":1,"weight":63},{"id":"30104","name":"RMA70-24","rarity":3,"count":1,"weight":56},{"id":"31014","name":"聚合凝胶","rarity":3,"count":1,"weight":72},{"id":"31024","name":"炽合金块","rarity":3,"count":1,"weight":63},{"id":"31034","name":"晶体电路","rarity":3,"count":1,"weight":56},{"id":"31044","name":"精炼溶剂","rarity":3,"count":1,"weight":63},{"id":"31054","name":"切削原液","rarity":3,"count":1,"weight":63}],"totalWeight":935},{"id":"31034","name":"晶体电路","goldCost":300,"costs":[{"id":"31033","name":"晶体元件","rarity":2,"count":2},{"id":"31013","name":"凝胶","rarity":2,"count":1},{"id":"31023","name":"炽合金","rarity":2,"count":1}],"extraOutcome":[{"id":"30013","name":"固源岩组","rarity":2,"count":1,"weight":60},{"id":"30023","name":"糖组","rarity":2,"count":1,"weight":50},{"id":"30033","name":"聚酸酯组","rarity":2,"count":1,"weight":50},{"id":"30043","name":"异铁组","rarity":2,"count":1,"weight":40},{"id":"30053","name":"酮凝集组","rarity":2,"count":1,"weight":40},{"id":"30063","name":"全新装置","rarity":2,"count":1,"weight":30},{"id":"30073","name":"扭转醇","rarity":2,"count":1,"weight":45},{"id":"30083","name":"轻锰矿","rarity":2,"count":1,"weight":40},{"id":"30093","name":"研磨石","rarity":2,"count":1,"weight":36},{"id":"30103","name":"RMA70-12","rarity":2,"count":1,"weight":30},{"id":"31013","name":"凝胶","rarity":2,"count":1,"weight":36},{"id":"31023","name":"炽合金","rarity":2,"count":1,"weight":40},{"id":"31033","name":"晶体元件","rarity":2,"count":1,"weight":40},{"id":"31043","name":"半自然溶剂","rarity":2,"count":1,"weight":36},{"id":"31053","name":"化合切削液","rarity":2,"count":1,"weight":36}],"totalWeight":609},{"id":"31044","name":"精炼溶剂","goldCost":300,"costs":[{"id":"31043","name":"半自然溶剂","rarity":2,"count":1},{"id":"31053","name":"化合切削液","rarity":2,"count":1},{"id":"31013","name":"凝胶","rarity":2,"count":1}],"extraOutcome":[{"id":"30013","name":"固源岩组","rarity":2,"count":1,"weight":60},{"id":"30023","name":"糖组","rarity":2,"count":1,"weight":50},{"id":"30033","name":"聚酸酯组","rarity":2,"count":1,"weight":50},{"id":"30043","name":"异铁组","rarity":2,"count":1,"weight":40},{"id":"30053","name":"酮凝集组","rarity":2,"count":1,"weight":40},{"id":"30063","name":"全新装置","rarity":2,"count":1,"weight":30},{"id":"30073","name":"扭转醇","rarity":2,"count":1,"weight":45},{"id":"30083","name":"轻锰矿","rarity":2,"count":1,"weight":40},{"id":"30093","name":"研磨石","rarity":2,"count":1,"weight":36},{"id":"30103","name":"RMA70-12","rarity":2,"count":1,"weight":30},{"id":"31013","name":"凝胶","rarity":2,"count":1,"weight":36},{"id":"31023","name":"炽合金","rarity":2,"count":1,"weight":40},{"id":"31033","name":"晶体元件","rarity":2,"count":1,"weight":40},{"id":"31043","name":"半自然溶剂","rarity":2,"count":1,"weight":36},{"id":"31053","name":"化合切削液","rarity":2,"count":1,"weight":36}],"totalWeight":609},{"id":"31054","name":"切削原液","goldCost":300,"costs":[{"id":"31053","name":"化合切削液","rarity":2,"count":1},{"id":"31033","name":"晶体元件","rarity":2,"count":1},{"id":"30103","name":"RMA70-12","rarity":2,"count":1}],"extraOutcome":[{"id":"30013","name":"固源岩组","rarity":2,"count":1,"weight":60},{"id":"30023","name":"糖组","rarity":2,"count":1,"weight":50},{"id":"30033","name":"聚酸酯组","rarity":2,"count":1,"weight":50},{"id":"30043","name":"异铁组","rarity":2,"count":1,"weight":40},{"id":"30053","name":"酮凝集组","rarity":2,"count":1,"weight":40},{"id":"30063","name":"全新装置","rarity":2,"count":1,"weight":30},{"id":"30073","name":"扭转醇","rarity":2,"count":1,"weight":45},{"id":"30083","name":"轻锰矿","rarity":2,"count":1,"weight":40},{"id":"30093","name":"研磨石","rarity":2,"count":1,"weight":36},{"id":"30103","name":"RMA70-12","rarity":2,"count":1,"weight":30},{"id":"31013","name":"凝胶","rarity":2,"count":1,"weight":36},{"id":"31023","name":"炽合金","rarity":2,"count":1,"weight":40},{"id":"31033","name":"晶体元件","rarity":2,"count":1,"weight":40},{"id":"31043","name":"半自然溶剂","rarity":2,"count":1,"weight":36},{"id":"31053","name":"化合切削液","rarity":2,"count":1,"weight":36}],"totalWeight":609}]
    

    It is generated by the following script, with building_data.json and item_table.json.

    const fs = require("fs");
    
    const building_data_json = JSON.parse(fs.readFileSync("./building_data.json", "utf8"));
    const item_table_json = JSON.parse(fs.readFileSync("./item_table.json", "utf8"));
    
    const items = item_table_json.items;
    const rawFormulas = building_data_json.workshopFormulas;
    const newFormulas = Object.entries(rawFormulas).map(([, formula]) => {
      let costs = formula.costs.map((costItem) => ({
        id: costItem.id,
        name: items[costItem.id].name,
        rarity: items[costItem.id].rarity,
        count: costItem.count,
      }));
      let extraOutcome = formula.extraOutcomeGroup.map((extraOutcomeItem) => ({
        id: extraOutcomeItem.itemId,
        name: items[extraOutcomeItem.itemId].name,
        rarity: items[extraOutcomeItem.itemId].rarity,
        count: extraOutcomeItem.itemCount,
        weight: extraOutcomeItem.weight,
      }));
      let totalWeight = extraOutcome.map((extraOutcomeItem) => extraOutcomeItem.weight).reduce((a, b) => a + b, 0);
      let newFormula = {
        id: formula.itemId,
        name: items[formula.itemId].name,
        goldCost: formula.goldCost,
        costs: costs,
        extraOutcome: extraOutcome,
        totalWeight: totalWeight,
      };
      return newFormula;
    });
    
    fs.writeFileSync("./formulas.json", JSON.stringify(newFormulas, null, null));
    
    opened by FlandiaYingman 7
  • feat: isolate the spawn of report consumer workers and service

    feat: isolate the spawn of report consumer workers and service

    further isolate the report consumer worker spawn and report service.

    Reason: Since the calc workers are spawned separately, so should the report consumer workers.

    And maybe we can specify the number of workers in config.Config and add an environment variable when starting the whole server? And we can intentionally leave it blank to use the default value that equals the number of CPUs

    opened by innovationb1ue 5
  • K8s Migration: Containerize Services

    K8s Migration: Containerize Services

    Services to containerize

    • [x] backend-next: Website Next Backend
    • [x] frontend-v2: Website v2 Frontend
    • [x] widget-backend: Widget Backend
      • [x] widget-docs: Widget Docs
      • [x] widget-frontend: Widget Frontend
    • [x] planner: Planner Backend
    • [x] probe: Probe Service
      • [x] prometheus: Prometheus DB
      • [x] grafana: Grafana Dashboard
    opened by GalvinGao 4
  • fix(deps): update golang.org/x/exp digest to a9213ee

    fix(deps): update golang.org/x/exp digest to a9213ee

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | golang.org/x/exp | require | digest | 39d4317 -> a9213ee |


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 3
  • chore(deps): update docker/build-push-action digest to 1527803

    chore(deps): update docker/build-push-action digest to 1527803

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | docker/build-push-action | action | digest | ad44023 -> 1527803 |


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 3
  • NATS Slow Consumer Mitigation

    NATS Slow Consumer Mitigation

    When NATS encountered a slow consumer it will drop the message, losing the report content. This has happened before extremely rarely but still have a huge potential to go wrong in the future, especially when we migrate to the k8s cluster

    bug infrastructure 
    opened by GalvinGao 3
  • Migrate to Go 1.18!

    Migrate to Go 1.18!

    Go 1.18 has been released 8 hours ago (https://go.dev/blog/go1.18). Migrate to use the terrific Generics and Fuzzing features and 20% Performance Improvements (says the article)!

    opened by FlandiaYingman 3
  • fix(deps): update github.com/gofiber/contrib/fibersentry digest to 99317a0

    fix(deps): update github.com/gofiber/contrib/fibersentry digest to 99317a0

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | github.com/gofiber/contrib/fibersentry | require | digest | 8ccfafc -> 99317a0 |


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 2
  • fix(deps): update module github.com/avast/retry-go to v3.1.1

    fix(deps): update module github.com/avast/retry-go to v3.1.1

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | github.com/avast/retry-go | require | minor | v3.0.0+incompatible -> v3.1.1 |


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Renovate will not automatically rebase this PR, because other commits have been found.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ Warning: custom changes will be lost.

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 2
  • Configure Renovate

    Configure Renovate

    Mend Renovate

    Welcome to Renovate! This is an onboarding PR to help you understand and configure settings before regular Pull Requests begin.

    🚦 To activate Renovate, merge this Pull Request. To disable Renovate, simply close this Pull Request unmerged.


    Detected Package Files

    • Dockerfile (dockerfile)
    • .github/workflows/build-check.yml (github-actions)
    • .github/workflows/build-release.yml (github-actions)
    • .github/workflows/tag-on-release-pr.yml (github-actions)
    • go.mod (gomod)

    Configuration Summary

    Based on the default config's presets, Renovate will:

    • Start dependency updates only once this onboarding PR is merged
    • Enable Renovate Dependency Dashboard creation
    • If semantic commits detected, use semantic commit type fix for dependencies and chore for all others
    • Ignore node_modules, bower_components, vendor and various test/tests directories
    • Autodetect whether to pin dependencies or maintain ranges
    • Rate limit PR creation to a maximum of two per hour
    • Limit to maximum 10 open PRs at any time
    • Group known monorepo packages together
    • Use curated list of recommended non-monorepo package groupings
    • Fix some problems with very old Maven commons versions
    • Ignore spring cloud 1.x releases
    • Ignore web3j 5.0.0 release
    • Ignore http4s digest-based 1.x milestones
    • Use node versioning for @types/node
    • Limit concurrent requests to reduce load on Repology servers until we can fix this properly, see issue 10133
    • Do not upgrade from Alpine stable to edge

    🔡 Would you like to change the way Renovate is upgrading your dependencies? Simply edit the renovate.json in this branch with your custom config and the list of Pull Requests in the "What to Expect" section below will be updated the next time Renovate runs.


    What to Expect

    With your current configuration, Renovate will create 27 Pull Requests:

    chore(deps): update docker/build-push-action digest to 4c2810a
    • Schedule: ["at any time"]
    • Branch name: renovate/docker-build-push-action-digest
    • Merge into: main
    • Upgrade docker/build-push-action to 4c2810ab91206d25f3659f1d071b3b189e14ae1c
    fix(deps): update github.com/gofiber/contrib/fibersentry digest to 8ccfafc
    • Schedule: ["at any time"]
    • Branch name: renovate/github.com-gofiber-contrib-fibersentry-digest
    • Merge into: main
    • Upgrade github.com/gofiber/contrib/fibersentry to 8ccfafc37b123b0097d2ccfad9212e6ea9a91c07
    fix(deps): update golang.org/x/exp digest to 4a0574d
    • Schedule: ["at any time"]
    • Branch name: renovate/golang.org-x-exp-digest
    • Merge into: main
    • Upgrade golang.org/x/exp to 4a0574d9293f49b845ffe3ee2022d9124a127a57
    chore(deps): update dependency golang to v1.18.3
    • Schedule: ["at any time"]
    • Branch name: renovate/golang-1.x
    • Merge into: main
    • Upgrade golang to 1.18.3-alpine
    fix(deps): update module github.com/go-redis/redis/v8 to v8.11.5
    • Schedule: ["at any time"]
    • Branch name: renovate/github.com-go-redis-redis-v8-8.x
    • Merge into: main
    • Upgrade github.com/go-redis/redis/v8 to v8.11.5
    fix(deps): update module github.com/goccy/go-json to v0.9.7
    • Schedule: ["at any time"]
    • Branch name: renovate/github.com-goccy-go-json-0.x
    • Merge into: main
    • Upgrade github.com/goccy/go-json to v0.9.7
    fix(deps): update module github.com/gofiber/helmet/v2 to v2.2.13
    • Schedule: ["at any time"]
    • Branch name: renovate/github.com-gofiber-helmet-v2-2.x
    • Merge into: main
    • Upgrade github.com/gofiber/helmet/v2 to v2.2.13
    fix(deps): update module github.com/stretchr/testify to v1.7.1
    • Schedule: ["at any time"]
    • Branch name: renovate/github.com-stretchr-testify-1.x
    • Merge into: main
    • Upgrade github.com/stretchr/testify to v1.7.1
    fix(deps): update module go.uber.org/fx to v1.17.1
    • Schedule: ["at any time"]
    • Branch name: renovate/go.uber.org-fx-1.x
    • Merge into: main
    • Upgrade go.uber.org/fx to v1.17.1
    fix(deps): update module github.com/avast/retry-go to v3.1.1
    • Schedule: ["at any time"]
    • Branch name: renovate/github.com-avast-retry-go-3.x
    • Merge into: main
    • Upgrade github.com/avast/retry-go to v3.1.1
    fix(deps): update module github.com/getsentry/sentry-go to v0.13.0
    • Schedule: ["at any time"]
    • Branch name: renovate/github.com-getsentry-sentry-go-0.x
    • Merge into: main
    • Upgrade github.com/getsentry/sentry-go to v0.13.0
    fix(deps): update module github.com/go-playground/validator/v10 to v10.11.0
    fix(deps): update module github.com/gofiber/fiber/v2 to v2.34.0
    • Schedule: ["at any time"]
    • Branch name: renovate/github.com-gofiber-fiber-v2-2.x
    • Merge into: main
    • Upgrade github.com/gofiber/fiber/v2 to v2.34.0
    fix(deps): update module github.com/nats-io/nats.go to v1.16.0
    • Schedule: ["at any time"]
    • Branch name: renovate/github.com-nats-io-nats.go-1.x
    • Merge into: main
    • Upgrade github.com/nats-io/nats.go to v1.16.0
    fix(deps): update module github.com/oschwald/geoip2-golang to v1.7.0
    fix(deps): update module github.com/rs/xid to v1.4.0
    • Schedule: ["at any time"]
    • Branch name: renovate/github.com-rs-xid-1.x
    • Merge into: main
    • Upgrade github.com/rs/xid to v1.4.0
    fix(deps): update module github.com/samber/lo to v1.21.0
    • Schedule: ["at any time"]
    • Branch name: renovate/github.com-samber-lo-1.x
    • Merge into: main
    • Upgrade github.com/samber/lo to v1.21.0
    fix(deps): update module github.com/tidwall/gjson to v1.14.1
    • Schedule: ["at any time"]
    • Branch name: renovate/github.com-tidwall-gjson-1.x
    • Merge into: main
    • Upgrade github.com/tidwall/gjson to v1.14.1
    fix(deps): update module github.com/uptrace/bun to v1.1.5
    • Schedule: ["at any time"]
    • Branch name: renovate/github.com-uptrace-bun-1.x
    • Merge into: main
    • Upgrade github.com/uptrace/bun to v1.1.5
    fix(deps): update module github.com/uptrace/bun/dialect/pgdialect to v1.1.5
    fix(deps): update module github.com/uptrace/bun/driver/pgdriver to v1.1.5
    fix(deps): update module github.com/uptrace/bun/extra/bundebug to v1.1.5
    fix(deps): update module github.com/uptrace/bun/extra/bunotel to v1.1.5
    fix(deps): update module github.com/valyala/fasthttp to v1.37.0
    • Schedule: ["at any time"]
    • Branch name: renovate/github.com-valyala-fasthttp-1.x
    • Merge into: main
    • Upgrade github.com/valyala/fasthttp to v1.37.0
    fix(deps): update opentelemetry-go monorepo to v1.7.0
    chore(deps): update actions/checkout action to v3
    • Schedule: ["at any time"]
    • Branch name: renovate/actions-checkout-3.x
    • Merge into: main
    • Upgrade actions/checkout to v3
    fix(deps): update module github.com/avast/retry-go to v4
    • Schedule: ["at any time"]
    • Branch name: renovate/github.com-avast-retry-go-4.x
    • Merge into: main
    • Upgrade github.com/avast/retry-go to v4.0.5

    🚸 Branch creation will be limited to maximum 2 per hour, so it doesn't swamp any CI resources or spam the project. See docs for prhourlylimit for details.


    ❓ Got questions? Check out Renovate's Docs, particularly the Getting Started section. If you need any further assistance then you can also request help here.


    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 2
  • fix(deps): update github.com/dchest/uniuri digest to 3027df4

    fix(deps): update github.com/dchest/uniuri digest to 3027df4

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | github.com/dchest/uniuri | require | digest | 7aecb25 -> 3027df4 |


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • fix(deps): update module go.uber.org/fx to v1.18.2

    fix(deps): update module go.uber.org/fx to v1.18.2

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | go.uber.org/fx | require | patch | v1.18.1 -> v1.18.2 |


    Release Notes

    uber-go/fx

    v1.18.2

    Compare Source

    Added

    • Clarify ordering of Invokes in Modules.

    Fixed

    • Fix Decorate not being applied to transitive dependencies at root App level.


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • fix(deps): update module github.com/nats-io/nats.go to v1.17.0

    fix(deps): update module github.com/nats-io/nats.go to v1.17.0

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | github.com/nats-io/nats.go | require | minor | v1.16.0 -> v1.17.0 |


    Release Notes

    nats-io/nats.go

    v1.17.0

    Compare Source

    Changelog

    IMPORTANT

    This release uses a new consumer create API when interacting with nats-server version 2.9.0 or higher. This changes the subjects used by the client to create consumers, which might in some cases require changes in access and import/export configuration. To opt out of this feature, use UseLegacyDurableConsumers() option when creating JetStreamContext.

    Added
    • JetStream:

      • Support for enhanced stream purge. PurgeStream() now accepts StreamPurgeRequest as an option, allowing partial purge by subject sequence number or keeping selected number of messages (#​988)
      • Option to fetch DeletedDetails when fetching StreamInfo. StreamInfo() now accepts StreamInfoRequest allowing to pass DeletedDetails flag (#​990)
      • Option to report subjects on StreamInfo() request. StreamInfo() now accepts StreamInfoRequest allowing to pass SubjectsFilter value (#​1010)
      • Support AllowDirect in stream configuration, enabling faster access to individual messages on a stream (#​991)
      • Support for DirectGet API in GetMsg() through DirectGet() and DirectGetNext() options (#​1020, #​1030)
      • HeadersOnly option to RePublish field on stream configuration and change struct name to RePublish (#​991)
      • SecureDeleteMsg() method to securely delete and overwrite a message on a stream (#​1025)
      • MaxRequestMaxBytes() PullConsumer() option allowing setting the maximum number of bytes a single Fetch()can receive (#​1043)
      • Filter streams and stream names by subject in StreamsInfo() and StreamNames() using StreamListFilter() option (#​1062)
      • Accept AckAll for pull consumers. Thanks to @​neilalexander for the contribution (#​1063)
      • Support for setting consumer replicas through Subscribe() options. Thanks to @​goku321 for the contribution (#​1019)
      • Support for setting memory storage on consumer with ConsumerMemoryStorage() option in Subscribe(). Thanks to @​goku321 for the contribution (#​1078)
    • KV:

      • RePublish option on key value configuration (#​1031)
    • ObjectStore:

      • ObjectStores() and ObjectStoreNames() methods for listing object store buckets (#​1074)
    • TLSConnectionState() to expose TLS connection state (#​996)

    • UserJWTAndSeed helper function accepting JWT and seed as parameters (#​1046)

    • natsProtoErr type for proto error normalization and comparison using errors.Is() (#​1082)

    Improved
    • JetStream

      • Add JetStreamError type for all JetStream related errors, containing error codes (for API errors). JetStreamError supports comparing and unwrapping errors using native errors package (#​1044, #​1047)
      • Force Subscribe() to use memory storage and no replicas when using OrderedConsumer() (#​989)
      • Consistent error value of context timeout when using Fetch() on pull subscription. Thanks to @​wdhongtw for the contribution (#​1011)
      • Add additional note to PullSubscribe() on durable semantics (#​994)
    • KV:

      • Utilize DirectGet() in KV for improved performence (#​1020)
    • Add support for reporting flusher errors. THanks to @​GeorgeEngland for the contribution (#​1015)

    • Mention field defaults in Options struct documentation. Thanks to @​costela for the contribution (#​1013)

    Changed
    • JetStream:
      • DeleteMsg() now uses NoErase option by default, not overwriting the message on stream (only marking it as deleted) (#​1025)
      • StreamInfo() will now return all subjects when requested (#​1072)
    Updated
    • JetStream:
      • [BREAKING] Use new consumer create API when interacting with nats-server version 2.9.0 or higher. This changes the subjects used by the client to create consumers, which might in some cases require changes in access and import/export configuration. To opt out of this feature, use UseLegacyDurableConsumers() option when creating JetStreamContext (#​1080)
      • Add missing fields to AccountInfo schema (#​1026)
      • Align StreamSourceInfo schema with server (#​1039)
    • Use nats-server 2.9.0 in tests (#​1073)
    • Add new test TLS certs and run tests for go 1.18 in CI (#​1023, #​1055)
    Fixed
    • JetStream

      • Subscribe() automatically sending ACK when AckPolicyNone is set (#​987)
      • Return error when attempting to ACK a message on a AckNone consumer (#​1032)
      • Use native time.Time.Equal method for equality check when comparing consumer configs (#​993)
      • Ephemeral PullConsumer's Fetch() failing with "no responders" (#​1022)
      • ConsumerInfo nil pointer dereference when jsi is not initialized. Thanks to @​Sergey-Belyakov for the contribution (#​1024)
      • Paging in stream and consumer name listing (#​1060)
    • ObjectStore

      • Update object Put() to avoid loosing last chunk when Reader returns both value and EOF. Thanks to @​tinou98 for the contribution (#​995)
      • Invalid digest decoding on object Get(), not propagating errors from Get() to the user (#​1052)
      • Allow updating meta if new name exists but is deleted (#​1053)
      • Disallow adding links in Put() object meta (#​1057)
    • Typo in CustomInboxPrefix() error message. Thanks to @​subtle-byte for the contribution (#​1028)

    • Ignore trailing comma at the end of URL lists (#​1058)

    Complete Changes

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • fix(deps): update golang.org/x/exp digest to ec3f013

    fix(deps): update golang.org/x/exp digest to ec3f013

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | golang.org/x/exp | require | digest | 807a232 -> ec3f013 |


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • Dependency Dashboard

    Dependency Dashboard

    This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

    Open

    These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

    Detected dependencies

    dockerfile
    Dockerfile
    • golang 1.19.1-alpine
    github-actions
    .github/workflows/build-check.yml
    • actions/checkout v3
    .github/workflows/build-release.yml
    • actions/checkout v3
    .github/workflows/release-dispatcher.yml
    • actions/checkout v3
    • actions/github-script v6
    gomod
    go.mod
    • go 1.19
    • github.com/ahmetb/go-linq/v3 v3.2.0
    • github.com/ansrivas/fiberprometheus/v2 v2.4.1
    • github.com/antonmedv/expr v1.9.0
    • github.com/avast/retry-go/v3 v3.1.1
    • github.com/davecgh/go-spew v1.1.1
    • github.com/dchest/uniuri [email protected]
    • github.com/getsentry/sentry-go v0.13.0
    • github.com/go-playground/locales v0.14.0
    • github.com/go-playground/universal-translator v0.18.0
    • github.com/go-playground/validator/v10 v10.11.1
    • github.com/go-redis/redis/v8 v8.11.5
    • github.com/go-redsync/redsync/v4 v4.6.0
    • github.com/goccy/go-json v0.9.11
    • github.com/gofiber/contrib/fibersentry [email protected]
    • github.com/gofiber/contrib/otelfiber [email protected]
    • github.com/gofiber/fiber/v2 v2.38.1
    • github.com/gofiber/helmet/v2 v2.2.16
    • github.com/gofiber/swagger v0.1.2
    • github.com/jinzhu/copier v0.3.5
    • github.com/joho/godotenv v1.4.0
    • github.com/kelseyhightower/envconfig v1.4.0
    • github.com/nats-io/nats.go v1.16.0
    • github.com/oschwald/geoip2-golang v1.8.0
    • github.com/pkg/errors v0.9.1
    • github.com/prometheus/client_golang v1.13.0
    • github.com/rs/xid v1.4.0
    • github.com/rs/zerolog v1.28.0
    • github.com/samber/lo v1.28.2
    • github.com/stretchr/testify v1.8.0
    • github.com/swaggo/swag v1.8.6
    • github.com/tidwall/gjson v1.14.3
    • github.com/uptrace/bun v1.1.8
    • github.com/uptrace/bun/dialect/pgdialect v1.1.8
    • github.com/uptrace/bun/driver/pgdriver v1.1.8
    • github.com/uptrace/bun/extra/bundebug v1.1.8
    • github.com/uptrace/bun/extra/bunotel v1.1.8
    • github.com/vmihailenco/msgpack/v5 v5.3.5
    • github.com/zeebo/xxh3 v1.0.2
    • go.opentelemetry.io/otel v1.10.0
    • go.opentelemetry.io/otel/exporters/jaeger v1.10.0
    • go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.10.0
    • go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.10.0
    • go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.10.0
    • go.opentelemetry.io/otel/sdk v1.10.0
    • go.uber.org/fx v1.18.1
    • golang.org/x/exp [email protected]
    • golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4
    • golang.org/x/text v0.3.7
    • gopkg.in/guregu/null.v3 v3.5.0
    • gopkg.in/natefinch/lumberjack.v2 v2.0.0
    • github.com/patrickmn/go-cache v2.1.0+incompatible
    • github.com/valyala/fasthttp v1.40.0
    • go.opentelemetry.io/otel/trace v1.10.0

    • [ ] Check this box to trigger a request for Renovate to run again on this repository
    opened by renovate[bot] 0
Releases(v3.6.2)
Owner
Penguin Statistics
Penguin Statistics is a nonprofit organization. We collect item drop data for mobile game Arknights and generate statistical results.
Penguin Statistics
Logging library for Leadjet backend services

Logger Logging library for Leadjet backend services. Install go get -u github.com/Leadjet/logger Usage Initiate a Zap logger; err := zap.RegisterLog(

Leadjet 1 Feb 21, 2022
Backend APIs for Hello Profile

Hello Profile Backend Service Backend application for Hello profile. Description This is the backend application for Hello profile. The application is

Okechukwu Prince 0 Dec 12, 2021
An Example about how React can be bootstrapped with Go backend

go-reactjs-example This is an exmple web use Golang(Yaelf95) And ReactJS Build Suggest install node through nvm npm install -g webpack npm install mak

Yahya Elfaqir 0 Nov 27, 2021
An open-source, distributed, cloud-native CD (Continuous Delivery) product designed for developersAn open-source, distributed, cloud-native CD (Continuous Delivery) product designed for developers

Developer-oriented Continuous Delivery Product ⁣ English | 简体中文 Table of Contents Zadig Table of Contents What is Zadig Quick start How to use? How to

null 0 Oct 19, 2021
A terminal designed for anyone to use and designed for any platform

A terminal designed for anyone to use and designed for any platform. Which includes the basic features of any terminal and includes friendly commands to perform tools such as ping, traceroute, generate key pairs, encrypt/decrypt, router security actions, etc. All of the source code is done in Go.

Karun Kanda 1 Jan 25, 2022
Formrecevr is a simple and lightweight from receiver backend primarily designed for (but not limited to) static websites.

Formrecevr Formrecevr (pronunced "Form receiver") is a simple and lightweight from receiver backend primarily designed for (but not limited to) static

Dorian Zedler 2 Apr 17, 2022
GNU GSL Statistics library (v1.15, GPLv3) implemented in Go

Statistics Pure Go implementation of the GSL Statistics library. For the API overview see Godoc. Why create this repository when there is also "github

grd 77 Nov 23, 2021
A well tested and comprehensive Golang statistics library package with no dependencies.

Stats - Golang Statistics Package A well tested and comprehensive Golang statistics library / package / module with no dependencies. If you have any s

Montana Flynn 2.5k Sep 29, 2022
Provide Go Statistics Handler, Struct, Measure Method

Go Statistics Handler About The gosh is an abbreviation for Go Statistics Handler. This Repository is provided following functions. Go runtime statist

Osamu TONOMORI 31 Sep 27, 2022
:rocket: Instant live visualization of your Go application runtime statistics (GC, MemStats, etc.) in the browser

Statsviz Instant live visualization of your Go application runtime statistics (GC, MemStats, etc.). Import "github.com/arl/statsviz" Register statsviz

Aurélien Rainone 2.2k Sep 20, 2022
DataFrames for Go: For statistics, machine-learning, and data manipulation/exploration

Dataframes are used for statistics, machine-learning, and data manipulation/exploration. You can think of a Dataframe as an excel spreadsheet. This pa

null 885 Sep 23, 2022
Gonum is a set of numeric libraries for the Go programming language. It contains libraries for matrices, statistics, optimization, and more

Gonum Installation The core packages of the Gonum suite are written in pure Go with some assembly. Installation is done using go get. go get -u gonum.

null 6.1k Sep 25, 2022
GoStats is a go library for math statistics mostly used in ML domains, it covers most of the statistical measures functions.

GoStats GoStats is an Open Source Go library for math statistics mostly used in Machine Learning domains, it covers most of the Statistical measures f

Ilyes 19 Sep 16, 2022
A well tested and comprehensive Golang statistics library package with no dependencies.

Stats - Golang Statistics Package A well tested and comprehensive Golang statistics library / package / module with no dependencies. If you have any s

Montana Flynn 2.5k Sep 24, 2022
OS system statistics library for Go

OS system statistics library for Go This is a library to get system metrics like cpu load and memory usage. The library is created for mackerel-agent.

Mackerel 257 Sep 23, 2022
Gonum is a set of numeric libraries for the Go programming language. It contains libraries for matrices, statistics, optimization, and more

Gonum Installation The core packages of the Gonum suite are written in pure Go with some assembly. Installation is done using go get. go get -u gonum.

null 6.1k Sep 26, 2022
DataFrames for Go: For statistics, machine-learning, and data manipulation/exploration

Dataframes are used for statistics, machine-learning, and data manipulation/exploration. You can think of a Dataframe as an excel spreadsheet. This pa

null 886 Sep 27, 2022
A well tested and comprehensive Golang statistics library package with no dependencies.

Stats - Golang Statistics Package A well tested and comprehensive Golang statistics library / package / module with no dependencies. If you have any s

Montana Flynn 2.5k Sep 24, 2022
Simple golang script for getting VK message statistics

vk-message-counter Simple golang script for getting VK message statistics Example package main import ( "fmt" "github.com/joho/godotenv" counter "

Pavel Torbeev 6 Apr 6, 2022