diff --git a/Assets/Framework/Event/ConstEventString.cs b/Assets/Framework/Event/ConstEventString.cs index 210407291..9599108f2 100644 --- a/Assets/Framework/Event/ConstEventString.cs +++ b/Assets/Framework/Event/ConstEventString.cs @@ -5,5 +5,6 @@ public class ConstEventString public const string SyncGameData_FireBullet = "SyncGameData_FireBullet"; public const string SyncGameData_CreateFish = "SyncGameData_CreateFish"; public const string SyncGameData_ChangeTargetMonster = "SyncGameData_ChangeTargetMonster"; + public const string SyncGameData_RendromDieFish = "SyncGameData_RenderDieFish"; } diff --git a/Assets/MyGame/Scripts/Manager/CreateFishManager.cs b/Assets/MyGame/Scripts/Manager/CreateFishManager.cs index 1cad2f84d..96fb5d786 100644 --- a/Assets/MyGame/Scripts/Manager/CreateFishManager.cs +++ b/Assets/MyGame/Scripts/Manager/CreateFishManager.cs @@ -856,7 +856,7 @@ public class CreateFishManager : MonoSingleton break; } } - public void Id_DieFish(string fishId) + public void Id_DieFish_NotFX(string fishId) { if (fishDatas_hashCodekey.ContainsKey(fishId)) { diff --git a/Assets/MyGame/Scripts/Net/WebResponses/SyncGameData.cs b/Assets/MyGame/Scripts/Net/WebResponses/SyncGameData.cs index 9affd117f..6676c3ffe 100644 --- a/Assets/MyGame/Scripts/Net/WebResponses/SyncGameData.cs +++ b/Assets/MyGame/Scripts/Net/WebResponses/SyncGameData.cs @@ -12,11 +12,12 @@ namespace Assets.MyGame.Scripts.Net.WebResponses [Serializable] public enum FrameDataType { - none=0, + none = 0, rotateTurrect, fireBullet, createFish, - changeAutoTarget + changeAutoTarget, + randomDieFish, } /// @@ -25,7 +26,7 @@ namespace Assets.MyGame.Scripts.Net.WebResponses [Serializable] public class SyncGameData { - public int sitPos; + public int sitPos; public FrameDataType frameType; public long time; public Object frameData; @@ -34,7 +35,7 @@ namespace Assets.MyGame.Scripts.Net.WebResponses [Serializable] public class FrameData { - + } [Serializable] public class FrameData_Rotate : FrameData @@ -64,4 +65,9 @@ namespace Assets.MyGame.Scripts.Net.WebResponses { public string targetGuid; } + [Serializable] + public class FrameData_RandomDieFish : FrameData + { + public List guid=new List(); + } } diff --git a/Assets/MyGame/Scripts/Net/WebSocketReponseList.cs b/Assets/MyGame/Scripts/Net/WebSocketReponseList.cs index 8ff44352a..5fdbf3674 100644 --- a/Assets/MyGame/Scripts/Net/WebSocketReponseList.cs +++ b/Assets/MyGame/Scripts/Net/WebSocketReponseList.cs @@ -158,6 +158,9 @@ namespace Assets.MyGame.Scripts.Net case FrameDataType.changeAutoTarget: EventCenter.Instance.EventTrigger(ConstEventString.SyncGameData_ChangeTargetMonster, syncGameData); break; + case FrameDataType.randomDieFish: + EventCenter.Instance.EventTrigger(ConstEventString.SyncGameData_ChangeTargetMonster, syncGameData); + break; default: break; } diff --git a/Assets/MyGame/aa/UI/Game/GameMainPanel_FishBase.cs b/Assets/MyGame/aa/UI/Game/GameMainPanel_FishBase.cs index 3964b36bc..02372c9a5 100644 --- a/Assets/MyGame/aa/UI/Game/GameMainPanel_FishBase.cs +++ b/Assets/MyGame/aa/UI/Game/GameMainPanel_FishBase.cs @@ -60,6 +60,7 @@ public class GameMainPanel_FishBase : GameMainPanel_Base EventCenter.Instance.AddEventListener(ConstEventString.SyncGameData_Rotate, SyncGameData_Rotate); EventCenter.Instance.AddEventListener(ConstEventString.SyncGameData_FireBullet, SyncGameData_FireBullit); EventCenter.Instance.AddEventListener(ConstEventString.SyncGameData_ChangeTargetMonster, SyncGameData_ChangeTargetMonster); + EventCenter.Instance.AddEventListener(ConstEventString.SyncGameData_RendromDieFish, SyncGameData_ChangeTargetMonster); subUIManager.boardCast_Boss = boardCast_Boss; FishResourcesData.LoadFishAssetsData(); MonsterMoveLine.LoadBezier();//初始化加载路线 diff --git a/Assets/Scripts/Assembly-CSharp/Eff_yilong_AniEvent.cs b/Assets/Scripts/Assembly-CSharp/Eff_yilong_AniEvent.cs index 14d835480..ec41c8d56 100644 --- a/Assets/Scripts/Assembly-CSharp/Eff_yilong_AniEvent.cs +++ b/Assets/Scripts/Assembly-CSharp/Eff_yilong_AniEvent.cs @@ -82,7 +82,7 @@ public class Eff_yilong_AniEvent : MonoBehaviour } public void AniEnd() { - CreateFishManager.Instance.Id_DieFish(transform.parent.parent.GetComponent().guid); + CreateFishManager.Instance.Id_DieFish_NotFX(transform.parent.parent.GetComponent().guid); } /* diff --git a/LuBanConfig/GenerateDatas/json/demo_tbitem.json b/LuBanConfig/GenerateDatas/json/demo_tbitem.json new file mode 100644 index 000000000..06e888f89 --- /dev/null +++ b/LuBanConfig/GenerateDatas/json/demo_tbitem.json @@ -0,0 +1,14 @@ +[ + { + "id": 1001, + "name": "道具1", + "desc": "描述1", + "count": 10 + }, + { + "id": 1002, + "name": "道具2", + "desc": "描述2", + "count": 100 + } +] \ No newline at end of file diff --git a/LuBanConfig/GenerateDatas/json/tbgift.json b/LuBanConfig/GenerateDatas/json/tbgift.json new file mode 100644 index 000000000..3b9a4bcc5 --- /dev/null +++ b/LuBanConfig/GenerateDatas/json/tbgift.json @@ -0,0 +1,46 @@ +[ + { + "id": 1, + "x1": 1212 + }, + { + "id": 2, + "x1": 1222 + }, + { + "id": 3, + "x1": 4242 + }, + { + "id": 4, + "x1": 5255.3335 + }, + { + "id": 5, + "x1": 6770.3335 + }, + { + "id": 6, + "x1": 8285.333 + }, + { + "id": 7, + "x1": 9800.333 + }, + { + "id": 8, + "x1": 11315.333 + }, + { + "id": 9, + "x1": 12830.333 + }, + { + "id": 10, + "x1": 14345.333 + }, + { + "id": 11, + "x1": 15860.333 + } +] \ No newline at end of file diff --git a/LuBanConfig/MiniTemplate/Datas/#Audio.xlsx b/LuBanConfig/MiniTemplate/Datas/#Audio.xlsx new file mode 100644 index 000000000..261b7cef7 Binary files /dev/null and b/LuBanConfig/MiniTemplate/Datas/#Audio.xlsx differ diff --git a/LuBanConfig/MiniTemplate/Datas/#BulletResources.xlsx b/LuBanConfig/MiniTemplate/Datas/#BulletResources.xlsx new file mode 100644 index 000000000..a492a8398 Binary files /dev/null and b/LuBanConfig/MiniTemplate/Datas/#BulletResources.xlsx differ diff --git a/LuBanConfig/MiniTemplate/Datas/#EffectFXResources.xlsx b/LuBanConfig/MiniTemplate/Datas/#EffectFXResources.xlsx new file mode 100644 index 000000000..70aac303d Binary files /dev/null and b/LuBanConfig/MiniTemplate/Datas/#EffectFXResources.xlsx differ diff --git a/LuBanConfig/MiniTemplate/Datas/#FishResources.xlsx b/LuBanConfig/MiniTemplate/Datas/#FishResources.xlsx new file mode 100644 index 000000000..be378fcd8 Binary files /dev/null and b/LuBanConfig/MiniTemplate/Datas/#FishResources.xlsx differ diff --git a/LuBanConfig/MiniTemplate/Datas/#FishYZ.xlsx b/LuBanConfig/MiniTemplate/Datas/#FishYZ.xlsx new file mode 100644 index 000000000..04ee2685f Binary files /dev/null and b/LuBanConfig/MiniTemplate/Datas/#FishYZ.xlsx differ diff --git a/LuBanConfig/MiniTemplate/Datas/#MediaConfig.xlsx b/LuBanConfig/MiniTemplate/Datas/#MediaConfig.xlsx new file mode 100644 index 000000000..1a8742ac2 Binary files /dev/null and b/LuBanConfig/MiniTemplate/Datas/#MediaConfig.xlsx differ diff --git a/LuBanConfig/MiniTemplate/Datas/#MediaResources.xlsx b/LuBanConfig/MiniTemplate/Datas/#MediaResources.xlsx new file mode 100644 index 000000000..507090dd4 Binary files /dev/null and b/LuBanConfig/MiniTemplate/Datas/#MediaResources.xlsx differ diff --git a/LuBanConfig/MiniTemplate/Datas/#TurretResources.xlsx b/LuBanConfig/MiniTemplate/Datas/#TurretResources.xlsx new file mode 100644 index 000000000..d154910ab Binary files /dev/null and b/LuBanConfig/MiniTemplate/Datas/#TurretResources.xlsx differ diff --git a/LuBanConfig/MiniTemplate/Datas/__beans__.xlsx b/LuBanConfig/MiniTemplate/Datas/__beans__.xlsx new file mode 100644 index 000000000..6fc990b4b Binary files /dev/null and b/LuBanConfig/MiniTemplate/Datas/__beans__.xlsx differ diff --git a/LuBanConfig/MiniTemplate/Datas/__enums__.xlsx b/LuBanConfig/MiniTemplate/Datas/__enums__.xlsx new file mode 100644 index 000000000..8640b6707 Binary files /dev/null and b/LuBanConfig/MiniTemplate/Datas/__enums__.xlsx differ diff --git a/LuBanConfig/MiniTemplate/Datas/__tables__.xlsx b/LuBanConfig/MiniTemplate/Datas/__tables__.xlsx new file mode 100644 index 000000000..164c792d8 Binary files /dev/null and b/LuBanConfig/MiniTemplate/Datas/__tables__.xlsx differ diff --git a/LuBanConfig/MiniTemplate/Datas/~$#FishResources.xlsx b/LuBanConfig/MiniTemplate/Datas/~$#FishResources.xlsx new file mode 100644 index 000000000..50426fd17 Binary files /dev/null and b/LuBanConfig/MiniTemplate/Datas/~$#FishResources.xlsx differ diff --git a/LuBanConfig/MiniTemplate/Defines/builtin.xml b/LuBanConfig/MiniTemplate/Defines/builtin.xml new file mode 100644 index 000000000..e535ff48e --- /dev/null +++ b/LuBanConfig/MiniTemplate/Defines/builtin.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LuBanConfig/MiniTemplate/data/tbaudio.json b/LuBanConfig/MiniTemplate/data/tbaudio.json new file mode 100644 index 000000000..dbe467d25 --- /dev/null +++ b/LuBanConfig/MiniTemplate/data/tbaudio.json @@ -0,0 +1,162 @@ +[ + { + "AudioID": 60001, + "AudioResourcesPath": "PW_Bg" + }, + { + "AudioID": 60002, + "AudioResourcesPath": "PW_SelectArena_PlaneFly" + }, + { + "AudioID": 60003, + "AudioResourcesPath": "PW_Enter" + }, + { + "AudioID": 60004, + "AudioResourcesPath": "PW_Explosion" + }, + { + "AudioID": 60005, + "AudioResourcesPath": "PW_AppearTip" + }, + { + "AudioID": 60006, + "AudioResourcesPath": "PW_TextShark" + }, + { + "AudioID": 60007, + "AudioResourcesPath": "PW_TextDragon" + }, + { + "AudioID": 60008, + "AudioResourcesPath": "PW_WreckingBallShow" + }, + { + "AudioID": 60009, + "AudioResourcesPath": "PW_Button" + }, + { + "AudioID": 60010, + "AudioResourcesPath": "PW_StraightFlush" + }, + { + "AudioID": 60011, + "AudioResourcesPath": "PW_ThreeOfKind" + }, + { + "AudioID": 60012, + "AudioResourcesPath": "PW_Shoot" + }, + { + "AudioID": 60013, + "AudioResourcesPath": "PW_Wheel" + }, + { + "AudioID": 60014, + "AudioResourcesPath": "PW_WheelMove" + }, + { + "AudioID": 60015, + "AudioResourcesPath": "PW_WreckingBall Show" + }, + { + "AudioID": 60016, + "AudioResourcesPath": "PW_WreckingBall ToAttack" + }, + { + "AudioID": 60017, + "AudioResourcesPath": "PW_WreckingBallExplosionBig" + }, + { + "AudioID": 60018, + "AudioResourcesPath": "PW_WreckingBallExplosionSmall" + }, + { + "AudioID": 60019, + "AudioResourcesPath": "PW_WreckingBallLightning" + }, + { + "AudioID": 60020, + "AudioResourcesPath": "PW_WreckingBallOut" + }, + { + "AudioID": 60021, + "AudioResourcesPath": "PW_WreckingBallShow" + }, + { + "AudioID": 60022, + "AudioResourcesPath": "PW WreckingBallTextShow" + }, + { + "AudioID": 60023, + "AudioResourcesPath": "PW_StarShip_On_Hit" + }, + { + "AudioID": 60024, + "AudioResourcesPath": "PW_StarShip_Show" + }, + { + "AudioID": 60025, + "AudioResourcesPath": "PW StartHole" + }, + { + "AudioID": 60026, + "AudioResourcesPath": "PW_StraightFlush" + }, + { + "AudioID": 60027, + "AudioResourcesPath": "PW_TextDragon" + }, + { + "AudioID": 60028, + "AudioResourcesPath": "PW_TextScorpion" + }, + { + "AudioID": 60029, + "AudioResourcesPath": "pW TextShark" + }, + { + "AudioID": 60030, + "AudioResourcesPath": "PW_ThreeOfKind" + }, + { + "AudioID": 60031, + "AudioResourcesPath": "PW Turn" + }, + { + "AudioID": 60032, + "AudioResourcesPath": "PW Settle_Poker" + }, + { + "AudioID": 60033, + "AudioResourcesPath": "PW_Settle_Rocket" + }, + { + "AudioID": 60034, + "AudioResourcesPath": "PW_Shake_Explosion" + }, + { + "AudioID": 60035, + "AudioResourcesPath": "pW Shark Dead" + }, + { + "AudioID": 60036, + "AudioResourcesPath": "PW_Shark_Dead" + }, + { + "AudioID": 60037, + "AudioResourcesPath": "" + }, + { + "AudioID": 60038, + "AudioResourcesPath": "" + }, + { + "AudioID": 60039, + "AudioResourcesPath": "" + }, + { + "AudioID": 60040, + "AudioResourcesPath": "" + } +] \ No newline at end of file diff --git a/LuBanConfig/MiniTemplate/data/tbdefend.json b/LuBanConfig/MiniTemplate/data/tbdefend.json new file mode 100644 index 000000000..c1ead71da --- /dev/null +++ b/LuBanConfig/MiniTemplate/data/tbdefend.json @@ -0,0 +1,112 @@ +[ + { + "id": 2001, + "name": "红方个人赞", + "defendNumber": 0 + }, + { + "id": 2002, + "name": "红方集体赞", + "defendNumber": 0 + }, + { + "id": 2003, + "name": "囚天指", + "defendNumber": 1 + }, + { + "id": 2004, + "name": "带派老铁", + "defendNumber": 2 + }, + { + "id": 2005, + "name": "防御魔法棒", + "defendNumber": 0 + }, + { + "id": 2006, + "name": "召唤DJ爷爷", + "defendNumber": 3 + }, + { + "id": 2007, + "name": "召唤僵尸舞王", + "defendNumber": 5 + }, + { + "id": 2008, + "name": "防御守卫雅典娜", + "defendNumber": 0 + }, + { + "id": 2009, + "name": "召唤三哈之力", + "defendNumber": 8 + }, + { + "id": 2010, + "name": "召唤诸神黄昏大爷", + "defendNumber": 16 + }, + { + "id": 2011, + "name": "召唤神龙", + "defendNumber": 30 + }, + { + "id": 2012, + "name": "蓝方个人赞", + "defendNumber": 0 + }, + { + "id": 2013, + "name": "蓝方集体赞", + "defendNumber": 0 + }, + { + "id": 2014, + "name": "铁山靠", + "defendNumber": 1 + }, + { + "id": 2015, + "name": "干嘛哎呦", + "defendNumber": 2 + }, + { + "id": 2016, + "name": "防御大奖杯", + "defendNumber": 0 + }, + { + "id": 2017, + "name": "召唤古巨鸡", + "defendNumber": 3 + }, + { + "id": 2018, + "name": "召唤基纽特战队", + "defendNumber": 5 + }, + { + "id": 2019, + "name": "防御大佛高达", + "defendNumber": 0 + }, + { + "id": 2020, + "name": "召唤三吒之力", + "defendNumber": 8 + }, + { + "id": 2021, + "name": "召唤至尊防弹体育生", + "defendNumber": 16 + }, + { + "id": 2022, + "name": "召唤神龙", + "defendNumber": 30 + } +] \ No newline at end of file diff --git a/LuBanConfig/MiniTemplate/data/tbfishresources.json b/LuBanConfig/MiniTemplate/data/tbfishresources.json new file mode 100644 index 000000000..2dbdfaa97 --- /dev/null +++ b/LuBanConfig/MiniTemplate/data/tbfishresources.json @@ -0,0 +1,1690 @@ +[ + { + "fishNumber": 11001, + "prefabFishResourcesPath": "71", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [ + [ + "dashuai0", + 1234 + ], + [ + "a60005", + 60005 + ], + [ + "aaa", + 6004 + ] + ], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11002, + "prefabFishResourcesPath": "8", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11003, + "prefabFishResourcesPath": "10", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11004, + "prefabFishResourcesPath": "21", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11005, + "prefabFishResourcesPath": "14", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11006, + "prefabFishResourcesPath": "19", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11007, + "prefabFishResourcesPath": "68", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11008, + "prefabFishResourcesPath": "22", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11009, + "prefabFishResourcesPath": "12", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11010, + "prefabFishResourcesPath": "24", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11011, + "prefabFishResourcesPath": "25", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11012, + "prefabFishResourcesPath": "42", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11013, + "prefabFishResourcesPath": "45", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11014, + "prefabFishResourcesPath": "48", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11015, + "prefabFishResourcesPath": "53", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11016, + "prefabFishResourcesPath": "61", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11017, + "prefabFishResourcesPath": "69", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11018, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11019, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11020, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11021, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11022, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11023, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11024, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11025, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11026, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11027, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11028, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11029, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11030, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11031, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11032, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11033, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11034, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11035, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11036, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11037, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11038, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11039, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 11040, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 12001, + "prefabFishResourcesPath": "PW_Enemy_2", + "showAudio": [], + "moveAudio": [], + "dieAudio": [ + 60004 + ], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 12002, + "prefabFishResourcesPath": "PW_Enemy_9", + "showAudio": [], + "moveAudio": [], + "dieAudio": [ + 60004 + ], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "PW_Spine_Plane_BaiYu_SkeletonData" + }, + { + "fishNumber": 12003, + "prefabFishResourcesPath": "PW_Enemy_4", + "showAudio": [], + "moveAudio": [], + "dieAudio": [ + 60004 + ], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 12004, + "prefabFishResourcesPath": "PW_Enemy_1", + "showAudio": [], + "moveAudio": [], + "dieAudio": [ + 60004 + ], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 12005, + "prefabFishResourcesPath": "PW_Enemy_6", + "showAudio": [], + "moveAudio": [], + "dieAudio": [ + 60004 + ], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 12006, + "prefabFishResourcesPath": "PW_Enemy_3", + "showAudio": [], + "moveAudio": [], + "dieAudio": [ + 60004 + ], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 12007, + "prefabFishResourcesPath": "PW_Enemy_7", + "showAudio": [], + "moveAudio": [], + "dieAudio": [ + 60004 + ], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 12008, + "prefabFishResourcesPath": "PW_Enemy_8", + "showAudio": [], + "moveAudio": [], + "dieAudio": [ + 60004 + ], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 12009, + "prefabFishResourcesPath": "PW_Enemy_5", + "showAudio": [], + "moveAudio": [], + "dieAudio": [ + 60004 + ], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "PW_Spine_Plane_ZiHong_SkeletonData" + }, + { + "fishNumber": 12010, + "prefabFishResourcesPath": "PW_Enemy_108", + "showAudio": [], + "moveAudio": [], + "dieAudio": [ + 60004 + ], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "PW_Spine_Plane_ChiRi_SkeletonData" + }, + { + "fishNumber": 12011, + "prefabFishResourcesPath": "PW_Enemy_101", + "showAudio": [], + "moveAudio": [], + "dieAudio": [ + 60004 + ], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "PW_Spine_Plane_LanNiao_SkeletonData" + }, + { + "fishNumber": 12012, + "prefabFishResourcesPath": "PW_Enemy_106", + "showAudio": [], + "moveAudio": [], + "dieAudio": [ + 60004 + ], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "PW_Spine_Plane_MiCai_SkeletonData" + }, + { + "fishNumber": 12013, + "prefabFishResourcesPath": "PW_Enemy_107", + "showAudio": [], + "moveAudio": [], + "dieAudio": [ + 60004 + ], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "PW_Spine_Plane_TianYing_SkeletonData" + }, + { + "fishNumber": 12014, + "prefabFishResourcesPath": "PW_Enemy_103", + "showAudio": [], + "moveAudio": [], + "dieAudio": [ + 60004 + ], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "PW_Spine_Plane_HuanYing_SkeletonData" + }, + { + "fishNumber": 12015, + "prefabFishResourcesPath": "PW_Enemy_105", + "showAudio": [], + "moveAudio": [], + "dieAudio": [ + 60004 + ], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "PW_Spine_Plane_YanRan_SkeletonData" + }, + { + "fishNumber": 12016, + "prefabFishResourcesPath": "PW_Enemy_104", + "showAudio": [], + "moveAudio": [], + "dieAudio": [ + 60004 + ], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "PW_Spine_Plane_ChiYa_SkeletonData" + }, + { + "fishNumber": 12017, + "prefabFishResourcesPath": "PW_Enemy_109", + "showAudio": [], + "moveAudio": [], + "dieAudio": [ + 60004 + ], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "PW_Spine_Plane_JiHan_SkeletonData" + }, + { + "fishNumber": 12018, + "prefabFishResourcesPath": "PW_Enemy_110", + "showAudio": [], + "moveAudio": [], + "dieAudio": [ + 60004 + ], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "PW_Spine_Plane_LieYan_SkeletonData" + }, + { + "fishNumber": 12019, + "prefabFishResourcesPath": "PW_Enemy_111", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "PW_Spine_Plane_SZTS_SkeletonData" + }, + { + "fishNumber": 12020, + "prefabFishResourcesPath": "PW_Enemy_32", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 12021, + "prefabFishResourcesPath": "PW_Enemy_31", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 12022, + "prefabFishResourcesPath": "PW_Enemy_114", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "PW_Spine_Plane_FeiDie_SkeletonData" + }, + { + "fishNumber": 12023, + "prefabFishResourcesPath": "PW_Enemy_113", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "PW_Spine_Plane_XCJLK_SkeletonData" + }, + { + "fishNumber": 12024, + "prefabFishResourcesPath": "PW_Enemy_112", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "PW_Spine_Plane_HDFC_SkeletonData" + }, + { + "fishNumber": 12025, + "prefabFishResourcesPath": "PW_Enemy_102", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "PW_Spine_Plane_HDX_SkeletonData" + }, + { + "fishNumber": 12026, + "prefabFishResourcesPath": "PW_Enemy_1000", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "PW_Spine_Plane_BLJS_SkeletonData" + }, + { + "fishNumber": 12027, + "prefabFishResourcesPath": "PW_Spine_Plane_JXL_SkeletonData", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "PW_Spine_Plane_JXL_SkeletonData" + }, + { + "fishNumber": 12028, + "prefabFishResourcesPath": "PW_Spine_Plane_XZ_SkeletonData", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "PW_Spine_Plane_XZ_SkeletonData" + }, + { + "fishNumber": 12029, + "prefabFishResourcesPath": "PW_Enemy_4000", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "PW_Spine_Plane_XJXH_SkeletonData" + }, + { + "fishNumber": 12030, + "prefabFishResourcesPath": "PW_Spine_Plane_PHQ_SkeletonData", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "PW_Spine_Plane_PHQ_SkeletonData" + }, + { + "fishNumber": 12031, + "prefabFishResourcesPath": "PW_Enemy_6000", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 12032, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 12033, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 12034, + "prefabFishResourcesPath": "PW_Enemy_115", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "PW_Spine_Plane_LYFB_SkeletonData" + }, + { + "fishNumber": 13001, + "prefabFishResourcesPath": "Game177_fish0", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13002, + "prefabFishResourcesPath": "Game177_fish1", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13003, + "prefabFishResourcesPath": "Game177_fish2", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13004, + "prefabFishResourcesPath": "Game177_fish3", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13005, + "prefabFishResourcesPath": "Game177_fish4", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13006, + "prefabFishResourcesPath": "Game177_fish5", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13007, + "prefabFishResourcesPath": "Game177_fish6", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13008, + "prefabFishResourcesPath": "Game177_fish7", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13009, + "prefabFishResourcesPath": "Game177_fish8", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13010, + "prefabFishResourcesPath": "Game177_fish9", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13011, + "prefabFishResourcesPath": "Game177_fish10", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13012, + "prefabFishResourcesPath": "Game177_fish11", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13013, + "prefabFishResourcesPath": "Game177_fish12", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13014, + "prefabFishResourcesPath": "Game177_fish13", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13015, + "prefabFishResourcesPath": "Game177_fish14", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13016, + "prefabFishResourcesPath": "Game177_fish15", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13017, + "prefabFishResourcesPath": "Game177_fish16", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13018, + "prefabFishResourcesPath": "Game177_fish17", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13019, + "prefabFishResourcesPath": "Game177_fish18", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13020, + "prefabFishResourcesPath": "Game177_fish19", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13021, + "prefabFishResourcesPath": "Game177_fish20", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13022, + "prefabFishResourcesPath": "Game177_fish21", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13023, + "prefabFishResourcesPath": "Game177_fish22", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13024, + "prefabFishResourcesPath": "Game177_fish23", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13025, + "prefabFishResourcesPath": "Game177_dianman", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13026, + "prefabFishResourcesPath": "Game177_zhadanxie", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13027, + "prefabFishResourcesPath": "Game177_yuxi", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13028, + "prefabFishResourcesPath": "Game177_shaseng", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13029, + "prefabFishResourcesPath": "Game177_baigujing", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13030, + "prefabFishResourcesPath": "Game177_lm", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13031, + "prefabFishResourcesPath": "Game177_changE", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13032, + "prefabFishResourcesPath": "Game177_wukong_skill", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13033, + "prefabFishResourcesPath": "Game177_tieshangongzhu", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13034, + "prefabFishResourcesPath": "Game177_tangseng", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13035, + "prefabFishResourcesPath": "Game177_zhubajie_skill_meihuo", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13036, + "prefabFishResourcesPath": "Game177_yilong", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13037, + "prefabFishResourcesPath": "Game177_bcjx", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13038, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 13039, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15001, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15002, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15003, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15004, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15005, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15006, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15007, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15008, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15009, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15010, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15011, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15012, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15013, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15014, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15015, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15016, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15017, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15018, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15019, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15020, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15021, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15022, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15023, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15024, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15025, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15026, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15027, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15028, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15029, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15030, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15031, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15032, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15033, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15034, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15035, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + }, + { + "fishNumber": 15036, + "prefabFishResourcesPath": "", + "showAudio": [], + "moveAudio": [], + "dieAudio": [], + "dieGlodAduio": [], + "layer": 0, + "boardText": "", + "dieEffectAssets": "" + } +] \ No newline at end of file diff --git a/LuBanConfig/MiniTemplate/data/tbfishyz.json b/LuBanConfig/MiniTemplate/data/tbfishyz.json new file mode 100644 index 000000000..4e8088ed6 --- /dev/null +++ b/LuBanConfig/MiniTemplate/data/tbfishyz.json @@ -0,0 +1,363 @@ +[ + { + "yzNumber": 70001, + "lineList": [ + 1 + ], + "count": 10 + }, + { + "yzNumber": 70002, + "lineList": [ + 2 + ], + "count": 10 + }, + { + "yzNumber": 70003, + "lineList": [ + 1, + 1, + 1, + 1, + 1 + ], + "count": 10 + }, + { + "yzNumber": 70004, + "lineList": [ + 2, + 2, + 2, + 2, + 2 + ], + "count": 10 + }, + { + "yzNumber": 70101, + "lineList": [ + 3 + ], + "count": 20 + }, + { + "yzNumber": 70102, + "lineList": [ + 4 + ], + "count": 20 + }, + { + "yzNumber": 70103, + "lineList": [ + 5 + ], + "count": 20 + }, + { + "yzNumber": 70104, + "lineList": [ + 3, + 4, + 5 + ], + "count": 10 + }, + { + "yzNumber": 70201, + "lineList": [ + 6 + ], + "count": 8 + }, + { + "yzNumber": 70202, + "lineList": [ + 7 + ], + "count": 8 + }, + { + "yzNumber": 70203, + "lineList": [ + 8 + ], + "count": 10 + }, + { + "yzNumber": 70204, + "lineList": [ + 9 + ], + "count": 10 + }, + { + "yzNumber": 70205, + "lineList": [ + 10 + ], + "count": 5 + }, + { + "yzNumber": 70206, + "lineList": [ + 11 + ], + "count": 5 + }, + { + "yzNumber": 70207, + "lineList": [ + 12 + ], + "count": 7 + }, + { + "yzNumber": 70208, + "lineList": [ + 13 + ], + "count": 9 + }, + { + "yzNumber": 70209, + "lineList": [ + 14 + ], + "count": 8 + }, + { + "yzNumber": 70210, + "lineList": [ + 15 + ], + "count": 6 + }, + { + "yzNumber": 70211, + "lineList": [ + 16 + ], + "count": 5 + }, + { + "yzNumber": 70212, + "lineList": [ + 17 + ], + "count": 8 + }, + { + "yzNumber": 70213, + "lineList": [ + 18 + ], + "count": 6 + }, + { + "yzNumber": 70214, + "lineList": [ + 19 + ], + "count": 20 + }, + { + "yzNumber": 70215, + "lineList": [ + 20 + ], + "count": 8 + }, + { + "yzNumber": 70216, + "lineList": [ + 21 + ], + "count": 20 + }, + { + "yzNumber": 70217, + "lineList": [ + 22 + ], + "count": 20 + }, + { + "yzNumber": 70218, + "lineList": [ + 23 + ], + "count": 9 + }, + { + "yzNumber": 70219, + "lineList": [ + 24 + ], + "count": 8 + }, + { + "yzNumber": 70220, + "lineList": [ + 25 + ], + "count": 12 + }, + { + "yzNumber": 70221, + "lineList": [ + 26 + ], + "count": 8 + }, + { + "yzNumber": 70222, + "lineList": [ + 27 + ], + "count": 6 + }, + { + "yzNumber": 70223, + "lineList": [ + 6, + 7 + ], + "count": 15 + }, + { + "yzNumber": 70224, + "lineList": [ + 10, + 11 + ], + "count": 8 + }, + { + "yzNumber": 70225, + "lineList": [ + 21, + 22 + ], + "count": 20 + }, + { + "yzNumber": 71001, + "lineList": [ + 1, + 2, + 3 + ], + "count": 3 + }, + { + "yzNumber": 71002, + "lineList": [ + 4, + 5, + 6 + ], + "count": 5 + }, + { + "yzNumber": 71003, + "lineList": [ + 7, + 8, + 9 + ], + "count": 4 + }, + { + "yzNumber": 71004, + "lineList": [ + 10, + 11, + 12 + ], + "count": 6 + }, + { + "yzNumber": 71005, + "lineList": [ + 13, + 14, + 15 + ], + "count": 3 + }, + { + "yzNumber": 71006, + "lineList": [ + 16, + 17, + 18 + ], + "count": 6 + }, + { + "yzNumber": 71007, + "lineList": [ + 19, + 20, + 21 + ], + "count": 4 + }, + { + "yzNumber": 71008, + "lineList": [ + 22, + 23, + 24 + ], + "count": 2 + }, + { + "yzNumber": 71009, + "lineList": [ + 25, + 26, + 27 + ], + "count": 8 + }, + { + "yzNumber": 71010, + "lineList": [ + 28, + 29, + 30 + ], + "count": 3 + }, + { + "yzNumber": 71011, + "lineList": [ + 31, + 32, + 33 + ], + "count": 3 + }, + { + "yzNumber": 71012, + "lineList": [ + 34, + 35, + 36 + ], + "count": 3 + }, + { + "yzNumber": 71013, + "lineList": [ + 1, + 3, + 5 + ], + "count": 2 + } +] \ No newline at end of file diff --git a/LuBanConfig/MiniTemplate/data/tbgift.json b/LuBanConfig/MiniTemplate/data/tbgift.json new file mode 100644 index 000000000..3a0b2669c --- /dev/null +++ b/LuBanConfig/MiniTemplate/data/tbgift.json @@ -0,0 +1,128 @@ +[ + { + "id": 1001, + "giftName": "仙女棒", + "giftLevel": 1, + "giftValue": 1, + "giftTitleUrl": "", + "giftLabel": "囚天指/铁山靠", + "giftPageNum": 1, + "Gift_ID": 2, + "skillId": [ + 2003, + 2014 + ] + }, + { + "id": 1002, + "giftName": "能力药丸", + "giftLevel": 2, + "giftValue": 10, + "giftTitleUrl": "", + "giftLabel": "带派老铁/干嘛哎呦", + "giftPageNum": 1, + "Gift_ID": 2, + "skillId": [ + 2004, + 2015 + ] + }, + { + "id": 1003, + "giftName": "魔法镜", + "giftLevel": 3, + "giftValue": 19, + "giftTitleUrl": "", + "giftLabel": "防御仙女棒/防御大奖杯", + "giftPageNum": 1, + "Gift_ID": 2, + "skillId": [ + 2005, + 2016 + ] + }, + { + "id": 1004, + "giftName": "甜甜圈", + "giftLevel": 4, + "giftValue": 52, + "giftTitleUrl": "", + "giftLabel": "召唤DJ爷爷/召唤古巨鸡", + "giftPageNum": 1, + "Gift_ID": 2, + "skillId": [ + 2006, + 2017 + ] + }, + { + "id": 1005, + "giftName": "能量电池", + "giftLevel": 5, + "giftValue": 99, + "giftTitleUrl": "", + "giftLabel": "召唤僵尸舞王/召唤基纽特战队", + "giftPageNum": 1, + "Gift_ID": 2, + "skillId": [ + 2007, + 2018 + ] + }, + { + "id": 1006, + "giftName": "爱的爆炸", + "giftLevel": 6, + "giftValue": 199, + "giftTitleUrl": "", + "giftLabel": "防御守卫雅典娜/防御大佛高达", + "giftPageNum": 2, + "Gift_ID": 2, + "skillId": [ + 2008, + 2019 + ] + }, + { + "id": 1007, + "giftName": "派对话筒", + "giftLevel": 7, + "giftValue": 299, + "giftTitleUrl": "", + "giftLabel": "召唤三哈之力/召唤三吒之力", + "giftPageNum": 2, + "Gift_ID": 2, + "skillId": [ + 2009, + 2020 + ] + }, + { + "id": 1008, + "giftName": "神秘空投", + "giftLevel": 8, + "giftValue": 520, + "giftTitleUrl": "", + "giftLabel": "召唤诸神黄昏大爷/召唤至尊防弹体育生", + "giftPageNum": 2, + "Gift_ID": 2, + "skillId": [ + 2010, + 2021 + ] + }, + { + "id": 1009, + "giftName": "超级空投", + "giftLevel": 9, + "giftValue": 888, + "giftTitleUrl": "", + "giftLabel": "召唤神龙/召唤神龙", + "giftPageNum": 2, + "Gift_ID": 2, + "skillId": [ + 2011, + 2022 + ] + } +] \ No newline at end of file diff --git a/LuBanConfig/MiniTemplate/data/tbmediaconfig.json b/LuBanConfig/MiniTemplate/data/tbmediaconfig.json new file mode 100644 index 000000000..ecbd7bdfd --- /dev/null +++ b/LuBanConfig/MiniTemplate/data/tbmediaconfig.json @@ -0,0 +1,6 @@ +[ + { + "fishNumber": 61, + "mediaType": "" + } +] \ No newline at end of file diff --git a/LuBanConfig/MiniTemplate/data/tbmediaresources.json b/LuBanConfig/MiniTemplate/data/tbmediaresources.json new file mode 100644 index 000000000..0495df263 --- /dev/null +++ b/LuBanConfig/MiniTemplate/data/tbmediaresources.json @@ -0,0 +1,10 @@ +[ + { + "fishNumber": 61001, + "prefabFishResourcesPath": "" + }, + { + "fishNumber": 61002, + "prefabFishResourcesPath": "" + } +] \ No newline at end of file diff --git a/LuBanConfig/MiniTemplate/gen.bat b/LuBanConfig/MiniTemplate/gen.bat new file mode 100644 index 000000000..cc92bcac6 --- /dev/null +++ b/LuBanConfig/MiniTemplate/gen.bat @@ -0,0 +1,13 @@ +set WORKSPACE=..\.. +set LUBAN_DLL=%WORKSPACE%\LuBanConfig\Tools\Luban\Luban.dll +set CONF_ROOT=. + +dotnet %LUBAN_DLL% ^ + -t all ^ + -d json ^ + --conf %CONF_ROOT%\luban.conf ^ +-c cs-simple-json ^ + -x outputCodeDir=%WORKSPACE%\Assets\Plugins\LuBanConfigTable\code ^ + -x outputDataDir=%WORKSPACE%\LuBanConfig\MiniTemplate\data + +pause \ No newline at end of file diff --git a/LuBanConfig/MiniTemplate/gen.sh b/LuBanConfig/MiniTemplate/gen.sh new file mode 100644 index 000000000..5f48c8e89 --- /dev/null +++ b/LuBanConfig/MiniTemplate/gen.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +WORKSPACE=.. +LUBAN_DLL=$WORKSPACE/Tools/Luban/Luban.dll +CONF_ROOT=. + +dotnet $LUBAN_DLL \ + -t all \ + -d json \ + --conf $CONF_ROOT/luban.conf \ + -x outputDataDir=output \ No newline at end of file diff --git a/LuBanConfig/MiniTemplate/luban.conf b/LuBanConfig/MiniTemplate/luban.conf new file mode 100644 index 000000000..716d6fb4c --- /dev/null +++ b/LuBanConfig/MiniTemplate/luban.conf @@ -0,0 +1,26 @@ +{ + "groups": + [ + {"names":["c"], "default":true}, + {"names":["s"], "default":true}, + {"names":["e"], "default":true} + ], + "schemaFiles": + [ + {"fileName":"Defines", "type":""}, + {"fileName":"Datas/__tables__.xlsx", "type":"table"}, + {"fileName":"Datas/__beans__.xlsx", "type":"bean"}, + {"fileName":"Datas/__enums__.xlsx", "type":"enum"} + ], + "dataDir": "Datas", + "targets": + [ + {"name":"server", "manager":"Tables", "groups":["s"], "topModule":"cfg"}, + {"name":"client", "manager":"Tables", "groups":["c"], "topModule":"cfg"}, + {"name":"all", "manager":"Tables", "groups":["c","s","e"], "topModule":"cfg"} + ], + "xargs": + [ + + ] +} diff --git a/LuBanConfig/Tools/Luban/CommandLine.dll b/LuBanConfig/Tools/Luban/CommandLine.dll new file mode 100644 index 000000000..3eab2be27 Binary files /dev/null and b/LuBanConfig/Tools/Luban/CommandLine.dll differ diff --git a/LuBanConfig/Tools/Luban/ExcelDataReader.dll b/LuBanConfig/Tools/Luban/ExcelDataReader.dll new file mode 100644 index 000000000..c730b00de Binary files /dev/null and b/LuBanConfig/Tools/Luban/ExcelDataReader.dll differ diff --git a/LuBanConfig/Tools/Luban/Google.Protobuf.dll b/LuBanConfig/Tools/Luban/Google.Protobuf.dll new file mode 100644 index 000000000..3cd09501e Binary files /dev/null and b/LuBanConfig/Tools/Luban/Google.Protobuf.dll differ diff --git a/LuBanConfig/Tools/Luban/Luban.Bson.deps.json b/LuBanConfig/Tools/Luban/Luban.Bson.deps.json new file mode 100644 index 000000000..e2df5d08d --- /dev/null +++ b/LuBanConfig/Tools/Luban/Luban.Bson.deps.json @@ -0,0 +1,107 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Luban.Bson/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0", + "Newtonsoft.Json.Bson": "1.0.3" + }, + "runtime": { + "Luban.Bson.dll": {} + } + }, + "Newtonsoft.Json/13.0.1": { + "runtime": { + "lib/netstandard2.0/Newtonsoft.Json.dll": { + "assemblyVersion": "13.0.0.0", + "fileVersion": "13.0.1.25517" + } + } + }, + "Newtonsoft.Json.Bson/1.0.3": { + "dependencies": { + "Newtonsoft.Json": "13.0.1" + }, + "runtime": { + "lib/netstandard2.0/Newtonsoft.Json.Bson.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.3.29904" + } + } + }, + "NLog/5.3.4": { + "runtime": { + "lib/netstandard2.0/NLog.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.3.4.2778" + } + } + }, + "Scriban/5.12.0": { + "runtime": { + "lib/net7.0/Scriban.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.12.0.0" + } + } + }, + "Luban.Core/1.0.0": { + "dependencies": { + "NLog": "5.3.4", + "Scriban": "5.12.0" + }, + "runtime": { + "Luban.Core.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + } + } + }, + "libraries": { + "Luban.Bson/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Newtonsoft.Json/13.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==", + "path": "newtonsoft.json/13.0.1", + "hashPath": "newtonsoft.json.13.0.1.nupkg.sha512" + }, + "Newtonsoft.Json.Bson/1.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bCcwagnHfYnhwQfY1criEcn6Hy9PtBuVnZu0pA8hmRhuR3jI/8WxVgoVAdNw9BJ3JHkxmWJzpj/AQy+PMMLqxg==", + "path": "newtonsoft.json.bson/1.0.3", + "hashPath": "newtonsoft.json.bson.1.0.3.nupkg.sha512" + }, + "NLog/5.3.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gLy7+O1hEYJXIlcTr1/VWjGXrZTQFZzYNO18IWasD64pNwz0BreV+nHLxWKXWZzERRzoKnsk2XYtwLkTVk7J1A==", + "path": "nlog/5.3.4", + "hashPath": "nlog.5.3.4.nupkg.sha512" + }, + "Scriban/5.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/YTTCxjBIpfwX3MKMT4JMFVl1jX4IHW7zih+Bg3cTIkzGnbFt+B3l/k90ILDw6DRiFE7T+VxEyls7zk4p029ng==", + "path": "scriban/5.12.0", + "hashPath": "scriban.5.12.0.nupkg.sha512" + }, + "Luban.Core/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Luban.Bson.dll b/LuBanConfig/Tools/Luban/Luban.Bson.dll new file mode 100644 index 000000000..9caeebf59 Binary files /dev/null and b/LuBanConfig/Tools/Luban/Luban.Bson.dll differ diff --git a/LuBanConfig/Tools/Luban/Luban.CSharp.deps.json b/LuBanConfig/Tools/Luban/Luban.CSharp.deps.json new file mode 100644 index 000000000..fdab82915 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Luban.CSharp.deps.json @@ -0,0 +1,73 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Luban.CSharp/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0", + "Luban.DataValidator.Builtin": "1.0.0" + }, + "runtime": { + "Luban.CSharp.dll": {} + } + }, + "NLog/5.3.4": { + "runtime": { + "lib/netstandard2.0/NLog.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.3.4.2778" + } + } + }, + "Scriban/5.12.0": { + "runtime": { + "lib/net7.0/Scriban.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.12.0.0" + } + } + }, + "Luban.DataValidator.Builtin/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0" + }, + "runtime": { + "Luban.DataValidator.Builtin.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + } + } + }, + "libraries": { + "Luban.CSharp/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "NLog/5.3.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gLy7+O1hEYJXIlcTr1/VWjGXrZTQFZzYNO18IWasD64pNwz0BreV+nHLxWKXWZzERRzoKnsk2XYtwLkTVk7J1A==", + "path": "nlog/5.3.4", + "hashPath": "nlog.5.3.4.nupkg.sha512" + }, + "Scriban/5.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/YTTCxjBIpfwX3MKMT4JMFVl1jX4IHW7zih+Bg3cTIkzGnbFt+B3l/k90ILDw6DRiFE7T+VxEyls7zk4p029ng==", + "path": "scriban/5.12.0", + "hashPath": "scriban.5.12.0.nupkg.sha512" + }, + "Luban.DataValidator.Builtin/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Luban.CSharp.dll b/LuBanConfig/Tools/Luban/Luban.CSharp.dll new file mode 100644 index 000000000..8bd3c7848 Binary files /dev/null and b/LuBanConfig/Tools/Luban/Luban.CSharp.dll differ diff --git a/LuBanConfig/Tools/Luban/Luban.Core.deps.json b/LuBanConfig/Tools/Luban/Luban.Core.deps.json new file mode 100644 index 000000000..03f04879a --- /dev/null +++ b/LuBanConfig/Tools/Luban/Luban.Core.deps.json @@ -0,0 +1,57 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Luban.Core/1.0.0": { + "dependencies": { + "NLog": "5.3.4", + "Scriban": "5.12.0" + }, + "runtime": { + "Luban.Core.dll": {} + } + }, + "NLog/5.3.4": { + "runtime": { + "lib/netstandard2.0/NLog.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.3.4.2778" + } + } + }, + "Scriban/5.12.0": { + "runtime": { + "lib/net7.0/Scriban.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.12.0.0" + } + } + } + } + }, + "libraries": { + "Luban.Core/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "NLog/5.3.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gLy7+O1hEYJXIlcTr1/VWjGXrZTQFZzYNO18IWasD64pNwz0BreV+nHLxWKXWZzERRzoKnsk2XYtwLkTVk7J1A==", + "path": "nlog/5.3.4", + "hashPath": "nlog.5.3.4.nupkg.sha512" + }, + "Scriban/5.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/YTTCxjBIpfwX3MKMT4JMFVl1jX4IHW7zih+Bg3cTIkzGnbFt+B3l/k90ILDw6DRiFE7T+VxEyls7zk4p029ng==", + "path": "scriban/5.12.0", + "hashPath": "scriban.5.12.0.nupkg.sha512" + } + } +} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Luban.Core.dll b/LuBanConfig/Tools/Luban/Luban.Core.dll new file mode 100644 index 000000000..86e40a8f7 Binary files /dev/null and b/LuBanConfig/Tools/Luban/Luban.Core.dll differ diff --git a/LuBanConfig/Tools/Luban/Luban.Cpp.deps.json b/LuBanConfig/Tools/Luban/Luban.Cpp.deps.json new file mode 100644 index 000000000..f01523e4e --- /dev/null +++ b/LuBanConfig/Tools/Luban/Luban.Cpp.deps.json @@ -0,0 +1,73 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Luban.Cpp/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0" + }, + "runtime": { + "Luban.Cpp.dll": {} + } + }, + "NLog/5.3.4": { + "runtime": { + "lib/netstandard2.0/NLog.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.3.4.2778" + } + } + }, + "Scriban/5.12.0": { + "runtime": { + "lib/net7.0/Scriban.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.12.0.0" + } + } + }, + "Luban.Core/1.0.0": { + "dependencies": { + "NLog": "5.3.4", + "Scriban": "5.12.0" + }, + "runtime": { + "Luban.Core.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + } + } + }, + "libraries": { + "Luban.Cpp/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "NLog/5.3.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gLy7+O1hEYJXIlcTr1/VWjGXrZTQFZzYNO18IWasD64pNwz0BreV+nHLxWKXWZzERRzoKnsk2XYtwLkTVk7J1A==", + "path": "nlog/5.3.4", + "hashPath": "nlog.5.3.4.nupkg.sha512" + }, + "Scriban/5.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/YTTCxjBIpfwX3MKMT4JMFVl1jX4IHW7zih+Bg3cTIkzGnbFt+B3l/k90ILDw6DRiFE7T+VxEyls7zk4p029ng==", + "path": "scriban/5.12.0", + "hashPath": "scriban.5.12.0.nupkg.sha512" + }, + "Luban.Core/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Luban.Cpp.dll b/LuBanConfig/Tools/Luban/Luban.Cpp.dll new file mode 100644 index 000000000..fe1e0421e Binary files /dev/null and b/LuBanConfig/Tools/Luban/Luban.Cpp.dll differ diff --git a/LuBanConfig/Tools/Luban/Luban.Dart.deps.json b/LuBanConfig/Tools/Luban/Luban.Dart.deps.json new file mode 100644 index 000000000..a9857b1d3 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Luban.Dart.deps.json @@ -0,0 +1,73 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Luban.Dart/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0" + }, + "runtime": { + "Luban.Dart.dll": {} + } + }, + "NLog/5.3.4": { + "runtime": { + "lib/netstandard2.0/NLog.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.3.4.2778" + } + } + }, + "Scriban/5.12.0": { + "runtime": { + "lib/net7.0/Scriban.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.12.0.0" + } + } + }, + "Luban.Core/1.0.0": { + "dependencies": { + "NLog": "5.3.4", + "Scriban": "5.12.0" + }, + "runtime": { + "Luban.Core.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + } + } + }, + "libraries": { + "Luban.Dart/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "NLog/5.3.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gLy7+O1hEYJXIlcTr1/VWjGXrZTQFZzYNO18IWasD64pNwz0BreV+nHLxWKXWZzERRzoKnsk2XYtwLkTVk7J1A==", + "path": "nlog/5.3.4", + "hashPath": "nlog.5.3.4.nupkg.sha512" + }, + "Scriban/5.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/YTTCxjBIpfwX3MKMT4JMFVl1jX4IHW7zih+Bg3cTIkzGnbFt+B3l/k90ILDw6DRiFE7T+VxEyls7zk4p029ng==", + "path": "scriban/5.12.0", + "hashPath": "scriban.5.12.0.nupkg.sha512" + }, + "Luban.Core/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Luban.Dart.dll b/LuBanConfig/Tools/Luban/Luban.Dart.dll new file mode 100644 index 000000000..23a293183 Binary files /dev/null and b/LuBanConfig/Tools/Luban/Luban.Dart.dll differ diff --git a/LuBanConfig/Tools/Luban/Luban.DataLoader.Builtin.deps.json b/LuBanConfig/Tools/Luban/Luban.DataLoader.Builtin.deps.json new file mode 100644 index 000000000..62beda5e2 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Luban.DataLoader.Builtin.deps.json @@ -0,0 +1,547 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Luban.DataLoader.Builtin/1.0.0": { + "dependencies": { + "ExcelDataReader": "3.7.0", + "Luban.Core": "1.0.0", + "NeoLua": "1.3.14", + "Ude.NetStandard": "1.2.0", + "YamlDotNet.NetCore": "1.0.0" + }, + "runtime": { + "Luban.DataLoader.Builtin.dll": {} + } + }, + "ExcelDataReader/3.7.0": { + "runtime": { + "lib/netstandard2.1/ExcelDataReader.dll": { + "assemblyVersion": "3.7.0.0", + "fileVersion": "3.7.0.0" + } + } + }, + "Microsoft.CSharp/4.5.0": {}, + "Microsoft.NETCore.Platforms/1.0.1": {}, + "Microsoft.NETCore.Targets/1.0.1": {}, + "NeoLua/1.3.14": { + "dependencies": { + "Microsoft.CSharp": "4.5.0" + }, + "runtime": { + "lib/net5.0/Neo.Lua.dll": { + "assemblyVersion": "5.3.0.0", + "fileVersion": "1.3.14.0" + } + }, + "resources": { + "lib/net5.0/de/Neo.Lua.resources.dll": { + "locale": "de" + } + } + }, + "NLog/5.3.4": { + "runtime": { + "lib/netstandard2.0/NLog.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.3.4.2778" + } + } + }, + "Scriban/5.12.0": { + "runtime": { + "lib/net7.0/Scriban.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.12.0.0" + } + } + }, + "System.Collections/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Diagnostics.Debug/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Diagnostics.Tools/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Globalization/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.IO/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0", + "System.Text.Encoding": "4.0.11", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.Linq/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0" + } + }, + "System.Linq.Expressions/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Globalization": "4.0.11", + "System.IO": "4.1.0", + "System.Linq": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Reflection": "4.1.0", + "System.Reflection.Emit": "4.0.1", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Emit.Lightweight": "4.0.1", + "System.Reflection.Extensions": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Reflection.TypeExtensions": "4.1.0", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.ObjectModel/4.0.12": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.Reflection/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.IO": "4.1.0", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit/4.0.1": { + "dependencies": { + "System.IO": "4.1.0", + "System.Reflection": "4.1.0", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit.ILGeneration/4.0.1": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit.Lightweight/4.0.1": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Extensions/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Primitives/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.TypeExtensions/4.1.0": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Resources.ResourceManager/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Globalization": "4.0.11", + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Runtime/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1" + } + }, + "System.Runtime.Extensions/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Runtime.Serialization.Primitives/4.1.1": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Text.Encoding/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Text.Encoding.Extensions/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0", + "System.Text.Encoding": "4.0.11" + } + }, + "System.Text.RegularExpressions/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Globalization": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.Threading/4.0.11": { + "dependencies": { + "System.Runtime": "4.1.0", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.Threading.Tasks/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "Ude.NetStandard/1.2.0": { + "runtime": { + "lib/netstandard2.0/Ude.NetStandard.dll": { + "assemblyVersion": "1.0.2.0", + "fileVersion": "1.0.2.0" + } + } + }, + "YamlDotNet.NetCore/1.0.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Diagnostics.Tools": "4.0.1", + "System.Globalization": "4.0.11", + "System.Linq": "4.1.0", + "System.Linq.Expressions": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Reflection.Extensions": "4.0.1", + "System.Runtime.Extensions": "4.1.0", + "System.Runtime.Serialization.Primitives": "4.1.1", + "System.Text.Encoding.Extensions": "4.0.11", + "System.Text.RegularExpressions": "4.1.0" + }, + "runtime": { + "lib/netstandard1.0/YamlDotNet.NetCore.dll": { + "assemblyVersion": "0.0.1.0", + "fileVersion": "0.0.0.0" + } + } + }, + "Luban.Core/1.0.0": { + "dependencies": { + "NLog": "5.3.4", + "Scriban": "5.12.0" + }, + "runtime": { + "Luban.Core.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + } + } + }, + "libraries": { + "Luban.DataLoader.Builtin/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "ExcelDataReader/3.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-AMv3oDETRHSRyXC17rBtKH45qIfFyo433LMeaMB3u4RNr/c9Luuc0Z+JMP6+3Cx9n4wXqFqcrEIVxrf/GgYnZg==", + "path": "exceldatareader/3.7.0", + "hashPath": "exceldatareader.3.7.0.nupkg.sha512" + }, + "Microsoft.CSharp/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kaj6Wb4qoMuH3HySFJhxwQfe8R/sJsNJnANrvv8WdFPMoNbKY5htfNscv+LHCu5ipz+49m2e+WQXpLXr9XYemQ==", + "path": "microsoft.csharp/4.5.0", + "hashPath": "microsoft.csharp.4.5.0.nupkg.sha512" + }, + "Microsoft.NETCore.Platforms/1.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-2G6OjjJzwBfNOO8myRV/nFrbTw5iA+DEm0N+qUqhrOmaVtn4pC77h38I1jsXGw5VH55+dPfQsqHD0We9sCl9FQ==", + "path": "microsoft.netcore.platforms/1.0.1", + "hashPath": "microsoft.netcore.platforms.1.0.1.nupkg.sha512" + }, + "Microsoft.NETCore.Targets/1.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rkn+fKobF/cbWfnnfBOQHKVKIOpxMZBvlSHkqDWgBpwGDcLRduvs3D9OLGeV6GWGvVwNlVi2CBbTjuPmtHvyNw==", + "path": "microsoft.netcore.targets/1.0.1", + "hashPath": "microsoft.netcore.targets.1.0.1.nupkg.sha512" + }, + "NeoLua/1.3.14": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BXIUN+ePY2wx3ZGiSmR8KZKD85s01pXI690orrB3u/biB8R0nalziGw+iGbPBq1Cuz8Upggpw2ERF84POXWTCQ==", + "path": "neolua/1.3.14", + "hashPath": "neolua.1.3.14.nupkg.sha512" + }, + "NLog/5.3.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gLy7+O1hEYJXIlcTr1/VWjGXrZTQFZzYNO18IWasD64pNwz0BreV+nHLxWKXWZzERRzoKnsk2XYtwLkTVk7J1A==", + "path": "nlog/5.3.4", + "hashPath": "nlog.5.3.4.nupkg.sha512" + }, + "Scriban/5.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/YTTCxjBIpfwX3MKMT4JMFVl1jX4IHW7zih+Bg3cTIkzGnbFt+B3l/k90ILDw6DRiFE7T+VxEyls7zk4p029ng==", + "path": "scriban/5.12.0", + "hashPath": "scriban.5.12.0.nupkg.sha512" + }, + "System.Collections/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YUJGz6eFKqS0V//mLt25vFGrrCvOnsXjlvFQs+KimpwNxug9x0Pzy4PlFMU3Q2IzqAa9G2L4LsK3+9vCBK7oTg==", + "path": "system.collections/4.0.11", + "hashPath": "system.collections.4.0.11.nupkg.sha512" + }, + "System.Diagnostics.Debug/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-w5U95fVKHY4G8ASs/K5iK3J5LY+/dLFd4vKejsnI/ZhBsWS9hQakfx3Zr7lRWKg4tAw9r4iktyvsTagWkqYCiw==", + "path": "system.diagnostics.debug/4.0.11", + "hashPath": "system.diagnostics.debug.4.0.11.nupkg.sha512" + }, + "System.Diagnostics.Tools/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-xBfJ8pnd4C17dWaC9FM6aShzbJcRNMChUMD42I6772KGGrqaFdumwhn9OdM68erj1ueNo3xdQ1EwiFjK5k8p0g==", + "path": "system.diagnostics.tools/4.0.1", + "hashPath": "system.diagnostics.tools.4.0.1.nupkg.sha512" + }, + "System.Globalization/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-B95h0YLEL2oSnwF/XjqSWKnwKOy/01VWkNlsCeMTFJLLabflpGV26nK164eRs5GiaRSBGpOxQ3pKoSnnyZN5pg==", + "path": "system.globalization/4.0.11", + "hashPath": "system.globalization.4.0.11.nupkg.sha512" + }, + "System.IO/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3KlTJceQc3gnGIaHZ7UBZO26SHL1SHE4ddrmiwumFnId+CEHP+O8r386tZKaE6zlk5/mF8vifMBzHj9SaXN+mQ==", + "path": "system.io/4.1.0", + "hashPath": "system.io.4.1.0.nupkg.sha512" + }, + "System.Linq/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bQ0iYFOQI0nuTnt+NQADns6ucV4DUvMdwN6CbkB1yj8i7arTGiTN5eok1kQwdnnNWSDZfIUySQY+J3d5KjWn0g==", + "path": "system.linq/4.1.0", + "hashPath": "system.linq.4.1.0.nupkg.sha512" + }, + "System.Linq.Expressions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-I+y02iqkgmCAyfbqOmSDOgqdZQ5tTj80Akm5BPSS8EeB0VGWdy6X1KCoYe8Pk6pwDoAKZUOdLVxnTJcExiv5zw==", + "path": "system.linq.expressions/4.1.0", + "hashPath": "system.linq.expressions.4.1.0.nupkg.sha512" + }, + "System.ObjectModel/4.0.12": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tAgJM1xt3ytyMoW4qn4wIqgJYm7L7TShRZG4+Q4Qsi2PCcj96pXN7nRywS9KkB3p/xDUjc2HSwP9SROyPYDYKQ==", + "path": "system.objectmodel/4.0.12", + "hashPath": "system.objectmodel.4.0.12.nupkg.sha512" + }, + "System.Reflection/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-JCKANJ0TI7kzoQzuwB/OoJANy1Lg338B6+JVacPl4TpUwi3cReg3nMLplMq2uqYfHFQpKIlHAUVAJlImZz/4ng==", + "path": "system.reflection/4.1.0", + "hashPath": "system.reflection.4.1.0.nupkg.sha512" + }, + "System.Reflection.Emit/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-P2wqAj72fFjpP6wb9nSfDqNBMab+2ovzSDzUZK7MVIm54tBJEPr9jWfSjjoTpPwj1LeKcmX3vr0ttyjSSFM47g==", + "path": "system.reflection.emit/4.0.1", + "hashPath": "system.reflection.emit.4.0.1.nupkg.sha512" + }, + "System.Reflection.Emit.ILGeneration/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Ov6dU8Bu15Bc7zuqttgHF12J5lwSWyTf1S+FJouUXVMSqImLZzYaQ+vRr1rQ0OZ0HqsrwWl4dsKHELckQkVpgA==", + "path": "system.reflection.emit.ilgeneration/4.0.1", + "hashPath": "system.reflection.emit.ilgeneration.4.0.1.nupkg.sha512" + }, + "System.Reflection.Emit.Lightweight/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-sSzHHXueZ5Uh0OLpUQprhr+ZYJrLPA2Cmr4gn0wj9+FftNKXx8RIMKvO9qnjk2ebPYUjZ+F2ulGdPOsvj+MEjA==", + "path": "system.reflection.emit.lightweight/4.0.1", + "hashPath": "system.reflection.emit.lightweight.4.0.1.nupkg.sha512" + }, + "System.Reflection.Extensions/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GYrtRsZcMuHF3sbmRHfMYpvxZoIN2bQGrYGerUiWLEkqdEUQZhH3TRSaC/oI4wO0II1RKBPlpIa1TOMxIcOOzQ==", + "path": "system.reflection.extensions/4.0.1", + "hashPath": "system.reflection.extensions.4.0.1.nupkg.sha512" + }, + "System.Reflection.Primitives/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4inTox4wTBaDhB7V3mPvp9XlCbeGYWVEM9/fXALd52vNEAVisc1BoVWQPuUuD0Ga//dNbA/WeMy9u9mzLxGTHQ==", + "path": "system.reflection.primitives/4.0.1", + "hashPath": "system.reflection.primitives.4.0.1.nupkg.sha512" + }, + "System.Reflection.TypeExtensions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tsQ/ptQ3H5FYfON8lL4MxRk/8kFyE0A+tGPXmVP967cT/gzLHYxIejIYSxp4JmIeFHVP78g/F2FE1mUUTbDtrg==", + "path": "system.reflection.typeextensions/4.1.0", + "hashPath": "system.reflection.typeextensions.4.1.0.nupkg.sha512" + }, + "System.Resources.ResourceManager/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-TxwVeUNoTgUOdQ09gfTjvW411MF+w9MBYL7AtNVc+HtBCFlutPLhUCdZjNkjbhj3bNQWMdHboF0KIWEOjJssbA==", + "path": "system.resources.resourcemanager/4.0.1", + "hashPath": "system.resources.resourcemanager.4.0.1.nupkg.sha512" + }, + "System.Runtime/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-v6c/4Yaa9uWsq+JMhnOFewrYkgdNHNG2eMKuNqRn8P733rNXeRCGvV5FkkjBXn2dbVkPXOsO0xjsEeM1q2zC0g==", + "path": "system.runtime/4.1.0", + "hashPath": "system.runtime.4.1.0.nupkg.sha512" + }, + "System.Runtime.Extensions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-CUOHjTT/vgP0qGW22U4/hDlOqXmcPq5YicBaXdUR2UiUoLwBT+olO6we4DVbq57jeX5uXH2uerVZhf0qGj+sVQ==", + "path": "system.runtime.extensions/4.1.0", + "hashPath": "system.runtime.extensions.4.1.0.nupkg.sha512" + }, + "System.Runtime.Serialization.Primitives/4.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==", + "path": "system.runtime.serialization.primitives/4.1.1", + "hashPath": "system.runtime.serialization.primitives.4.1.1.nupkg.sha512" + }, + "System.Text.Encoding/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-U3gGeMlDZXxCEiY4DwVLSacg+DFWCvoiX+JThA/rvw37Sqrku7sEFeVBBBMBnfB6FeZHsyDx85HlKL19x0HtZA==", + "path": "system.text.encoding/4.0.11", + "hashPath": "system.text.encoding.4.0.11.nupkg.sha512" + }, + "System.Text.Encoding.Extensions/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jtbiTDtvfLYgXn8PTfWI+SiBs51rrmO4AAckx4KR6vFK9Wzf6tI8kcRdsYQNwriUeQ1+CtQbM1W4cMbLXnj/OQ==", + "path": "system.text.encoding.extensions/4.0.11", + "hashPath": "system.text.encoding.extensions.4.0.11.nupkg.sha512" + }, + "System.Text.RegularExpressions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-i88YCXpRTjCnoSQZtdlHkAOx4KNNik4hMy83n0+Ftlb7jvV6ZiZWMpnEZHhjBp6hQVh8gWd/iKNPzlPF7iyA2g==", + "path": "system.text.regularexpressions/4.1.0", + "hashPath": "system.text.regularexpressions.4.1.0.nupkg.sha512" + }, + "System.Threading/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-N+3xqIcg3VDKyjwwCGaZ9HawG9aC6cSDI+s7ROma310GQo8vilFZa86hqKppwTHleR/G0sfOzhvgnUxWCR/DrQ==", + "path": "system.threading/4.0.11", + "hashPath": "system.threading.4.0.11.nupkg.sha512" + }, + "System.Threading.Tasks/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-k1S4Gc6IGwtHGT8188RSeGaX86Qw/wnrgNLshJvsdNUOPP9etMmo8S07c+UlOAx4K/xLuN9ivA1bD0LVurtIxQ==", + "path": "system.threading.tasks/4.0.11", + "hashPath": "system.threading.tasks.4.0.11.nupkg.sha512" + }, + "Ude.NetStandard/1.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zRWpPAxBg3lNdm4UiKixTe+DFPoNid9CILggTCy/0WR2WKETe17kTWhiiIpLB2k5IEgnvA0QLfKlvd6Tvu0pzA==", + "path": "ude.netstandard/1.2.0", + "hashPath": "ude.netstandard.1.2.0.nupkg.sha512" + }, + "YamlDotNet.NetCore/1.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vPiKF4Yf02MS96Nzwcr8+WrvlhTx+camOgUzxhazU0hCzs2ESetWDCxaIT/MYdAw2oONYem1ow9PXWJjHkRUDw==", + "path": "yamldotnet.netcore/1.0.0", + "hashPath": "yamldotnet.netcore.1.0.0.nupkg.sha512" + }, + "Luban.Core/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Luban.DataLoader.Builtin.dll b/LuBanConfig/Tools/Luban/Luban.DataLoader.Builtin.dll new file mode 100644 index 000000000..5d039fa0f Binary files /dev/null and b/LuBanConfig/Tools/Luban/Luban.DataLoader.Builtin.dll differ diff --git a/LuBanConfig/Tools/Luban/Luban.DataTarget.Builtin.deps.json b/LuBanConfig/Tools/Luban/Luban.DataTarget.Builtin.deps.json new file mode 100644 index 000000000..45659dd2e --- /dev/null +++ b/LuBanConfig/Tools/Luban/Luban.DataTarget.Builtin.deps.json @@ -0,0 +1,564 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Luban.DataTarget.Builtin/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0", + "Luban.DataLoader.Builtin": "1.0.0" + }, + "runtime": { + "Luban.DataTarget.Builtin.dll": {} + } + }, + "ExcelDataReader/3.7.0": { + "runtime": { + "lib/netstandard2.1/ExcelDataReader.dll": { + "assemblyVersion": "3.7.0.0", + "fileVersion": "3.7.0.0" + } + } + }, + "Microsoft.CSharp/4.5.0": {}, + "Microsoft.NETCore.Platforms/1.0.1": {}, + "Microsoft.NETCore.Targets/1.0.1": {}, + "NeoLua/1.3.14": { + "dependencies": { + "Microsoft.CSharp": "4.5.0" + }, + "runtime": { + "lib/net5.0/Neo.Lua.dll": { + "assemblyVersion": "5.3.0.0", + "fileVersion": "1.3.14.0" + } + }, + "resources": { + "lib/net5.0/de/Neo.Lua.resources.dll": { + "locale": "de" + } + } + }, + "NLog/5.3.4": { + "runtime": { + "lib/netstandard2.0/NLog.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.3.4.2778" + } + } + }, + "Scriban/5.12.0": { + "runtime": { + "lib/net7.0/Scriban.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.12.0.0" + } + } + }, + "System.Collections/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Diagnostics.Debug/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Diagnostics.Tools/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Globalization/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.IO/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0", + "System.Text.Encoding": "4.0.11", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.Linq/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0" + } + }, + "System.Linq.Expressions/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Globalization": "4.0.11", + "System.IO": "4.1.0", + "System.Linq": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Reflection": "4.1.0", + "System.Reflection.Emit": "4.0.1", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Emit.Lightweight": "4.0.1", + "System.Reflection.Extensions": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Reflection.TypeExtensions": "4.1.0", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.ObjectModel/4.0.12": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.Reflection/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.IO": "4.1.0", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit/4.0.1": { + "dependencies": { + "System.IO": "4.1.0", + "System.Reflection": "4.1.0", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit.ILGeneration/4.0.1": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit.Lightweight/4.0.1": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Extensions/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Primitives/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.TypeExtensions/4.1.0": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Resources.ResourceManager/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Globalization": "4.0.11", + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Runtime/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1" + } + }, + "System.Runtime.Extensions/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Runtime.Serialization.Primitives/4.1.1": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Text.Encoding/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Text.Encoding.Extensions/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0", + "System.Text.Encoding": "4.0.11" + } + }, + "System.Text.RegularExpressions/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Globalization": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.Threading/4.0.11": { + "dependencies": { + "System.Runtime": "4.1.0", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.Threading.Tasks/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "Ude.NetStandard/1.2.0": { + "runtime": { + "lib/netstandard2.0/Ude.NetStandard.dll": { + "assemblyVersion": "1.0.2.0", + "fileVersion": "1.0.2.0" + } + } + }, + "YamlDotNet.NetCore/1.0.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Diagnostics.Tools": "4.0.1", + "System.Globalization": "4.0.11", + "System.Linq": "4.1.0", + "System.Linq.Expressions": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Reflection.Extensions": "4.0.1", + "System.Runtime.Extensions": "4.1.0", + "System.Runtime.Serialization.Primitives": "4.1.1", + "System.Text.Encoding.Extensions": "4.0.11", + "System.Text.RegularExpressions": "4.1.0" + }, + "runtime": { + "lib/netstandard1.0/YamlDotNet.NetCore.dll": { + "assemblyVersion": "0.0.1.0", + "fileVersion": "0.0.0.0" + } + } + }, + "Luban.Core/1.0.0": { + "dependencies": { + "NLog": "5.3.4", + "Scriban": "5.12.0" + }, + "runtime": { + "Luban.Core.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.DataLoader.Builtin/1.0.0": { + "dependencies": { + "ExcelDataReader": "3.7.0", + "Luban.Core": "1.0.0", + "NeoLua": "1.3.14", + "Ude.NetStandard": "1.2.0", + "YamlDotNet.NetCore": "1.0.0" + }, + "runtime": { + "Luban.DataLoader.Builtin.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + } + } + }, + "libraries": { + "Luban.DataTarget.Builtin/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "ExcelDataReader/3.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-AMv3oDETRHSRyXC17rBtKH45qIfFyo433LMeaMB3u4RNr/c9Luuc0Z+JMP6+3Cx9n4wXqFqcrEIVxrf/GgYnZg==", + "path": "exceldatareader/3.7.0", + "hashPath": "exceldatareader.3.7.0.nupkg.sha512" + }, + "Microsoft.CSharp/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kaj6Wb4qoMuH3HySFJhxwQfe8R/sJsNJnANrvv8WdFPMoNbKY5htfNscv+LHCu5ipz+49m2e+WQXpLXr9XYemQ==", + "path": "microsoft.csharp/4.5.0", + "hashPath": "microsoft.csharp.4.5.0.nupkg.sha512" + }, + "Microsoft.NETCore.Platforms/1.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-2G6OjjJzwBfNOO8myRV/nFrbTw5iA+DEm0N+qUqhrOmaVtn4pC77h38I1jsXGw5VH55+dPfQsqHD0We9sCl9FQ==", + "path": "microsoft.netcore.platforms/1.0.1", + "hashPath": "microsoft.netcore.platforms.1.0.1.nupkg.sha512" + }, + "Microsoft.NETCore.Targets/1.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rkn+fKobF/cbWfnnfBOQHKVKIOpxMZBvlSHkqDWgBpwGDcLRduvs3D9OLGeV6GWGvVwNlVi2CBbTjuPmtHvyNw==", + "path": "microsoft.netcore.targets/1.0.1", + "hashPath": "microsoft.netcore.targets.1.0.1.nupkg.sha512" + }, + "NeoLua/1.3.14": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BXIUN+ePY2wx3ZGiSmR8KZKD85s01pXI690orrB3u/biB8R0nalziGw+iGbPBq1Cuz8Upggpw2ERF84POXWTCQ==", + "path": "neolua/1.3.14", + "hashPath": "neolua.1.3.14.nupkg.sha512" + }, + "NLog/5.3.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gLy7+O1hEYJXIlcTr1/VWjGXrZTQFZzYNO18IWasD64pNwz0BreV+nHLxWKXWZzERRzoKnsk2XYtwLkTVk7J1A==", + "path": "nlog/5.3.4", + "hashPath": "nlog.5.3.4.nupkg.sha512" + }, + "Scriban/5.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/YTTCxjBIpfwX3MKMT4JMFVl1jX4IHW7zih+Bg3cTIkzGnbFt+B3l/k90ILDw6DRiFE7T+VxEyls7zk4p029ng==", + "path": "scriban/5.12.0", + "hashPath": "scriban.5.12.0.nupkg.sha512" + }, + "System.Collections/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YUJGz6eFKqS0V//mLt25vFGrrCvOnsXjlvFQs+KimpwNxug9x0Pzy4PlFMU3Q2IzqAa9G2L4LsK3+9vCBK7oTg==", + "path": "system.collections/4.0.11", + "hashPath": "system.collections.4.0.11.nupkg.sha512" + }, + "System.Diagnostics.Debug/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-w5U95fVKHY4G8ASs/K5iK3J5LY+/dLFd4vKejsnI/ZhBsWS9hQakfx3Zr7lRWKg4tAw9r4iktyvsTagWkqYCiw==", + "path": "system.diagnostics.debug/4.0.11", + "hashPath": "system.diagnostics.debug.4.0.11.nupkg.sha512" + }, + "System.Diagnostics.Tools/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-xBfJ8pnd4C17dWaC9FM6aShzbJcRNMChUMD42I6772KGGrqaFdumwhn9OdM68erj1ueNo3xdQ1EwiFjK5k8p0g==", + "path": "system.diagnostics.tools/4.0.1", + "hashPath": "system.diagnostics.tools.4.0.1.nupkg.sha512" + }, + "System.Globalization/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-B95h0YLEL2oSnwF/XjqSWKnwKOy/01VWkNlsCeMTFJLLabflpGV26nK164eRs5GiaRSBGpOxQ3pKoSnnyZN5pg==", + "path": "system.globalization/4.0.11", + "hashPath": "system.globalization.4.0.11.nupkg.sha512" + }, + "System.IO/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3KlTJceQc3gnGIaHZ7UBZO26SHL1SHE4ddrmiwumFnId+CEHP+O8r386tZKaE6zlk5/mF8vifMBzHj9SaXN+mQ==", + "path": "system.io/4.1.0", + "hashPath": "system.io.4.1.0.nupkg.sha512" + }, + "System.Linq/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bQ0iYFOQI0nuTnt+NQADns6ucV4DUvMdwN6CbkB1yj8i7arTGiTN5eok1kQwdnnNWSDZfIUySQY+J3d5KjWn0g==", + "path": "system.linq/4.1.0", + "hashPath": "system.linq.4.1.0.nupkg.sha512" + }, + "System.Linq.Expressions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-I+y02iqkgmCAyfbqOmSDOgqdZQ5tTj80Akm5BPSS8EeB0VGWdy6X1KCoYe8Pk6pwDoAKZUOdLVxnTJcExiv5zw==", + "path": "system.linq.expressions/4.1.0", + "hashPath": "system.linq.expressions.4.1.0.nupkg.sha512" + }, + "System.ObjectModel/4.0.12": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tAgJM1xt3ytyMoW4qn4wIqgJYm7L7TShRZG4+Q4Qsi2PCcj96pXN7nRywS9KkB3p/xDUjc2HSwP9SROyPYDYKQ==", + "path": "system.objectmodel/4.0.12", + "hashPath": "system.objectmodel.4.0.12.nupkg.sha512" + }, + "System.Reflection/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-JCKANJ0TI7kzoQzuwB/OoJANy1Lg338B6+JVacPl4TpUwi3cReg3nMLplMq2uqYfHFQpKIlHAUVAJlImZz/4ng==", + "path": "system.reflection/4.1.0", + "hashPath": "system.reflection.4.1.0.nupkg.sha512" + }, + "System.Reflection.Emit/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-P2wqAj72fFjpP6wb9nSfDqNBMab+2ovzSDzUZK7MVIm54tBJEPr9jWfSjjoTpPwj1LeKcmX3vr0ttyjSSFM47g==", + "path": "system.reflection.emit/4.0.1", + "hashPath": "system.reflection.emit.4.0.1.nupkg.sha512" + }, + "System.Reflection.Emit.ILGeneration/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Ov6dU8Bu15Bc7zuqttgHF12J5lwSWyTf1S+FJouUXVMSqImLZzYaQ+vRr1rQ0OZ0HqsrwWl4dsKHELckQkVpgA==", + "path": "system.reflection.emit.ilgeneration/4.0.1", + "hashPath": "system.reflection.emit.ilgeneration.4.0.1.nupkg.sha512" + }, + "System.Reflection.Emit.Lightweight/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-sSzHHXueZ5Uh0OLpUQprhr+ZYJrLPA2Cmr4gn0wj9+FftNKXx8RIMKvO9qnjk2ebPYUjZ+F2ulGdPOsvj+MEjA==", + "path": "system.reflection.emit.lightweight/4.0.1", + "hashPath": "system.reflection.emit.lightweight.4.0.1.nupkg.sha512" + }, + "System.Reflection.Extensions/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GYrtRsZcMuHF3sbmRHfMYpvxZoIN2bQGrYGerUiWLEkqdEUQZhH3TRSaC/oI4wO0II1RKBPlpIa1TOMxIcOOzQ==", + "path": "system.reflection.extensions/4.0.1", + "hashPath": "system.reflection.extensions.4.0.1.nupkg.sha512" + }, + "System.Reflection.Primitives/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4inTox4wTBaDhB7V3mPvp9XlCbeGYWVEM9/fXALd52vNEAVisc1BoVWQPuUuD0Ga//dNbA/WeMy9u9mzLxGTHQ==", + "path": "system.reflection.primitives/4.0.1", + "hashPath": "system.reflection.primitives.4.0.1.nupkg.sha512" + }, + "System.Reflection.TypeExtensions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tsQ/ptQ3H5FYfON8lL4MxRk/8kFyE0A+tGPXmVP967cT/gzLHYxIejIYSxp4JmIeFHVP78g/F2FE1mUUTbDtrg==", + "path": "system.reflection.typeextensions/4.1.0", + "hashPath": "system.reflection.typeextensions.4.1.0.nupkg.sha512" + }, + "System.Resources.ResourceManager/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-TxwVeUNoTgUOdQ09gfTjvW411MF+w9MBYL7AtNVc+HtBCFlutPLhUCdZjNkjbhj3bNQWMdHboF0KIWEOjJssbA==", + "path": "system.resources.resourcemanager/4.0.1", + "hashPath": "system.resources.resourcemanager.4.0.1.nupkg.sha512" + }, + "System.Runtime/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-v6c/4Yaa9uWsq+JMhnOFewrYkgdNHNG2eMKuNqRn8P733rNXeRCGvV5FkkjBXn2dbVkPXOsO0xjsEeM1q2zC0g==", + "path": "system.runtime/4.1.0", + "hashPath": "system.runtime.4.1.0.nupkg.sha512" + }, + "System.Runtime.Extensions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-CUOHjTT/vgP0qGW22U4/hDlOqXmcPq5YicBaXdUR2UiUoLwBT+olO6we4DVbq57jeX5uXH2uerVZhf0qGj+sVQ==", + "path": "system.runtime.extensions/4.1.0", + "hashPath": "system.runtime.extensions.4.1.0.nupkg.sha512" + }, + "System.Runtime.Serialization.Primitives/4.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==", + "path": "system.runtime.serialization.primitives/4.1.1", + "hashPath": "system.runtime.serialization.primitives.4.1.1.nupkg.sha512" + }, + "System.Text.Encoding/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-U3gGeMlDZXxCEiY4DwVLSacg+DFWCvoiX+JThA/rvw37Sqrku7sEFeVBBBMBnfB6FeZHsyDx85HlKL19x0HtZA==", + "path": "system.text.encoding/4.0.11", + "hashPath": "system.text.encoding.4.0.11.nupkg.sha512" + }, + "System.Text.Encoding.Extensions/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jtbiTDtvfLYgXn8PTfWI+SiBs51rrmO4AAckx4KR6vFK9Wzf6tI8kcRdsYQNwriUeQ1+CtQbM1W4cMbLXnj/OQ==", + "path": "system.text.encoding.extensions/4.0.11", + "hashPath": "system.text.encoding.extensions.4.0.11.nupkg.sha512" + }, + "System.Text.RegularExpressions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-i88YCXpRTjCnoSQZtdlHkAOx4KNNik4hMy83n0+Ftlb7jvV6ZiZWMpnEZHhjBp6hQVh8gWd/iKNPzlPF7iyA2g==", + "path": "system.text.regularexpressions/4.1.0", + "hashPath": "system.text.regularexpressions.4.1.0.nupkg.sha512" + }, + "System.Threading/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-N+3xqIcg3VDKyjwwCGaZ9HawG9aC6cSDI+s7ROma310GQo8vilFZa86hqKppwTHleR/G0sfOzhvgnUxWCR/DrQ==", + "path": "system.threading/4.0.11", + "hashPath": "system.threading.4.0.11.nupkg.sha512" + }, + "System.Threading.Tasks/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-k1S4Gc6IGwtHGT8188RSeGaX86Qw/wnrgNLshJvsdNUOPP9etMmo8S07c+UlOAx4K/xLuN9ivA1bD0LVurtIxQ==", + "path": "system.threading.tasks/4.0.11", + "hashPath": "system.threading.tasks.4.0.11.nupkg.sha512" + }, + "Ude.NetStandard/1.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zRWpPAxBg3lNdm4UiKixTe+DFPoNid9CILggTCy/0WR2WKETe17kTWhiiIpLB2k5IEgnvA0QLfKlvd6Tvu0pzA==", + "path": "ude.netstandard/1.2.0", + "hashPath": "ude.netstandard.1.2.0.nupkg.sha512" + }, + "YamlDotNet.NetCore/1.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vPiKF4Yf02MS96Nzwcr8+WrvlhTx+camOgUzxhazU0hCzs2ESetWDCxaIT/MYdAw2oONYem1ow9PXWJjHkRUDw==", + "path": "yamldotnet.netcore/1.0.0", + "hashPath": "yamldotnet.netcore.1.0.0.nupkg.sha512" + }, + "Luban.Core/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.DataLoader.Builtin/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Luban.DataTarget.Builtin.dll b/LuBanConfig/Tools/Luban/Luban.DataTarget.Builtin.dll new file mode 100644 index 000000000..ed8630209 Binary files /dev/null and b/LuBanConfig/Tools/Luban/Luban.DataTarget.Builtin.dll differ diff --git a/LuBanConfig/Tools/Luban/Luban.DataValidator.Builtin.deps.json b/LuBanConfig/Tools/Luban/Luban.DataValidator.Builtin.deps.json new file mode 100644 index 000000000..0616312b4 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Luban.DataValidator.Builtin.deps.json @@ -0,0 +1,73 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Luban.DataValidator.Builtin/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0" + }, + "runtime": { + "Luban.DataValidator.Builtin.dll": {} + } + }, + "NLog/5.3.4": { + "runtime": { + "lib/netstandard2.0/NLog.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.3.4.2778" + } + } + }, + "Scriban/5.12.0": { + "runtime": { + "lib/net7.0/Scriban.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.12.0.0" + } + } + }, + "Luban.Core/1.0.0": { + "dependencies": { + "NLog": "5.3.4", + "Scriban": "5.12.0" + }, + "runtime": { + "Luban.Core.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + } + } + }, + "libraries": { + "Luban.DataValidator.Builtin/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "NLog/5.3.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gLy7+O1hEYJXIlcTr1/VWjGXrZTQFZzYNO18IWasD64pNwz0BreV+nHLxWKXWZzERRzoKnsk2XYtwLkTVk7J1A==", + "path": "nlog/5.3.4", + "hashPath": "nlog.5.3.4.nupkg.sha512" + }, + "Scriban/5.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/YTTCxjBIpfwX3MKMT4JMFVl1jX4IHW7zih+Bg3cTIkzGnbFt+B3l/k90ILDw6DRiFE7T+VxEyls7zk4p029ng==", + "path": "scriban/5.12.0", + "hashPath": "scriban.5.12.0.nupkg.sha512" + }, + "Luban.Core/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Luban.DataValidator.Builtin.dll b/LuBanConfig/Tools/Luban/Luban.DataValidator.Builtin.dll new file mode 100644 index 000000000..1ba5ebaae Binary files /dev/null and b/LuBanConfig/Tools/Luban/Luban.DataValidator.Builtin.dll differ diff --git a/LuBanConfig/Tools/Luban/Luban.FlatBuffers.deps.json b/LuBanConfig/Tools/Luban/Luban.FlatBuffers.deps.json new file mode 100644 index 000000000..d7e57c1ca --- /dev/null +++ b/LuBanConfig/Tools/Luban/Luban.FlatBuffers.deps.json @@ -0,0 +1,581 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Luban.FlatBuffers/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0", + "Luban.DataTarget.Builtin": "1.0.0" + }, + "runtime": { + "Luban.FlatBuffers.dll": {} + } + }, + "ExcelDataReader/3.7.0": { + "runtime": { + "lib/netstandard2.1/ExcelDataReader.dll": { + "assemblyVersion": "3.7.0.0", + "fileVersion": "3.7.0.0" + } + } + }, + "Microsoft.CSharp/4.5.0": {}, + "Microsoft.NETCore.Platforms/1.0.1": {}, + "Microsoft.NETCore.Targets/1.0.1": {}, + "NeoLua/1.3.14": { + "dependencies": { + "Microsoft.CSharp": "4.5.0" + }, + "runtime": { + "lib/net5.0/Neo.Lua.dll": { + "assemblyVersion": "5.3.0.0", + "fileVersion": "1.3.14.0" + } + }, + "resources": { + "lib/net5.0/de/Neo.Lua.resources.dll": { + "locale": "de" + } + } + }, + "NLog/5.3.4": { + "runtime": { + "lib/netstandard2.0/NLog.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.3.4.2778" + } + } + }, + "Scriban/5.12.0": { + "runtime": { + "lib/net7.0/Scriban.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.12.0.0" + } + } + }, + "System.Collections/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Diagnostics.Debug/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Diagnostics.Tools/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Globalization/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.IO/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0", + "System.Text.Encoding": "4.0.11", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.Linq/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0" + } + }, + "System.Linq.Expressions/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Globalization": "4.0.11", + "System.IO": "4.1.0", + "System.Linq": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Reflection": "4.1.0", + "System.Reflection.Emit": "4.0.1", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Emit.Lightweight": "4.0.1", + "System.Reflection.Extensions": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Reflection.TypeExtensions": "4.1.0", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.ObjectModel/4.0.12": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.Reflection/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.IO": "4.1.0", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit/4.0.1": { + "dependencies": { + "System.IO": "4.1.0", + "System.Reflection": "4.1.0", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit.ILGeneration/4.0.1": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit.Lightweight/4.0.1": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Extensions/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Primitives/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.TypeExtensions/4.1.0": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Resources.ResourceManager/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Globalization": "4.0.11", + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Runtime/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1" + } + }, + "System.Runtime.Extensions/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Runtime.Serialization.Primitives/4.1.1": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Text.Encoding/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Text.Encoding.Extensions/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0", + "System.Text.Encoding": "4.0.11" + } + }, + "System.Text.RegularExpressions/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Globalization": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.Threading/4.0.11": { + "dependencies": { + "System.Runtime": "4.1.0", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.Threading.Tasks/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "Ude.NetStandard/1.2.0": { + "runtime": { + "lib/netstandard2.0/Ude.NetStandard.dll": { + "assemblyVersion": "1.0.2.0", + "fileVersion": "1.0.2.0" + } + } + }, + "YamlDotNet.NetCore/1.0.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Diagnostics.Tools": "4.0.1", + "System.Globalization": "4.0.11", + "System.Linq": "4.1.0", + "System.Linq.Expressions": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Reflection.Extensions": "4.0.1", + "System.Runtime.Extensions": "4.1.0", + "System.Runtime.Serialization.Primitives": "4.1.1", + "System.Text.Encoding.Extensions": "4.0.11", + "System.Text.RegularExpressions": "4.1.0" + }, + "runtime": { + "lib/netstandard1.0/YamlDotNet.NetCore.dll": { + "assemblyVersion": "0.0.1.0", + "fileVersion": "0.0.0.0" + } + } + }, + "Luban.Core/1.0.0": { + "dependencies": { + "NLog": "5.3.4", + "Scriban": "5.12.0" + }, + "runtime": { + "Luban.Core.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.DataLoader.Builtin/1.0.0": { + "dependencies": { + "ExcelDataReader": "3.7.0", + "Luban.Core": "1.0.0", + "NeoLua": "1.3.14", + "Ude.NetStandard": "1.2.0", + "YamlDotNet.NetCore": "1.0.0" + }, + "runtime": { + "Luban.DataLoader.Builtin.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.DataTarget.Builtin/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0", + "Luban.DataLoader.Builtin": "1.0.0" + }, + "runtime": { + "Luban.DataTarget.Builtin.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + } + } + }, + "libraries": { + "Luban.FlatBuffers/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "ExcelDataReader/3.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-AMv3oDETRHSRyXC17rBtKH45qIfFyo433LMeaMB3u4RNr/c9Luuc0Z+JMP6+3Cx9n4wXqFqcrEIVxrf/GgYnZg==", + "path": "exceldatareader/3.7.0", + "hashPath": "exceldatareader.3.7.0.nupkg.sha512" + }, + "Microsoft.CSharp/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kaj6Wb4qoMuH3HySFJhxwQfe8R/sJsNJnANrvv8WdFPMoNbKY5htfNscv+LHCu5ipz+49m2e+WQXpLXr9XYemQ==", + "path": "microsoft.csharp/4.5.0", + "hashPath": "microsoft.csharp.4.5.0.nupkg.sha512" + }, + "Microsoft.NETCore.Platforms/1.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-2G6OjjJzwBfNOO8myRV/nFrbTw5iA+DEm0N+qUqhrOmaVtn4pC77h38I1jsXGw5VH55+dPfQsqHD0We9sCl9FQ==", + "path": "microsoft.netcore.platforms/1.0.1", + "hashPath": "microsoft.netcore.platforms.1.0.1.nupkg.sha512" + }, + "Microsoft.NETCore.Targets/1.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rkn+fKobF/cbWfnnfBOQHKVKIOpxMZBvlSHkqDWgBpwGDcLRduvs3D9OLGeV6GWGvVwNlVi2CBbTjuPmtHvyNw==", + "path": "microsoft.netcore.targets/1.0.1", + "hashPath": "microsoft.netcore.targets.1.0.1.nupkg.sha512" + }, + "NeoLua/1.3.14": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BXIUN+ePY2wx3ZGiSmR8KZKD85s01pXI690orrB3u/biB8R0nalziGw+iGbPBq1Cuz8Upggpw2ERF84POXWTCQ==", + "path": "neolua/1.3.14", + "hashPath": "neolua.1.3.14.nupkg.sha512" + }, + "NLog/5.3.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gLy7+O1hEYJXIlcTr1/VWjGXrZTQFZzYNO18IWasD64pNwz0BreV+nHLxWKXWZzERRzoKnsk2XYtwLkTVk7J1A==", + "path": "nlog/5.3.4", + "hashPath": "nlog.5.3.4.nupkg.sha512" + }, + "Scriban/5.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/YTTCxjBIpfwX3MKMT4JMFVl1jX4IHW7zih+Bg3cTIkzGnbFt+B3l/k90ILDw6DRiFE7T+VxEyls7zk4p029ng==", + "path": "scriban/5.12.0", + "hashPath": "scriban.5.12.0.nupkg.sha512" + }, + "System.Collections/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YUJGz6eFKqS0V//mLt25vFGrrCvOnsXjlvFQs+KimpwNxug9x0Pzy4PlFMU3Q2IzqAa9G2L4LsK3+9vCBK7oTg==", + "path": "system.collections/4.0.11", + "hashPath": "system.collections.4.0.11.nupkg.sha512" + }, + "System.Diagnostics.Debug/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-w5U95fVKHY4G8ASs/K5iK3J5LY+/dLFd4vKejsnI/ZhBsWS9hQakfx3Zr7lRWKg4tAw9r4iktyvsTagWkqYCiw==", + "path": "system.diagnostics.debug/4.0.11", + "hashPath": "system.diagnostics.debug.4.0.11.nupkg.sha512" + }, + "System.Diagnostics.Tools/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-xBfJ8pnd4C17dWaC9FM6aShzbJcRNMChUMD42I6772KGGrqaFdumwhn9OdM68erj1ueNo3xdQ1EwiFjK5k8p0g==", + "path": "system.diagnostics.tools/4.0.1", + "hashPath": "system.diagnostics.tools.4.0.1.nupkg.sha512" + }, + "System.Globalization/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-B95h0YLEL2oSnwF/XjqSWKnwKOy/01VWkNlsCeMTFJLLabflpGV26nK164eRs5GiaRSBGpOxQ3pKoSnnyZN5pg==", + "path": "system.globalization/4.0.11", + "hashPath": "system.globalization.4.0.11.nupkg.sha512" + }, + "System.IO/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3KlTJceQc3gnGIaHZ7UBZO26SHL1SHE4ddrmiwumFnId+CEHP+O8r386tZKaE6zlk5/mF8vifMBzHj9SaXN+mQ==", + "path": "system.io/4.1.0", + "hashPath": "system.io.4.1.0.nupkg.sha512" + }, + "System.Linq/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bQ0iYFOQI0nuTnt+NQADns6ucV4DUvMdwN6CbkB1yj8i7arTGiTN5eok1kQwdnnNWSDZfIUySQY+J3d5KjWn0g==", + "path": "system.linq/4.1.0", + "hashPath": "system.linq.4.1.0.nupkg.sha512" + }, + "System.Linq.Expressions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-I+y02iqkgmCAyfbqOmSDOgqdZQ5tTj80Akm5BPSS8EeB0VGWdy6X1KCoYe8Pk6pwDoAKZUOdLVxnTJcExiv5zw==", + "path": "system.linq.expressions/4.1.0", + "hashPath": "system.linq.expressions.4.1.0.nupkg.sha512" + }, + "System.ObjectModel/4.0.12": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tAgJM1xt3ytyMoW4qn4wIqgJYm7L7TShRZG4+Q4Qsi2PCcj96pXN7nRywS9KkB3p/xDUjc2HSwP9SROyPYDYKQ==", + "path": "system.objectmodel/4.0.12", + "hashPath": "system.objectmodel.4.0.12.nupkg.sha512" + }, + "System.Reflection/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-JCKANJ0TI7kzoQzuwB/OoJANy1Lg338B6+JVacPl4TpUwi3cReg3nMLplMq2uqYfHFQpKIlHAUVAJlImZz/4ng==", + "path": "system.reflection/4.1.0", + "hashPath": "system.reflection.4.1.0.nupkg.sha512" + }, + "System.Reflection.Emit/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-P2wqAj72fFjpP6wb9nSfDqNBMab+2ovzSDzUZK7MVIm54tBJEPr9jWfSjjoTpPwj1LeKcmX3vr0ttyjSSFM47g==", + "path": "system.reflection.emit/4.0.1", + "hashPath": "system.reflection.emit.4.0.1.nupkg.sha512" + }, + "System.Reflection.Emit.ILGeneration/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Ov6dU8Bu15Bc7zuqttgHF12J5lwSWyTf1S+FJouUXVMSqImLZzYaQ+vRr1rQ0OZ0HqsrwWl4dsKHELckQkVpgA==", + "path": "system.reflection.emit.ilgeneration/4.0.1", + "hashPath": "system.reflection.emit.ilgeneration.4.0.1.nupkg.sha512" + }, + "System.Reflection.Emit.Lightweight/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-sSzHHXueZ5Uh0OLpUQprhr+ZYJrLPA2Cmr4gn0wj9+FftNKXx8RIMKvO9qnjk2ebPYUjZ+F2ulGdPOsvj+MEjA==", + "path": "system.reflection.emit.lightweight/4.0.1", + "hashPath": "system.reflection.emit.lightweight.4.0.1.nupkg.sha512" + }, + "System.Reflection.Extensions/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GYrtRsZcMuHF3sbmRHfMYpvxZoIN2bQGrYGerUiWLEkqdEUQZhH3TRSaC/oI4wO0II1RKBPlpIa1TOMxIcOOzQ==", + "path": "system.reflection.extensions/4.0.1", + "hashPath": "system.reflection.extensions.4.0.1.nupkg.sha512" + }, + "System.Reflection.Primitives/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4inTox4wTBaDhB7V3mPvp9XlCbeGYWVEM9/fXALd52vNEAVisc1BoVWQPuUuD0Ga//dNbA/WeMy9u9mzLxGTHQ==", + "path": "system.reflection.primitives/4.0.1", + "hashPath": "system.reflection.primitives.4.0.1.nupkg.sha512" + }, + "System.Reflection.TypeExtensions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tsQ/ptQ3H5FYfON8lL4MxRk/8kFyE0A+tGPXmVP967cT/gzLHYxIejIYSxp4JmIeFHVP78g/F2FE1mUUTbDtrg==", + "path": "system.reflection.typeextensions/4.1.0", + "hashPath": "system.reflection.typeextensions.4.1.0.nupkg.sha512" + }, + "System.Resources.ResourceManager/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-TxwVeUNoTgUOdQ09gfTjvW411MF+w9MBYL7AtNVc+HtBCFlutPLhUCdZjNkjbhj3bNQWMdHboF0KIWEOjJssbA==", + "path": "system.resources.resourcemanager/4.0.1", + "hashPath": "system.resources.resourcemanager.4.0.1.nupkg.sha512" + }, + "System.Runtime/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-v6c/4Yaa9uWsq+JMhnOFewrYkgdNHNG2eMKuNqRn8P733rNXeRCGvV5FkkjBXn2dbVkPXOsO0xjsEeM1q2zC0g==", + "path": "system.runtime/4.1.0", + "hashPath": "system.runtime.4.1.0.nupkg.sha512" + }, + "System.Runtime.Extensions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-CUOHjTT/vgP0qGW22U4/hDlOqXmcPq5YicBaXdUR2UiUoLwBT+olO6we4DVbq57jeX5uXH2uerVZhf0qGj+sVQ==", + "path": "system.runtime.extensions/4.1.0", + "hashPath": "system.runtime.extensions.4.1.0.nupkg.sha512" + }, + "System.Runtime.Serialization.Primitives/4.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==", + "path": "system.runtime.serialization.primitives/4.1.1", + "hashPath": "system.runtime.serialization.primitives.4.1.1.nupkg.sha512" + }, + "System.Text.Encoding/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-U3gGeMlDZXxCEiY4DwVLSacg+DFWCvoiX+JThA/rvw37Sqrku7sEFeVBBBMBnfB6FeZHsyDx85HlKL19x0HtZA==", + "path": "system.text.encoding/4.0.11", + "hashPath": "system.text.encoding.4.0.11.nupkg.sha512" + }, + "System.Text.Encoding.Extensions/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jtbiTDtvfLYgXn8PTfWI+SiBs51rrmO4AAckx4KR6vFK9Wzf6tI8kcRdsYQNwriUeQ1+CtQbM1W4cMbLXnj/OQ==", + "path": "system.text.encoding.extensions/4.0.11", + "hashPath": "system.text.encoding.extensions.4.0.11.nupkg.sha512" + }, + "System.Text.RegularExpressions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-i88YCXpRTjCnoSQZtdlHkAOx4KNNik4hMy83n0+Ftlb7jvV6ZiZWMpnEZHhjBp6hQVh8gWd/iKNPzlPF7iyA2g==", + "path": "system.text.regularexpressions/4.1.0", + "hashPath": "system.text.regularexpressions.4.1.0.nupkg.sha512" + }, + "System.Threading/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-N+3xqIcg3VDKyjwwCGaZ9HawG9aC6cSDI+s7ROma310GQo8vilFZa86hqKppwTHleR/G0sfOzhvgnUxWCR/DrQ==", + "path": "system.threading/4.0.11", + "hashPath": "system.threading.4.0.11.nupkg.sha512" + }, + "System.Threading.Tasks/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-k1S4Gc6IGwtHGT8188RSeGaX86Qw/wnrgNLshJvsdNUOPP9etMmo8S07c+UlOAx4K/xLuN9ivA1bD0LVurtIxQ==", + "path": "system.threading.tasks/4.0.11", + "hashPath": "system.threading.tasks.4.0.11.nupkg.sha512" + }, + "Ude.NetStandard/1.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zRWpPAxBg3lNdm4UiKixTe+DFPoNid9CILggTCy/0WR2WKETe17kTWhiiIpLB2k5IEgnvA0QLfKlvd6Tvu0pzA==", + "path": "ude.netstandard/1.2.0", + "hashPath": "ude.netstandard.1.2.0.nupkg.sha512" + }, + "YamlDotNet.NetCore/1.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vPiKF4Yf02MS96Nzwcr8+WrvlhTx+camOgUzxhazU0hCzs2ESetWDCxaIT/MYdAw2oONYem1ow9PXWJjHkRUDw==", + "path": "yamldotnet.netcore/1.0.0", + "hashPath": "yamldotnet.netcore.1.0.0.nupkg.sha512" + }, + "Luban.Core/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.DataLoader.Builtin/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.DataTarget.Builtin/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Luban.FlatBuffers.dll b/LuBanConfig/Tools/Luban/Luban.FlatBuffers.dll new file mode 100644 index 000000000..df76fc75f Binary files /dev/null and b/LuBanConfig/Tools/Luban/Luban.FlatBuffers.dll differ diff --git a/LuBanConfig/Tools/Luban/Luban.Gdscript.deps.json b/LuBanConfig/Tools/Luban/Luban.Gdscript.deps.json new file mode 100644 index 000000000..eec881e9d --- /dev/null +++ b/LuBanConfig/Tools/Luban/Luban.Gdscript.deps.json @@ -0,0 +1,581 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Luban.Gdscript/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0", + "Luban.DataTarget.Builtin": "1.0.0" + }, + "runtime": { + "Luban.Gdscript.dll": {} + } + }, + "ExcelDataReader/3.7.0": { + "runtime": { + "lib/netstandard2.1/ExcelDataReader.dll": { + "assemblyVersion": "3.7.0.0", + "fileVersion": "3.7.0.0" + } + } + }, + "Microsoft.CSharp/4.5.0": {}, + "Microsoft.NETCore.Platforms/1.0.1": {}, + "Microsoft.NETCore.Targets/1.0.1": {}, + "NeoLua/1.3.14": { + "dependencies": { + "Microsoft.CSharp": "4.5.0" + }, + "runtime": { + "lib/net5.0/Neo.Lua.dll": { + "assemblyVersion": "5.3.0.0", + "fileVersion": "1.3.14.0" + } + }, + "resources": { + "lib/net5.0/de/Neo.Lua.resources.dll": { + "locale": "de" + } + } + }, + "NLog/5.3.4": { + "runtime": { + "lib/netstandard2.0/NLog.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.3.4.2778" + } + } + }, + "Scriban/5.12.0": { + "runtime": { + "lib/net7.0/Scriban.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.12.0.0" + } + } + }, + "System.Collections/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Diagnostics.Debug/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Diagnostics.Tools/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Globalization/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.IO/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0", + "System.Text.Encoding": "4.0.11", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.Linq/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0" + } + }, + "System.Linq.Expressions/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Globalization": "4.0.11", + "System.IO": "4.1.0", + "System.Linq": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Reflection": "4.1.0", + "System.Reflection.Emit": "4.0.1", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Emit.Lightweight": "4.0.1", + "System.Reflection.Extensions": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Reflection.TypeExtensions": "4.1.0", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.ObjectModel/4.0.12": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.Reflection/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.IO": "4.1.0", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit/4.0.1": { + "dependencies": { + "System.IO": "4.1.0", + "System.Reflection": "4.1.0", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit.ILGeneration/4.0.1": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit.Lightweight/4.0.1": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Extensions/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Primitives/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.TypeExtensions/4.1.0": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Resources.ResourceManager/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Globalization": "4.0.11", + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Runtime/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1" + } + }, + "System.Runtime.Extensions/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Runtime.Serialization.Primitives/4.1.1": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Text.Encoding/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Text.Encoding.Extensions/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0", + "System.Text.Encoding": "4.0.11" + } + }, + "System.Text.RegularExpressions/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Globalization": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.Threading/4.0.11": { + "dependencies": { + "System.Runtime": "4.1.0", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.Threading.Tasks/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "Ude.NetStandard/1.2.0": { + "runtime": { + "lib/netstandard2.0/Ude.NetStandard.dll": { + "assemblyVersion": "1.0.2.0", + "fileVersion": "1.0.2.0" + } + } + }, + "YamlDotNet.NetCore/1.0.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Diagnostics.Tools": "4.0.1", + "System.Globalization": "4.0.11", + "System.Linq": "4.1.0", + "System.Linq.Expressions": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Reflection.Extensions": "4.0.1", + "System.Runtime.Extensions": "4.1.0", + "System.Runtime.Serialization.Primitives": "4.1.1", + "System.Text.Encoding.Extensions": "4.0.11", + "System.Text.RegularExpressions": "4.1.0" + }, + "runtime": { + "lib/netstandard1.0/YamlDotNet.NetCore.dll": { + "assemblyVersion": "0.0.1.0", + "fileVersion": "0.0.0.0" + } + } + }, + "Luban.Core/1.0.0": { + "dependencies": { + "NLog": "5.3.4", + "Scriban": "5.12.0" + }, + "runtime": { + "Luban.Core.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.DataLoader.Builtin/1.0.0": { + "dependencies": { + "ExcelDataReader": "3.7.0", + "Luban.Core": "1.0.0", + "NeoLua": "1.3.14", + "Ude.NetStandard": "1.2.0", + "YamlDotNet.NetCore": "1.0.0" + }, + "runtime": { + "Luban.DataLoader.Builtin.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.DataTarget.Builtin/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0", + "Luban.DataLoader.Builtin": "1.0.0" + }, + "runtime": { + "Luban.DataTarget.Builtin.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + } + } + }, + "libraries": { + "Luban.Gdscript/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "ExcelDataReader/3.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-AMv3oDETRHSRyXC17rBtKH45qIfFyo433LMeaMB3u4RNr/c9Luuc0Z+JMP6+3Cx9n4wXqFqcrEIVxrf/GgYnZg==", + "path": "exceldatareader/3.7.0", + "hashPath": "exceldatareader.3.7.0.nupkg.sha512" + }, + "Microsoft.CSharp/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kaj6Wb4qoMuH3HySFJhxwQfe8R/sJsNJnANrvv8WdFPMoNbKY5htfNscv+LHCu5ipz+49m2e+WQXpLXr9XYemQ==", + "path": "microsoft.csharp/4.5.0", + "hashPath": "microsoft.csharp.4.5.0.nupkg.sha512" + }, + "Microsoft.NETCore.Platforms/1.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-2G6OjjJzwBfNOO8myRV/nFrbTw5iA+DEm0N+qUqhrOmaVtn4pC77h38I1jsXGw5VH55+dPfQsqHD0We9sCl9FQ==", + "path": "microsoft.netcore.platforms/1.0.1", + "hashPath": "microsoft.netcore.platforms.1.0.1.nupkg.sha512" + }, + "Microsoft.NETCore.Targets/1.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rkn+fKobF/cbWfnnfBOQHKVKIOpxMZBvlSHkqDWgBpwGDcLRduvs3D9OLGeV6GWGvVwNlVi2CBbTjuPmtHvyNw==", + "path": "microsoft.netcore.targets/1.0.1", + "hashPath": "microsoft.netcore.targets.1.0.1.nupkg.sha512" + }, + "NeoLua/1.3.14": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BXIUN+ePY2wx3ZGiSmR8KZKD85s01pXI690orrB3u/biB8R0nalziGw+iGbPBq1Cuz8Upggpw2ERF84POXWTCQ==", + "path": "neolua/1.3.14", + "hashPath": "neolua.1.3.14.nupkg.sha512" + }, + "NLog/5.3.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gLy7+O1hEYJXIlcTr1/VWjGXrZTQFZzYNO18IWasD64pNwz0BreV+nHLxWKXWZzERRzoKnsk2XYtwLkTVk7J1A==", + "path": "nlog/5.3.4", + "hashPath": "nlog.5.3.4.nupkg.sha512" + }, + "Scriban/5.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/YTTCxjBIpfwX3MKMT4JMFVl1jX4IHW7zih+Bg3cTIkzGnbFt+B3l/k90ILDw6DRiFE7T+VxEyls7zk4p029ng==", + "path": "scriban/5.12.0", + "hashPath": "scriban.5.12.0.nupkg.sha512" + }, + "System.Collections/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YUJGz6eFKqS0V//mLt25vFGrrCvOnsXjlvFQs+KimpwNxug9x0Pzy4PlFMU3Q2IzqAa9G2L4LsK3+9vCBK7oTg==", + "path": "system.collections/4.0.11", + "hashPath": "system.collections.4.0.11.nupkg.sha512" + }, + "System.Diagnostics.Debug/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-w5U95fVKHY4G8ASs/K5iK3J5LY+/dLFd4vKejsnI/ZhBsWS9hQakfx3Zr7lRWKg4tAw9r4iktyvsTagWkqYCiw==", + "path": "system.diagnostics.debug/4.0.11", + "hashPath": "system.diagnostics.debug.4.0.11.nupkg.sha512" + }, + "System.Diagnostics.Tools/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-xBfJ8pnd4C17dWaC9FM6aShzbJcRNMChUMD42I6772KGGrqaFdumwhn9OdM68erj1ueNo3xdQ1EwiFjK5k8p0g==", + "path": "system.diagnostics.tools/4.0.1", + "hashPath": "system.diagnostics.tools.4.0.1.nupkg.sha512" + }, + "System.Globalization/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-B95h0YLEL2oSnwF/XjqSWKnwKOy/01VWkNlsCeMTFJLLabflpGV26nK164eRs5GiaRSBGpOxQ3pKoSnnyZN5pg==", + "path": "system.globalization/4.0.11", + "hashPath": "system.globalization.4.0.11.nupkg.sha512" + }, + "System.IO/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3KlTJceQc3gnGIaHZ7UBZO26SHL1SHE4ddrmiwumFnId+CEHP+O8r386tZKaE6zlk5/mF8vifMBzHj9SaXN+mQ==", + "path": "system.io/4.1.0", + "hashPath": "system.io.4.1.0.nupkg.sha512" + }, + "System.Linq/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bQ0iYFOQI0nuTnt+NQADns6ucV4DUvMdwN6CbkB1yj8i7arTGiTN5eok1kQwdnnNWSDZfIUySQY+J3d5KjWn0g==", + "path": "system.linq/4.1.0", + "hashPath": "system.linq.4.1.0.nupkg.sha512" + }, + "System.Linq.Expressions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-I+y02iqkgmCAyfbqOmSDOgqdZQ5tTj80Akm5BPSS8EeB0VGWdy6X1KCoYe8Pk6pwDoAKZUOdLVxnTJcExiv5zw==", + "path": "system.linq.expressions/4.1.0", + "hashPath": "system.linq.expressions.4.1.0.nupkg.sha512" + }, + "System.ObjectModel/4.0.12": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tAgJM1xt3ytyMoW4qn4wIqgJYm7L7TShRZG4+Q4Qsi2PCcj96pXN7nRywS9KkB3p/xDUjc2HSwP9SROyPYDYKQ==", + "path": "system.objectmodel/4.0.12", + "hashPath": "system.objectmodel.4.0.12.nupkg.sha512" + }, + "System.Reflection/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-JCKANJ0TI7kzoQzuwB/OoJANy1Lg338B6+JVacPl4TpUwi3cReg3nMLplMq2uqYfHFQpKIlHAUVAJlImZz/4ng==", + "path": "system.reflection/4.1.0", + "hashPath": "system.reflection.4.1.0.nupkg.sha512" + }, + "System.Reflection.Emit/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-P2wqAj72fFjpP6wb9nSfDqNBMab+2ovzSDzUZK7MVIm54tBJEPr9jWfSjjoTpPwj1LeKcmX3vr0ttyjSSFM47g==", + "path": "system.reflection.emit/4.0.1", + "hashPath": "system.reflection.emit.4.0.1.nupkg.sha512" + }, + "System.Reflection.Emit.ILGeneration/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Ov6dU8Bu15Bc7zuqttgHF12J5lwSWyTf1S+FJouUXVMSqImLZzYaQ+vRr1rQ0OZ0HqsrwWl4dsKHELckQkVpgA==", + "path": "system.reflection.emit.ilgeneration/4.0.1", + "hashPath": "system.reflection.emit.ilgeneration.4.0.1.nupkg.sha512" + }, + "System.Reflection.Emit.Lightweight/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-sSzHHXueZ5Uh0OLpUQprhr+ZYJrLPA2Cmr4gn0wj9+FftNKXx8RIMKvO9qnjk2ebPYUjZ+F2ulGdPOsvj+MEjA==", + "path": "system.reflection.emit.lightweight/4.0.1", + "hashPath": "system.reflection.emit.lightweight.4.0.1.nupkg.sha512" + }, + "System.Reflection.Extensions/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GYrtRsZcMuHF3sbmRHfMYpvxZoIN2bQGrYGerUiWLEkqdEUQZhH3TRSaC/oI4wO0II1RKBPlpIa1TOMxIcOOzQ==", + "path": "system.reflection.extensions/4.0.1", + "hashPath": "system.reflection.extensions.4.0.1.nupkg.sha512" + }, + "System.Reflection.Primitives/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4inTox4wTBaDhB7V3mPvp9XlCbeGYWVEM9/fXALd52vNEAVisc1BoVWQPuUuD0Ga//dNbA/WeMy9u9mzLxGTHQ==", + "path": "system.reflection.primitives/4.0.1", + "hashPath": "system.reflection.primitives.4.0.1.nupkg.sha512" + }, + "System.Reflection.TypeExtensions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tsQ/ptQ3H5FYfON8lL4MxRk/8kFyE0A+tGPXmVP967cT/gzLHYxIejIYSxp4JmIeFHVP78g/F2FE1mUUTbDtrg==", + "path": "system.reflection.typeextensions/4.1.0", + "hashPath": "system.reflection.typeextensions.4.1.0.nupkg.sha512" + }, + "System.Resources.ResourceManager/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-TxwVeUNoTgUOdQ09gfTjvW411MF+w9MBYL7AtNVc+HtBCFlutPLhUCdZjNkjbhj3bNQWMdHboF0KIWEOjJssbA==", + "path": "system.resources.resourcemanager/4.0.1", + "hashPath": "system.resources.resourcemanager.4.0.1.nupkg.sha512" + }, + "System.Runtime/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-v6c/4Yaa9uWsq+JMhnOFewrYkgdNHNG2eMKuNqRn8P733rNXeRCGvV5FkkjBXn2dbVkPXOsO0xjsEeM1q2zC0g==", + "path": "system.runtime/4.1.0", + "hashPath": "system.runtime.4.1.0.nupkg.sha512" + }, + "System.Runtime.Extensions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-CUOHjTT/vgP0qGW22U4/hDlOqXmcPq5YicBaXdUR2UiUoLwBT+olO6we4DVbq57jeX5uXH2uerVZhf0qGj+sVQ==", + "path": "system.runtime.extensions/4.1.0", + "hashPath": "system.runtime.extensions.4.1.0.nupkg.sha512" + }, + "System.Runtime.Serialization.Primitives/4.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==", + "path": "system.runtime.serialization.primitives/4.1.1", + "hashPath": "system.runtime.serialization.primitives.4.1.1.nupkg.sha512" + }, + "System.Text.Encoding/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-U3gGeMlDZXxCEiY4DwVLSacg+DFWCvoiX+JThA/rvw37Sqrku7sEFeVBBBMBnfB6FeZHsyDx85HlKL19x0HtZA==", + "path": "system.text.encoding/4.0.11", + "hashPath": "system.text.encoding.4.0.11.nupkg.sha512" + }, + "System.Text.Encoding.Extensions/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jtbiTDtvfLYgXn8PTfWI+SiBs51rrmO4AAckx4KR6vFK9Wzf6tI8kcRdsYQNwriUeQ1+CtQbM1W4cMbLXnj/OQ==", + "path": "system.text.encoding.extensions/4.0.11", + "hashPath": "system.text.encoding.extensions.4.0.11.nupkg.sha512" + }, + "System.Text.RegularExpressions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-i88YCXpRTjCnoSQZtdlHkAOx4KNNik4hMy83n0+Ftlb7jvV6ZiZWMpnEZHhjBp6hQVh8gWd/iKNPzlPF7iyA2g==", + "path": "system.text.regularexpressions/4.1.0", + "hashPath": "system.text.regularexpressions.4.1.0.nupkg.sha512" + }, + "System.Threading/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-N+3xqIcg3VDKyjwwCGaZ9HawG9aC6cSDI+s7ROma310GQo8vilFZa86hqKppwTHleR/G0sfOzhvgnUxWCR/DrQ==", + "path": "system.threading/4.0.11", + "hashPath": "system.threading.4.0.11.nupkg.sha512" + }, + "System.Threading.Tasks/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-k1S4Gc6IGwtHGT8188RSeGaX86Qw/wnrgNLshJvsdNUOPP9etMmo8S07c+UlOAx4K/xLuN9ivA1bD0LVurtIxQ==", + "path": "system.threading.tasks/4.0.11", + "hashPath": "system.threading.tasks.4.0.11.nupkg.sha512" + }, + "Ude.NetStandard/1.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zRWpPAxBg3lNdm4UiKixTe+DFPoNid9CILggTCy/0WR2WKETe17kTWhiiIpLB2k5IEgnvA0QLfKlvd6Tvu0pzA==", + "path": "ude.netstandard/1.2.0", + "hashPath": "ude.netstandard.1.2.0.nupkg.sha512" + }, + "YamlDotNet.NetCore/1.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vPiKF4Yf02MS96Nzwcr8+WrvlhTx+camOgUzxhazU0hCzs2ESetWDCxaIT/MYdAw2oONYem1ow9PXWJjHkRUDw==", + "path": "yamldotnet.netcore/1.0.0", + "hashPath": "yamldotnet.netcore.1.0.0.nupkg.sha512" + }, + "Luban.Core/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.DataLoader.Builtin/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.DataTarget.Builtin/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Luban.Gdscript.dll b/LuBanConfig/Tools/Luban/Luban.Gdscript.dll new file mode 100644 index 000000000..3ad705134 Binary files /dev/null and b/LuBanConfig/Tools/Luban/Luban.Gdscript.dll differ diff --git a/LuBanConfig/Tools/Luban/Luban.Golang.deps.json b/LuBanConfig/Tools/Luban/Luban.Golang.deps.json new file mode 100644 index 000000000..eb357886d --- /dev/null +++ b/LuBanConfig/Tools/Luban/Luban.Golang.deps.json @@ -0,0 +1,73 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Luban.Golang/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0" + }, + "runtime": { + "Luban.Golang.dll": {} + } + }, + "NLog/5.3.4": { + "runtime": { + "lib/netstandard2.0/NLog.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.3.4.2778" + } + } + }, + "Scriban/5.12.0": { + "runtime": { + "lib/net7.0/Scriban.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.12.0.0" + } + } + }, + "Luban.Core/1.0.0": { + "dependencies": { + "NLog": "5.3.4", + "Scriban": "5.12.0" + }, + "runtime": { + "Luban.Core.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + } + } + }, + "libraries": { + "Luban.Golang/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "NLog/5.3.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gLy7+O1hEYJXIlcTr1/VWjGXrZTQFZzYNO18IWasD64pNwz0BreV+nHLxWKXWZzERRzoKnsk2XYtwLkTVk7J1A==", + "path": "nlog/5.3.4", + "hashPath": "nlog.5.3.4.nupkg.sha512" + }, + "Scriban/5.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/YTTCxjBIpfwX3MKMT4JMFVl1jX4IHW7zih+Bg3cTIkzGnbFt+B3l/k90ILDw6DRiFE7T+VxEyls7zk4p029ng==", + "path": "scriban/5.12.0", + "hashPath": "scriban.5.12.0.nupkg.sha512" + }, + "Luban.Core/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Luban.Golang.dll b/LuBanConfig/Tools/Luban/Luban.Golang.dll new file mode 100644 index 000000000..99bc2bb54 Binary files /dev/null and b/LuBanConfig/Tools/Luban/Luban.Golang.dll differ diff --git a/LuBanConfig/Tools/Luban/Luban.Java.deps.json b/LuBanConfig/Tools/Luban/Luban.Java.deps.json new file mode 100644 index 000000000..83a9ec069 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Luban.Java.deps.json @@ -0,0 +1,73 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Luban.Java/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0" + }, + "runtime": { + "Luban.Java.dll": {} + } + }, + "NLog/5.3.4": { + "runtime": { + "lib/netstandard2.0/NLog.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.3.4.2778" + } + } + }, + "Scriban/5.12.0": { + "runtime": { + "lib/net7.0/Scriban.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.12.0.0" + } + } + }, + "Luban.Core/1.0.0": { + "dependencies": { + "NLog": "5.3.4", + "Scriban": "5.12.0" + }, + "runtime": { + "Luban.Core.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + } + } + }, + "libraries": { + "Luban.Java/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "NLog/5.3.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gLy7+O1hEYJXIlcTr1/VWjGXrZTQFZzYNO18IWasD64pNwz0BreV+nHLxWKXWZzERRzoKnsk2XYtwLkTVk7J1A==", + "path": "nlog/5.3.4", + "hashPath": "nlog.5.3.4.nupkg.sha512" + }, + "Scriban/5.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/YTTCxjBIpfwX3MKMT4JMFVl1jX4IHW7zih+Bg3cTIkzGnbFt+B3l/k90ILDw6DRiFE7T+VxEyls7zk4p029ng==", + "path": "scriban/5.12.0", + "hashPath": "scriban.5.12.0.nupkg.sha512" + }, + "Luban.Core/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Luban.Java.dll b/LuBanConfig/Tools/Luban/Luban.Java.dll new file mode 100644 index 000000000..36ac32596 Binary files /dev/null and b/LuBanConfig/Tools/Luban/Luban.Java.dll differ diff --git a/LuBanConfig/Tools/Luban/Luban.L10N.deps.json b/LuBanConfig/Tools/Luban/Luban.L10N.deps.json new file mode 100644 index 000000000..605a60377 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Luban.L10N.deps.json @@ -0,0 +1,564 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Luban.L10N/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0", + "Luban.DataLoader.Builtin": "1.0.0" + }, + "runtime": { + "Luban.L10N.dll": {} + } + }, + "ExcelDataReader/3.7.0": { + "runtime": { + "lib/netstandard2.1/ExcelDataReader.dll": { + "assemblyVersion": "3.7.0.0", + "fileVersion": "3.7.0.0" + } + } + }, + "Microsoft.CSharp/4.5.0": {}, + "Microsoft.NETCore.Platforms/1.0.1": {}, + "Microsoft.NETCore.Targets/1.0.1": {}, + "NeoLua/1.3.14": { + "dependencies": { + "Microsoft.CSharp": "4.5.0" + }, + "runtime": { + "lib/net5.0/Neo.Lua.dll": { + "assemblyVersion": "5.3.0.0", + "fileVersion": "1.3.14.0" + } + }, + "resources": { + "lib/net5.0/de/Neo.Lua.resources.dll": { + "locale": "de" + } + } + }, + "NLog/5.3.4": { + "runtime": { + "lib/netstandard2.0/NLog.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.3.4.2778" + } + } + }, + "Scriban/5.12.0": { + "runtime": { + "lib/net7.0/Scriban.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.12.0.0" + } + } + }, + "System.Collections/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Diagnostics.Debug/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Diagnostics.Tools/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Globalization/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.IO/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0", + "System.Text.Encoding": "4.0.11", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.Linq/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0" + } + }, + "System.Linq.Expressions/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Globalization": "4.0.11", + "System.IO": "4.1.0", + "System.Linq": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Reflection": "4.1.0", + "System.Reflection.Emit": "4.0.1", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Emit.Lightweight": "4.0.1", + "System.Reflection.Extensions": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Reflection.TypeExtensions": "4.1.0", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.ObjectModel/4.0.12": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.Reflection/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.IO": "4.1.0", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit/4.0.1": { + "dependencies": { + "System.IO": "4.1.0", + "System.Reflection": "4.1.0", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit.ILGeneration/4.0.1": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit.Lightweight/4.0.1": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Extensions/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Primitives/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.TypeExtensions/4.1.0": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Resources.ResourceManager/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Globalization": "4.0.11", + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Runtime/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1" + } + }, + "System.Runtime.Extensions/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Runtime.Serialization.Primitives/4.1.1": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Text.Encoding/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Text.Encoding.Extensions/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0", + "System.Text.Encoding": "4.0.11" + } + }, + "System.Text.RegularExpressions/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Globalization": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.Threading/4.0.11": { + "dependencies": { + "System.Runtime": "4.1.0", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.Threading.Tasks/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "Ude.NetStandard/1.2.0": { + "runtime": { + "lib/netstandard2.0/Ude.NetStandard.dll": { + "assemblyVersion": "1.0.2.0", + "fileVersion": "1.0.2.0" + } + } + }, + "YamlDotNet.NetCore/1.0.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Diagnostics.Tools": "4.0.1", + "System.Globalization": "4.0.11", + "System.Linq": "4.1.0", + "System.Linq.Expressions": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Reflection.Extensions": "4.0.1", + "System.Runtime.Extensions": "4.1.0", + "System.Runtime.Serialization.Primitives": "4.1.1", + "System.Text.Encoding.Extensions": "4.0.11", + "System.Text.RegularExpressions": "4.1.0" + }, + "runtime": { + "lib/netstandard1.0/YamlDotNet.NetCore.dll": { + "assemblyVersion": "0.0.1.0", + "fileVersion": "0.0.0.0" + } + } + }, + "Luban.Core/1.0.0": { + "dependencies": { + "NLog": "5.3.4", + "Scriban": "5.12.0" + }, + "runtime": { + "Luban.Core.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.DataLoader.Builtin/1.0.0": { + "dependencies": { + "ExcelDataReader": "3.7.0", + "Luban.Core": "1.0.0", + "NeoLua": "1.3.14", + "Ude.NetStandard": "1.2.0", + "YamlDotNet.NetCore": "1.0.0" + }, + "runtime": { + "Luban.DataLoader.Builtin.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + } + } + }, + "libraries": { + "Luban.L10N/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "ExcelDataReader/3.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-AMv3oDETRHSRyXC17rBtKH45qIfFyo433LMeaMB3u4RNr/c9Luuc0Z+JMP6+3Cx9n4wXqFqcrEIVxrf/GgYnZg==", + "path": "exceldatareader/3.7.0", + "hashPath": "exceldatareader.3.7.0.nupkg.sha512" + }, + "Microsoft.CSharp/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kaj6Wb4qoMuH3HySFJhxwQfe8R/sJsNJnANrvv8WdFPMoNbKY5htfNscv+LHCu5ipz+49m2e+WQXpLXr9XYemQ==", + "path": "microsoft.csharp/4.5.0", + "hashPath": "microsoft.csharp.4.5.0.nupkg.sha512" + }, + "Microsoft.NETCore.Platforms/1.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-2G6OjjJzwBfNOO8myRV/nFrbTw5iA+DEm0N+qUqhrOmaVtn4pC77h38I1jsXGw5VH55+dPfQsqHD0We9sCl9FQ==", + "path": "microsoft.netcore.platforms/1.0.1", + "hashPath": "microsoft.netcore.platforms.1.0.1.nupkg.sha512" + }, + "Microsoft.NETCore.Targets/1.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rkn+fKobF/cbWfnnfBOQHKVKIOpxMZBvlSHkqDWgBpwGDcLRduvs3D9OLGeV6GWGvVwNlVi2CBbTjuPmtHvyNw==", + "path": "microsoft.netcore.targets/1.0.1", + "hashPath": "microsoft.netcore.targets.1.0.1.nupkg.sha512" + }, + "NeoLua/1.3.14": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BXIUN+ePY2wx3ZGiSmR8KZKD85s01pXI690orrB3u/biB8R0nalziGw+iGbPBq1Cuz8Upggpw2ERF84POXWTCQ==", + "path": "neolua/1.3.14", + "hashPath": "neolua.1.3.14.nupkg.sha512" + }, + "NLog/5.3.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gLy7+O1hEYJXIlcTr1/VWjGXrZTQFZzYNO18IWasD64pNwz0BreV+nHLxWKXWZzERRzoKnsk2XYtwLkTVk7J1A==", + "path": "nlog/5.3.4", + "hashPath": "nlog.5.3.4.nupkg.sha512" + }, + "Scriban/5.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/YTTCxjBIpfwX3MKMT4JMFVl1jX4IHW7zih+Bg3cTIkzGnbFt+B3l/k90ILDw6DRiFE7T+VxEyls7zk4p029ng==", + "path": "scriban/5.12.0", + "hashPath": "scriban.5.12.0.nupkg.sha512" + }, + "System.Collections/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YUJGz6eFKqS0V//mLt25vFGrrCvOnsXjlvFQs+KimpwNxug9x0Pzy4PlFMU3Q2IzqAa9G2L4LsK3+9vCBK7oTg==", + "path": "system.collections/4.0.11", + "hashPath": "system.collections.4.0.11.nupkg.sha512" + }, + "System.Diagnostics.Debug/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-w5U95fVKHY4G8ASs/K5iK3J5LY+/dLFd4vKejsnI/ZhBsWS9hQakfx3Zr7lRWKg4tAw9r4iktyvsTagWkqYCiw==", + "path": "system.diagnostics.debug/4.0.11", + "hashPath": "system.diagnostics.debug.4.0.11.nupkg.sha512" + }, + "System.Diagnostics.Tools/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-xBfJ8pnd4C17dWaC9FM6aShzbJcRNMChUMD42I6772KGGrqaFdumwhn9OdM68erj1ueNo3xdQ1EwiFjK5k8p0g==", + "path": "system.diagnostics.tools/4.0.1", + "hashPath": "system.diagnostics.tools.4.0.1.nupkg.sha512" + }, + "System.Globalization/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-B95h0YLEL2oSnwF/XjqSWKnwKOy/01VWkNlsCeMTFJLLabflpGV26nK164eRs5GiaRSBGpOxQ3pKoSnnyZN5pg==", + "path": "system.globalization/4.0.11", + "hashPath": "system.globalization.4.0.11.nupkg.sha512" + }, + "System.IO/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3KlTJceQc3gnGIaHZ7UBZO26SHL1SHE4ddrmiwumFnId+CEHP+O8r386tZKaE6zlk5/mF8vifMBzHj9SaXN+mQ==", + "path": "system.io/4.1.0", + "hashPath": "system.io.4.1.0.nupkg.sha512" + }, + "System.Linq/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bQ0iYFOQI0nuTnt+NQADns6ucV4DUvMdwN6CbkB1yj8i7arTGiTN5eok1kQwdnnNWSDZfIUySQY+J3d5KjWn0g==", + "path": "system.linq/4.1.0", + "hashPath": "system.linq.4.1.0.nupkg.sha512" + }, + "System.Linq.Expressions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-I+y02iqkgmCAyfbqOmSDOgqdZQ5tTj80Akm5BPSS8EeB0VGWdy6X1KCoYe8Pk6pwDoAKZUOdLVxnTJcExiv5zw==", + "path": "system.linq.expressions/4.1.0", + "hashPath": "system.linq.expressions.4.1.0.nupkg.sha512" + }, + "System.ObjectModel/4.0.12": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tAgJM1xt3ytyMoW4qn4wIqgJYm7L7TShRZG4+Q4Qsi2PCcj96pXN7nRywS9KkB3p/xDUjc2HSwP9SROyPYDYKQ==", + "path": "system.objectmodel/4.0.12", + "hashPath": "system.objectmodel.4.0.12.nupkg.sha512" + }, + "System.Reflection/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-JCKANJ0TI7kzoQzuwB/OoJANy1Lg338B6+JVacPl4TpUwi3cReg3nMLplMq2uqYfHFQpKIlHAUVAJlImZz/4ng==", + "path": "system.reflection/4.1.0", + "hashPath": "system.reflection.4.1.0.nupkg.sha512" + }, + "System.Reflection.Emit/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-P2wqAj72fFjpP6wb9nSfDqNBMab+2ovzSDzUZK7MVIm54tBJEPr9jWfSjjoTpPwj1LeKcmX3vr0ttyjSSFM47g==", + "path": "system.reflection.emit/4.0.1", + "hashPath": "system.reflection.emit.4.0.1.nupkg.sha512" + }, + "System.Reflection.Emit.ILGeneration/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Ov6dU8Bu15Bc7zuqttgHF12J5lwSWyTf1S+FJouUXVMSqImLZzYaQ+vRr1rQ0OZ0HqsrwWl4dsKHELckQkVpgA==", + "path": "system.reflection.emit.ilgeneration/4.0.1", + "hashPath": "system.reflection.emit.ilgeneration.4.0.1.nupkg.sha512" + }, + "System.Reflection.Emit.Lightweight/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-sSzHHXueZ5Uh0OLpUQprhr+ZYJrLPA2Cmr4gn0wj9+FftNKXx8RIMKvO9qnjk2ebPYUjZ+F2ulGdPOsvj+MEjA==", + "path": "system.reflection.emit.lightweight/4.0.1", + "hashPath": "system.reflection.emit.lightweight.4.0.1.nupkg.sha512" + }, + "System.Reflection.Extensions/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GYrtRsZcMuHF3sbmRHfMYpvxZoIN2bQGrYGerUiWLEkqdEUQZhH3TRSaC/oI4wO0II1RKBPlpIa1TOMxIcOOzQ==", + "path": "system.reflection.extensions/4.0.1", + "hashPath": "system.reflection.extensions.4.0.1.nupkg.sha512" + }, + "System.Reflection.Primitives/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4inTox4wTBaDhB7V3mPvp9XlCbeGYWVEM9/fXALd52vNEAVisc1BoVWQPuUuD0Ga//dNbA/WeMy9u9mzLxGTHQ==", + "path": "system.reflection.primitives/4.0.1", + "hashPath": "system.reflection.primitives.4.0.1.nupkg.sha512" + }, + "System.Reflection.TypeExtensions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tsQ/ptQ3H5FYfON8lL4MxRk/8kFyE0A+tGPXmVP967cT/gzLHYxIejIYSxp4JmIeFHVP78g/F2FE1mUUTbDtrg==", + "path": "system.reflection.typeextensions/4.1.0", + "hashPath": "system.reflection.typeextensions.4.1.0.nupkg.sha512" + }, + "System.Resources.ResourceManager/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-TxwVeUNoTgUOdQ09gfTjvW411MF+w9MBYL7AtNVc+HtBCFlutPLhUCdZjNkjbhj3bNQWMdHboF0KIWEOjJssbA==", + "path": "system.resources.resourcemanager/4.0.1", + "hashPath": "system.resources.resourcemanager.4.0.1.nupkg.sha512" + }, + "System.Runtime/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-v6c/4Yaa9uWsq+JMhnOFewrYkgdNHNG2eMKuNqRn8P733rNXeRCGvV5FkkjBXn2dbVkPXOsO0xjsEeM1q2zC0g==", + "path": "system.runtime/4.1.0", + "hashPath": "system.runtime.4.1.0.nupkg.sha512" + }, + "System.Runtime.Extensions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-CUOHjTT/vgP0qGW22U4/hDlOqXmcPq5YicBaXdUR2UiUoLwBT+olO6we4DVbq57jeX5uXH2uerVZhf0qGj+sVQ==", + "path": "system.runtime.extensions/4.1.0", + "hashPath": "system.runtime.extensions.4.1.0.nupkg.sha512" + }, + "System.Runtime.Serialization.Primitives/4.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==", + "path": "system.runtime.serialization.primitives/4.1.1", + "hashPath": "system.runtime.serialization.primitives.4.1.1.nupkg.sha512" + }, + "System.Text.Encoding/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-U3gGeMlDZXxCEiY4DwVLSacg+DFWCvoiX+JThA/rvw37Sqrku7sEFeVBBBMBnfB6FeZHsyDx85HlKL19x0HtZA==", + "path": "system.text.encoding/4.0.11", + "hashPath": "system.text.encoding.4.0.11.nupkg.sha512" + }, + "System.Text.Encoding.Extensions/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jtbiTDtvfLYgXn8PTfWI+SiBs51rrmO4AAckx4KR6vFK9Wzf6tI8kcRdsYQNwriUeQ1+CtQbM1W4cMbLXnj/OQ==", + "path": "system.text.encoding.extensions/4.0.11", + "hashPath": "system.text.encoding.extensions.4.0.11.nupkg.sha512" + }, + "System.Text.RegularExpressions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-i88YCXpRTjCnoSQZtdlHkAOx4KNNik4hMy83n0+Ftlb7jvV6ZiZWMpnEZHhjBp6hQVh8gWd/iKNPzlPF7iyA2g==", + "path": "system.text.regularexpressions/4.1.0", + "hashPath": "system.text.regularexpressions.4.1.0.nupkg.sha512" + }, + "System.Threading/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-N+3xqIcg3VDKyjwwCGaZ9HawG9aC6cSDI+s7ROma310GQo8vilFZa86hqKppwTHleR/G0sfOzhvgnUxWCR/DrQ==", + "path": "system.threading/4.0.11", + "hashPath": "system.threading.4.0.11.nupkg.sha512" + }, + "System.Threading.Tasks/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-k1S4Gc6IGwtHGT8188RSeGaX86Qw/wnrgNLshJvsdNUOPP9etMmo8S07c+UlOAx4K/xLuN9ivA1bD0LVurtIxQ==", + "path": "system.threading.tasks/4.0.11", + "hashPath": "system.threading.tasks.4.0.11.nupkg.sha512" + }, + "Ude.NetStandard/1.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zRWpPAxBg3lNdm4UiKixTe+DFPoNid9CILggTCy/0WR2WKETe17kTWhiiIpLB2k5IEgnvA0QLfKlvd6Tvu0pzA==", + "path": "ude.netstandard/1.2.0", + "hashPath": "ude.netstandard.1.2.0.nupkg.sha512" + }, + "YamlDotNet.NetCore/1.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vPiKF4Yf02MS96Nzwcr8+WrvlhTx+camOgUzxhazU0hCzs2ESetWDCxaIT/MYdAw2oONYem1ow9PXWJjHkRUDw==", + "path": "yamldotnet.netcore/1.0.0", + "hashPath": "yamldotnet.netcore.1.0.0.nupkg.sha512" + }, + "Luban.Core/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.DataLoader.Builtin/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Luban.L10N.dll b/LuBanConfig/Tools/Luban/Luban.L10N.dll new file mode 100644 index 000000000..f5825b651 Binary files /dev/null and b/LuBanConfig/Tools/Luban/Luban.L10N.dll differ diff --git a/LuBanConfig/Tools/Luban/Luban.Lua.deps.json b/LuBanConfig/Tools/Luban/Luban.Lua.deps.json new file mode 100644 index 000000000..dd9127d71 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Luban.Lua.deps.json @@ -0,0 +1,73 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Luban.Lua/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0" + }, + "runtime": { + "Luban.Lua.dll": {} + } + }, + "NLog/5.3.4": { + "runtime": { + "lib/netstandard2.0/NLog.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.3.4.2778" + } + } + }, + "Scriban/5.12.0": { + "runtime": { + "lib/net7.0/Scriban.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.12.0.0" + } + } + }, + "Luban.Core/1.0.0": { + "dependencies": { + "NLog": "5.3.4", + "Scriban": "5.12.0" + }, + "runtime": { + "Luban.Core.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + } + } + }, + "libraries": { + "Luban.Lua/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "NLog/5.3.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gLy7+O1hEYJXIlcTr1/VWjGXrZTQFZzYNO18IWasD64pNwz0BreV+nHLxWKXWZzERRzoKnsk2XYtwLkTVk7J1A==", + "path": "nlog/5.3.4", + "hashPath": "nlog.5.3.4.nupkg.sha512" + }, + "Scriban/5.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/YTTCxjBIpfwX3MKMT4JMFVl1jX4IHW7zih+Bg3cTIkzGnbFt+B3l/k90ILDw6DRiFE7T+VxEyls7zk4p029ng==", + "path": "scriban/5.12.0", + "hashPath": "scriban.5.12.0.nupkg.sha512" + }, + "Luban.Core/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Luban.Lua.dll b/LuBanConfig/Tools/Luban/Luban.Lua.dll new file mode 100644 index 000000000..b11216fef Binary files /dev/null and b/LuBanConfig/Tools/Luban/Luban.Lua.dll differ diff --git a/LuBanConfig/Tools/Luban/Luban.MsgPack.deps.json b/LuBanConfig/Tools/Luban/Luban.MsgPack.deps.json new file mode 100644 index 000000000..8d9d9fd60 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Luban.MsgPack.deps.json @@ -0,0 +1,123 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Luban.MsgPack/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0", + "MessagePack": "2.5.192" + }, + "runtime": { + "Luban.MsgPack.dll": {} + } + }, + "MessagePack/2.5.192": { + "dependencies": { + "MessagePack.Annotations": "2.5.192", + "Microsoft.NET.StringTools": "17.6.3" + }, + "runtime": { + "lib/net6.0/MessagePack.dll": { + "assemblyVersion": "2.5.0.0", + "fileVersion": "2.5.192.54228" + } + } + }, + "MessagePack.Annotations/2.5.192": { + "runtime": { + "lib/netstandard2.0/MessagePack.Annotations.dll": { + "assemblyVersion": "2.5.0.0", + "fileVersion": "2.5.192.54228" + } + } + }, + "Microsoft.NET.StringTools/17.6.3": { + "runtime": { + "lib/net7.0/Microsoft.NET.StringTools.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "17.6.3.22601" + } + } + }, + "NLog/5.3.4": { + "runtime": { + "lib/netstandard2.0/NLog.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.3.4.2778" + } + } + }, + "Scriban/5.12.0": { + "runtime": { + "lib/net7.0/Scriban.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.12.0.0" + } + } + }, + "Luban.Core/1.0.0": { + "dependencies": { + "NLog": "5.3.4", + "Scriban": "5.12.0" + }, + "runtime": { + "Luban.Core.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + } + } + }, + "libraries": { + "Luban.MsgPack/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "MessagePack/2.5.192": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Jtle5MaFeIFkdXtxQeL9Tu2Y3HsAQGoSntOzrn6Br/jrl6c8QmG22GEioT5HBtZJR0zw0s46OnKU8ei2M3QifA==", + "path": "messagepack/2.5.192", + "hashPath": "messagepack.2.5.192.nupkg.sha512" + }, + "MessagePack.Annotations/2.5.192": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jaJuwcgovWIZ8Zysdyf3b7b34/BrADw4v82GaEZymUhDd3ScMPrYd/cttekeDteJJPXseJxp04yTIcxiVUjTWg==", + "path": "messagepack.annotations/2.5.192", + "hashPath": "messagepack.annotations.2.5.192.nupkg.sha512" + }, + "Microsoft.NET.StringTools/17.6.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-N0ZIanl1QCgvUumEL1laasU0a7sOE5ZwLZVTn0pAePnfhq8P7SvTjF8Axq+CnavuQkmdQpGNXQ1efZtu5kDFbA==", + "path": "microsoft.net.stringtools/17.6.3", + "hashPath": "microsoft.net.stringtools.17.6.3.nupkg.sha512" + }, + "NLog/5.3.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gLy7+O1hEYJXIlcTr1/VWjGXrZTQFZzYNO18IWasD64pNwz0BreV+nHLxWKXWZzERRzoKnsk2XYtwLkTVk7J1A==", + "path": "nlog/5.3.4", + "hashPath": "nlog.5.3.4.nupkg.sha512" + }, + "Scriban/5.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/YTTCxjBIpfwX3MKMT4JMFVl1jX4IHW7zih+Bg3cTIkzGnbFt+B3l/k90ILDw6DRiFE7T+VxEyls7zk4p029ng==", + "path": "scriban/5.12.0", + "hashPath": "scriban.5.12.0.nupkg.sha512" + }, + "Luban.Core/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Luban.MsgPack.dll b/LuBanConfig/Tools/Luban/Luban.MsgPack.dll new file mode 100644 index 000000000..958fb920a Binary files /dev/null and b/LuBanConfig/Tools/Luban/Luban.MsgPack.dll differ diff --git a/LuBanConfig/Tools/Luban/Luban.PHP.deps.json b/LuBanConfig/Tools/Luban/Luban.PHP.deps.json new file mode 100644 index 000000000..6447dd88e --- /dev/null +++ b/LuBanConfig/Tools/Luban/Luban.PHP.deps.json @@ -0,0 +1,581 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Luban.PHP/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0", + "Luban.DataTarget.Builtin": "1.0.0" + }, + "runtime": { + "Luban.PHP.dll": {} + } + }, + "ExcelDataReader/3.7.0": { + "runtime": { + "lib/netstandard2.1/ExcelDataReader.dll": { + "assemblyVersion": "3.7.0.0", + "fileVersion": "3.7.0.0" + } + } + }, + "Microsoft.CSharp/4.5.0": {}, + "Microsoft.NETCore.Platforms/1.0.1": {}, + "Microsoft.NETCore.Targets/1.0.1": {}, + "NeoLua/1.3.14": { + "dependencies": { + "Microsoft.CSharp": "4.5.0" + }, + "runtime": { + "lib/net5.0/Neo.Lua.dll": { + "assemblyVersion": "5.3.0.0", + "fileVersion": "1.3.14.0" + } + }, + "resources": { + "lib/net5.0/de/Neo.Lua.resources.dll": { + "locale": "de" + } + } + }, + "NLog/5.3.4": { + "runtime": { + "lib/netstandard2.0/NLog.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.3.4.2778" + } + } + }, + "Scriban/5.12.0": { + "runtime": { + "lib/net7.0/Scriban.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.12.0.0" + } + } + }, + "System.Collections/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Diagnostics.Debug/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Diagnostics.Tools/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Globalization/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.IO/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0", + "System.Text.Encoding": "4.0.11", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.Linq/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0" + } + }, + "System.Linq.Expressions/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Globalization": "4.0.11", + "System.IO": "4.1.0", + "System.Linq": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Reflection": "4.1.0", + "System.Reflection.Emit": "4.0.1", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Emit.Lightweight": "4.0.1", + "System.Reflection.Extensions": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Reflection.TypeExtensions": "4.1.0", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.ObjectModel/4.0.12": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.Reflection/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.IO": "4.1.0", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit/4.0.1": { + "dependencies": { + "System.IO": "4.1.0", + "System.Reflection": "4.1.0", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit.ILGeneration/4.0.1": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit.Lightweight/4.0.1": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Extensions/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Primitives/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.TypeExtensions/4.1.0": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Resources.ResourceManager/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Globalization": "4.0.11", + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Runtime/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1" + } + }, + "System.Runtime.Extensions/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Runtime.Serialization.Primitives/4.1.1": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Text.Encoding/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Text.Encoding.Extensions/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0", + "System.Text.Encoding": "4.0.11" + } + }, + "System.Text.RegularExpressions/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Globalization": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.Threading/4.0.11": { + "dependencies": { + "System.Runtime": "4.1.0", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.Threading.Tasks/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "Ude.NetStandard/1.2.0": { + "runtime": { + "lib/netstandard2.0/Ude.NetStandard.dll": { + "assemblyVersion": "1.0.2.0", + "fileVersion": "1.0.2.0" + } + } + }, + "YamlDotNet.NetCore/1.0.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Diagnostics.Tools": "4.0.1", + "System.Globalization": "4.0.11", + "System.Linq": "4.1.0", + "System.Linq.Expressions": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Reflection.Extensions": "4.0.1", + "System.Runtime.Extensions": "4.1.0", + "System.Runtime.Serialization.Primitives": "4.1.1", + "System.Text.Encoding.Extensions": "4.0.11", + "System.Text.RegularExpressions": "4.1.0" + }, + "runtime": { + "lib/netstandard1.0/YamlDotNet.NetCore.dll": { + "assemblyVersion": "0.0.1.0", + "fileVersion": "0.0.0.0" + } + } + }, + "Luban.Core/1.0.0": { + "dependencies": { + "NLog": "5.3.4", + "Scriban": "5.12.0" + }, + "runtime": { + "Luban.Core.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.DataLoader.Builtin/1.0.0": { + "dependencies": { + "ExcelDataReader": "3.7.0", + "Luban.Core": "1.0.0", + "NeoLua": "1.3.14", + "Ude.NetStandard": "1.2.0", + "YamlDotNet.NetCore": "1.0.0" + }, + "runtime": { + "Luban.DataLoader.Builtin.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.DataTarget.Builtin/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0", + "Luban.DataLoader.Builtin": "1.0.0" + }, + "runtime": { + "Luban.DataTarget.Builtin.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + } + } + }, + "libraries": { + "Luban.PHP/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "ExcelDataReader/3.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-AMv3oDETRHSRyXC17rBtKH45qIfFyo433LMeaMB3u4RNr/c9Luuc0Z+JMP6+3Cx9n4wXqFqcrEIVxrf/GgYnZg==", + "path": "exceldatareader/3.7.0", + "hashPath": "exceldatareader.3.7.0.nupkg.sha512" + }, + "Microsoft.CSharp/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kaj6Wb4qoMuH3HySFJhxwQfe8R/sJsNJnANrvv8WdFPMoNbKY5htfNscv+LHCu5ipz+49m2e+WQXpLXr9XYemQ==", + "path": "microsoft.csharp/4.5.0", + "hashPath": "microsoft.csharp.4.5.0.nupkg.sha512" + }, + "Microsoft.NETCore.Platforms/1.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-2G6OjjJzwBfNOO8myRV/nFrbTw5iA+DEm0N+qUqhrOmaVtn4pC77h38I1jsXGw5VH55+dPfQsqHD0We9sCl9FQ==", + "path": "microsoft.netcore.platforms/1.0.1", + "hashPath": "microsoft.netcore.platforms.1.0.1.nupkg.sha512" + }, + "Microsoft.NETCore.Targets/1.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rkn+fKobF/cbWfnnfBOQHKVKIOpxMZBvlSHkqDWgBpwGDcLRduvs3D9OLGeV6GWGvVwNlVi2CBbTjuPmtHvyNw==", + "path": "microsoft.netcore.targets/1.0.1", + "hashPath": "microsoft.netcore.targets.1.0.1.nupkg.sha512" + }, + "NeoLua/1.3.14": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BXIUN+ePY2wx3ZGiSmR8KZKD85s01pXI690orrB3u/biB8R0nalziGw+iGbPBq1Cuz8Upggpw2ERF84POXWTCQ==", + "path": "neolua/1.3.14", + "hashPath": "neolua.1.3.14.nupkg.sha512" + }, + "NLog/5.3.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gLy7+O1hEYJXIlcTr1/VWjGXrZTQFZzYNO18IWasD64pNwz0BreV+nHLxWKXWZzERRzoKnsk2XYtwLkTVk7J1A==", + "path": "nlog/5.3.4", + "hashPath": "nlog.5.3.4.nupkg.sha512" + }, + "Scriban/5.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/YTTCxjBIpfwX3MKMT4JMFVl1jX4IHW7zih+Bg3cTIkzGnbFt+B3l/k90ILDw6DRiFE7T+VxEyls7zk4p029ng==", + "path": "scriban/5.12.0", + "hashPath": "scriban.5.12.0.nupkg.sha512" + }, + "System.Collections/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YUJGz6eFKqS0V//mLt25vFGrrCvOnsXjlvFQs+KimpwNxug9x0Pzy4PlFMU3Q2IzqAa9G2L4LsK3+9vCBK7oTg==", + "path": "system.collections/4.0.11", + "hashPath": "system.collections.4.0.11.nupkg.sha512" + }, + "System.Diagnostics.Debug/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-w5U95fVKHY4G8ASs/K5iK3J5LY+/dLFd4vKejsnI/ZhBsWS9hQakfx3Zr7lRWKg4tAw9r4iktyvsTagWkqYCiw==", + "path": "system.diagnostics.debug/4.0.11", + "hashPath": "system.diagnostics.debug.4.0.11.nupkg.sha512" + }, + "System.Diagnostics.Tools/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-xBfJ8pnd4C17dWaC9FM6aShzbJcRNMChUMD42I6772KGGrqaFdumwhn9OdM68erj1ueNo3xdQ1EwiFjK5k8p0g==", + "path": "system.diagnostics.tools/4.0.1", + "hashPath": "system.diagnostics.tools.4.0.1.nupkg.sha512" + }, + "System.Globalization/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-B95h0YLEL2oSnwF/XjqSWKnwKOy/01VWkNlsCeMTFJLLabflpGV26nK164eRs5GiaRSBGpOxQ3pKoSnnyZN5pg==", + "path": "system.globalization/4.0.11", + "hashPath": "system.globalization.4.0.11.nupkg.sha512" + }, + "System.IO/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3KlTJceQc3gnGIaHZ7UBZO26SHL1SHE4ddrmiwumFnId+CEHP+O8r386tZKaE6zlk5/mF8vifMBzHj9SaXN+mQ==", + "path": "system.io/4.1.0", + "hashPath": "system.io.4.1.0.nupkg.sha512" + }, + "System.Linq/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bQ0iYFOQI0nuTnt+NQADns6ucV4DUvMdwN6CbkB1yj8i7arTGiTN5eok1kQwdnnNWSDZfIUySQY+J3d5KjWn0g==", + "path": "system.linq/4.1.0", + "hashPath": "system.linq.4.1.0.nupkg.sha512" + }, + "System.Linq.Expressions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-I+y02iqkgmCAyfbqOmSDOgqdZQ5tTj80Akm5BPSS8EeB0VGWdy6X1KCoYe8Pk6pwDoAKZUOdLVxnTJcExiv5zw==", + "path": "system.linq.expressions/4.1.0", + "hashPath": "system.linq.expressions.4.1.0.nupkg.sha512" + }, + "System.ObjectModel/4.0.12": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tAgJM1xt3ytyMoW4qn4wIqgJYm7L7TShRZG4+Q4Qsi2PCcj96pXN7nRywS9KkB3p/xDUjc2HSwP9SROyPYDYKQ==", + "path": "system.objectmodel/4.0.12", + "hashPath": "system.objectmodel.4.0.12.nupkg.sha512" + }, + "System.Reflection/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-JCKANJ0TI7kzoQzuwB/OoJANy1Lg338B6+JVacPl4TpUwi3cReg3nMLplMq2uqYfHFQpKIlHAUVAJlImZz/4ng==", + "path": "system.reflection/4.1.0", + "hashPath": "system.reflection.4.1.0.nupkg.sha512" + }, + "System.Reflection.Emit/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-P2wqAj72fFjpP6wb9nSfDqNBMab+2ovzSDzUZK7MVIm54tBJEPr9jWfSjjoTpPwj1LeKcmX3vr0ttyjSSFM47g==", + "path": "system.reflection.emit/4.0.1", + "hashPath": "system.reflection.emit.4.0.1.nupkg.sha512" + }, + "System.Reflection.Emit.ILGeneration/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Ov6dU8Bu15Bc7zuqttgHF12J5lwSWyTf1S+FJouUXVMSqImLZzYaQ+vRr1rQ0OZ0HqsrwWl4dsKHELckQkVpgA==", + "path": "system.reflection.emit.ilgeneration/4.0.1", + "hashPath": "system.reflection.emit.ilgeneration.4.0.1.nupkg.sha512" + }, + "System.Reflection.Emit.Lightweight/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-sSzHHXueZ5Uh0OLpUQprhr+ZYJrLPA2Cmr4gn0wj9+FftNKXx8RIMKvO9qnjk2ebPYUjZ+F2ulGdPOsvj+MEjA==", + "path": "system.reflection.emit.lightweight/4.0.1", + "hashPath": "system.reflection.emit.lightweight.4.0.1.nupkg.sha512" + }, + "System.Reflection.Extensions/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GYrtRsZcMuHF3sbmRHfMYpvxZoIN2bQGrYGerUiWLEkqdEUQZhH3TRSaC/oI4wO0II1RKBPlpIa1TOMxIcOOzQ==", + "path": "system.reflection.extensions/4.0.1", + "hashPath": "system.reflection.extensions.4.0.1.nupkg.sha512" + }, + "System.Reflection.Primitives/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4inTox4wTBaDhB7V3mPvp9XlCbeGYWVEM9/fXALd52vNEAVisc1BoVWQPuUuD0Ga//dNbA/WeMy9u9mzLxGTHQ==", + "path": "system.reflection.primitives/4.0.1", + "hashPath": "system.reflection.primitives.4.0.1.nupkg.sha512" + }, + "System.Reflection.TypeExtensions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tsQ/ptQ3H5FYfON8lL4MxRk/8kFyE0A+tGPXmVP967cT/gzLHYxIejIYSxp4JmIeFHVP78g/F2FE1mUUTbDtrg==", + "path": "system.reflection.typeextensions/4.1.0", + "hashPath": "system.reflection.typeextensions.4.1.0.nupkg.sha512" + }, + "System.Resources.ResourceManager/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-TxwVeUNoTgUOdQ09gfTjvW411MF+w9MBYL7AtNVc+HtBCFlutPLhUCdZjNkjbhj3bNQWMdHboF0KIWEOjJssbA==", + "path": "system.resources.resourcemanager/4.0.1", + "hashPath": "system.resources.resourcemanager.4.0.1.nupkg.sha512" + }, + "System.Runtime/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-v6c/4Yaa9uWsq+JMhnOFewrYkgdNHNG2eMKuNqRn8P733rNXeRCGvV5FkkjBXn2dbVkPXOsO0xjsEeM1q2zC0g==", + "path": "system.runtime/4.1.0", + "hashPath": "system.runtime.4.1.0.nupkg.sha512" + }, + "System.Runtime.Extensions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-CUOHjTT/vgP0qGW22U4/hDlOqXmcPq5YicBaXdUR2UiUoLwBT+olO6we4DVbq57jeX5uXH2uerVZhf0qGj+sVQ==", + "path": "system.runtime.extensions/4.1.0", + "hashPath": "system.runtime.extensions.4.1.0.nupkg.sha512" + }, + "System.Runtime.Serialization.Primitives/4.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==", + "path": "system.runtime.serialization.primitives/4.1.1", + "hashPath": "system.runtime.serialization.primitives.4.1.1.nupkg.sha512" + }, + "System.Text.Encoding/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-U3gGeMlDZXxCEiY4DwVLSacg+DFWCvoiX+JThA/rvw37Sqrku7sEFeVBBBMBnfB6FeZHsyDx85HlKL19x0HtZA==", + "path": "system.text.encoding/4.0.11", + "hashPath": "system.text.encoding.4.0.11.nupkg.sha512" + }, + "System.Text.Encoding.Extensions/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jtbiTDtvfLYgXn8PTfWI+SiBs51rrmO4AAckx4KR6vFK9Wzf6tI8kcRdsYQNwriUeQ1+CtQbM1W4cMbLXnj/OQ==", + "path": "system.text.encoding.extensions/4.0.11", + "hashPath": "system.text.encoding.extensions.4.0.11.nupkg.sha512" + }, + "System.Text.RegularExpressions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-i88YCXpRTjCnoSQZtdlHkAOx4KNNik4hMy83n0+Ftlb7jvV6ZiZWMpnEZHhjBp6hQVh8gWd/iKNPzlPF7iyA2g==", + "path": "system.text.regularexpressions/4.1.0", + "hashPath": "system.text.regularexpressions.4.1.0.nupkg.sha512" + }, + "System.Threading/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-N+3xqIcg3VDKyjwwCGaZ9HawG9aC6cSDI+s7ROma310GQo8vilFZa86hqKppwTHleR/G0sfOzhvgnUxWCR/DrQ==", + "path": "system.threading/4.0.11", + "hashPath": "system.threading.4.0.11.nupkg.sha512" + }, + "System.Threading.Tasks/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-k1S4Gc6IGwtHGT8188RSeGaX86Qw/wnrgNLshJvsdNUOPP9etMmo8S07c+UlOAx4K/xLuN9ivA1bD0LVurtIxQ==", + "path": "system.threading.tasks/4.0.11", + "hashPath": "system.threading.tasks.4.0.11.nupkg.sha512" + }, + "Ude.NetStandard/1.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zRWpPAxBg3lNdm4UiKixTe+DFPoNid9CILggTCy/0WR2WKETe17kTWhiiIpLB2k5IEgnvA0QLfKlvd6Tvu0pzA==", + "path": "ude.netstandard/1.2.0", + "hashPath": "ude.netstandard.1.2.0.nupkg.sha512" + }, + "YamlDotNet.NetCore/1.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vPiKF4Yf02MS96Nzwcr8+WrvlhTx+camOgUzxhazU0hCzs2ESetWDCxaIT/MYdAw2oONYem1ow9PXWJjHkRUDw==", + "path": "yamldotnet.netcore/1.0.0", + "hashPath": "yamldotnet.netcore.1.0.0.nupkg.sha512" + }, + "Luban.Core/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.DataLoader.Builtin/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.DataTarget.Builtin/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Luban.PHP.dll b/LuBanConfig/Tools/Luban/Luban.PHP.dll new file mode 100644 index 000000000..be844fdb7 Binary files /dev/null and b/LuBanConfig/Tools/Luban/Luban.PHP.dll differ diff --git a/LuBanConfig/Tools/Luban/Luban.Protobuf.deps.json b/LuBanConfig/Tools/Luban/Luban.Protobuf.deps.json new file mode 100644 index 000000000..a791bf766 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Luban.Protobuf.deps.json @@ -0,0 +1,597 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Luban.Protobuf/1.0.0": { + "dependencies": { + "Google.Protobuf": "3.29.0", + "Luban.Core": "1.0.0", + "Luban.DataTarget.Builtin": "1.0.0" + }, + "runtime": { + "Luban.Protobuf.dll": {} + } + }, + "ExcelDataReader/3.7.0": { + "runtime": { + "lib/netstandard2.1/ExcelDataReader.dll": { + "assemblyVersion": "3.7.0.0", + "fileVersion": "3.7.0.0" + } + } + }, + "Google.Protobuf/3.29.0": { + "runtime": { + "lib/net5.0/Google.Protobuf.dll": { + "assemblyVersion": "3.29.0.0", + "fileVersion": "3.29.0.0" + } + } + }, + "Microsoft.CSharp/4.5.0": {}, + "Microsoft.NETCore.Platforms/1.0.1": {}, + "Microsoft.NETCore.Targets/1.0.1": {}, + "NeoLua/1.3.14": { + "dependencies": { + "Microsoft.CSharp": "4.5.0" + }, + "runtime": { + "lib/net5.0/Neo.Lua.dll": { + "assemblyVersion": "5.3.0.0", + "fileVersion": "1.3.14.0" + } + }, + "resources": { + "lib/net5.0/de/Neo.Lua.resources.dll": { + "locale": "de" + } + } + }, + "NLog/5.3.4": { + "runtime": { + "lib/netstandard2.0/NLog.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.3.4.2778" + } + } + }, + "Scriban/5.12.0": { + "runtime": { + "lib/net7.0/Scriban.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.12.0.0" + } + } + }, + "System.Collections/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Diagnostics.Debug/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Diagnostics.Tools/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Globalization/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.IO/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0", + "System.Text.Encoding": "4.0.11", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.Linq/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0" + } + }, + "System.Linq.Expressions/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Globalization": "4.0.11", + "System.IO": "4.1.0", + "System.Linq": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Reflection": "4.1.0", + "System.Reflection.Emit": "4.0.1", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Emit.Lightweight": "4.0.1", + "System.Reflection.Extensions": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Reflection.TypeExtensions": "4.1.0", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.ObjectModel/4.0.12": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.Reflection/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.IO": "4.1.0", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit/4.0.1": { + "dependencies": { + "System.IO": "4.1.0", + "System.Reflection": "4.1.0", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit.ILGeneration/4.0.1": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit.Lightweight/4.0.1": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Extensions/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Primitives/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.TypeExtensions/4.1.0": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Resources.ResourceManager/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Globalization": "4.0.11", + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Runtime/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1" + } + }, + "System.Runtime.Extensions/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Runtime.Serialization.Primitives/4.1.1": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Text.Encoding/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Text.Encoding.Extensions/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0", + "System.Text.Encoding": "4.0.11" + } + }, + "System.Text.RegularExpressions/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Globalization": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.Threading/4.0.11": { + "dependencies": { + "System.Runtime": "4.1.0", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.Threading.Tasks/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "Ude.NetStandard/1.2.0": { + "runtime": { + "lib/netstandard2.0/Ude.NetStandard.dll": { + "assemblyVersion": "1.0.2.0", + "fileVersion": "1.0.2.0" + } + } + }, + "YamlDotNet.NetCore/1.0.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Diagnostics.Tools": "4.0.1", + "System.Globalization": "4.0.11", + "System.Linq": "4.1.0", + "System.Linq.Expressions": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Reflection.Extensions": "4.0.1", + "System.Runtime.Extensions": "4.1.0", + "System.Runtime.Serialization.Primitives": "4.1.1", + "System.Text.Encoding.Extensions": "4.0.11", + "System.Text.RegularExpressions": "4.1.0" + }, + "runtime": { + "lib/netstandard1.0/YamlDotNet.NetCore.dll": { + "assemblyVersion": "0.0.1.0", + "fileVersion": "0.0.0.0" + } + } + }, + "Luban.Core/1.0.0": { + "dependencies": { + "NLog": "5.3.4", + "Scriban": "5.12.0" + }, + "runtime": { + "Luban.Core.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.DataLoader.Builtin/1.0.0": { + "dependencies": { + "ExcelDataReader": "3.7.0", + "Luban.Core": "1.0.0", + "NeoLua": "1.3.14", + "Ude.NetStandard": "1.2.0", + "YamlDotNet.NetCore": "1.0.0" + }, + "runtime": { + "Luban.DataLoader.Builtin.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.DataTarget.Builtin/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0", + "Luban.DataLoader.Builtin": "1.0.0" + }, + "runtime": { + "Luban.DataTarget.Builtin.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + } + } + }, + "libraries": { + "Luban.Protobuf/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "ExcelDataReader/3.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-AMv3oDETRHSRyXC17rBtKH45qIfFyo433LMeaMB3u4RNr/c9Luuc0Z+JMP6+3Cx9n4wXqFqcrEIVxrf/GgYnZg==", + "path": "exceldatareader/3.7.0", + "hashPath": "exceldatareader.3.7.0.nupkg.sha512" + }, + "Google.Protobuf/3.29.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-l1012jd1Y2XsLQ+h9cXE7Bo3WruXql3Xc3KP/z+yZDJMSkfb2guslHCxwFsqd2ScHB0h2J7Yuy255RrBD/DGBw==", + "path": "google.protobuf/3.29.0", + "hashPath": "google.protobuf.3.29.0.nupkg.sha512" + }, + "Microsoft.CSharp/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kaj6Wb4qoMuH3HySFJhxwQfe8R/sJsNJnANrvv8WdFPMoNbKY5htfNscv+LHCu5ipz+49m2e+WQXpLXr9XYemQ==", + "path": "microsoft.csharp/4.5.0", + "hashPath": "microsoft.csharp.4.5.0.nupkg.sha512" + }, + "Microsoft.NETCore.Platforms/1.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-2G6OjjJzwBfNOO8myRV/nFrbTw5iA+DEm0N+qUqhrOmaVtn4pC77h38I1jsXGw5VH55+dPfQsqHD0We9sCl9FQ==", + "path": "microsoft.netcore.platforms/1.0.1", + "hashPath": "microsoft.netcore.platforms.1.0.1.nupkg.sha512" + }, + "Microsoft.NETCore.Targets/1.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rkn+fKobF/cbWfnnfBOQHKVKIOpxMZBvlSHkqDWgBpwGDcLRduvs3D9OLGeV6GWGvVwNlVi2CBbTjuPmtHvyNw==", + "path": "microsoft.netcore.targets/1.0.1", + "hashPath": "microsoft.netcore.targets.1.0.1.nupkg.sha512" + }, + "NeoLua/1.3.14": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BXIUN+ePY2wx3ZGiSmR8KZKD85s01pXI690orrB3u/biB8R0nalziGw+iGbPBq1Cuz8Upggpw2ERF84POXWTCQ==", + "path": "neolua/1.3.14", + "hashPath": "neolua.1.3.14.nupkg.sha512" + }, + "NLog/5.3.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gLy7+O1hEYJXIlcTr1/VWjGXrZTQFZzYNO18IWasD64pNwz0BreV+nHLxWKXWZzERRzoKnsk2XYtwLkTVk7J1A==", + "path": "nlog/5.3.4", + "hashPath": "nlog.5.3.4.nupkg.sha512" + }, + "Scriban/5.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/YTTCxjBIpfwX3MKMT4JMFVl1jX4IHW7zih+Bg3cTIkzGnbFt+B3l/k90ILDw6DRiFE7T+VxEyls7zk4p029ng==", + "path": "scriban/5.12.0", + "hashPath": "scriban.5.12.0.nupkg.sha512" + }, + "System.Collections/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YUJGz6eFKqS0V//mLt25vFGrrCvOnsXjlvFQs+KimpwNxug9x0Pzy4PlFMU3Q2IzqAa9G2L4LsK3+9vCBK7oTg==", + "path": "system.collections/4.0.11", + "hashPath": "system.collections.4.0.11.nupkg.sha512" + }, + "System.Diagnostics.Debug/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-w5U95fVKHY4G8ASs/K5iK3J5LY+/dLFd4vKejsnI/ZhBsWS9hQakfx3Zr7lRWKg4tAw9r4iktyvsTagWkqYCiw==", + "path": "system.diagnostics.debug/4.0.11", + "hashPath": "system.diagnostics.debug.4.0.11.nupkg.sha512" + }, + "System.Diagnostics.Tools/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-xBfJ8pnd4C17dWaC9FM6aShzbJcRNMChUMD42I6772KGGrqaFdumwhn9OdM68erj1ueNo3xdQ1EwiFjK5k8p0g==", + "path": "system.diagnostics.tools/4.0.1", + "hashPath": "system.diagnostics.tools.4.0.1.nupkg.sha512" + }, + "System.Globalization/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-B95h0YLEL2oSnwF/XjqSWKnwKOy/01VWkNlsCeMTFJLLabflpGV26nK164eRs5GiaRSBGpOxQ3pKoSnnyZN5pg==", + "path": "system.globalization/4.0.11", + "hashPath": "system.globalization.4.0.11.nupkg.sha512" + }, + "System.IO/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3KlTJceQc3gnGIaHZ7UBZO26SHL1SHE4ddrmiwumFnId+CEHP+O8r386tZKaE6zlk5/mF8vifMBzHj9SaXN+mQ==", + "path": "system.io/4.1.0", + "hashPath": "system.io.4.1.0.nupkg.sha512" + }, + "System.Linq/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bQ0iYFOQI0nuTnt+NQADns6ucV4DUvMdwN6CbkB1yj8i7arTGiTN5eok1kQwdnnNWSDZfIUySQY+J3d5KjWn0g==", + "path": "system.linq/4.1.0", + "hashPath": "system.linq.4.1.0.nupkg.sha512" + }, + "System.Linq.Expressions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-I+y02iqkgmCAyfbqOmSDOgqdZQ5tTj80Akm5BPSS8EeB0VGWdy6X1KCoYe8Pk6pwDoAKZUOdLVxnTJcExiv5zw==", + "path": "system.linq.expressions/4.1.0", + "hashPath": "system.linq.expressions.4.1.0.nupkg.sha512" + }, + "System.ObjectModel/4.0.12": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tAgJM1xt3ytyMoW4qn4wIqgJYm7L7TShRZG4+Q4Qsi2PCcj96pXN7nRywS9KkB3p/xDUjc2HSwP9SROyPYDYKQ==", + "path": "system.objectmodel/4.0.12", + "hashPath": "system.objectmodel.4.0.12.nupkg.sha512" + }, + "System.Reflection/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-JCKANJ0TI7kzoQzuwB/OoJANy1Lg338B6+JVacPl4TpUwi3cReg3nMLplMq2uqYfHFQpKIlHAUVAJlImZz/4ng==", + "path": "system.reflection/4.1.0", + "hashPath": "system.reflection.4.1.0.nupkg.sha512" + }, + "System.Reflection.Emit/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-P2wqAj72fFjpP6wb9nSfDqNBMab+2ovzSDzUZK7MVIm54tBJEPr9jWfSjjoTpPwj1LeKcmX3vr0ttyjSSFM47g==", + "path": "system.reflection.emit/4.0.1", + "hashPath": "system.reflection.emit.4.0.1.nupkg.sha512" + }, + "System.Reflection.Emit.ILGeneration/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Ov6dU8Bu15Bc7zuqttgHF12J5lwSWyTf1S+FJouUXVMSqImLZzYaQ+vRr1rQ0OZ0HqsrwWl4dsKHELckQkVpgA==", + "path": "system.reflection.emit.ilgeneration/4.0.1", + "hashPath": "system.reflection.emit.ilgeneration.4.0.1.nupkg.sha512" + }, + "System.Reflection.Emit.Lightweight/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-sSzHHXueZ5Uh0OLpUQprhr+ZYJrLPA2Cmr4gn0wj9+FftNKXx8RIMKvO9qnjk2ebPYUjZ+F2ulGdPOsvj+MEjA==", + "path": "system.reflection.emit.lightweight/4.0.1", + "hashPath": "system.reflection.emit.lightweight.4.0.1.nupkg.sha512" + }, + "System.Reflection.Extensions/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GYrtRsZcMuHF3sbmRHfMYpvxZoIN2bQGrYGerUiWLEkqdEUQZhH3TRSaC/oI4wO0II1RKBPlpIa1TOMxIcOOzQ==", + "path": "system.reflection.extensions/4.0.1", + "hashPath": "system.reflection.extensions.4.0.1.nupkg.sha512" + }, + "System.Reflection.Primitives/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4inTox4wTBaDhB7V3mPvp9XlCbeGYWVEM9/fXALd52vNEAVisc1BoVWQPuUuD0Ga//dNbA/WeMy9u9mzLxGTHQ==", + "path": "system.reflection.primitives/4.0.1", + "hashPath": "system.reflection.primitives.4.0.1.nupkg.sha512" + }, + "System.Reflection.TypeExtensions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tsQ/ptQ3H5FYfON8lL4MxRk/8kFyE0A+tGPXmVP967cT/gzLHYxIejIYSxp4JmIeFHVP78g/F2FE1mUUTbDtrg==", + "path": "system.reflection.typeextensions/4.1.0", + "hashPath": "system.reflection.typeextensions.4.1.0.nupkg.sha512" + }, + "System.Resources.ResourceManager/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-TxwVeUNoTgUOdQ09gfTjvW411MF+w9MBYL7AtNVc+HtBCFlutPLhUCdZjNkjbhj3bNQWMdHboF0KIWEOjJssbA==", + "path": "system.resources.resourcemanager/4.0.1", + "hashPath": "system.resources.resourcemanager.4.0.1.nupkg.sha512" + }, + "System.Runtime/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-v6c/4Yaa9uWsq+JMhnOFewrYkgdNHNG2eMKuNqRn8P733rNXeRCGvV5FkkjBXn2dbVkPXOsO0xjsEeM1q2zC0g==", + "path": "system.runtime/4.1.0", + "hashPath": "system.runtime.4.1.0.nupkg.sha512" + }, + "System.Runtime.Extensions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-CUOHjTT/vgP0qGW22U4/hDlOqXmcPq5YicBaXdUR2UiUoLwBT+olO6we4DVbq57jeX5uXH2uerVZhf0qGj+sVQ==", + "path": "system.runtime.extensions/4.1.0", + "hashPath": "system.runtime.extensions.4.1.0.nupkg.sha512" + }, + "System.Runtime.Serialization.Primitives/4.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==", + "path": "system.runtime.serialization.primitives/4.1.1", + "hashPath": "system.runtime.serialization.primitives.4.1.1.nupkg.sha512" + }, + "System.Text.Encoding/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-U3gGeMlDZXxCEiY4DwVLSacg+DFWCvoiX+JThA/rvw37Sqrku7sEFeVBBBMBnfB6FeZHsyDx85HlKL19x0HtZA==", + "path": "system.text.encoding/4.0.11", + "hashPath": "system.text.encoding.4.0.11.nupkg.sha512" + }, + "System.Text.Encoding.Extensions/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jtbiTDtvfLYgXn8PTfWI+SiBs51rrmO4AAckx4KR6vFK9Wzf6tI8kcRdsYQNwriUeQ1+CtQbM1W4cMbLXnj/OQ==", + "path": "system.text.encoding.extensions/4.0.11", + "hashPath": "system.text.encoding.extensions.4.0.11.nupkg.sha512" + }, + "System.Text.RegularExpressions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-i88YCXpRTjCnoSQZtdlHkAOx4KNNik4hMy83n0+Ftlb7jvV6ZiZWMpnEZHhjBp6hQVh8gWd/iKNPzlPF7iyA2g==", + "path": "system.text.regularexpressions/4.1.0", + "hashPath": "system.text.regularexpressions.4.1.0.nupkg.sha512" + }, + "System.Threading/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-N+3xqIcg3VDKyjwwCGaZ9HawG9aC6cSDI+s7ROma310GQo8vilFZa86hqKppwTHleR/G0sfOzhvgnUxWCR/DrQ==", + "path": "system.threading/4.0.11", + "hashPath": "system.threading.4.0.11.nupkg.sha512" + }, + "System.Threading.Tasks/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-k1S4Gc6IGwtHGT8188RSeGaX86Qw/wnrgNLshJvsdNUOPP9etMmo8S07c+UlOAx4K/xLuN9ivA1bD0LVurtIxQ==", + "path": "system.threading.tasks/4.0.11", + "hashPath": "system.threading.tasks.4.0.11.nupkg.sha512" + }, + "Ude.NetStandard/1.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zRWpPAxBg3lNdm4UiKixTe+DFPoNid9CILggTCy/0WR2WKETe17kTWhiiIpLB2k5IEgnvA0QLfKlvd6Tvu0pzA==", + "path": "ude.netstandard/1.2.0", + "hashPath": "ude.netstandard.1.2.0.nupkg.sha512" + }, + "YamlDotNet.NetCore/1.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vPiKF4Yf02MS96Nzwcr8+WrvlhTx+camOgUzxhazU0hCzs2ESetWDCxaIT/MYdAw2oONYem1ow9PXWJjHkRUDw==", + "path": "yamldotnet.netcore/1.0.0", + "hashPath": "yamldotnet.netcore.1.0.0.nupkg.sha512" + }, + "Luban.Core/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.DataLoader.Builtin/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.DataTarget.Builtin/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Luban.Protobuf.dll b/LuBanConfig/Tools/Luban/Luban.Protobuf.dll new file mode 100644 index 000000000..6bd088d16 Binary files /dev/null and b/LuBanConfig/Tools/Luban/Luban.Protobuf.dll differ diff --git a/LuBanConfig/Tools/Luban/Luban.Python.deps.json b/LuBanConfig/Tools/Luban/Luban.Python.deps.json new file mode 100644 index 000000000..9afffa952 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Luban.Python.deps.json @@ -0,0 +1,581 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Luban.Python/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0", + "Luban.DataTarget.Builtin": "1.0.0" + }, + "runtime": { + "Luban.Python.dll": {} + } + }, + "ExcelDataReader/3.7.0": { + "runtime": { + "lib/netstandard2.1/ExcelDataReader.dll": { + "assemblyVersion": "3.7.0.0", + "fileVersion": "3.7.0.0" + } + } + }, + "Microsoft.CSharp/4.5.0": {}, + "Microsoft.NETCore.Platforms/1.0.1": {}, + "Microsoft.NETCore.Targets/1.0.1": {}, + "NeoLua/1.3.14": { + "dependencies": { + "Microsoft.CSharp": "4.5.0" + }, + "runtime": { + "lib/net5.0/Neo.Lua.dll": { + "assemblyVersion": "5.3.0.0", + "fileVersion": "1.3.14.0" + } + }, + "resources": { + "lib/net5.0/de/Neo.Lua.resources.dll": { + "locale": "de" + } + } + }, + "NLog/5.3.4": { + "runtime": { + "lib/netstandard2.0/NLog.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.3.4.2778" + } + } + }, + "Scriban/5.12.0": { + "runtime": { + "lib/net7.0/Scriban.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.12.0.0" + } + } + }, + "System.Collections/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Diagnostics.Debug/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Diagnostics.Tools/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Globalization/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.IO/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0", + "System.Text.Encoding": "4.0.11", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.Linq/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0" + } + }, + "System.Linq.Expressions/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Globalization": "4.0.11", + "System.IO": "4.1.0", + "System.Linq": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Reflection": "4.1.0", + "System.Reflection.Emit": "4.0.1", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Emit.Lightweight": "4.0.1", + "System.Reflection.Extensions": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Reflection.TypeExtensions": "4.1.0", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.ObjectModel/4.0.12": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.Reflection/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.IO": "4.1.0", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit/4.0.1": { + "dependencies": { + "System.IO": "4.1.0", + "System.Reflection": "4.1.0", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit.ILGeneration/4.0.1": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit.Lightweight/4.0.1": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Extensions/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Primitives/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.TypeExtensions/4.1.0": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Resources.ResourceManager/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Globalization": "4.0.11", + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Runtime/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1" + } + }, + "System.Runtime.Extensions/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Runtime.Serialization.Primitives/4.1.1": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Text.Encoding/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Text.Encoding.Extensions/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0", + "System.Text.Encoding": "4.0.11" + } + }, + "System.Text.RegularExpressions/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Globalization": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.Threading/4.0.11": { + "dependencies": { + "System.Runtime": "4.1.0", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.Threading.Tasks/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "Ude.NetStandard/1.2.0": { + "runtime": { + "lib/netstandard2.0/Ude.NetStandard.dll": { + "assemblyVersion": "1.0.2.0", + "fileVersion": "1.0.2.0" + } + } + }, + "YamlDotNet.NetCore/1.0.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Diagnostics.Tools": "4.0.1", + "System.Globalization": "4.0.11", + "System.Linq": "4.1.0", + "System.Linq.Expressions": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Reflection.Extensions": "4.0.1", + "System.Runtime.Extensions": "4.1.0", + "System.Runtime.Serialization.Primitives": "4.1.1", + "System.Text.Encoding.Extensions": "4.0.11", + "System.Text.RegularExpressions": "4.1.0" + }, + "runtime": { + "lib/netstandard1.0/YamlDotNet.NetCore.dll": { + "assemblyVersion": "0.0.1.0", + "fileVersion": "0.0.0.0" + } + } + }, + "Luban.Core/1.0.0": { + "dependencies": { + "NLog": "5.3.4", + "Scriban": "5.12.0" + }, + "runtime": { + "Luban.Core.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.DataLoader.Builtin/1.0.0": { + "dependencies": { + "ExcelDataReader": "3.7.0", + "Luban.Core": "1.0.0", + "NeoLua": "1.3.14", + "Ude.NetStandard": "1.2.0", + "YamlDotNet.NetCore": "1.0.0" + }, + "runtime": { + "Luban.DataLoader.Builtin.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.DataTarget.Builtin/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0", + "Luban.DataLoader.Builtin": "1.0.0" + }, + "runtime": { + "Luban.DataTarget.Builtin.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + } + } + }, + "libraries": { + "Luban.Python/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "ExcelDataReader/3.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-AMv3oDETRHSRyXC17rBtKH45qIfFyo433LMeaMB3u4RNr/c9Luuc0Z+JMP6+3Cx9n4wXqFqcrEIVxrf/GgYnZg==", + "path": "exceldatareader/3.7.0", + "hashPath": "exceldatareader.3.7.0.nupkg.sha512" + }, + "Microsoft.CSharp/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kaj6Wb4qoMuH3HySFJhxwQfe8R/sJsNJnANrvv8WdFPMoNbKY5htfNscv+LHCu5ipz+49m2e+WQXpLXr9XYemQ==", + "path": "microsoft.csharp/4.5.0", + "hashPath": "microsoft.csharp.4.5.0.nupkg.sha512" + }, + "Microsoft.NETCore.Platforms/1.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-2G6OjjJzwBfNOO8myRV/nFrbTw5iA+DEm0N+qUqhrOmaVtn4pC77h38I1jsXGw5VH55+dPfQsqHD0We9sCl9FQ==", + "path": "microsoft.netcore.platforms/1.0.1", + "hashPath": "microsoft.netcore.platforms.1.0.1.nupkg.sha512" + }, + "Microsoft.NETCore.Targets/1.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rkn+fKobF/cbWfnnfBOQHKVKIOpxMZBvlSHkqDWgBpwGDcLRduvs3D9OLGeV6GWGvVwNlVi2CBbTjuPmtHvyNw==", + "path": "microsoft.netcore.targets/1.0.1", + "hashPath": "microsoft.netcore.targets.1.0.1.nupkg.sha512" + }, + "NeoLua/1.3.14": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BXIUN+ePY2wx3ZGiSmR8KZKD85s01pXI690orrB3u/biB8R0nalziGw+iGbPBq1Cuz8Upggpw2ERF84POXWTCQ==", + "path": "neolua/1.3.14", + "hashPath": "neolua.1.3.14.nupkg.sha512" + }, + "NLog/5.3.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gLy7+O1hEYJXIlcTr1/VWjGXrZTQFZzYNO18IWasD64pNwz0BreV+nHLxWKXWZzERRzoKnsk2XYtwLkTVk7J1A==", + "path": "nlog/5.3.4", + "hashPath": "nlog.5.3.4.nupkg.sha512" + }, + "Scriban/5.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/YTTCxjBIpfwX3MKMT4JMFVl1jX4IHW7zih+Bg3cTIkzGnbFt+B3l/k90ILDw6DRiFE7T+VxEyls7zk4p029ng==", + "path": "scriban/5.12.0", + "hashPath": "scriban.5.12.0.nupkg.sha512" + }, + "System.Collections/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YUJGz6eFKqS0V//mLt25vFGrrCvOnsXjlvFQs+KimpwNxug9x0Pzy4PlFMU3Q2IzqAa9G2L4LsK3+9vCBK7oTg==", + "path": "system.collections/4.0.11", + "hashPath": "system.collections.4.0.11.nupkg.sha512" + }, + "System.Diagnostics.Debug/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-w5U95fVKHY4G8ASs/K5iK3J5LY+/dLFd4vKejsnI/ZhBsWS9hQakfx3Zr7lRWKg4tAw9r4iktyvsTagWkqYCiw==", + "path": "system.diagnostics.debug/4.0.11", + "hashPath": "system.diagnostics.debug.4.0.11.nupkg.sha512" + }, + "System.Diagnostics.Tools/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-xBfJ8pnd4C17dWaC9FM6aShzbJcRNMChUMD42I6772KGGrqaFdumwhn9OdM68erj1ueNo3xdQ1EwiFjK5k8p0g==", + "path": "system.diagnostics.tools/4.0.1", + "hashPath": "system.diagnostics.tools.4.0.1.nupkg.sha512" + }, + "System.Globalization/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-B95h0YLEL2oSnwF/XjqSWKnwKOy/01VWkNlsCeMTFJLLabflpGV26nK164eRs5GiaRSBGpOxQ3pKoSnnyZN5pg==", + "path": "system.globalization/4.0.11", + "hashPath": "system.globalization.4.0.11.nupkg.sha512" + }, + "System.IO/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3KlTJceQc3gnGIaHZ7UBZO26SHL1SHE4ddrmiwumFnId+CEHP+O8r386tZKaE6zlk5/mF8vifMBzHj9SaXN+mQ==", + "path": "system.io/4.1.0", + "hashPath": "system.io.4.1.0.nupkg.sha512" + }, + "System.Linq/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bQ0iYFOQI0nuTnt+NQADns6ucV4DUvMdwN6CbkB1yj8i7arTGiTN5eok1kQwdnnNWSDZfIUySQY+J3d5KjWn0g==", + "path": "system.linq/4.1.0", + "hashPath": "system.linq.4.1.0.nupkg.sha512" + }, + "System.Linq.Expressions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-I+y02iqkgmCAyfbqOmSDOgqdZQ5tTj80Akm5BPSS8EeB0VGWdy6X1KCoYe8Pk6pwDoAKZUOdLVxnTJcExiv5zw==", + "path": "system.linq.expressions/4.1.0", + "hashPath": "system.linq.expressions.4.1.0.nupkg.sha512" + }, + "System.ObjectModel/4.0.12": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tAgJM1xt3ytyMoW4qn4wIqgJYm7L7TShRZG4+Q4Qsi2PCcj96pXN7nRywS9KkB3p/xDUjc2HSwP9SROyPYDYKQ==", + "path": "system.objectmodel/4.0.12", + "hashPath": "system.objectmodel.4.0.12.nupkg.sha512" + }, + "System.Reflection/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-JCKANJ0TI7kzoQzuwB/OoJANy1Lg338B6+JVacPl4TpUwi3cReg3nMLplMq2uqYfHFQpKIlHAUVAJlImZz/4ng==", + "path": "system.reflection/4.1.0", + "hashPath": "system.reflection.4.1.0.nupkg.sha512" + }, + "System.Reflection.Emit/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-P2wqAj72fFjpP6wb9nSfDqNBMab+2ovzSDzUZK7MVIm54tBJEPr9jWfSjjoTpPwj1LeKcmX3vr0ttyjSSFM47g==", + "path": "system.reflection.emit/4.0.1", + "hashPath": "system.reflection.emit.4.0.1.nupkg.sha512" + }, + "System.Reflection.Emit.ILGeneration/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Ov6dU8Bu15Bc7zuqttgHF12J5lwSWyTf1S+FJouUXVMSqImLZzYaQ+vRr1rQ0OZ0HqsrwWl4dsKHELckQkVpgA==", + "path": "system.reflection.emit.ilgeneration/4.0.1", + "hashPath": "system.reflection.emit.ilgeneration.4.0.1.nupkg.sha512" + }, + "System.Reflection.Emit.Lightweight/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-sSzHHXueZ5Uh0OLpUQprhr+ZYJrLPA2Cmr4gn0wj9+FftNKXx8RIMKvO9qnjk2ebPYUjZ+F2ulGdPOsvj+MEjA==", + "path": "system.reflection.emit.lightweight/4.0.1", + "hashPath": "system.reflection.emit.lightweight.4.0.1.nupkg.sha512" + }, + "System.Reflection.Extensions/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GYrtRsZcMuHF3sbmRHfMYpvxZoIN2bQGrYGerUiWLEkqdEUQZhH3TRSaC/oI4wO0II1RKBPlpIa1TOMxIcOOzQ==", + "path": "system.reflection.extensions/4.0.1", + "hashPath": "system.reflection.extensions.4.0.1.nupkg.sha512" + }, + "System.Reflection.Primitives/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4inTox4wTBaDhB7V3mPvp9XlCbeGYWVEM9/fXALd52vNEAVisc1BoVWQPuUuD0Ga//dNbA/WeMy9u9mzLxGTHQ==", + "path": "system.reflection.primitives/4.0.1", + "hashPath": "system.reflection.primitives.4.0.1.nupkg.sha512" + }, + "System.Reflection.TypeExtensions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tsQ/ptQ3H5FYfON8lL4MxRk/8kFyE0A+tGPXmVP967cT/gzLHYxIejIYSxp4JmIeFHVP78g/F2FE1mUUTbDtrg==", + "path": "system.reflection.typeextensions/4.1.0", + "hashPath": "system.reflection.typeextensions.4.1.0.nupkg.sha512" + }, + "System.Resources.ResourceManager/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-TxwVeUNoTgUOdQ09gfTjvW411MF+w9MBYL7AtNVc+HtBCFlutPLhUCdZjNkjbhj3bNQWMdHboF0KIWEOjJssbA==", + "path": "system.resources.resourcemanager/4.0.1", + "hashPath": "system.resources.resourcemanager.4.0.1.nupkg.sha512" + }, + "System.Runtime/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-v6c/4Yaa9uWsq+JMhnOFewrYkgdNHNG2eMKuNqRn8P733rNXeRCGvV5FkkjBXn2dbVkPXOsO0xjsEeM1q2zC0g==", + "path": "system.runtime/4.1.0", + "hashPath": "system.runtime.4.1.0.nupkg.sha512" + }, + "System.Runtime.Extensions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-CUOHjTT/vgP0qGW22U4/hDlOqXmcPq5YicBaXdUR2UiUoLwBT+olO6we4DVbq57jeX5uXH2uerVZhf0qGj+sVQ==", + "path": "system.runtime.extensions/4.1.0", + "hashPath": "system.runtime.extensions.4.1.0.nupkg.sha512" + }, + "System.Runtime.Serialization.Primitives/4.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==", + "path": "system.runtime.serialization.primitives/4.1.1", + "hashPath": "system.runtime.serialization.primitives.4.1.1.nupkg.sha512" + }, + "System.Text.Encoding/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-U3gGeMlDZXxCEiY4DwVLSacg+DFWCvoiX+JThA/rvw37Sqrku7sEFeVBBBMBnfB6FeZHsyDx85HlKL19x0HtZA==", + "path": "system.text.encoding/4.0.11", + "hashPath": "system.text.encoding.4.0.11.nupkg.sha512" + }, + "System.Text.Encoding.Extensions/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jtbiTDtvfLYgXn8PTfWI+SiBs51rrmO4AAckx4KR6vFK9Wzf6tI8kcRdsYQNwriUeQ1+CtQbM1W4cMbLXnj/OQ==", + "path": "system.text.encoding.extensions/4.0.11", + "hashPath": "system.text.encoding.extensions.4.0.11.nupkg.sha512" + }, + "System.Text.RegularExpressions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-i88YCXpRTjCnoSQZtdlHkAOx4KNNik4hMy83n0+Ftlb7jvV6ZiZWMpnEZHhjBp6hQVh8gWd/iKNPzlPF7iyA2g==", + "path": "system.text.regularexpressions/4.1.0", + "hashPath": "system.text.regularexpressions.4.1.0.nupkg.sha512" + }, + "System.Threading/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-N+3xqIcg3VDKyjwwCGaZ9HawG9aC6cSDI+s7ROma310GQo8vilFZa86hqKppwTHleR/G0sfOzhvgnUxWCR/DrQ==", + "path": "system.threading/4.0.11", + "hashPath": "system.threading.4.0.11.nupkg.sha512" + }, + "System.Threading.Tasks/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-k1S4Gc6IGwtHGT8188RSeGaX86Qw/wnrgNLshJvsdNUOPP9etMmo8S07c+UlOAx4K/xLuN9ivA1bD0LVurtIxQ==", + "path": "system.threading.tasks/4.0.11", + "hashPath": "system.threading.tasks.4.0.11.nupkg.sha512" + }, + "Ude.NetStandard/1.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zRWpPAxBg3lNdm4UiKixTe+DFPoNid9CILggTCy/0WR2WKETe17kTWhiiIpLB2k5IEgnvA0QLfKlvd6Tvu0pzA==", + "path": "ude.netstandard/1.2.0", + "hashPath": "ude.netstandard.1.2.0.nupkg.sha512" + }, + "YamlDotNet.NetCore/1.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vPiKF4Yf02MS96Nzwcr8+WrvlhTx+camOgUzxhazU0hCzs2ESetWDCxaIT/MYdAw2oONYem1ow9PXWJjHkRUDw==", + "path": "yamldotnet.netcore/1.0.0", + "hashPath": "yamldotnet.netcore.1.0.0.nupkg.sha512" + }, + "Luban.Core/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.DataLoader.Builtin/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.DataTarget.Builtin/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Luban.Python.dll b/LuBanConfig/Tools/Luban/Luban.Python.dll new file mode 100644 index 000000000..8a147f632 Binary files /dev/null and b/LuBanConfig/Tools/Luban/Luban.Python.dll differ diff --git a/LuBanConfig/Tools/Luban/Luban.Rust.deps.json b/LuBanConfig/Tools/Luban/Luban.Rust.deps.json new file mode 100644 index 000000000..63c7d1a11 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Luban.Rust.deps.json @@ -0,0 +1,73 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Luban.Rust/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0" + }, + "runtime": { + "Luban.Rust.dll": {} + } + }, + "NLog/5.3.4": { + "runtime": { + "lib/netstandard2.0/NLog.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.3.4.2778" + } + } + }, + "Scriban/5.12.0": { + "runtime": { + "lib/net7.0/Scriban.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.12.0.0" + } + } + }, + "Luban.Core/1.0.0": { + "dependencies": { + "NLog": "5.3.4", + "Scriban": "5.12.0" + }, + "runtime": { + "Luban.Core.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + } + } + }, + "libraries": { + "Luban.Rust/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "NLog/5.3.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gLy7+O1hEYJXIlcTr1/VWjGXrZTQFZzYNO18IWasD64pNwz0BreV+nHLxWKXWZzERRzoKnsk2XYtwLkTVk7J1A==", + "path": "nlog/5.3.4", + "hashPath": "nlog.5.3.4.nupkg.sha512" + }, + "Scriban/5.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/YTTCxjBIpfwX3MKMT4JMFVl1jX4IHW7zih+Bg3cTIkzGnbFt+B3l/k90ILDw6DRiFE7T+VxEyls7zk4p029ng==", + "path": "scriban/5.12.0", + "hashPath": "scriban.5.12.0.nupkg.sha512" + }, + "Luban.Core/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Luban.Rust.dll b/LuBanConfig/Tools/Luban/Luban.Rust.dll new file mode 100644 index 000000000..aa236cac1 Binary files /dev/null and b/LuBanConfig/Tools/Luban/Luban.Rust.dll differ diff --git a/LuBanConfig/Tools/Luban/Luban.Schema.Builtin.deps.json b/LuBanConfig/Tools/Luban/Luban.Schema.Builtin.deps.json new file mode 100644 index 000000000..0f78b600e --- /dev/null +++ b/LuBanConfig/Tools/Luban/Luban.Schema.Builtin.deps.json @@ -0,0 +1,564 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Luban.Schema.Builtin/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0", + "Luban.DataLoader.Builtin": "1.0.0" + }, + "runtime": { + "Luban.Schema.Builtin.dll": {} + } + }, + "ExcelDataReader/3.7.0": { + "runtime": { + "lib/netstandard2.1/ExcelDataReader.dll": { + "assemblyVersion": "3.7.0.0", + "fileVersion": "3.7.0.0" + } + } + }, + "Microsoft.CSharp/4.5.0": {}, + "Microsoft.NETCore.Platforms/1.0.1": {}, + "Microsoft.NETCore.Targets/1.0.1": {}, + "NeoLua/1.3.14": { + "dependencies": { + "Microsoft.CSharp": "4.5.0" + }, + "runtime": { + "lib/net5.0/Neo.Lua.dll": { + "assemblyVersion": "5.3.0.0", + "fileVersion": "1.3.14.0" + } + }, + "resources": { + "lib/net5.0/de/Neo.Lua.resources.dll": { + "locale": "de" + } + } + }, + "NLog/5.3.4": { + "runtime": { + "lib/netstandard2.0/NLog.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.3.4.2778" + } + } + }, + "Scriban/5.12.0": { + "runtime": { + "lib/net7.0/Scriban.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.12.0.0" + } + } + }, + "System.Collections/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Diagnostics.Debug/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Diagnostics.Tools/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Globalization/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.IO/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0", + "System.Text.Encoding": "4.0.11", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.Linq/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0" + } + }, + "System.Linq.Expressions/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Globalization": "4.0.11", + "System.IO": "4.1.0", + "System.Linq": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Reflection": "4.1.0", + "System.Reflection.Emit": "4.0.1", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Emit.Lightweight": "4.0.1", + "System.Reflection.Extensions": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Reflection.TypeExtensions": "4.1.0", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.ObjectModel/4.0.12": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.Reflection/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.IO": "4.1.0", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit/4.0.1": { + "dependencies": { + "System.IO": "4.1.0", + "System.Reflection": "4.1.0", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit.ILGeneration/4.0.1": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit.Lightweight/4.0.1": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Extensions/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Primitives/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.TypeExtensions/4.1.0": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Resources.ResourceManager/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Globalization": "4.0.11", + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Runtime/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1" + } + }, + "System.Runtime.Extensions/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Runtime.Serialization.Primitives/4.1.1": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Text.Encoding/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Text.Encoding.Extensions/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0", + "System.Text.Encoding": "4.0.11" + } + }, + "System.Text.RegularExpressions/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Globalization": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.Threading/4.0.11": { + "dependencies": { + "System.Runtime": "4.1.0", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.Threading.Tasks/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "Ude.NetStandard/1.2.0": { + "runtime": { + "lib/netstandard2.0/Ude.NetStandard.dll": { + "assemblyVersion": "1.0.2.0", + "fileVersion": "1.0.2.0" + } + } + }, + "YamlDotNet.NetCore/1.0.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Diagnostics.Tools": "4.0.1", + "System.Globalization": "4.0.11", + "System.Linq": "4.1.0", + "System.Linq.Expressions": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Reflection.Extensions": "4.0.1", + "System.Runtime.Extensions": "4.1.0", + "System.Runtime.Serialization.Primitives": "4.1.1", + "System.Text.Encoding.Extensions": "4.0.11", + "System.Text.RegularExpressions": "4.1.0" + }, + "runtime": { + "lib/netstandard1.0/YamlDotNet.NetCore.dll": { + "assemblyVersion": "0.0.1.0", + "fileVersion": "0.0.0.0" + } + } + }, + "Luban.Core/1.0.0": { + "dependencies": { + "NLog": "5.3.4", + "Scriban": "5.12.0" + }, + "runtime": { + "Luban.Core.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.DataLoader.Builtin/1.0.0": { + "dependencies": { + "ExcelDataReader": "3.7.0", + "Luban.Core": "1.0.0", + "NeoLua": "1.3.14", + "Ude.NetStandard": "1.2.0", + "YamlDotNet.NetCore": "1.0.0" + }, + "runtime": { + "Luban.DataLoader.Builtin.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + } + } + }, + "libraries": { + "Luban.Schema.Builtin/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "ExcelDataReader/3.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-AMv3oDETRHSRyXC17rBtKH45qIfFyo433LMeaMB3u4RNr/c9Luuc0Z+JMP6+3Cx9n4wXqFqcrEIVxrf/GgYnZg==", + "path": "exceldatareader/3.7.0", + "hashPath": "exceldatareader.3.7.0.nupkg.sha512" + }, + "Microsoft.CSharp/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kaj6Wb4qoMuH3HySFJhxwQfe8R/sJsNJnANrvv8WdFPMoNbKY5htfNscv+LHCu5ipz+49m2e+WQXpLXr9XYemQ==", + "path": "microsoft.csharp/4.5.0", + "hashPath": "microsoft.csharp.4.5.0.nupkg.sha512" + }, + "Microsoft.NETCore.Platforms/1.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-2G6OjjJzwBfNOO8myRV/nFrbTw5iA+DEm0N+qUqhrOmaVtn4pC77h38I1jsXGw5VH55+dPfQsqHD0We9sCl9FQ==", + "path": "microsoft.netcore.platforms/1.0.1", + "hashPath": "microsoft.netcore.platforms.1.0.1.nupkg.sha512" + }, + "Microsoft.NETCore.Targets/1.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rkn+fKobF/cbWfnnfBOQHKVKIOpxMZBvlSHkqDWgBpwGDcLRduvs3D9OLGeV6GWGvVwNlVi2CBbTjuPmtHvyNw==", + "path": "microsoft.netcore.targets/1.0.1", + "hashPath": "microsoft.netcore.targets.1.0.1.nupkg.sha512" + }, + "NeoLua/1.3.14": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BXIUN+ePY2wx3ZGiSmR8KZKD85s01pXI690orrB3u/biB8R0nalziGw+iGbPBq1Cuz8Upggpw2ERF84POXWTCQ==", + "path": "neolua/1.3.14", + "hashPath": "neolua.1.3.14.nupkg.sha512" + }, + "NLog/5.3.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gLy7+O1hEYJXIlcTr1/VWjGXrZTQFZzYNO18IWasD64pNwz0BreV+nHLxWKXWZzERRzoKnsk2XYtwLkTVk7J1A==", + "path": "nlog/5.3.4", + "hashPath": "nlog.5.3.4.nupkg.sha512" + }, + "Scriban/5.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/YTTCxjBIpfwX3MKMT4JMFVl1jX4IHW7zih+Bg3cTIkzGnbFt+B3l/k90ILDw6DRiFE7T+VxEyls7zk4p029ng==", + "path": "scriban/5.12.0", + "hashPath": "scriban.5.12.0.nupkg.sha512" + }, + "System.Collections/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YUJGz6eFKqS0V//mLt25vFGrrCvOnsXjlvFQs+KimpwNxug9x0Pzy4PlFMU3Q2IzqAa9G2L4LsK3+9vCBK7oTg==", + "path": "system.collections/4.0.11", + "hashPath": "system.collections.4.0.11.nupkg.sha512" + }, + "System.Diagnostics.Debug/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-w5U95fVKHY4G8ASs/K5iK3J5LY+/dLFd4vKejsnI/ZhBsWS9hQakfx3Zr7lRWKg4tAw9r4iktyvsTagWkqYCiw==", + "path": "system.diagnostics.debug/4.0.11", + "hashPath": "system.diagnostics.debug.4.0.11.nupkg.sha512" + }, + "System.Diagnostics.Tools/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-xBfJ8pnd4C17dWaC9FM6aShzbJcRNMChUMD42I6772KGGrqaFdumwhn9OdM68erj1ueNo3xdQ1EwiFjK5k8p0g==", + "path": "system.diagnostics.tools/4.0.1", + "hashPath": "system.diagnostics.tools.4.0.1.nupkg.sha512" + }, + "System.Globalization/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-B95h0YLEL2oSnwF/XjqSWKnwKOy/01VWkNlsCeMTFJLLabflpGV26nK164eRs5GiaRSBGpOxQ3pKoSnnyZN5pg==", + "path": "system.globalization/4.0.11", + "hashPath": "system.globalization.4.0.11.nupkg.sha512" + }, + "System.IO/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3KlTJceQc3gnGIaHZ7UBZO26SHL1SHE4ddrmiwumFnId+CEHP+O8r386tZKaE6zlk5/mF8vifMBzHj9SaXN+mQ==", + "path": "system.io/4.1.0", + "hashPath": "system.io.4.1.0.nupkg.sha512" + }, + "System.Linq/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bQ0iYFOQI0nuTnt+NQADns6ucV4DUvMdwN6CbkB1yj8i7arTGiTN5eok1kQwdnnNWSDZfIUySQY+J3d5KjWn0g==", + "path": "system.linq/4.1.0", + "hashPath": "system.linq.4.1.0.nupkg.sha512" + }, + "System.Linq.Expressions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-I+y02iqkgmCAyfbqOmSDOgqdZQ5tTj80Akm5BPSS8EeB0VGWdy6X1KCoYe8Pk6pwDoAKZUOdLVxnTJcExiv5zw==", + "path": "system.linq.expressions/4.1.0", + "hashPath": "system.linq.expressions.4.1.0.nupkg.sha512" + }, + "System.ObjectModel/4.0.12": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tAgJM1xt3ytyMoW4qn4wIqgJYm7L7TShRZG4+Q4Qsi2PCcj96pXN7nRywS9KkB3p/xDUjc2HSwP9SROyPYDYKQ==", + "path": "system.objectmodel/4.0.12", + "hashPath": "system.objectmodel.4.0.12.nupkg.sha512" + }, + "System.Reflection/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-JCKANJ0TI7kzoQzuwB/OoJANy1Lg338B6+JVacPl4TpUwi3cReg3nMLplMq2uqYfHFQpKIlHAUVAJlImZz/4ng==", + "path": "system.reflection/4.1.0", + "hashPath": "system.reflection.4.1.0.nupkg.sha512" + }, + "System.Reflection.Emit/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-P2wqAj72fFjpP6wb9nSfDqNBMab+2ovzSDzUZK7MVIm54tBJEPr9jWfSjjoTpPwj1LeKcmX3vr0ttyjSSFM47g==", + "path": "system.reflection.emit/4.0.1", + "hashPath": "system.reflection.emit.4.0.1.nupkg.sha512" + }, + "System.Reflection.Emit.ILGeneration/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Ov6dU8Bu15Bc7zuqttgHF12J5lwSWyTf1S+FJouUXVMSqImLZzYaQ+vRr1rQ0OZ0HqsrwWl4dsKHELckQkVpgA==", + "path": "system.reflection.emit.ilgeneration/4.0.1", + "hashPath": "system.reflection.emit.ilgeneration.4.0.1.nupkg.sha512" + }, + "System.Reflection.Emit.Lightweight/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-sSzHHXueZ5Uh0OLpUQprhr+ZYJrLPA2Cmr4gn0wj9+FftNKXx8RIMKvO9qnjk2ebPYUjZ+F2ulGdPOsvj+MEjA==", + "path": "system.reflection.emit.lightweight/4.0.1", + "hashPath": "system.reflection.emit.lightweight.4.0.1.nupkg.sha512" + }, + "System.Reflection.Extensions/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GYrtRsZcMuHF3sbmRHfMYpvxZoIN2bQGrYGerUiWLEkqdEUQZhH3TRSaC/oI4wO0II1RKBPlpIa1TOMxIcOOzQ==", + "path": "system.reflection.extensions/4.0.1", + "hashPath": "system.reflection.extensions.4.0.1.nupkg.sha512" + }, + "System.Reflection.Primitives/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4inTox4wTBaDhB7V3mPvp9XlCbeGYWVEM9/fXALd52vNEAVisc1BoVWQPuUuD0Ga//dNbA/WeMy9u9mzLxGTHQ==", + "path": "system.reflection.primitives/4.0.1", + "hashPath": "system.reflection.primitives.4.0.1.nupkg.sha512" + }, + "System.Reflection.TypeExtensions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tsQ/ptQ3H5FYfON8lL4MxRk/8kFyE0A+tGPXmVP967cT/gzLHYxIejIYSxp4JmIeFHVP78g/F2FE1mUUTbDtrg==", + "path": "system.reflection.typeextensions/4.1.0", + "hashPath": "system.reflection.typeextensions.4.1.0.nupkg.sha512" + }, + "System.Resources.ResourceManager/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-TxwVeUNoTgUOdQ09gfTjvW411MF+w9MBYL7AtNVc+HtBCFlutPLhUCdZjNkjbhj3bNQWMdHboF0KIWEOjJssbA==", + "path": "system.resources.resourcemanager/4.0.1", + "hashPath": "system.resources.resourcemanager.4.0.1.nupkg.sha512" + }, + "System.Runtime/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-v6c/4Yaa9uWsq+JMhnOFewrYkgdNHNG2eMKuNqRn8P733rNXeRCGvV5FkkjBXn2dbVkPXOsO0xjsEeM1q2zC0g==", + "path": "system.runtime/4.1.0", + "hashPath": "system.runtime.4.1.0.nupkg.sha512" + }, + "System.Runtime.Extensions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-CUOHjTT/vgP0qGW22U4/hDlOqXmcPq5YicBaXdUR2UiUoLwBT+olO6we4DVbq57jeX5uXH2uerVZhf0qGj+sVQ==", + "path": "system.runtime.extensions/4.1.0", + "hashPath": "system.runtime.extensions.4.1.0.nupkg.sha512" + }, + "System.Runtime.Serialization.Primitives/4.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==", + "path": "system.runtime.serialization.primitives/4.1.1", + "hashPath": "system.runtime.serialization.primitives.4.1.1.nupkg.sha512" + }, + "System.Text.Encoding/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-U3gGeMlDZXxCEiY4DwVLSacg+DFWCvoiX+JThA/rvw37Sqrku7sEFeVBBBMBnfB6FeZHsyDx85HlKL19x0HtZA==", + "path": "system.text.encoding/4.0.11", + "hashPath": "system.text.encoding.4.0.11.nupkg.sha512" + }, + "System.Text.Encoding.Extensions/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jtbiTDtvfLYgXn8PTfWI+SiBs51rrmO4AAckx4KR6vFK9Wzf6tI8kcRdsYQNwriUeQ1+CtQbM1W4cMbLXnj/OQ==", + "path": "system.text.encoding.extensions/4.0.11", + "hashPath": "system.text.encoding.extensions.4.0.11.nupkg.sha512" + }, + "System.Text.RegularExpressions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-i88YCXpRTjCnoSQZtdlHkAOx4KNNik4hMy83n0+Ftlb7jvV6ZiZWMpnEZHhjBp6hQVh8gWd/iKNPzlPF7iyA2g==", + "path": "system.text.regularexpressions/4.1.0", + "hashPath": "system.text.regularexpressions.4.1.0.nupkg.sha512" + }, + "System.Threading/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-N+3xqIcg3VDKyjwwCGaZ9HawG9aC6cSDI+s7ROma310GQo8vilFZa86hqKppwTHleR/G0sfOzhvgnUxWCR/DrQ==", + "path": "system.threading/4.0.11", + "hashPath": "system.threading.4.0.11.nupkg.sha512" + }, + "System.Threading.Tasks/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-k1S4Gc6IGwtHGT8188RSeGaX86Qw/wnrgNLshJvsdNUOPP9etMmo8S07c+UlOAx4K/xLuN9ivA1bD0LVurtIxQ==", + "path": "system.threading.tasks/4.0.11", + "hashPath": "system.threading.tasks.4.0.11.nupkg.sha512" + }, + "Ude.NetStandard/1.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zRWpPAxBg3lNdm4UiKixTe+DFPoNid9CILggTCy/0WR2WKETe17kTWhiiIpLB2k5IEgnvA0QLfKlvd6Tvu0pzA==", + "path": "ude.netstandard/1.2.0", + "hashPath": "ude.netstandard.1.2.0.nupkg.sha512" + }, + "YamlDotNet.NetCore/1.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vPiKF4Yf02MS96Nzwcr8+WrvlhTx+camOgUzxhazU0hCzs2ESetWDCxaIT/MYdAw2oONYem1ow9PXWJjHkRUDw==", + "path": "yamldotnet.netcore/1.0.0", + "hashPath": "yamldotnet.netcore.1.0.0.nupkg.sha512" + }, + "Luban.Core/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.DataLoader.Builtin/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Luban.Schema.Builtin.dll b/LuBanConfig/Tools/Luban/Luban.Schema.Builtin.dll new file mode 100644 index 000000000..56d8d5891 Binary files /dev/null and b/LuBanConfig/Tools/Luban/Luban.Schema.Builtin.dll differ diff --git a/LuBanConfig/Tools/Luban/Luban.Schema.Builtin.runtimeconfig.json b/LuBanConfig/Tools/Luban/Luban.Schema.Builtin.runtimeconfig.json new file mode 100644 index 000000000..446650247 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Luban.Schema.Builtin.runtimeconfig.json @@ -0,0 +1,14 @@ +{ + "runtimeOptions": { + "tfm": "net8.0", + "rollForward": "LatestMinor", + "framework": { + "name": "Microsoft.NETCore.App", + "version": "8.0.0" + }, + "configProperties": { + "System.Reflection.Metadata.MetadataUpdater.IsSupported": false, + "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false + } + } +} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Luban.Typescript.deps.json b/LuBanConfig/Tools/Luban/Luban.Typescript.deps.json new file mode 100644 index 000000000..e5855b06a --- /dev/null +++ b/LuBanConfig/Tools/Luban/Luban.Typescript.deps.json @@ -0,0 +1,615 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Luban.Typescript/1.0.0": { + "dependencies": { + "Luban.CSharp": "1.0.0", + "Luban.Core": "1.0.0", + "Luban.DataTarget.Builtin": "1.0.0" + }, + "runtime": { + "Luban.Typescript.dll": {} + } + }, + "ExcelDataReader/3.7.0": { + "runtime": { + "lib/netstandard2.1/ExcelDataReader.dll": { + "assemblyVersion": "3.7.0.0", + "fileVersion": "3.7.0.0" + } + } + }, + "Microsoft.CSharp/4.5.0": {}, + "Microsoft.NETCore.Platforms/1.0.1": {}, + "Microsoft.NETCore.Targets/1.0.1": {}, + "NeoLua/1.3.14": { + "dependencies": { + "Microsoft.CSharp": "4.5.0" + }, + "runtime": { + "lib/net5.0/Neo.Lua.dll": { + "assemblyVersion": "5.3.0.0", + "fileVersion": "1.3.14.0" + } + }, + "resources": { + "lib/net5.0/de/Neo.Lua.resources.dll": { + "locale": "de" + } + } + }, + "NLog/5.3.4": { + "runtime": { + "lib/netstandard2.0/NLog.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.3.4.2778" + } + } + }, + "Scriban/5.12.0": { + "runtime": { + "lib/net7.0/Scriban.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.12.0.0" + } + } + }, + "System.Collections/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Diagnostics.Debug/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Diagnostics.Tools/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Globalization/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.IO/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0", + "System.Text.Encoding": "4.0.11", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.Linq/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0" + } + }, + "System.Linq.Expressions/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Globalization": "4.0.11", + "System.IO": "4.1.0", + "System.Linq": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Reflection": "4.1.0", + "System.Reflection.Emit": "4.0.1", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Emit.Lightweight": "4.0.1", + "System.Reflection.Extensions": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Reflection.TypeExtensions": "4.1.0", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.ObjectModel/4.0.12": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.Reflection/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.IO": "4.1.0", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit/4.0.1": { + "dependencies": { + "System.IO": "4.1.0", + "System.Reflection": "4.1.0", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit.ILGeneration/4.0.1": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit.Lightweight/4.0.1": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Extensions/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Primitives/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.TypeExtensions/4.1.0": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Resources.ResourceManager/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Globalization": "4.0.11", + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Runtime/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1" + } + }, + "System.Runtime.Extensions/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Runtime.Serialization.Primitives/4.1.1": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Text.Encoding/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Text.Encoding.Extensions/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0", + "System.Text.Encoding": "4.0.11" + } + }, + "System.Text.RegularExpressions/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Globalization": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.Threading/4.0.11": { + "dependencies": { + "System.Runtime": "4.1.0", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.Threading.Tasks/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "Ude.NetStandard/1.2.0": { + "runtime": { + "lib/netstandard2.0/Ude.NetStandard.dll": { + "assemblyVersion": "1.0.2.0", + "fileVersion": "1.0.2.0" + } + } + }, + "YamlDotNet.NetCore/1.0.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Diagnostics.Tools": "4.0.1", + "System.Globalization": "4.0.11", + "System.Linq": "4.1.0", + "System.Linq.Expressions": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Reflection.Extensions": "4.0.1", + "System.Runtime.Extensions": "4.1.0", + "System.Runtime.Serialization.Primitives": "4.1.1", + "System.Text.Encoding.Extensions": "4.0.11", + "System.Text.RegularExpressions": "4.1.0" + }, + "runtime": { + "lib/netstandard1.0/YamlDotNet.NetCore.dll": { + "assemblyVersion": "0.0.1.0", + "fileVersion": "0.0.0.0" + } + } + }, + "Luban.Core/1.0.0": { + "dependencies": { + "NLog": "5.3.4", + "Scriban": "5.12.0" + }, + "runtime": { + "Luban.Core.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.CSharp/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0", + "Luban.DataValidator.Builtin": "1.0.0" + }, + "runtime": { + "Luban.CSharp.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.DataLoader.Builtin/1.0.0": { + "dependencies": { + "ExcelDataReader": "3.7.0", + "Luban.Core": "1.0.0", + "NeoLua": "1.3.14", + "Ude.NetStandard": "1.2.0", + "YamlDotNet.NetCore": "1.0.0" + }, + "runtime": { + "Luban.DataLoader.Builtin.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.DataTarget.Builtin/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0", + "Luban.DataLoader.Builtin": "1.0.0" + }, + "runtime": { + "Luban.DataTarget.Builtin.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.DataValidator.Builtin/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0" + }, + "runtime": { + "Luban.DataValidator.Builtin.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + } + } + }, + "libraries": { + "Luban.Typescript/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "ExcelDataReader/3.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-AMv3oDETRHSRyXC17rBtKH45qIfFyo433LMeaMB3u4RNr/c9Luuc0Z+JMP6+3Cx9n4wXqFqcrEIVxrf/GgYnZg==", + "path": "exceldatareader/3.7.0", + "hashPath": "exceldatareader.3.7.0.nupkg.sha512" + }, + "Microsoft.CSharp/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kaj6Wb4qoMuH3HySFJhxwQfe8R/sJsNJnANrvv8WdFPMoNbKY5htfNscv+LHCu5ipz+49m2e+WQXpLXr9XYemQ==", + "path": "microsoft.csharp/4.5.0", + "hashPath": "microsoft.csharp.4.5.0.nupkg.sha512" + }, + "Microsoft.NETCore.Platforms/1.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-2G6OjjJzwBfNOO8myRV/nFrbTw5iA+DEm0N+qUqhrOmaVtn4pC77h38I1jsXGw5VH55+dPfQsqHD0We9sCl9FQ==", + "path": "microsoft.netcore.platforms/1.0.1", + "hashPath": "microsoft.netcore.platforms.1.0.1.nupkg.sha512" + }, + "Microsoft.NETCore.Targets/1.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rkn+fKobF/cbWfnnfBOQHKVKIOpxMZBvlSHkqDWgBpwGDcLRduvs3D9OLGeV6GWGvVwNlVi2CBbTjuPmtHvyNw==", + "path": "microsoft.netcore.targets/1.0.1", + "hashPath": "microsoft.netcore.targets.1.0.1.nupkg.sha512" + }, + "NeoLua/1.3.14": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BXIUN+ePY2wx3ZGiSmR8KZKD85s01pXI690orrB3u/biB8R0nalziGw+iGbPBq1Cuz8Upggpw2ERF84POXWTCQ==", + "path": "neolua/1.3.14", + "hashPath": "neolua.1.3.14.nupkg.sha512" + }, + "NLog/5.3.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gLy7+O1hEYJXIlcTr1/VWjGXrZTQFZzYNO18IWasD64pNwz0BreV+nHLxWKXWZzERRzoKnsk2XYtwLkTVk7J1A==", + "path": "nlog/5.3.4", + "hashPath": "nlog.5.3.4.nupkg.sha512" + }, + "Scriban/5.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/YTTCxjBIpfwX3MKMT4JMFVl1jX4IHW7zih+Bg3cTIkzGnbFt+B3l/k90ILDw6DRiFE7T+VxEyls7zk4p029ng==", + "path": "scriban/5.12.0", + "hashPath": "scriban.5.12.0.nupkg.sha512" + }, + "System.Collections/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YUJGz6eFKqS0V//mLt25vFGrrCvOnsXjlvFQs+KimpwNxug9x0Pzy4PlFMU3Q2IzqAa9G2L4LsK3+9vCBK7oTg==", + "path": "system.collections/4.0.11", + "hashPath": "system.collections.4.0.11.nupkg.sha512" + }, + "System.Diagnostics.Debug/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-w5U95fVKHY4G8ASs/K5iK3J5LY+/dLFd4vKejsnI/ZhBsWS9hQakfx3Zr7lRWKg4tAw9r4iktyvsTagWkqYCiw==", + "path": "system.diagnostics.debug/4.0.11", + "hashPath": "system.diagnostics.debug.4.0.11.nupkg.sha512" + }, + "System.Diagnostics.Tools/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-xBfJ8pnd4C17dWaC9FM6aShzbJcRNMChUMD42I6772KGGrqaFdumwhn9OdM68erj1ueNo3xdQ1EwiFjK5k8p0g==", + "path": "system.diagnostics.tools/4.0.1", + "hashPath": "system.diagnostics.tools.4.0.1.nupkg.sha512" + }, + "System.Globalization/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-B95h0YLEL2oSnwF/XjqSWKnwKOy/01VWkNlsCeMTFJLLabflpGV26nK164eRs5GiaRSBGpOxQ3pKoSnnyZN5pg==", + "path": "system.globalization/4.0.11", + "hashPath": "system.globalization.4.0.11.nupkg.sha512" + }, + "System.IO/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3KlTJceQc3gnGIaHZ7UBZO26SHL1SHE4ddrmiwumFnId+CEHP+O8r386tZKaE6zlk5/mF8vifMBzHj9SaXN+mQ==", + "path": "system.io/4.1.0", + "hashPath": "system.io.4.1.0.nupkg.sha512" + }, + "System.Linq/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bQ0iYFOQI0nuTnt+NQADns6ucV4DUvMdwN6CbkB1yj8i7arTGiTN5eok1kQwdnnNWSDZfIUySQY+J3d5KjWn0g==", + "path": "system.linq/4.1.0", + "hashPath": "system.linq.4.1.0.nupkg.sha512" + }, + "System.Linq.Expressions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-I+y02iqkgmCAyfbqOmSDOgqdZQ5tTj80Akm5BPSS8EeB0VGWdy6X1KCoYe8Pk6pwDoAKZUOdLVxnTJcExiv5zw==", + "path": "system.linq.expressions/4.1.0", + "hashPath": "system.linq.expressions.4.1.0.nupkg.sha512" + }, + "System.ObjectModel/4.0.12": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tAgJM1xt3ytyMoW4qn4wIqgJYm7L7TShRZG4+Q4Qsi2PCcj96pXN7nRywS9KkB3p/xDUjc2HSwP9SROyPYDYKQ==", + "path": "system.objectmodel/4.0.12", + "hashPath": "system.objectmodel.4.0.12.nupkg.sha512" + }, + "System.Reflection/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-JCKANJ0TI7kzoQzuwB/OoJANy1Lg338B6+JVacPl4TpUwi3cReg3nMLplMq2uqYfHFQpKIlHAUVAJlImZz/4ng==", + "path": "system.reflection/4.1.0", + "hashPath": "system.reflection.4.1.0.nupkg.sha512" + }, + "System.Reflection.Emit/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-P2wqAj72fFjpP6wb9nSfDqNBMab+2ovzSDzUZK7MVIm54tBJEPr9jWfSjjoTpPwj1LeKcmX3vr0ttyjSSFM47g==", + "path": "system.reflection.emit/4.0.1", + "hashPath": "system.reflection.emit.4.0.1.nupkg.sha512" + }, + "System.Reflection.Emit.ILGeneration/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Ov6dU8Bu15Bc7zuqttgHF12J5lwSWyTf1S+FJouUXVMSqImLZzYaQ+vRr1rQ0OZ0HqsrwWl4dsKHELckQkVpgA==", + "path": "system.reflection.emit.ilgeneration/4.0.1", + "hashPath": "system.reflection.emit.ilgeneration.4.0.1.nupkg.sha512" + }, + "System.Reflection.Emit.Lightweight/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-sSzHHXueZ5Uh0OLpUQprhr+ZYJrLPA2Cmr4gn0wj9+FftNKXx8RIMKvO9qnjk2ebPYUjZ+F2ulGdPOsvj+MEjA==", + "path": "system.reflection.emit.lightweight/4.0.1", + "hashPath": "system.reflection.emit.lightweight.4.0.1.nupkg.sha512" + }, + "System.Reflection.Extensions/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GYrtRsZcMuHF3sbmRHfMYpvxZoIN2bQGrYGerUiWLEkqdEUQZhH3TRSaC/oI4wO0II1RKBPlpIa1TOMxIcOOzQ==", + "path": "system.reflection.extensions/4.0.1", + "hashPath": "system.reflection.extensions.4.0.1.nupkg.sha512" + }, + "System.Reflection.Primitives/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4inTox4wTBaDhB7V3mPvp9XlCbeGYWVEM9/fXALd52vNEAVisc1BoVWQPuUuD0Ga//dNbA/WeMy9u9mzLxGTHQ==", + "path": "system.reflection.primitives/4.0.1", + "hashPath": "system.reflection.primitives.4.0.1.nupkg.sha512" + }, + "System.Reflection.TypeExtensions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tsQ/ptQ3H5FYfON8lL4MxRk/8kFyE0A+tGPXmVP967cT/gzLHYxIejIYSxp4JmIeFHVP78g/F2FE1mUUTbDtrg==", + "path": "system.reflection.typeextensions/4.1.0", + "hashPath": "system.reflection.typeextensions.4.1.0.nupkg.sha512" + }, + "System.Resources.ResourceManager/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-TxwVeUNoTgUOdQ09gfTjvW411MF+w9MBYL7AtNVc+HtBCFlutPLhUCdZjNkjbhj3bNQWMdHboF0KIWEOjJssbA==", + "path": "system.resources.resourcemanager/4.0.1", + "hashPath": "system.resources.resourcemanager.4.0.1.nupkg.sha512" + }, + "System.Runtime/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-v6c/4Yaa9uWsq+JMhnOFewrYkgdNHNG2eMKuNqRn8P733rNXeRCGvV5FkkjBXn2dbVkPXOsO0xjsEeM1q2zC0g==", + "path": "system.runtime/4.1.0", + "hashPath": "system.runtime.4.1.0.nupkg.sha512" + }, + "System.Runtime.Extensions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-CUOHjTT/vgP0qGW22U4/hDlOqXmcPq5YicBaXdUR2UiUoLwBT+olO6we4DVbq57jeX5uXH2uerVZhf0qGj+sVQ==", + "path": "system.runtime.extensions/4.1.0", + "hashPath": "system.runtime.extensions.4.1.0.nupkg.sha512" + }, + "System.Runtime.Serialization.Primitives/4.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==", + "path": "system.runtime.serialization.primitives/4.1.1", + "hashPath": "system.runtime.serialization.primitives.4.1.1.nupkg.sha512" + }, + "System.Text.Encoding/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-U3gGeMlDZXxCEiY4DwVLSacg+DFWCvoiX+JThA/rvw37Sqrku7sEFeVBBBMBnfB6FeZHsyDx85HlKL19x0HtZA==", + "path": "system.text.encoding/4.0.11", + "hashPath": "system.text.encoding.4.0.11.nupkg.sha512" + }, + "System.Text.Encoding.Extensions/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jtbiTDtvfLYgXn8PTfWI+SiBs51rrmO4AAckx4KR6vFK9Wzf6tI8kcRdsYQNwriUeQ1+CtQbM1W4cMbLXnj/OQ==", + "path": "system.text.encoding.extensions/4.0.11", + "hashPath": "system.text.encoding.extensions.4.0.11.nupkg.sha512" + }, + "System.Text.RegularExpressions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-i88YCXpRTjCnoSQZtdlHkAOx4KNNik4hMy83n0+Ftlb7jvV6ZiZWMpnEZHhjBp6hQVh8gWd/iKNPzlPF7iyA2g==", + "path": "system.text.regularexpressions/4.1.0", + "hashPath": "system.text.regularexpressions.4.1.0.nupkg.sha512" + }, + "System.Threading/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-N+3xqIcg3VDKyjwwCGaZ9HawG9aC6cSDI+s7ROma310GQo8vilFZa86hqKppwTHleR/G0sfOzhvgnUxWCR/DrQ==", + "path": "system.threading/4.0.11", + "hashPath": "system.threading.4.0.11.nupkg.sha512" + }, + "System.Threading.Tasks/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-k1S4Gc6IGwtHGT8188RSeGaX86Qw/wnrgNLshJvsdNUOPP9etMmo8S07c+UlOAx4K/xLuN9ivA1bD0LVurtIxQ==", + "path": "system.threading.tasks/4.0.11", + "hashPath": "system.threading.tasks.4.0.11.nupkg.sha512" + }, + "Ude.NetStandard/1.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zRWpPAxBg3lNdm4UiKixTe+DFPoNid9CILggTCy/0WR2WKETe17kTWhiiIpLB2k5IEgnvA0QLfKlvd6Tvu0pzA==", + "path": "ude.netstandard/1.2.0", + "hashPath": "ude.netstandard.1.2.0.nupkg.sha512" + }, + "YamlDotNet.NetCore/1.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vPiKF4Yf02MS96Nzwcr8+WrvlhTx+camOgUzxhazU0hCzs2ESetWDCxaIT/MYdAw2oONYem1ow9PXWJjHkRUDw==", + "path": "yamldotnet.netcore/1.0.0", + "hashPath": "yamldotnet.netcore.1.0.0.nupkg.sha512" + }, + "Luban.Core/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.CSharp/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.DataLoader.Builtin/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.DataTarget.Builtin/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.DataValidator.Builtin/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Luban.Typescript.dll b/LuBanConfig/Tools/Luban/Luban.Typescript.dll new file mode 100644 index 000000000..01077ceb4 Binary files /dev/null and b/LuBanConfig/Tools/Luban/Luban.Typescript.dll differ diff --git a/LuBanConfig/Tools/Luban/Luban.deps.json b/LuBanConfig/Tools/Luban/Luban.deps.json new file mode 100644 index 000000000..fcc88c903 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Luban.deps.json @@ -0,0 +1,1015 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Luban/4.2.1": { + "dependencies": { + "CommandLineParser": "2.9.1", + "Luban.Bson": "1.0.0", + "Luban.CSharp": "1.0.0", + "Luban.Core": "1.0.0", + "Luban.Cpp": "1.0.0", + "Luban.Dart": "1.0.0", + "Luban.DataLoader.Builtin": "1.0.0", + "Luban.DataTarget.Builtin": "1.0.0", + "Luban.DataValidator.Builtin": "1.0.0", + "Luban.FlatBuffers": "1.0.0", + "Luban.Gdscript": "1.0.0", + "Luban.Golang": "1.0.0", + "Luban.Java": "1.0.0", + "Luban.L10N": "1.0.0", + "Luban.Lua": "1.0.0", + "Luban.MsgPack": "1.0.0", + "Luban.PHP": "1.0.0", + "Luban.Protobuf": "1.0.0", + "Luban.Python": "1.0.0", + "Luban.Rust": "1.0.0", + "Luban.Schema.Builtin": "1.0.0", + "Luban.Typescript": "1.0.0", + "YamlDotNet.NetCore": "1.0.0" + }, + "runtime": { + "Luban.dll": {} + } + }, + "CommandLineParser/2.9.1": { + "runtime": { + "lib/netstandard2.0/CommandLine.dll": { + "assemblyVersion": "2.9.1.0", + "fileVersion": "2.9.1.0" + } + } + }, + "ExcelDataReader/3.7.0": { + "runtime": { + "lib/netstandard2.1/ExcelDataReader.dll": { + "assemblyVersion": "3.7.0.0", + "fileVersion": "3.7.0.0" + } + } + }, + "Google.Protobuf/3.29.0": { + "runtime": { + "lib/net5.0/Google.Protobuf.dll": { + "assemblyVersion": "3.29.0.0", + "fileVersion": "3.29.0.0" + } + } + }, + "MessagePack/2.5.192": { + "dependencies": { + "MessagePack.Annotations": "2.5.192", + "Microsoft.NET.StringTools": "17.6.3" + }, + "runtime": { + "lib/net6.0/MessagePack.dll": { + "assemblyVersion": "2.5.0.0", + "fileVersion": "2.5.192.54228" + } + } + }, + "MessagePack.Annotations/2.5.192": { + "runtime": { + "lib/netstandard2.0/MessagePack.Annotations.dll": { + "assemblyVersion": "2.5.0.0", + "fileVersion": "2.5.192.54228" + } + } + }, + "Microsoft.CSharp/4.5.0": {}, + "Microsoft.NET.StringTools/17.6.3": { + "runtime": { + "lib/net7.0/Microsoft.NET.StringTools.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "17.6.3.22601" + } + } + }, + "Microsoft.NETCore.Platforms/1.0.1": {}, + "Microsoft.NETCore.Targets/1.0.1": {}, + "NeoLua/1.3.14": { + "dependencies": { + "Microsoft.CSharp": "4.5.0" + }, + "runtime": { + "lib/net5.0/Neo.Lua.dll": { + "assemblyVersion": "5.3.0.0", + "fileVersion": "1.3.14.0" + } + }, + "resources": { + "lib/net5.0/de/Neo.Lua.resources.dll": { + "locale": "de" + } + } + }, + "Newtonsoft.Json/13.0.1": { + "runtime": { + "lib/netstandard2.0/Newtonsoft.Json.dll": { + "assemblyVersion": "13.0.0.0", + "fileVersion": "13.0.1.25517" + } + } + }, + "Newtonsoft.Json.Bson/1.0.3": { + "dependencies": { + "Newtonsoft.Json": "13.0.1" + }, + "runtime": { + "lib/netstandard2.0/Newtonsoft.Json.Bson.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.3.29904" + } + } + }, + "NLog/5.3.4": { + "runtime": { + "lib/netstandard2.0/NLog.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.3.4.2778" + } + } + }, + "Scriban/5.12.0": { + "runtime": { + "lib/net7.0/Scriban.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.12.0.0" + } + } + }, + "System.Collections/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Diagnostics.Debug/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Diagnostics.Tools/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Globalization/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.IO/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0", + "System.Text.Encoding": "4.0.11", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.Linq/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0" + } + }, + "System.Linq.Expressions/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Globalization": "4.0.11", + "System.IO": "4.1.0", + "System.Linq": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Reflection": "4.1.0", + "System.Reflection.Emit": "4.0.1", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Emit.Lightweight": "4.0.1", + "System.Reflection.Extensions": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Reflection.TypeExtensions": "4.1.0", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.ObjectModel/4.0.12": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.Reflection/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.IO": "4.1.0", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit/4.0.1": { + "dependencies": { + "System.IO": "4.1.0", + "System.Reflection": "4.1.0", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit.ILGeneration/4.0.1": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit.Lightweight/4.0.1": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Extensions/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Primitives/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.TypeExtensions/4.1.0": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Resources.ResourceManager/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Globalization": "4.0.11", + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Runtime/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1" + } + }, + "System.Runtime.Extensions/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Runtime.Serialization.Primitives/4.1.1": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Text.Encoding/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Text.Encoding.Extensions/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0", + "System.Text.Encoding": "4.0.11" + } + }, + "System.Text.RegularExpressions/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Globalization": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.Threading/4.0.11": { + "dependencies": { + "System.Runtime": "4.1.0", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.Threading.Tasks/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "Ude.NetStandard/1.2.0": { + "runtime": { + "lib/netstandard2.0/Ude.NetStandard.dll": { + "assemblyVersion": "1.0.2.0", + "fileVersion": "1.0.2.0" + } + } + }, + "YamlDotNet.NetCore/1.0.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Diagnostics.Tools": "4.0.1", + "System.Globalization": "4.0.11", + "System.Linq": "4.1.0", + "System.Linq.Expressions": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Reflection.Extensions": "4.0.1", + "System.Runtime.Extensions": "4.1.0", + "System.Runtime.Serialization.Primitives": "4.1.1", + "System.Text.Encoding.Extensions": "4.0.11", + "System.Text.RegularExpressions": "4.1.0" + }, + "runtime": { + "lib/netstandard1.0/YamlDotNet.NetCore.dll": { + "assemblyVersion": "0.0.1.0", + "fileVersion": "0.0.0.0" + } + } + }, + "Luban.Bson/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0", + "Newtonsoft.Json.Bson": "1.0.3" + }, + "runtime": { + "Luban.Bson.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.Core/1.0.0": { + "dependencies": { + "NLog": "5.3.4", + "Scriban": "5.12.0" + }, + "runtime": { + "Luban.Core.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.Cpp/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0" + }, + "runtime": { + "Luban.Cpp.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.CSharp/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0", + "Luban.DataValidator.Builtin": "1.0.0" + }, + "runtime": { + "Luban.CSharp.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.Dart/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0" + }, + "runtime": { + "Luban.Dart.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.DataLoader.Builtin/1.0.0": { + "dependencies": { + "ExcelDataReader": "3.7.0", + "Luban.Core": "1.0.0", + "NeoLua": "1.3.14", + "Ude.NetStandard": "1.2.0", + "YamlDotNet.NetCore": "1.0.0" + }, + "runtime": { + "Luban.DataLoader.Builtin.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.DataTarget.Builtin/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0", + "Luban.DataLoader.Builtin": "1.0.0" + }, + "runtime": { + "Luban.DataTarget.Builtin.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.DataValidator.Builtin/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0" + }, + "runtime": { + "Luban.DataValidator.Builtin.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.FlatBuffers/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0", + "Luban.DataTarget.Builtin": "1.0.0" + }, + "runtime": { + "Luban.FlatBuffers.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.Gdscript/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0", + "Luban.DataTarget.Builtin": "1.0.0" + }, + "runtime": { + "Luban.Gdscript.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.Golang/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0" + }, + "runtime": { + "Luban.Golang.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.Java/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0" + }, + "runtime": { + "Luban.Java.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.L10N/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0", + "Luban.DataLoader.Builtin": "1.0.0" + }, + "runtime": { + "Luban.L10N.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.Lua/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0" + }, + "runtime": { + "Luban.Lua.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.MsgPack/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0", + "MessagePack": "2.5.192" + }, + "runtime": { + "Luban.MsgPack.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.PHP/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0", + "Luban.DataTarget.Builtin": "1.0.0" + }, + "runtime": { + "Luban.PHP.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.Protobuf/1.0.0": { + "dependencies": { + "Google.Protobuf": "3.29.0", + "Luban.Core": "1.0.0", + "Luban.DataTarget.Builtin": "1.0.0" + }, + "runtime": { + "Luban.Protobuf.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.Python/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0", + "Luban.DataTarget.Builtin": "1.0.0" + }, + "runtime": { + "Luban.Python.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.Rust/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0" + }, + "runtime": { + "Luban.Rust.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.Schema.Builtin/1.0.0": { + "dependencies": { + "Luban.Core": "1.0.0", + "Luban.DataLoader.Builtin": "1.0.0" + }, + "runtime": { + "Luban.Schema.Builtin.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Luban.Typescript/1.0.0": { + "dependencies": { + "Luban.CSharp": "1.0.0", + "Luban.Core": "1.0.0", + "Luban.DataTarget.Builtin": "1.0.0" + }, + "runtime": { + "Luban.Typescript.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + } + } + }, + "libraries": { + "Luban/4.2.1": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "CommandLineParser/2.9.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-OE0sl1/sQ37bjVsPKKtwQlWDgqaxWgtme3xZz7JssWUzg5JpMIyHgCTY9MVMxOg48fJ1AgGT3tgdH5m/kQ5xhA==", + "path": "commandlineparser/2.9.1", + "hashPath": "commandlineparser.2.9.1.nupkg.sha512" + }, + "ExcelDataReader/3.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-AMv3oDETRHSRyXC17rBtKH45qIfFyo433LMeaMB3u4RNr/c9Luuc0Z+JMP6+3Cx9n4wXqFqcrEIVxrf/GgYnZg==", + "path": "exceldatareader/3.7.0", + "hashPath": "exceldatareader.3.7.0.nupkg.sha512" + }, + "Google.Protobuf/3.29.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-l1012jd1Y2XsLQ+h9cXE7Bo3WruXql3Xc3KP/z+yZDJMSkfb2guslHCxwFsqd2ScHB0h2J7Yuy255RrBD/DGBw==", + "path": "google.protobuf/3.29.0", + "hashPath": "google.protobuf.3.29.0.nupkg.sha512" + }, + "MessagePack/2.5.192": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Jtle5MaFeIFkdXtxQeL9Tu2Y3HsAQGoSntOzrn6Br/jrl6c8QmG22GEioT5HBtZJR0zw0s46OnKU8ei2M3QifA==", + "path": "messagepack/2.5.192", + "hashPath": "messagepack.2.5.192.nupkg.sha512" + }, + "MessagePack.Annotations/2.5.192": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jaJuwcgovWIZ8Zysdyf3b7b34/BrADw4v82GaEZymUhDd3ScMPrYd/cttekeDteJJPXseJxp04yTIcxiVUjTWg==", + "path": "messagepack.annotations/2.5.192", + "hashPath": "messagepack.annotations.2.5.192.nupkg.sha512" + }, + "Microsoft.CSharp/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kaj6Wb4qoMuH3HySFJhxwQfe8R/sJsNJnANrvv8WdFPMoNbKY5htfNscv+LHCu5ipz+49m2e+WQXpLXr9XYemQ==", + "path": "microsoft.csharp/4.5.0", + "hashPath": "microsoft.csharp.4.5.0.nupkg.sha512" + }, + "Microsoft.NET.StringTools/17.6.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-N0ZIanl1QCgvUumEL1laasU0a7sOE5ZwLZVTn0pAePnfhq8P7SvTjF8Axq+CnavuQkmdQpGNXQ1efZtu5kDFbA==", + "path": "microsoft.net.stringtools/17.6.3", + "hashPath": "microsoft.net.stringtools.17.6.3.nupkg.sha512" + }, + "Microsoft.NETCore.Platforms/1.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-2G6OjjJzwBfNOO8myRV/nFrbTw5iA+DEm0N+qUqhrOmaVtn4pC77h38I1jsXGw5VH55+dPfQsqHD0We9sCl9FQ==", + "path": "microsoft.netcore.platforms/1.0.1", + "hashPath": "microsoft.netcore.platforms.1.0.1.nupkg.sha512" + }, + "Microsoft.NETCore.Targets/1.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rkn+fKobF/cbWfnnfBOQHKVKIOpxMZBvlSHkqDWgBpwGDcLRduvs3D9OLGeV6GWGvVwNlVi2CBbTjuPmtHvyNw==", + "path": "microsoft.netcore.targets/1.0.1", + "hashPath": "microsoft.netcore.targets.1.0.1.nupkg.sha512" + }, + "NeoLua/1.3.14": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BXIUN+ePY2wx3ZGiSmR8KZKD85s01pXI690orrB3u/biB8R0nalziGw+iGbPBq1Cuz8Upggpw2ERF84POXWTCQ==", + "path": "neolua/1.3.14", + "hashPath": "neolua.1.3.14.nupkg.sha512" + }, + "Newtonsoft.Json/13.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==", + "path": "newtonsoft.json/13.0.1", + "hashPath": "newtonsoft.json.13.0.1.nupkg.sha512" + }, + "Newtonsoft.Json.Bson/1.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bCcwagnHfYnhwQfY1criEcn6Hy9PtBuVnZu0pA8hmRhuR3jI/8WxVgoVAdNw9BJ3JHkxmWJzpj/AQy+PMMLqxg==", + "path": "newtonsoft.json.bson/1.0.3", + "hashPath": "newtonsoft.json.bson.1.0.3.nupkg.sha512" + }, + "NLog/5.3.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gLy7+O1hEYJXIlcTr1/VWjGXrZTQFZzYNO18IWasD64pNwz0BreV+nHLxWKXWZzERRzoKnsk2XYtwLkTVk7J1A==", + "path": "nlog/5.3.4", + "hashPath": "nlog.5.3.4.nupkg.sha512" + }, + "Scriban/5.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/YTTCxjBIpfwX3MKMT4JMFVl1jX4IHW7zih+Bg3cTIkzGnbFt+B3l/k90ILDw6DRiFE7T+VxEyls7zk4p029ng==", + "path": "scriban/5.12.0", + "hashPath": "scriban.5.12.0.nupkg.sha512" + }, + "System.Collections/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YUJGz6eFKqS0V//mLt25vFGrrCvOnsXjlvFQs+KimpwNxug9x0Pzy4PlFMU3Q2IzqAa9G2L4LsK3+9vCBK7oTg==", + "path": "system.collections/4.0.11", + "hashPath": "system.collections.4.0.11.nupkg.sha512" + }, + "System.Diagnostics.Debug/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-w5U95fVKHY4G8ASs/K5iK3J5LY+/dLFd4vKejsnI/ZhBsWS9hQakfx3Zr7lRWKg4tAw9r4iktyvsTagWkqYCiw==", + "path": "system.diagnostics.debug/4.0.11", + "hashPath": "system.diagnostics.debug.4.0.11.nupkg.sha512" + }, + "System.Diagnostics.Tools/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-xBfJ8pnd4C17dWaC9FM6aShzbJcRNMChUMD42I6772KGGrqaFdumwhn9OdM68erj1ueNo3xdQ1EwiFjK5k8p0g==", + "path": "system.diagnostics.tools/4.0.1", + "hashPath": "system.diagnostics.tools.4.0.1.nupkg.sha512" + }, + "System.Globalization/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-B95h0YLEL2oSnwF/XjqSWKnwKOy/01VWkNlsCeMTFJLLabflpGV26nK164eRs5GiaRSBGpOxQ3pKoSnnyZN5pg==", + "path": "system.globalization/4.0.11", + "hashPath": "system.globalization.4.0.11.nupkg.sha512" + }, + "System.IO/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3KlTJceQc3gnGIaHZ7UBZO26SHL1SHE4ddrmiwumFnId+CEHP+O8r386tZKaE6zlk5/mF8vifMBzHj9SaXN+mQ==", + "path": "system.io/4.1.0", + "hashPath": "system.io.4.1.0.nupkg.sha512" + }, + "System.Linq/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bQ0iYFOQI0nuTnt+NQADns6ucV4DUvMdwN6CbkB1yj8i7arTGiTN5eok1kQwdnnNWSDZfIUySQY+J3d5KjWn0g==", + "path": "system.linq/4.1.0", + "hashPath": "system.linq.4.1.0.nupkg.sha512" + }, + "System.Linq.Expressions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-I+y02iqkgmCAyfbqOmSDOgqdZQ5tTj80Akm5BPSS8EeB0VGWdy6X1KCoYe8Pk6pwDoAKZUOdLVxnTJcExiv5zw==", + "path": "system.linq.expressions/4.1.0", + "hashPath": "system.linq.expressions.4.1.0.nupkg.sha512" + }, + "System.ObjectModel/4.0.12": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tAgJM1xt3ytyMoW4qn4wIqgJYm7L7TShRZG4+Q4Qsi2PCcj96pXN7nRywS9KkB3p/xDUjc2HSwP9SROyPYDYKQ==", + "path": "system.objectmodel/4.0.12", + "hashPath": "system.objectmodel.4.0.12.nupkg.sha512" + }, + "System.Reflection/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-JCKANJ0TI7kzoQzuwB/OoJANy1Lg338B6+JVacPl4TpUwi3cReg3nMLplMq2uqYfHFQpKIlHAUVAJlImZz/4ng==", + "path": "system.reflection/4.1.0", + "hashPath": "system.reflection.4.1.0.nupkg.sha512" + }, + "System.Reflection.Emit/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-P2wqAj72fFjpP6wb9nSfDqNBMab+2ovzSDzUZK7MVIm54tBJEPr9jWfSjjoTpPwj1LeKcmX3vr0ttyjSSFM47g==", + "path": "system.reflection.emit/4.0.1", + "hashPath": "system.reflection.emit.4.0.1.nupkg.sha512" + }, + "System.Reflection.Emit.ILGeneration/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Ov6dU8Bu15Bc7zuqttgHF12J5lwSWyTf1S+FJouUXVMSqImLZzYaQ+vRr1rQ0OZ0HqsrwWl4dsKHELckQkVpgA==", + "path": "system.reflection.emit.ilgeneration/4.0.1", + "hashPath": "system.reflection.emit.ilgeneration.4.0.1.nupkg.sha512" + }, + "System.Reflection.Emit.Lightweight/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-sSzHHXueZ5Uh0OLpUQprhr+ZYJrLPA2Cmr4gn0wj9+FftNKXx8RIMKvO9qnjk2ebPYUjZ+F2ulGdPOsvj+MEjA==", + "path": "system.reflection.emit.lightweight/4.0.1", + "hashPath": "system.reflection.emit.lightweight.4.0.1.nupkg.sha512" + }, + "System.Reflection.Extensions/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GYrtRsZcMuHF3sbmRHfMYpvxZoIN2bQGrYGerUiWLEkqdEUQZhH3TRSaC/oI4wO0II1RKBPlpIa1TOMxIcOOzQ==", + "path": "system.reflection.extensions/4.0.1", + "hashPath": "system.reflection.extensions.4.0.1.nupkg.sha512" + }, + "System.Reflection.Primitives/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4inTox4wTBaDhB7V3mPvp9XlCbeGYWVEM9/fXALd52vNEAVisc1BoVWQPuUuD0Ga//dNbA/WeMy9u9mzLxGTHQ==", + "path": "system.reflection.primitives/4.0.1", + "hashPath": "system.reflection.primitives.4.0.1.nupkg.sha512" + }, + "System.Reflection.TypeExtensions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tsQ/ptQ3H5FYfON8lL4MxRk/8kFyE0A+tGPXmVP967cT/gzLHYxIejIYSxp4JmIeFHVP78g/F2FE1mUUTbDtrg==", + "path": "system.reflection.typeextensions/4.1.0", + "hashPath": "system.reflection.typeextensions.4.1.0.nupkg.sha512" + }, + "System.Resources.ResourceManager/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-TxwVeUNoTgUOdQ09gfTjvW411MF+w9MBYL7AtNVc+HtBCFlutPLhUCdZjNkjbhj3bNQWMdHboF0KIWEOjJssbA==", + "path": "system.resources.resourcemanager/4.0.1", + "hashPath": "system.resources.resourcemanager.4.0.1.nupkg.sha512" + }, + "System.Runtime/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-v6c/4Yaa9uWsq+JMhnOFewrYkgdNHNG2eMKuNqRn8P733rNXeRCGvV5FkkjBXn2dbVkPXOsO0xjsEeM1q2zC0g==", + "path": "system.runtime/4.1.0", + "hashPath": "system.runtime.4.1.0.nupkg.sha512" + }, + "System.Runtime.Extensions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-CUOHjTT/vgP0qGW22U4/hDlOqXmcPq5YicBaXdUR2UiUoLwBT+olO6we4DVbq57jeX5uXH2uerVZhf0qGj+sVQ==", + "path": "system.runtime.extensions/4.1.0", + "hashPath": "system.runtime.extensions.4.1.0.nupkg.sha512" + }, + "System.Runtime.Serialization.Primitives/4.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==", + "path": "system.runtime.serialization.primitives/4.1.1", + "hashPath": "system.runtime.serialization.primitives.4.1.1.nupkg.sha512" + }, + "System.Text.Encoding/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-U3gGeMlDZXxCEiY4DwVLSacg+DFWCvoiX+JThA/rvw37Sqrku7sEFeVBBBMBnfB6FeZHsyDx85HlKL19x0HtZA==", + "path": "system.text.encoding/4.0.11", + "hashPath": "system.text.encoding.4.0.11.nupkg.sha512" + }, + "System.Text.Encoding.Extensions/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jtbiTDtvfLYgXn8PTfWI+SiBs51rrmO4AAckx4KR6vFK9Wzf6tI8kcRdsYQNwriUeQ1+CtQbM1W4cMbLXnj/OQ==", + "path": "system.text.encoding.extensions/4.0.11", + "hashPath": "system.text.encoding.extensions.4.0.11.nupkg.sha512" + }, + "System.Text.RegularExpressions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-i88YCXpRTjCnoSQZtdlHkAOx4KNNik4hMy83n0+Ftlb7jvV6ZiZWMpnEZHhjBp6hQVh8gWd/iKNPzlPF7iyA2g==", + "path": "system.text.regularexpressions/4.1.0", + "hashPath": "system.text.regularexpressions.4.1.0.nupkg.sha512" + }, + "System.Threading/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-N+3xqIcg3VDKyjwwCGaZ9HawG9aC6cSDI+s7ROma310GQo8vilFZa86hqKppwTHleR/G0sfOzhvgnUxWCR/DrQ==", + "path": "system.threading/4.0.11", + "hashPath": "system.threading.4.0.11.nupkg.sha512" + }, + "System.Threading.Tasks/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-k1S4Gc6IGwtHGT8188RSeGaX86Qw/wnrgNLshJvsdNUOPP9etMmo8S07c+UlOAx4K/xLuN9ivA1bD0LVurtIxQ==", + "path": "system.threading.tasks/4.0.11", + "hashPath": "system.threading.tasks.4.0.11.nupkg.sha512" + }, + "Ude.NetStandard/1.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zRWpPAxBg3lNdm4UiKixTe+DFPoNid9CILggTCy/0WR2WKETe17kTWhiiIpLB2k5IEgnvA0QLfKlvd6Tvu0pzA==", + "path": "ude.netstandard/1.2.0", + "hashPath": "ude.netstandard.1.2.0.nupkg.sha512" + }, + "YamlDotNet.NetCore/1.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vPiKF4Yf02MS96Nzwcr8+WrvlhTx+camOgUzxhazU0hCzs2ESetWDCxaIT/MYdAw2oONYem1ow9PXWJjHkRUDw==", + "path": "yamldotnet.netcore/1.0.0", + "hashPath": "yamldotnet.netcore.1.0.0.nupkg.sha512" + }, + "Luban.Bson/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.Core/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.Cpp/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.CSharp/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.Dart/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.DataLoader.Builtin/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.DataTarget.Builtin/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.DataValidator.Builtin/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.FlatBuffers/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.Gdscript/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.Golang/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.Java/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.L10N/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.Lua/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.MsgPack/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.PHP/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.Protobuf/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.Python/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.Rust/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.Schema.Builtin/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Luban.Typescript/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Luban.dll b/LuBanConfig/Tools/Luban/Luban.dll new file mode 100644 index 000000000..239b965b2 Binary files /dev/null and b/LuBanConfig/Tools/Luban/Luban.dll differ diff --git a/LuBanConfig/Tools/Luban/Luban.exe b/LuBanConfig/Tools/Luban/Luban.exe new file mode 100644 index 000000000..49d896a2a Binary files /dev/null and b/LuBanConfig/Tools/Luban/Luban.exe differ diff --git a/LuBanConfig/Tools/Luban/Luban.runtimeconfig.json b/LuBanConfig/Tools/Luban/Luban.runtimeconfig.json new file mode 100644 index 000000000..d78451564 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Luban.runtimeconfig.json @@ -0,0 +1,13 @@ +{ + "runtimeOptions": { + "tfm": "net8.0", + "framework": { + "name": "Microsoft.NETCore.App", + "version": "8.0.0" + }, + "configProperties": { + "System.Reflection.Metadata.MetadataUpdater.IsSupported": false, + "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false + } + } +} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/MessagePack.Annotations.dll b/LuBanConfig/Tools/Luban/MessagePack.Annotations.dll new file mode 100644 index 000000000..b3a3f4897 Binary files /dev/null and b/LuBanConfig/Tools/Luban/MessagePack.Annotations.dll differ diff --git a/LuBanConfig/Tools/Luban/MessagePack.dll b/LuBanConfig/Tools/Luban/MessagePack.dll new file mode 100644 index 000000000..ed883d080 Binary files /dev/null and b/LuBanConfig/Tools/Luban/MessagePack.dll differ diff --git a/LuBanConfig/Tools/Luban/Microsoft.NET.StringTools.dll b/LuBanConfig/Tools/Luban/Microsoft.NET.StringTools.dll new file mode 100644 index 000000000..7d304399a Binary files /dev/null and b/LuBanConfig/Tools/Luban/Microsoft.NET.StringTools.dll differ diff --git a/LuBanConfig/Tools/Luban/NLog.dll b/LuBanConfig/Tools/Luban/NLog.dll new file mode 100644 index 000000000..49604e194 Binary files /dev/null and b/LuBanConfig/Tools/Luban/NLog.dll differ diff --git a/LuBanConfig/Tools/Luban/Neo.Lua.dll b/LuBanConfig/Tools/Luban/Neo.Lua.dll new file mode 100644 index 000000000..406f580c6 Binary files /dev/null and b/LuBanConfig/Tools/Luban/Neo.Lua.dll differ diff --git a/LuBanConfig/Tools/Luban/Newtonsoft.Json.Bson.dll b/LuBanConfig/Tools/Luban/Newtonsoft.Json.Bson.dll new file mode 100644 index 000000000..159d2edc6 Binary files /dev/null and b/LuBanConfig/Tools/Luban/Newtonsoft.Json.Bson.dll differ diff --git a/LuBanConfig/Tools/Luban/Newtonsoft.Json.dll b/LuBanConfig/Tools/Luban/Newtonsoft.Json.dll new file mode 100644 index 000000000..1ffeabe65 Binary files /dev/null and b/LuBanConfig/Tools/Luban/Newtonsoft.Json.dll differ diff --git a/LuBanConfig/Tools/Luban/Scriban.dll b/LuBanConfig/Tools/Luban/Scriban.dll new file mode 100644 index 000000000..c8131e2e4 Binary files /dev/null and b/LuBanConfig/Tools/Luban/Scriban.dll differ diff --git a/LuBanConfig/Tools/Luban/Templates/common/cpp/enum.sbn b/LuBanConfig/Tools/Luban/Templates/common/cpp/enum.sbn new file mode 100644 index 000000000..b9f3b0a54 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/common/cpp/enum.sbn @@ -0,0 +1,23 @@ +{{~ + comment = __enum.comment + items = __enum.items +~}} +{{namespace_with_grace_begin __namespace}} +{{~if comment != '' ~}} + /// + /// {{escape_comment comment}} + /// +{{~end~}} + enum class {{__name}} + { + {{~ for item in items ~}} +{{~if item.comment != '' ~}} + /// + /// {{escape_comment item.comment_or_alias}} + /// +{{~end~}} + {{format_enum_item_name __code_style item.name}} = {{item.value}}, + {{~end~}} + }; + +{{namespace_with_grace_end __namespace}} diff --git a/LuBanConfig/Tools/Luban/Templates/common/cs/enum.sbn b/LuBanConfig/Tools/Luban/Templates/common/cs/enum.sbn new file mode 100644 index 000000000..4dcd9b678 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/common/cs/enum.sbn @@ -0,0 +1,28 @@ +{{~ + comment = __enum.comment + items = __enum.items +~}} + + +{{namespace_with_grace_begin __namespace_with_top_module}} +{{~if comment != '' ~}} + /// + /// {{escape_comment comment}} + /// +{{~end~}} + {{~if __enum.is_flags~}} + [System.Flags] + {{~end~}} + public enum {{__name}} + { + {{~ for item in items ~}} +{{~if item.comment != '' ~}} + /// + /// {{escape_comment item.comment_or_alias}} + /// +{{~end~}} + {{format_enum_item_name __code_style item.name}} = {{item.value}}, + {{~end~}} + } + +{{namespace_with_grace_end __namespace_with_top_module}} diff --git a/LuBanConfig/Tools/Luban/Templates/common/dart/enum.sbn b/LuBanConfig/Tools/Luban/Templates/common/dart/enum.sbn new file mode 100644 index 000000000..97417f01e --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/common/dart/enum.sbn @@ -0,0 +1,30 @@ +{{~if __this.comment != '' ~}} +//{{escape_comment __this.comment}} +{{~end~}} +enum {{__name}} +{ + {{~if !has_enum_item __this~}} + empty_placeholder(0); + {{~else~}} +{{~if !__this.has_zero_value_item ~}} + None(0), +{{~end~}} + {{~end~}} + + + {{~ for item in __this.items ~}} +{{~if item.comment_or_alias != '' ~}} + //{{escape_comment item.comment_or_alias}} +{{~end~}} + {{item.name}}({{item.int_value}}) {{is_last_enum_item __this item.int_value ? ';' : ','}} + + {{~end~}} + final int value; + + const {{__name}}(this.value); + + static {{__name}} fromValue(int value) + { + return {{__name}}.values.firstWhere((element) => element.value == value, orElse: () => fromValue(0)); + } +} diff --git a/LuBanConfig/Tools/Luban/Templates/common/go/enum.sbn b/LuBanConfig/Tools/Luban/Templates/common/go/enum.sbn new file mode 100644 index 000000000..7dd70a6b5 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/common/go/enum.sbn @@ -0,0 +1,19 @@ +{{~if ___top_module != ''~}} +package {{__top_module}}; +{{~end~}} + +{{~if __this.comment != '' ~}} +/** + * {{escape_comment __this.comment}} + */ +{{~end~}} +const ( + {{~ for item in __this.items ~}} +{{~if item.comment_or_alias != '' ~}} + /** + * {{escape_comment item.comment_or_alias}} + */ +{{~end~}} + {{full_name __this}}_{{item.name}} = {{item.int_value}}; + {{~end~}} +) diff --git a/LuBanConfig/Tools/Luban/Templates/common/java/enum.sbn b/LuBanConfig/Tools/Luban/Templates/common/java/enum.sbn new file mode 100644 index 000000000..142d8a13b --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/common/java/enum.sbn @@ -0,0 +1,19 @@ +{{~if __namespace_with_top_module != ''~}} +package {{__namespace_with_top_module}}; +{{~end~}} + +{{~if __this.comment != '' ~}} +/** + * {{escape_comment __this.comment}} + */ +{{~end~}} +public final class {{__name}} { + {{~ for item in __this.items ~}} +{{~if item.comment_or_alias != '' ~}} + /** + * {{escape_comment item.comment_or_alias}} + */ +{{~end~}} + public static final int {{item.name}} = {{item.int_value}}; + {{~end~}} +} diff --git a/LuBanConfig/Tools/Luban/Templates/common/php/enum.sbn b/LuBanConfig/Tools/Luban/Templates/common/php/enum.sbn new file mode 100644 index 000000000..139597f9c --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/common/php/enum.sbn @@ -0,0 +1,2 @@ + + diff --git a/LuBanConfig/Tools/Luban/Templates/common/rs/macros/Cargo.toml.sbn b/LuBanConfig/Tools/Luban/Templates/common/rs/macros/Cargo.toml.sbn new file mode 100644 index 000000000..ae3a110df --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/common/rs/macros/Cargo.toml.sbn @@ -0,0 +1,14 @@ +[package] +name = "macros" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +quote = "1.0.36" +syn = "2.0.60" +proc-macro2 = "1.0.82" + +[lib] +proc-macro = true \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Templates/common/rs/macros/src/lib.rs.sbn b/LuBanConfig/Tools/Luban/Templates/common/rs/macros/src/lib.rs.sbn new file mode 100644 index 000000000..7e93f74b8 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/common/rs/macros/src/lib.rs.sbn @@ -0,0 +1,65 @@ +#[macro_use] +extern crate quote; + +use proc_macro::TokenStream; +use proc_macro2; +use quote::{format_ident, quote, ToTokens}; +use syn::{parse_macro_input, Data, DeriveInput}; + +#[proc_macro_derive(TryIntoBase)] +pub fn base_try_from(item: TokenStream) -> TokenStream { + let derive_input = parse_macro_input!(item as DeriveInput); + let ty_name = &derive_input.ident; + + match derive_input.data { + Data::Struct(_) => {} + _ => panic!("base_try_from can only be used on structs or enums"), + } + + let expanded = quote! { + impl<'a> TryFrom<&'a AbstractBase> for &'a #ty_name { + type Error = String; + + fn try_from(value: &'a AbstractBase) -> Result { + let r = value.downcast_ref::<#ty_name>(); + if let Some(v) = r { + return Ok(v); + } + + Err(concat!("can not into to ", stringify!(#ty_name)).to_string()) + } + } + }; + + TokenStream::from(expanded) +} + +#[proc_macro_derive(EnumFromNum)] +pub fn enum_from_num(input: TokenStream) -> TokenStream { + let input = parse_macro_input!(input as DeriveInput); + let ty_name = &input.ident; + + + let tokens = vec![ + format_ident!("i64"), + format_ident!("i16"), + format_ident!("i8"), + format_ident!("isize"), + format_ident!("u64"), + format_ident!("u32"), + format_ident!("u16"), + format_ident!("u8"), + format_ident!("usize"), + format_ident!("f64"), + format_ident!("f32"), + ]; + quote! { + #( + impl From<#tokens> for #ty_name { + fn from(value: #tokens) -> Self { + (value as i32).into() + } + } + )* + }.into() +} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Templates/common/ts/enum.sbn b/LuBanConfig/Tools/Luban/Templates/common/ts/enum.sbn new file mode 100644 index 000000000..139597f9c --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/common/ts/enum.sbn @@ -0,0 +1,2 @@ + + diff --git a/LuBanConfig/Tools/Luban/Templates/cpp-rawptr-bin/bean.sbn b/LuBanConfig/Tools/Luban/Templates/cpp-rawptr-bin/bean.sbn new file mode 100644 index 000000000..2b856b0a2 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/cpp-rawptr-bin/bean.sbn @@ -0,0 +1,32 @@ +{{namespace_with_grace_begin __namespace}} + +{{~if __this.comment != '' ~}} +/** + * {{escape_comment __this.comment}} + */ +{{~end~}} +struct {{__name}} : public{{if __parent_def_type}} {{make_cpp_name __parent_def_type.full_name}} {{else}} luban::CfgBean {{end}} +{ + static bool deserialize{{__name}}(::luban::ByteBuf& _buf, {{__name}}*& _out); + + virtual ~{{__name}}() {} + + bool deserialize(::luban::ByteBuf& _buf); + + {{~ for field in __export_fields ~}} +{{~if field.comment != '' ~}} + /** + * {{escape_comment field.comment}} + */ +{{~end~}} + {{declaring_type_name field.ctype}} {{format_field_name __code_style field.name}}; + {{~end~}} + +{{~if !__this.is_abstract_type~}} + static constexpr int __ID__ = {{__this.id}}; + + int getTypeId() const override { return __ID__; } +{{~end~}} +}; + +{{namespace_with_grace_end __namespace}} diff --git a/LuBanConfig/Tools/Luban/Templates/cpp-rawptr-bin/schema_cpp.sbn b/LuBanConfig/Tools/Luban/Templates/cpp-rawptr-bin/schema_cpp.sbn new file mode 100644 index 000000000..18c15312b --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/cpp-rawptr-bin/schema_cpp.sbn @@ -0,0 +1,45 @@ +#include "{{__schema_header_file}}" + +{{namespace_with_grace_begin __top_module}} + +{{~for bean in __beans~}} + +bool {{make_cpp_name bean.full_name}}::deserialize(::luban::ByteBuf& _buf) +{ + {{~if bean.parent_def_type~}} + if (!{{make_cpp_name bean.parent_def_type.full_name}}::deserialize(_buf)) + { + return false; + } + {{~end~}} + + {{~ for field in bean.export_fields ~}} + {{deserialize '_buf' (format_field_name __code_style field.name) field.ctype}} + {{~end~}} + + return true; +} + +{{~if bean.is_abstract_type~}} +bool {{make_cpp_name bean.full_name}}::deserialize{{bean.name}}(::luban::ByteBuf& _buf, {{make_cpp_name bean.full_name}}*& _out) +{ + int32_t id; + if (!_buf.readInt(id)) return false; + switch (id) + { + {{~for child in bean.hierarchy_not_abstract_children~}} + case {{make_type_cpp_name child}}::__ID__: { _out = LUBAN_NEW({{make_type_cpp_name child}}); if (_out->deserialize(_buf)) { return true; } else { _out = nullptr; return false;} } + {{~end~}} + default: { _out = nullptr; return false;} + } +} +{{~else~}} +bool {{make_cpp_name bean.full_name}}::deserialize{{bean.name}}(::luban::ByteBuf& _buf, {{make_cpp_name bean.full_name}}*& _out) +{ + _out = LUBAN_NEW({{make_type_cpp_name bean}}); + return _out->deserialize(_buf); +} +{{~end~}} + +{{~end~}} +{{namespace_with_grace_end __top_module}} diff --git a/LuBanConfig/Tools/Luban/Templates/cpp-rawptr-bin/schema_h.sbn b/LuBanConfig/Tools/Luban/Templates/cpp-rawptr-bin/schema_h.sbn new file mode 100644 index 000000000..90ba84cba --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/cpp-rawptr-bin/schema_h.sbn @@ -0,0 +1,21 @@ +#pragma once +#include +#include + +#include "CfgBean.h" + +{{namespace_with_grace_begin __top_module}} + +{{__enum_codes~}} + +{{~for b in __beans~}} +{{namespace_with_grace_begin b.namespace}} struct {{b.name}}; {{namespace_with_grace_end b.namespace}} +{{~end~}} + +{{~__bean_codes~}} + +{{~__table_codes~}} + +{{__tables_code}} + +{{namespace_with_grace_end __top_module}} diff --git a/LuBanConfig/Tools/Luban/Templates/cpp-rawptr-bin/table.sbn b/LuBanConfig/Tools/Luban/Templates/cpp-rawptr-bin/table.sbn new file mode 100644 index 000000000..511a54636 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/cpp-rawptr-bin/table.sbn @@ -0,0 +1,134 @@ +{{namespace_with_grace_begin __namespace}} + +{{~if __this.comment != '' ~}} +/** + * {{escape_comment __this.comment}} + */ +{{~end~}} + +class {{__name}} +{ + {{~if __this.is_map_table ~}} + private: + ::luban::HashMap<{{declaring_type_name __key_type}}, {{declaring_type_name __value_type}}> _dataMap; + ::luban::Vector<{{declaring_type_name __value_type}}> _dataList; + + public: + ~{{__name}}() + { + for (auto& _v : _dataList) + { + LUBAN_FREE(_v); + } + } + + bool load(::luban::ByteBuf& _buf) + { + int n; + if (!_buf.readSize(n)) return false; + for(; n > 0 ; --n) + { + {{declaring_type_name __value_type}} _v; + {{deserialize '_buf' '_v' __value_type}} + _dataList.push_back(_v); + _dataMap[_v->{{format_field_name __code_style __this.index_field.name}}] = _v; + } + return true; + } + + const ::luban::HashMap<{{declaring_type_name __key_type}}, {{declaring_type_name __value_type}}>& getDataMap() const { return _dataMap; } + const ::luban::Vector<{{declaring_type_name __value_type}}>& getDataList() const { return _dataList; } + + {{declaring_type_name __value_type}} get({{declaring_type_name __key_type}} key) + { + auto it = _dataMap.find(key); + return it != _dataMap.end() ? it->second : nullptr; + } + + {{~else if __this.is_list_table~}} + private: + ::luban::Vector<{{declaring_type_name __value_type}}> _dataList; + {{~if __this.is_union_index~}} + + {{~else if !__this.index_list.empty?~}} + {{~for idx in __this.index_list~}} + ::luban::HashMap<{{declaring_type_name idx.type}}, {{declaring_type_name __value_type}}> _dataMap_{{idx.index_field.name}}; + {{~end~}} + {{~else~}} + {{~end~}} + + public: + bool load(::luban::ByteBuf& _buf) + { + int n; + if (!_buf.readSize(n)) return false; + for(; n > 0 ; --n) + { + {{declaring_type_name __value_type}} _v; + {{deserialize '_buf' '_v' __value_type}} + _dataList.push_back(_v); + {{~if __this.is_union_index~}} + + {{~else if !__this.index_list.empty?~}} + {{~for idx in __this.index_list~}} + _dataMap_{{idx.index_field.name}}[_v->{{idx.index_field.name}}] = _v; + {{~end~}} + {{~else~}} + {{~end~}} + } + return true; + } + + const ::luban::Vector<{{declaring_type_name __value_type}}>& getDataList() const { return _dataList; } + + {{~if __this.is_union_index~}} + + {{~else if !__this.index_list.empty?~}} + {{~for idx in __this.index_list~}} + ::luban::HashMap<{{declaring_type_name idx.type}}, {{declaring_type_name __value_type}}>& getDataMapBy{{idx.index_field.name}}() + { + return _dataMap_{{idx.index_field.name}}; + } + + {{declaring_type_name __value_type}} getBy{{idx.index_field.name}}({{declaring_type_name idx.type}} key) + { + auto it = _dataMap_{{idx.index_field.name}}.find(key); + return it != _dataMap_{{idx.index_field.name}}.end() ? it->second : nullptr; + } + {{~end~}} + {{~else~}} + + {{declaring_type_name __value_type}} get(size_t index) const + { + return _dataList[index]; + } + {{~end~}} + {{~else~}} + private: + {{declaring_type_name __value_type}} _data; + + public: + {{declaring_type_name __value_type}} data() const { return _data; } + + bool load(::luban::ByteBuf& _buf) + { + int n; + if (!_buf.readSize(n)) return false; + if (n != 1) return false; + {{deserialize '_buf' '_data' __value_type}} + return true; + } + + + {{~ for field in __value_type.def_bean.hierarchy_export_fields ~}} +{{~if field.comment != '' ~}} + /** + * {{escape_comment field.comment}} + */ +{{~end~}} + {{declaring_type_name field.ctype}}& {{getter_name field.name}}() const { return _data->{{format_field_name __code_style field.name}}; } + {{~end~}} + {{~end~}} +}; + +{{namespace_with_grace_end __namespace}} diff --git a/LuBanConfig/Tools/Luban/Templates/cpp-rawptr-bin/tables.sbn b/LuBanConfig/Tools/Luban/Templates/cpp-rawptr-bin/tables.sbn new file mode 100644 index 000000000..76354d59f --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/cpp-rawptr-bin/tables.sbn @@ -0,0 +1,23 @@ +class {{__name}} +{ + public: + {{~for table in __tables ~}} +{{~if table.comment != '' ~}} + /** + * {{escape_comment table.comment}} + */ +{{~end~}} + {{make_cpp_name table.full_name}} {{table.name}}; + {{~end~}} + + bool load(::luban::Loader<::luban::ByteBuf> loader) + { + ::luban::ByteBuf buf; + {{~for table in __tables~}} + buf.clear(); + if (!loader(buf, "{{table.output_data_file}}")) return false; + if (!{{table.name}}.load(buf)) return false; + {{~end~}} + return true; + } +}; diff --git a/LuBanConfig/Tools/Luban/Templates/cpp-sharedptr-bin/bean.sbn b/LuBanConfig/Tools/Luban/Templates/cpp-sharedptr-bin/bean.sbn new file mode 100644 index 000000000..f55cd3157 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/cpp-sharedptr-bin/bean.sbn @@ -0,0 +1,32 @@ +{{namespace_with_grace_begin __namespace}} + +{{~if __this.comment != '' ~}} +/** + * {{escape_comment __this.comment}} + */ +{{~end~}} +struct {{__name}} : public{{if __parent_def_type}} {{make_cpp_name __parent_def_type.full_name}} {{else}} luban::CfgBean {{end}} +{ + static bool deserialize{{__name}}(::luban::ByteBuf& _buf, ::luban::SharedPtr<{{__name}}>& _out); + + virtual ~{{__name}}() {} + + bool deserialize(::luban::ByteBuf& _buf); + + {{~ for field in __export_fields ~}} +{{~if field.comment != '' ~}} + /** + * {{escape_comment field.comment}} + */ +{{~end~}} + {{declaring_type_name field.ctype}} {{format_field_name __code_style field.name}}; + {{~end~}} + +{{~if !__this.is_abstract_type~}} + static constexpr int __ID__ = {{__this.id}}; + + int getTypeId() const override { return __ID__; } +{{~end~}} +}; + +{{namespace_with_grace_end __namespace}} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Templates/cpp-sharedptr-bin/schema_cpp.sbn b/LuBanConfig/Tools/Luban/Templates/cpp-sharedptr-bin/schema_cpp.sbn new file mode 100644 index 000000000..1d1a92c17 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/cpp-sharedptr-bin/schema_cpp.sbn @@ -0,0 +1,50 @@ +#include "{{__schema_header_file}}" + +{{namespace_with_grace_begin __top_module}} + +{{~for bean in __beans~}} + +bool {{make_cpp_name bean.full_name}}::deserialize(::luban::ByteBuf& _buf) +{ + {{~if bean.parent_def_type~}} + if (!{{make_cpp_name bean.parent_def_type.full_name}}::deserialize(_buf)) + { + return false; + } + {{~end~}} + + {{~ for field in bean.export_fields ~}} + {{deserialize '_buf' (format_field_name __code_style field.name) field.ctype}} + {{~end~}} + + return true; +} + +bool {{make_cpp_name bean.full_name}}::deserialize{{bean.name}}(::luban::ByteBuf& _buf, ::luban::SharedPtr<{{make_cpp_name bean.full_name}}>& _out) +{ +{{~if bean.is_abstract_type~}} + int32_t id; + if (!_buf.readInt(id)) return false; + switch (id) + { + {{~for child in bean.hierarchy_not_abstract_children~}} + case {{make_type_cpp_name child}}::__ID__: { _out.reset(LUBAN_NEW({{make_type_cpp_name child}})); if (_out->deserialize(_buf)) { return true; } else { _out.reset(); return false;} } + {{~end~}} + default: { _out = nullptr; return false;} + } +{{~else~}} + _out.reset(LUBAN_NEW({{make_type_cpp_name bean}})); + if (_out->deserialize(_buf)) + { + return true; + } + else + { + _out.reset(); + return false; + } +{{~end~}} +} + +{{~end~}} +{{namespace_with_grace_end __top_module}} diff --git a/LuBanConfig/Tools/Luban/Templates/cpp-sharedptr-bin/schema_h.sbn b/LuBanConfig/Tools/Luban/Templates/cpp-sharedptr-bin/schema_h.sbn new file mode 100644 index 000000000..90ba84cba --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/cpp-sharedptr-bin/schema_h.sbn @@ -0,0 +1,21 @@ +#pragma once +#include +#include + +#include "CfgBean.h" + +{{namespace_with_grace_begin __top_module}} + +{{__enum_codes~}} + +{{~for b in __beans~}} +{{namespace_with_grace_begin b.namespace}} struct {{b.name}}; {{namespace_with_grace_end b.namespace}} +{{~end~}} + +{{~__bean_codes~}} + +{{~__table_codes~}} + +{{__tables_code}} + +{{namespace_with_grace_end __top_module}} diff --git a/LuBanConfig/Tools/Luban/Templates/cpp-sharedptr-bin/table.sbn b/LuBanConfig/Tools/Luban/Templates/cpp-sharedptr-bin/table.sbn new file mode 100644 index 000000000..f8838472f --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/cpp-sharedptr-bin/table.sbn @@ -0,0 +1,140 @@ +{{namespace_with_grace_begin __namespace}} + +{{~if __this.comment != '' ~}} +/** + * {{escape_comment __this.comment}} + */ +{{~end~}} + +class {{__name}} +{ + {{~if __this.is_map_table ~}} + private: + ::luban::HashMap<{{declaring_type_name __key_type}}, {{declaring_type_name __value_type}}> _dataMap; + ::luban::Vector<{{declaring_type_name __value_type}}> _dataList; + + public: + bool load(::luban::ByteBuf& _buf) + { + int n; + if (!_buf.readSize(n)) return false; + for(; n > 0 ; --n) + { + {{declaring_type_name __value_type}} _v; + {{deserialize '_buf' '_v' __value_type}} + _dataList.push_back(_v); + _dataMap[_v->{{format_field_name __code_style __this.index_field.name}}] = _v; + } + return true; + } + + const ::luban::HashMap<{{declaring_type_name __key_type}}, {{declaring_type_name __value_type}}>& getDataMap() const { return _dataMap; } + const ::luban::Vector<{{declaring_type_name __value_type}}>& getDataList() const { return _dataList; } + + {{make_type_cpp_name __value_type.def_bean}}* getRaw({{declaring_type_name __key_type}} key) + { + auto it = _dataMap.find(key); + return it != _dataMap.end() ? it->second.get() : nullptr; + } + + {{declaring_type_name __value_type}} get({{declaring_type_name __key_type}} key) + { + auto it = _dataMap.find(key); + return it != _dataMap.end() ? it->second : nullptr; + } + + {{~else if __this.is_list_table~}} + private: + ::luban::Vector<{{declaring_type_name __value_type}}> _dataList; + {{~if __this.is_union_index~}} + + {{~else if !__this.index_list.empty?~}} + {{~for idx in __this.index_list~}} + ::luban::HashMap<{{declaring_type_name idx.type}}, {{declaring_type_name __value_type}}> _dataMap_{{idx.index_field.name}}; + {{~end~}} + {{~else~}} + {{~end~}} + + public: + bool load(::luban::ByteBuf& _buf) + { + int n; + if (!_buf.readSize(n)) return false; + for(; n > 0 ; --n) + { + {{declaring_type_name __value_type}} _v; + {{deserialize '_buf' '_v' __value_type}} + _dataList.push_back(_v); + {{~if __this.is_union_index~}} + + {{~else if !__this.index_list.empty?~}} + {{~for idx in __this.index_list~}} + _dataMap_{{idx.index_field.name}}[_v->{{idx.index_field.name}}] = _v; + {{~end~}} + {{~else~}} + {{~end~}} + } + return true; + } + + const ::luban::Vector<{{declaring_type_name __value_type}}>& getDataList() const { return _dataList; } + + {{~if __this.is_union_index~}} + + {{~else if !__this.index_list.empty?~}} + {{~for idx in __this.index_list~}} + ::luban::HashMap<{{declaring_type_name idx.type}}, {{declaring_type_name __value_type}}>& getDataMapBy{{idx.index_field.name}}() + { + return _dataMap_{{idx.index_field.name}}; + } + {{make_type_cpp_name __value_type.def_bean}}* getRawBy{{idx.index_field.name}}({{declaring_type_name idx.type}} key) + { + auto it = _dataMap_{{idx.index_field.name}}.find(key); + return it != _dataMap_{{idx.index_field.name}}.end() ? it->second.get() : nullptr; + } + {{declaring_type_name __value_type}} getBy{{idx.index_field.name}}({{declaring_type_name idx.type}} key) + { + auto it = _dataMap_{{idx.index_field.name}}.find(key); + return it != _dataMap_{{idx.index_field.name}}.end() ? it->second : nullptr; + } + {{~end~}} + {{~else~}} + {{make_type_cpp_name __value_type.def_bean}}* getRaw(size_t index) const + { + return _dataList[index].get(); + } + + {{declaring_type_name __value_type}} get(size_t index) const + { + return _dataList[index]; + } + {{~end~}} + {{~else~}} + private: + {{declaring_type_name __value_type}} _data; + + public: + {{declaring_type_name __value_type}} data() const { return _data; } + + bool load(::luban::ByteBuf& _buf) + { + int n; + if (!_buf.readSize(n)) return false; + if (n != 1) return false; + {{deserialize '_buf' '_data' __value_type}} + return true; + } + + + {{~ for field in __value_type.def_bean.hierarchy_export_fields ~}} +{{~if field.comment != '' ~}} + /** + * {{escape_comment field.comment}} + */ +{{~end~}} + {{declaring_type_name field.ctype}}& {{getter_name field.name}}() const { return _data->{{format_field_name __code_style field.name}}; } + {{~end~}} + {{~end~}} +}; + +{{namespace_with_grace_end __namespace}} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Templates/cpp-sharedptr-bin/tables.sbn b/LuBanConfig/Tools/Luban/Templates/cpp-sharedptr-bin/tables.sbn new file mode 100644 index 000000000..76354d59f --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/cpp-sharedptr-bin/tables.sbn @@ -0,0 +1,23 @@ +class {{__name}} +{ + public: + {{~for table in __tables ~}} +{{~if table.comment != '' ~}} + /** + * {{escape_comment table.comment}} + */ +{{~end~}} + {{make_cpp_name table.full_name}} {{table.name}}; + {{~end~}} + + bool load(::luban::Loader<::luban::ByteBuf> loader) + { + ::luban::ByteBuf buf; + {{~for table in __tables~}} + buf.clear(); + if (!loader(buf, "{{table.output_data_file}}")) return false; + if (!{{table.name}}.load(buf)) return false; + {{~end~}} + return true; + } +}; diff --git a/LuBanConfig/Tools/Luban/Templates/cs-bin/bean.sbn b/LuBanConfig/Tools/Luban/Templates/cs-bin/bean.sbn new file mode 100644 index 000000000..470622662 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/cs-bin/bean.sbn @@ -0,0 +1,150 @@ +using Luban; +{{ + parent_def_type = __bean.parent_def_type + export_fields = __bean.export_fields + hierarchy_export_fields = __bean.hierarchy_export_fields +}} + +{{namespace_with_grace_begin __namespace_with_top_module}} +{{~if __bean.comment != '' ~}} +/// +/// {{escape_comment __bean.comment}} +/// +{{~end~}} +{{~ +func get_ref_name + ret (format_property_name __code_style $0.name) + '_Ref' +end + +func get_index_var_name + ret (format_property_name __code_style $0.name) + '_Index' +end + +func generate_resolve_field_ref + field = $0 + fieldName = format_property_name __code_style field.name + refTable = get_ref_table field + if can_generate_ref field + tableName = format_property_name __code_style refTable.name + if field.is_nullable + ret (get_ref_name field) + ' = ' + fieldName + '!= null ? tables.' + tableName + '.GetOrDefault(' + (get_value_of_nullable_type field.ctype fieldName) + ') : null;' + else + ret (get_ref_name field) + ' = tables.' + tableName + '.GetOrDefault(' + fieldName + ');' + end + else if can_generate_collection_ref field + collection_ref_table = get_collection_ref_table field + tableName = format_property_name __code_style collection_ref_table.name + if field.ctype.type_name == 'list' || field.ctype.type_name == 'set' + line1 = (get_ref_name field) + ' = new ' + (declaring_collection_ref_name field.ctype) + '();' + '\n' + line2 = 'foreach (var _v in ' + fieldName + ') { ' + (get_ref_name field) + '.Add(tables.' + tableName + '.GetOrDefault(_v)); }' + '\n' + ret line1 + line2 + else if field.ctype.type_name == 'array' + line1 = (get_ref_name field) + ' = new ' + (declaring_type_name collection_ref_table.value_ttype) + '[' + fieldName + '.Length];' + '\n' + line2 = 'for (int _i = 0; _i < ' + fieldName + '.Length; _i++) { ' + (get_ref_name field) + '[_i] = tables.' + tableName + '.GetOrDefault(' + fieldName + '[_i]); }' + '\n' + ret line1 + line2 + else if field.ctype.type_name == 'map' + line1 = (get_ref_name field) + ' = new ' + (declaring_collection_ref_name field.ctype) + '();' + '\n' + line2 = 'foreach (var kvp in ' + fieldName + ') { ' + (get_ref_name field) + '.Add(kvp.Key, tables.' + tableName + '.GetOrDefault(kvp.Value)); }' + '\n' + ret line1 + line2 + else + ret '' + end + else + if (is_field_bean_need_resolve_ref field) + ret fieldName + '?.ResolveRef(tables);' + else if (is_field_array_like_need_resolve_ref field) + ret 'foreach (var _e in ' + fieldName + ') { _e?.ResolveRef(tables); }' + else if (is_field_map_need_resolve_ref field) + ret 'foreach (var _e in ' + fieldName + '.Values) { _e?.ResolveRef(tables); }' + else + ret '' + end + end +end +~}} +{{~if __bean.is_value_type~}} +public partial struct {{__name}} +{{~else~}} +public {{class_modifier __bean}} partial class {{__name}} : {{if parent_def_type}}{{__bean.parent}}{{else}}Luban.BeanBase{{end}} +{{~end~}} +{ + public {{__name}}(ByteBuf _buf) {{if parent_def_type}} : base(_buf) {{end}} + { + {{~ for field in export_fields + fieldName = format_property_name __code_style field.name + ~}} + {{deserialize '_buf' fieldName field.ctype}} + {{~if can_generate_ref field~}} + {{get_ref_name field}} = null; + {{~end~}} + {{~if has_index field~}} + foreach(var _v in {{fieldName}}) + { + {{get_index_var_name field}}.Add(_v.{{format_property_name __code_style (get_index_field field).name}}, _v); + } + {{~end~}} + {{~end~}} + } + + public static {{__name}} Deserialize{{__name}}(ByteBuf _buf) + { + {{~if __bean.is_abstract_type~}} + switch (_buf.ReadInt()) + { + {{~for child in __bean.hierarchy_not_abstract_children~}} + case {{child.full_name}}.__ID__: return new {{child.full_name}}(_buf); + {{~end~}} + default: throw new SerializationException(); + } + {{~else~}} + return new {{__bean.full_name}}(_buf); + {{~end~}} + } + + {{~ for field in export_fields ~}} +{{~if field.comment != '' ~}} + /// + /// {{escape_comment field.comment}} + /// +{{~end~}} + public readonly {{declaring_type_name field.ctype}} {{format_property_name __code_style field.name}}; + {{~if can_generate_ref field~}} + public {{declaring_type_name (get_ref_type field)}} {{get_ref_name field}}; + {{~else if can_generate_collection_ref field~}} + public {{declaring_collection_ref_name field.ctype}} {{get_ref_name field}}; + {{~end~}} + {{~if has_index field + indexMapType = get_index_map_type field + ~}} + public readonly {{declaring_type_name indexMapType}} {{get_index_var_name field}} = new {{declaring_type_name indexMapType}}(); + {{~end~}} + {{~end~}} + +{{~if !__bean.is_abstract_type && !__bean.is_value_type~}} + public const int __ID__ = {{__bean.id}}; + public override int GetTypeId() => __ID__; +{{~end~}} + + public {{method_modifier __bean}} void ResolveRef({{__manager_name}} tables) + { + {{~if parent_def_type~}} + base.ResolveRef(tables); + {{~end~}} + {{~for field in export_fields~}} + {{~ line = generate_resolve_field_ref field ~}} + {{~ if line != ''~}} + {{line}} + {{~end~}} + {{~end~}} + } + + public override string ToString() + { + return "{{full_name}}{ " + {{~for field in hierarchy_export_fields ~}} + + "{{format_field_name __code_style field.name}}:" + {{to_pretty_string (format_property_name __code_style field.name) field.ctype}} + "," + {{~end~}} + + "}"; + } +} +{{namespace_with_grace_end __namespace_with_top_module}} diff --git a/LuBanConfig/Tools/Luban/Templates/cs-bin/table.sbn b/LuBanConfig/Tools/Luban/Templates/cs-bin/table.sbn new file mode 100644 index 000000000..0e2226903 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/cs-bin/table.sbn @@ -0,0 +1,169 @@ +using Luban; + +{{ + key_type = __table.key_ttype + value_type = __table.value_ttype + + func index_type_name + ret (declaring_type_name $0.type) + end + + func table_union_map_type_name + ret 'System.Collections.Generic.Dictionary<(' + (array.each __table.index_list @index_type_name | array.join ', ') + '), ' + (declaring_type_name value_type) + '>' + end + + func table_key_list + varName = $0 + indexList = __table.index_list |array.each do; ret varName + '.' + (format_property_name __code_style $0.index_field.name); end; + ret array.join indexList ', ' + end + + func table_param_def_list + paramList = __table.index_list |array.each do; ret (declaring_type_name $0.type) + ' ' + $0.index_field.name; end + ret array.join paramList ', ' + end + + func table_param_name_list + paramList = __table.index_list |array.each do; ret $0.index_field.name; end + ret array.join paramList ', ' + end +}} +{{namespace_with_grace_begin __namespace_with_top_module}} +{{~if __table.comment != '' ~}} +/// +/// {{escape_comment __table.comment}} +/// +{{~end~}} +public partial class {{__name}} +{ + {{~if __table.is_map_table ~}} + private readonly System.Collections.Generic.Dictionary<{{declaring_type_name key_type}}, {{declaring_type_name value_type}}> _dataMap; + private readonly System.Collections.Generic.List<{{declaring_type_name value_type}}> _dataList; + + public {{__name}}(ByteBuf _buf) + { + _dataMap = new System.Collections.Generic.Dictionary<{{declaring_type_name key_type}}, {{declaring_type_name value_type}}>(); + _dataList = new System.Collections.Generic.List<{{declaring_type_name value_type}}>(); + + for(int n = _buf.ReadSize() ; n > 0 ; --n) + { + {{declaring_type_name value_type}} _v; + {{deserialize '_buf' '_v' value_type}} + _dataList.Add(_v); + _dataMap.Add(_v.{{format_property_name __code_style __table.index_field.name}}, _v); + } + } + + public System.Collections.Generic.Dictionary<{{declaring_type_name key_type}}, {{declaring_type_name value_type}}> DataMap => _dataMap; + public System.Collections.Generic.List<{{declaring_type_name value_type}}> DataList => _dataList; + +{{~if value_type.is_dynamic~}} + public T GetOrDefaultAs({{declaring_type_name key_type}} key) where T : {{declaring_type_name value_type}} => _dataMap.TryGetValue(key, out var v) ? (T)v : null; + public T GetAs({{declaring_type_name key_type}} key) where T : {{declaring_type_name value_type}} => (T)_dataMap[key]; +{{~end~}} + public {{declaring_type_name value_type}} GetOrDefault({{declaring_type_name key_type}} key) => _dataMap.TryGetValue(key, out var v) ? v : null; + public {{declaring_type_name value_type}} Get({{declaring_type_name key_type}} key) => _dataMap[key]; + public {{declaring_type_name value_type}} this[{{declaring_type_name key_type}} key] => _dataMap[key]; + + public void ResolveRef({{__manager_name}} tables) + { + {{~if is_bean_need_resolve_ref value_type ~}} + foreach(var _v in _dataList) + { + _v.ResolveRef(tables); + } + {{~end~}} + } + + {{~else if __table.is_list_table ~}} + private readonly System.Collections.Generic.List<{{declaring_type_name value_type}}> _dataList; + + {{~if __table.is_union_index~}} + private {{table_union_map_type_name}} _dataMapUnion; + {{~else if !__table.index_list.empty?~}} + {{~for idx in __table.index_list~}} + private System.Collections.Generic.Dictionary<{{declaring_type_name idx.type}}, {{declaring_type_name value_type}}> _dataMap_{{idx.index_field.name}}; + {{~end~}} + {{~end~}} + + public {{__name}}(ByteBuf _buf) + { + _dataList = new System.Collections.Generic.List<{{declaring_type_name value_type}}>(); + + for(int n = _buf.ReadSize() ; n > 0 ; --n) + { + {{declaring_type_name value_type}} _v; + {{deserialize '_buf' '_v' value_type}} + _dataList.Add(_v); + } + {{~if __table.is_union_index~}} + _dataMapUnion = new {{table_union_map_type_name}}(); + foreach(var _v in _dataList) + { + _dataMapUnion.Add(({{table_key_list "_v"}}), _v); + } + {{~else if !__table.index_list.empty?~}} + {{~for idx in __table.index_list~}} + _dataMap_{{idx.index_field.name}} = new System.Collections.Generic.Dictionary<{{declaring_type_name idx.type}}, {{declaring_type_name value_type}}>(); + {{~end~}} + foreach(var _v in _dataList) + { + {{~for idx in __table.index_list~}} + _dataMap_{{idx.index_field.name}}.Add(_v.{{format_property_name __code_style idx.index_field.name}}, _v); + {{~end~}} + } + {{~end~}} + } + + public System.Collections.Generic.List<{{declaring_type_name value_type}}> DataList => _dataList; + + {{~if __table.is_union_index~}} + public {{declaring_type_name value_type}} Get({{table_param_def_list}}) => _dataMapUnion.TryGetValue(({{table_param_name_list}}), out {{declaring_type_name value_type}} __v) ? __v : null; + {{~else if !__table.index_list.empty? ~}} + {{~for idx in __table.index_list~}} + public {{declaring_type_name value_type}} GetBy{{format_property_name __code_style idx.index_field.name}}({{declaring_type_name idx.type}} key) => _dataMap_{{idx.index_field.name}}.TryGetValue(key, out {{declaring_type_name value_type}} __v) ? __v : null; + {{~end~}} + {{~end~}} + + public void ResolveRef({{__manager_name}} tables) + { + {{~if is_bean_need_resolve_ref value_type ~}} + foreach(var _v in _dataList) + { + _v.ResolveRef(tables); + } + {{~end~}} + } + {{~else~}} + + private readonly {{declaring_type_name value_type}} _data; + + public {{declaring_type_name value_type}} Data => _data; + + public {{__name}}(ByteBuf _buf) + { + int n = _buf.ReadSize(); + if (n != 1) throw new SerializationException("table mode=one, but size != 1"); + {{deserialize '_buf' '_data' value_type}} + } + + + {{~ for field in value_type.def_bean.hierarchy_export_fields ~}} +{{~if field.comment != '' ~}} + /// + /// {{escape_comment field.comment}} + /// +{{~end~}} + public {{declaring_type_name field.ctype}} {{format_property_name __code_style field.name}} => _data.{{format_property_name __code_style field.name}}; + {{~end~}} + + public void ResolveRef({{__manager_name}} tables) + { + {{~if is_bean_need_resolve_ref value_type ~}} + _data.ResolveRef(tables); + {{~end~}} + } + {{~end~}} +} + +{{namespace_with_grace_end __namespace_with_top_module}} diff --git a/LuBanConfig/Tools/Luban/Templates/cs-bin/tables.sbn b/LuBanConfig/Tools/Luban/Templates/cs-bin/tables.sbn new file mode 100644 index 000000000..be907ad7a --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/cs-bin/tables.sbn @@ -0,0 +1,31 @@ +using Luban; + +{{namespace_with_grace_begin __namespace}} +public partial class {{__name}} +{ + {{~for table in __tables ~}} +{{~if table.comment != '' ~}} + /// + /// {{escape_comment table.comment}} + /// +{{~end~}} + public {{table.full_name}} {{format_property_name __code_style table.name}} {get; } + {{~end~}} + + public {{__name}}(System.Func loader) + { + {{~for table in __tables ~}} + {{format_property_name __code_style table.name}} = new {{table.full_name}}(loader("{{table.output_data_file}}")); + {{~end~}} + ResolveRef(); + } + + private void ResolveRef() + { + {{~for table in __tables ~}} + {{format_property_name __code_style table.name}}.ResolveRef(this); + {{~end~}} + } +} + +{{namespace_with_grace_end __namespace}} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Templates/cs-dotnet-json/bean.sbn b/LuBanConfig/Tools/Luban/Templates/cs-dotnet-json/bean.sbn new file mode 100644 index 000000000..d661e0858 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/cs-dotnet-json/bean.sbn @@ -0,0 +1,151 @@ +using Luban; +using System.Text.Json; +{{ + parent_def_type = __bean.parent_def_type + export_fields = __bean.export_fields + hierarchy_export_fields = __bean.hierarchy_export_fields +}} + +{{namespace_with_grace_begin __namespace_with_top_module}} +{{~if __bean.comment != '' ~}} +/// +/// {{escape_comment __bean.comment}} +/// +{{~end~}} +{{~ +func get_ref_name + ret (format_property_name __code_style $0.name) + '_Ref' +end + +func get_index_var_name + ret (format_property_name __code_style $0.name) + '_Index' +end + +func generate_resolve_field_ref + field = $0 + fieldName = format_property_name __code_style field.name + refTable = get_ref_table field + if can_generate_ref field + tableName = format_property_name __code_style refTable.name + if field.is_nullable + ret (get_ref_name field) + ' = ' + fieldName + '!= null ? tables.' + tableName + '.GetOrDefault(' + (get_value_of_nullable_type field.ctype fieldName) + ') : null;' + else + ret (get_ref_name field) + ' = tables.' + tableName + '.GetOrDefault(' + fieldName + ');' + end + else if can_generate_collection_ref field + collection_ref_table = get_collection_ref_table field + tableName = format_property_name __code_style collection_ref_table.name + if field.ctype.type_name == 'list' || field.ctype.type_name == 'set' + line1 = (get_ref_name field) + ' = new ' + (declaring_collection_ref_name field.ctype) + '();' + '\n' + line2 = 'foreach (var _v in ' + fieldName + ') { ' + (get_ref_name field) + '.Add(tables.' + tableName + '.GetOrDefault(_v)); }' + '\n' + ret line1 + line2 + else if field.ctype.type_name == 'array' + line1 = (get_ref_name field) + ' = new ' + (declaring_type_name collection_ref_table.value_ttype) + '[' + fieldName + '.Length];' + '\n' + line2 = 'for (int _i = 0; _i < ' + fieldName + '.Length; _i++) { ' + (get_ref_name field) + '[_i] = tables.' + tableName + '.GetOrDefault(' + fieldName + '[_i]); }' + '\n' + ret line1 + line2 + else if field.ctype.type_name == 'map' + line1 = (get_ref_name field) + ' = new ' + (declaring_collection_ref_name field.ctype) + '();' + '\n' + line2 = 'foreach (var kvp in ' + fieldName + ') { ' + (get_ref_name field) + '.Add(kvp.Key, tables.' + tableName + '.GetOrDefault(kvp.Value)); }' + '\n' + ret line1 + line2 + else + ret '' + end + else + if (is_field_bean_need_resolve_ref field) + ret fieldName + '?.ResolveRef(tables);' + else if (is_field_array_like_need_resolve_ref field) + ret 'foreach (var _e in ' + fieldName + ') { _e?.ResolveRef(tables); }' + else if (is_field_map_need_resolve_ref field) + ret 'foreach (var _e in ' + fieldName + '.Values) { _e?.ResolveRef(tables); }' + else + ret '' + end + end +end +~}} +{{~if __bean.is_value_type~}} +public partial struct {{__name}} +{{~else~}} +public {{class_modifier __bean}} partial class {{__name}} : {{if parent_def_type}}{{__bean.parent}}{{else}}Luban.BeanBase{{end}} +{{~end~}} +{ + public {{__name}}(JsonElement _buf) {{if parent_def_type}} : base(_buf) {{end}} + { + {{~ for field in export_fields + fieldName = format_property_name __code_style field.name + ~}} + {{deserialize_field fieldName '_buf' field.name field.ctype}} + {{~if can_generate_ref field~}} + {{get_ref_name field}} = null; + {{~end~}} + {{~if has_index field~}} + foreach(var _v in {{fieldName}}) + { + {{get_index_var_name field}}.Add(_v.{{format_property_name __code_style (get_index_field field).name}}, _v); + } + {{~end~}} + {{~end~}} + } + + public static {{__name}} Deserialize{{__name}}(JsonElement _buf) + { + {{~if __bean.is_abstract_type~}} + switch (_buf.GetProperty("$type").GetString()) + { + {{~for child in __bean.hierarchy_not_abstract_children~}} + case "{{impl_data_type child __bean}}": return new {{child.full_name}}(_buf); + {{~end~}} + default: throw new SerializationException(); + } + {{~else~}} + return new {{__bean.full_name}}(_buf); + {{~end~}} + } + + {{~ for field in export_fields ~}} +{{~if field.comment != '' ~}} + /// + /// {{escape_comment field.comment}} + /// +{{~end~}} + public readonly {{declaring_type_name field.ctype}} {{format_property_name __code_style field.name}}; + {{~if can_generate_ref field~}} + public {{declaring_type_name (get_ref_type field)}} {{get_ref_name field}}; + {{~else if can_generate_collection_ref field~}} + public {{declaring_collection_ref_name field.ctype}} {{get_ref_name field}}; + {{~end~}} + {{~if has_index field + indexMapType = get_index_map_type field + ~}} + public readonly {{declaring_type_name indexMapType}} {{get_index_var_name field}} = new {{declaring_type_name indexMapType}}(); + {{~end~}} + {{~end~}} + +{{~if !__bean.is_abstract_type && !__bean.is_value_type~}} + public const int __ID__ = {{__bean.id}}; + public override int GetTypeId() => __ID__; +{{~end~}} + + public {{method_modifier __bean}} void ResolveRef({{__manager_name}} tables) + { + {{~if parent_def_type~}} + base.ResolveRef(tables); + {{~end~}} + {{~for field in export_fields~}} + {{~ line = generate_resolve_field_ref field ~}} + {{~ if line != ''~}} + {{line}} + {{~end~}} + {{~end~}} + } + + public override string ToString() + { + return "{{full_name}}{ " + {{~for field in hierarchy_export_fields ~}} + + "{{format_field_name __code_style field.name}}:" + {{to_pretty_string (format_property_name __code_style field.name) field.ctype}} + "," + {{~end~}} + + "}"; + } +} +{{namespace_with_grace_end __namespace_with_top_module}} diff --git a/LuBanConfig/Tools/Luban/Templates/cs-dotnet-json/table.sbn b/LuBanConfig/Tools/Luban/Templates/cs-dotnet-json/table.sbn new file mode 100644 index 000000000..fb473dd1d --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/cs-dotnet-json/table.sbn @@ -0,0 +1,170 @@ +using Luban; +using System.Text.Json; + +{{ + key_type = __table.key_ttype + value_type = __table.value_ttype + + func index_type_name + ret (declaring_type_name $0.type) + end + + func table_union_map_type_name + ret 'System.Collections.Generic.Dictionary<(' + (array.each __table.index_list @index_type_name | array.join ', ') + '), ' + (declaring_type_name __value_type) + '>' + end + + func table_key_list + varName = $0 + indexList = __table.index_list |array.each do; ret varName + '.' + (format_property_name __code_style $0.index_field.name); end; + ret array.join indexList ', ' + end + + func table_param_def_list + paramList = __table.index_list |array.each do; ret (declaring_type_name $0.type) + ' ' + $0.index_field.name; end + ret array.join paramList ', ' + end + + func table_param_name_list + paramList = __table.index_list |array.each do; ret $0.index_field.name; end + ret array.join paramList ', ' + end +}} +{{namespace_with_grace_begin __namespace_with_top_module}} +{{~if __table.comment != '' ~}} +/// +/// {{escape_comment __table.comment}} +/// +{{~end~}} +public partial class {{__name}} +{ + {{~if __table.is_map_table ~}} + private readonly System.Collections.Generic.Dictionary<{{declaring_type_name __key_type}}, {{declaring_type_name __value_type}}> _dataMap; + private readonly System.Collections.Generic.List<{{declaring_type_name __value_type}}> _dataList; + + public {{__name}}(JsonElement _buf) + { + _dataMap = new System.Collections.Generic.Dictionary<{{declaring_type_name __key_type}}, {{declaring_type_name __value_type}}>(); + _dataList = new System.Collections.Generic.List<{{declaring_type_name __value_type}}>(); + + foreach(JsonElement _ele in _buf.EnumerateArray()) + { + {{declaring_type_name __value_type}} _v; + {{deserialize '_v' '_ele' __value_type}} + _dataList.Add(_v); + _dataMap.Add(_v.{{format_property_name __code_style __table.index_field.name}}, _v); + } + } + + public System.Collections.Generic.Dictionary<{{declaring_type_name __key_type}}, {{declaring_type_name __value_type}}> DataMap => _dataMap; + public System.Collections.Generic.List<{{declaring_type_name __value_type}}> DataList => _dataList; + +{{~if __value_type.is_dynamic~}} + public T GetOrDefaultAs({{declaring_type_name __key_type}} key) where T : {{declaring_type_name __value_type}} => _dataMap.TryGetValue(key, out var v) ? (T)v : null; + public T GetAs({{declaring_type_name __key_type}} key) where T : {{declaring_type_name __value_type}} => (T)_dataMap[key]; +{{~end~}} + public {{declaring_type_name __value_type}} GetOrDefault({{declaring_type_name __key_type}} key) => _dataMap.TryGetValue(key, out var v) ? v : null; + public {{declaring_type_name __value_type}} Get({{declaring_type_name __key_type}} key) => _dataMap[key]; + public {{declaring_type_name __value_type}} this[{{declaring_type_name __key_type}} key] => _dataMap[key]; + + public void ResolveRef({{__manager_name}} tables) + { + {{~if is_bean_need_resolve_ref value_type ~}} + foreach(var _v in _dataList) + { + _v.ResolveRef(tables); + } + {{~end~}} + } + + {{~else if __table.is_list_table ~}} + private readonly System.Collections.Generic.List<{{declaring_type_name __value_type}}> _dataList; + + {{~if __table.is_union_index~}} + private {{table_union_map_type_name}} _dataMapUnion; + {{~else if !__table.index_list.empty?~}} + {{~for idx in __table.index_list~}} + private System.Collections.Generic.Dictionary<{{declaring_type_name idx.type}}, {{declaring_type_name __value_type}}> _dataMap_{{idx.index_field.name}}; + {{~end~}} + {{~end~}} + + public {{__name}}(JsonElement _buf) + { + _dataList = new System.Collections.Generic.List<{{declaring_type_name __value_type}}>(); + + foreach(JsonElement _ele in _buf.EnumerateArray()) + { + {{declaring_type_name __value_type}} _v; + {{deserialize '_v' '_ele' __value_type}} + _dataList.Add(_v); + } + {{~if __table.is_union_index~}} + _dataMapUnion = new {{table_union_map_type_name}}(); + foreach(var _v in _dataList) + { + _dataMapUnion.Add(({{table_key_list "_v"}}), _v); + } + {{~else if !__table.index_list.empty?~}} + {{~for idx in __table.index_list~}} + _dataMap_{{idx.index_field.name}} = new System.Collections.Generic.Dictionary<{{declaring_type_name idx.type}}, {{declaring_type_name __value_type}}>(); + {{~end~}} + foreach(var _v in _dataList) + { + {{~for idx in __table.index_list~}} + _dataMap_{{idx.index_field.name}}.Add(_v.{{format_property_name __code_style idx.index_field.name}}, _v); + {{~end~}} + } + {{~end~}} + } + + public System.Collections.Generic.List<{{declaring_type_name __value_type}}> DataList => _dataList; + + {{~if __table.is_union_index~}} + public {{declaring_type_name __value_type}} Get({{table_param_def_list}}) => _dataMapUnion.TryGetValue(({{table_param_name_list}}), out {{declaring_type_name __value_type}} __v) ? __v : null; + {{~else if !__table.index_list.empty? ~}} + {{~for idx in __table.index_list~}} + public {{declaring_type_name __value_type}} GetBy{{format_property_name __code_style idx.index_field.name}}({{declaring_type_name idx.type}} key) => _dataMap_{{idx.index_field.name}}.TryGetValue(key, out {{declaring_type_name __value_type}} __v) ? __v : null; + {{~end~}} + {{~end~}} + + public void ResolveRef({{__manager_name}} tables) + { + {{~if is_bean_need_resolve_ref value_type ~}} + foreach(var _v in _dataList) + { + _v.ResolveRef(tables); + } + {{~end~}} + } + {{~else~}} + + private readonly {{declaring_type_name __value_type}} _data; + + public {{declaring_type_name __value_type}} Data => _data; + + public {{__name}}(JsonElement _buf) + { + int n = _buf.GetArrayLength(); + if (n != 1) throw new SerializationException("table mode=one, but size != 1"); + {{deserialize '_data' '_buf[0]' __value_type}} + } + + + {{~ for field in __value_type.def_bean.hierarchy_export_fields ~}} +{{~if field.comment != '' ~}} + /// + /// {{escape_comment field.comment}} + /// +{{~end~}} + public {{declaring_type_name field.ctype}} {{format_property_name __code_style field.name}} => _data.{{format_property_name __code_style field.name}}; + {{~end~}} + + public void ResolveRef({{__manager_name}} tables) + { + {{~if is_bean_need_resolve_ref value_type ~}} + _data.ResolveRef(tables); + {{~end~}} + } + {{~end~}} +} + +{{namespace_with_grace_end __namespace_with_top_module}} diff --git a/LuBanConfig/Tools/Luban/Templates/cs-dotnet-json/tables.sbn b/LuBanConfig/Tools/Luban/Templates/cs-dotnet-json/tables.sbn new file mode 100644 index 000000000..fcb183261 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/cs-dotnet-json/tables.sbn @@ -0,0 +1,32 @@ +using Luban; +using System.Text.Json; + +{{namespace_with_grace_begin __namespace}} +public partial class {{__name}} +{ + {{~for table in __tables ~}} +{{~if table.comment != '' ~}} + /// + /// {{escape_comment table.comment}} + /// +{{~end~}} + public {{table.full_name}} {{format_property_name __code_style table.name}} {get; } + {{~end~}} + + public {{__name}}(System.Func loader) + { + {{~for table in __tables ~}} + {{format_property_name __code_style table.name}} = new {{table.full_name}}(loader("{{table.output_data_file}}")); + {{~end~}} + ResolveRef(); + } + + private void ResolveRef() + { + {{~for table in __tables ~}} + {{format_property_name __code_style table.name}}.ResolveRef(this); + {{~end~}} + } +} + +{{namespace_with_grace_end __namespace}} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Templates/cs-editor-json/bean.sbn b/LuBanConfig/Tools/Luban/Templates/cs-editor-json/bean.sbn new file mode 100644 index 000000000..0ed8c8cd8 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/cs-editor-json/bean.sbn @@ -0,0 +1,101 @@ +using System.Collections.Generic; +using SimpleJSON; +using Luban; + +{{namespace_with_grace_begin __namespace_with_top_module}} + +{{~if __this.comment != '' ~}} +/// +/// {{escape_comment __this.comment}} +/// +{{~end~}} +public {{class_modifier __bean}} class {{__name}} : {{if __parent_def_type}} {{__this.parent}} {{else}} Luban.EditorBeanBase {{end}} +{ + public {{__name}}() + { + {{~ for field in __fields ~}} + {{~if (need_init field.ctype) && !field.ctype.is_nullable ~}} + {{format_field_name __code_style field.name}} = {{init_value field.ctype}}; + {{~end~}} + {{~end~}} + } + + {{~if !__this.is_abstract_type~}} + public override void LoadJson(SimpleJSON.JSONObject _json) + { + {{~ for field in __hierarchy_fields ~}} + { + var _fieldJson = _json["{{field.name}}"]; + if (_fieldJson != null) + { + {{deserialize '_fieldJson' (format_field_name __code_style field.name) field.ctype}} + } + } + + {{~end~}} + } + + public override void SaveJson(SimpleJSON.JSONObject _json) + { + {{~if parent~}} + _json["$type"] = "{{__this.full_name}}"; + {{~end~}} + {{~ for field in __hierarchy_fields ~}} + {{~if field.ctype.is_nullable}} + if ({{format_field_name __code_style field.name}} != null) + { + {{serialize '_json' field.name (format_field_name __code_style field.name) field.ctype}} + } + {{~else~}} + { + {{~if (is_raw_nullable field.ctype)}} + if ({{format_field_name __code_style field.name}} == null) { throw new System.ArgumentNullException(); } + {{~end~}} + {{serialize '_json' field.name (format_field_name __code_style field.name) field.ctype}} + } + {{~end~}} + {{~end~}} + } + {{~end~}} + + public static {{__name}} LoadJson{{__name}}(SimpleJSON.JSONNode _json) + { + {{~if __this.is_abstract_type~}} + string type = _json["$type"]; + {{__name}} obj; + switch (type) + { + {{~for child in __this.hierarchy_not_abstract_children~}} + {{~if child.namespace == __this.namespace && __this.namespace != '' ~}} + case "{{child.full_name}}": + {{~end~}} + case "{{impl_data_type child __this}}":obj = new {{child.full_name}}(); break; + {{~end~}} + default: throw new SerializationException(); + } + {{~else~}} + {{__name}} obj = new {{__this.full_name}}(); + {{~end~}} + obj.LoadJson((SimpleJSON.JSONObject)_json); + return obj; + } + + public static void SaveJson{{__name}}({{__name}} _obj, SimpleJSON.JSONNode _json) + { + {{~if __this.is_abstract_type~}} + _json["$type"] = _obj.GetType().Name; + {{~end~}} + _obj.SaveJson((SimpleJSON.JSONObject)_json); + } + + {{~ for field in __fields ~}} +{{~if field.comment != '' ~}} + /// + /// {{escape_comment field.comment}} + /// +{{~end~}} + public {{declaring_type_name field.ctype}} {{format_field_name __code_style field.name}}; + + {{~end~}} +} +{{namespace_with_grace_end __namespace_with_top_module}} diff --git a/LuBanConfig/Tools/Luban/Templates/cs-editor-json/enum.sbn b/LuBanConfig/Tools/Luban/Templates/cs-editor-json/enum.sbn new file mode 100644 index 000000000..fb36236f1 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/cs-editor-json/enum.sbn @@ -0,0 +1,59 @@ +{{~ + comment = __enum.comment + items = __enum.items + itemType = 'Luban.EditorEnumItemInfo' +~}} + +{{namespace_with_grace_begin __namespace_with_top_module}} +{{~if comment != '' ~}} + /// + /// {{escape_comment comment}} + /// +{{~end~}} + {{~if __enum.is_flags~}} + [System.Flags] + {{~end~}} + public enum {{__name}} + { + {{~ for item in items ~}} +{{~if item.comment != '' ~}} + /// + /// {{escape_comment item.comment_or_alias}} + /// +{{~end~}} + {{format_enum_item_name __code_style item.name}} = {{item.value}}, + {{~end~}} + } + + public static class {{__name}}_Metadata + { + {{~ for item in items ~}} + public static readonly {{itemType}} {{item.name}} = new {{itemType}}("{{item.name}}", "{{item.alias}}", {{item.int_value}}, "{{item.comment}}"); + {{~end~}} + + private static readonly System.Collections.Generic.List<{{itemType}}> __items = new System.Collections.Generic.List<{{itemType}}> + { + {{~ for item in items ~}} + {{item.name}}, + {{~end~}} + }; + + public static System.Collections.Generic.List<{{itemType}}> GetItems() => __items; + + public static {{itemType}} GetByName(string name) + { + return __items.Find(c => c.Name == name); + } + + public static {{itemType}} GetByNameOrAlias(string name) + { + return __items.Find(c => c.Name == name || c.Alias == name); + } + + public static {{itemType}} GetByValue(int value) + { + return __items.Find(c => c.Value == value); + } + } + +{{namespace_with_grace_end __namespace_with_top_module}} diff --git a/LuBanConfig/Tools/Luban/Templates/cs-newtonsoft-json/bean.sbn b/LuBanConfig/Tools/Luban/Templates/cs-newtonsoft-json/bean.sbn new file mode 100644 index 000000000..f8ae9bd2a --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/cs-newtonsoft-json/bean.sbn @@ -0,0 +1,158 @@ +using Luban; +using Newtonsoft.Json.Linq; + +{{ + parent_def_type = __bean.parent_def_type + export_fields = __bean.export_fields + hierarchy_export_fields = __bean.hierarchy_export_fields +}} + +{{namespace_with_grace_begin __namespace_with_top_module}} +{{~if __bean.comment != '' ~}} +/// +/// {{escape_comment __bean.comment}} +/// +{{~end~}} +{{~ +func get_ref_name + ret (format_property_name __code_style $0.name) + '_Ref' +end + +func get_index_var_name + ret (format_property_name __code_style $0.name) + '_Index' +end + + +func generate_resolve_field_ref + field = $0 + fieldName = format_property_name __code_style field.name + refTable = get_ref_table field + if can_generate_ref field + tableName = format_property_name __code_style refTable.name + if field.is_nullable + ret (get_ref_name field) + ' = ' + fieldName + '!= null ? tables.' + tableName + '.GetOrDefault(' + (get_value_of_nullable_type field.ctype fieldName) + ') : null;' + else + ret (get_ref_name field) + ' = tables.' + tableName + '.GetOrDefault(' + fieldName + ');' + end + else if can_generate_collection_ref field + collection_ref_table = get_collection_ref_table field + tableName = format_property_name __code_style collection_ref_table.name + if field.ctype.type_name == 'list' || field.ctype.type_name == 'set' + line1 = (get_ref_name field) + ' = new ' + (declaring_collection_ref_name field.ctype) + '();' + '\n' + line2 = 'foreach (var _v in ' + fieldName + ') { ' + (get_ref_name field) + '.Add(tables.' + tableName + '.GetOrDefault(_v)); }' + '\n' + ret line1 + line2 + else if field.ctype.type_name == 'array' + line1 = (get_ref_name field) + ' = new ' + (declaring_type_name collection_ref_table.value_ttype) + '[' + fieldName + '.Length];' + '\n' + line2 = 'for (int _i = 0; _i < ' + fieldName + '.Length; _i++) { ' + (get_ref_name field) + '[_i] = tables.' + tableName + '.GetOrDefault(' + fieldName + '[_i]); }' + '\n' + ret line1 + line2 + else if field.ctype.type_name == 'map' + line1 = (get_ref_name field) + ' = new ' + (declaring_collection_ref_name field.ctype) + '();' + '\n' + line2 = 'foreach (var kvp in ' + fieldName + ') { ' + (get_ref_name field) + '.Add(kvp.Key, tables.' + tableName + '.GetOrDefault(kvp.Value)); }' + '\n' + ret line1 + line2 + else + ret '' + end + else + if (is_field_bean_need_resolve_ref field) + ret fieldName + '?.ResolveRef(tables);' + else if (is_field_array_like_need_resolve_ref field) + ret 'foreach (var _e in ' + fieldName + ') { _e?.ResolveRef(tables); }' + else if (is_field_map_need_resolve_ref field) + ret 'foreach (var _e in ' + fieldName + '.Values) { _e?.ResolveRef(tables); }' + else + ret '' + end + end +end + +~}} + +{{~if __bean.is_value_type~}} +public partial struct {{__name}} +{{~else~}} +public {{class_modifier __bean}} partial class {{__name}} : {{if parent_def_type}}{{__bean.parent}}{{else}}Luban.BeanBase{{end}} +{{~end~}} +{ + public {{__name}}(JToken _buf) {{if parent_def_type}} : base(_buf) {{end}} + { + JObject _obj = _buf as JObject; + {{~ for field in export_fields + fieldName = format_property_name __code_style field.name + ~}} + {{deserialize_field fieldName '_obj' field.name field.ctype}} + {{~if can_generate_ref field~}} + {{get_ref_name field}} = null; + {{~end~}} + {{~if has_index field~}} + foreach(var _v in {{fieldName}}) + { + {{get_index_var_name field}}.Add(_v.{{format_property_name __code_style (get_index_field field).name}}, _v); + } + {{~end~}} + {{~end~}} + } + + public static {{__name}} Deserialize{{__name}}(JToken _buf) + { + {{~if __bean.is_abstract_type~}} + var _obj=_buf as JObject; + switch (_obj.GetValue("$type").ToString()) + { + {{~for child in __bean.hierarchy_not_abstract_children~}} + case "{{impl_data_type child __bean}}": return new {{child.full_name}}(_buf); + {{~end~}} + default: throw new SerializationException(); + } + {{~else~}} + return new {{__bean.full_name}}(_buf); + {{~end~}} + } + + {{~ for field in export_fields ~}} +{{~if field.comment != '' ~}} + /// + /// {{escape_comment field.comment}} + /// +{{~end~}} + public readonly {{declaring_type_name field.ctype}} {{format_property_name __code_style field.name}}; + {{~if can_generate_ref field~}} + public {{declaring_type_name (get_ref_type field)}} {{get_ref_name field}}; + {{~else if can_generate_collection_ref field~}} + public {{declaring_collection_ref_name field.ctype}} {{get_ref_name field}}; + {{~end~}} + {{~if has_index field + indexMapType = get_index_map_type field + ~}} + public readonly {{declaring_type_name indexMapType}} {{get_index_var_name field}} = new {{declaring_type_name indexMapType}}(); + {{~end~}} + {{~end~}} + + + {{~if !__bean.is_abstract_type && !__bean.is_value_type~}} + public const int __ID__ = {{__bean.id}}; + public override int GetTypeId() => __ID__; + {{~end~}} + + public {{method_modifier __bean}} void ResolveRef({{__manager_name}} tables) + { + {{~if parent_def_type~}} + base.ResolveRef(tables); + {{~end~}} + {{~for field in export_fields~}} + {{~ line = generate_resolve_field_ref field ~}} + {{~ if line != ''~}} + {{line}} + {{~end~}} + {{~end~}} + } + + public override string ToString() + { + return "{{full_name}}{ " + {{~for field in hierarchy_export_fields ~}} + + "{{format_field_name __code_style field.name}}:" + {{to_pretty_string (format_property_name __code_style field.name) field.ctype}} + "," + {{~end~}} + + "}"; + } +} +{{namespace_with_grace_end __namespace_with_top_module}} diff --git a/LuBanConfig/Tools/Luban/Templates/cs-newtonsoft-json/table.sbn b/LuBanConfig/Tools/Luban/Templates/cs-newtonsoft-json/table.sbn new file mode 100644 index 000000000..36ec21464 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/cs-newtonsoft-json/table.sbn @@ -0,0 +1,177 @@ +using Newtonsoft.Json.Linq; +using Luban; + +{{ + key_type = __table.key_ttype + value_type = __table.value_ttype + + func index_type_name + ret (declaring_type_name $0.type) + end + + func table_union_map_type_name + ret 'System.Collections.Generic.Dictionary<(' + (array.each __table.index_list @index_type_name | array.join ', ') + '), ' + (declaring_type_name __value_type) + '>' + end + + func table_key_list + varName = $0 + indexList = __table.index_list |array.each do; ret varName + '.' + (format_property_name __code_style $0.index_field.name); end; + ret array.join indexList ', ' + end + + func table_param_def_list + paramList = __table.index_list |array.each do; ret (declaring_type_name $0.type) + ' ' + $0.index_field.name; end + ret array.join paramList ', ' + end + + func table_param_name_list + paramList = __table.index_list |array.each do; ret $0.index_field.name; end + ret array.join paramList ', ' + end +}} + +{{namespace_with_grace_begin __namespace_with_top_module}} + +{{~if __table.comment != '' ~}} +/// +/// {{escape_comment __table.comment}} +/// +{{~end~}} +public partial class {{__name}} +{ + {{~if __table.is_map_table ~}} + private readonly System.Collections.Generic.Dictionary<{{declaring_type_name __key_type}}, {{declaring_type_name __value_type}}> _dataMap; + private readonly System.Collections.Generic.List<{{declaring_type_name __value_type}}> _dataList; + + public {{__name}}(JArray _buf) + { + _dataMap = new System.Collections.Generic.Dictionary<{{declaring_type_name __key_type}}, {{declaring_type_name __value_type}}>(); + _dataList = new System.Collections.Generic.List<{{declaring_type_name __value_type}}>(); + + foreach(JObject _ele in _buf) + { + {{declaring_type_name __value_type}} _v; + {{deserialize '_v' '_ele' __value_type}} + _dataList.Add(_v); + _dataMap.Add(_v.{{format_property_name __code_style __table.index_field.name}}, _v); + } + } + + + public System.Collections.Generic.Dictionary<{{declaring_type_name __key_type}}, {{declaring_type_name __value_type}}> DataMap => _dataMap; + public System.Collections.Generic.List<{{declaring_type_name __value_type}}> DataList => _dataList; + +{{~if __value_type.is_dynamic~}} + public T GetOrDefaultAs({{declaring_type_name __key_type}} key) where T : {{declaring_type_name __value_type}} => _dataMap.TryGetValue(key, out var v) ? (T)v : null; + public T GetAs({{declaring_type_name __key_type}} key) where T : {{declaring_type_name __value_type}} => (T)_dataMap[key]; +{{~end~}} + public {{declaring_type_name __value_type}} GetOrDefault({{declaring_type_name __key_type}} key) => _dataMap.TryGetValue(key, out var v) ? v : null; + public {{declaring_type_name __value_type}} Get({{declaring_type_name __key_type}} key) => _dataMap[key]; + public {{declaring_type_name __value_type}} this[{{declaring_type_name __key_type}} key] => _dataMap[key]; + + public void ResolveRef({{__manager_name}} tables) + { + {{~if is_bean_need_resolve_ref value_type ~}} + foreach(var _v in _dataList) + { + _v.ResolveRef(tables); + } + {{~end~}} + } + + {{~else if __table.is_list_table ~}} + private readonly System.Collections.Generic.List<{{declaring_type_name __value_type}}> _dataList; + + {{~if __table.is_union_index~}} + private {{table_union_map_type_name}} _dataMapUnion; + {{~else if !__table.index_list.empty?~}} + {{~for idx in __table.index_list~}} + private System.Collections.Generic.Dictionary<{{declaring_type_name idx.type}}, {{declaring_type_name __value_type}}> _dataMap_{{idx.index_field.name}}; + {{~end~}} + {{~end~}} + + + public {{__name}}(JArray _buf) + { + _dataList = new System.Collections.Generic.List<{{declaring_type_name __value_type}}>(); + + foreach(JObject _ele in _buf) + { + {{declaring_type_name __value_type}} _v; + {{deserialize '_v' '_ele' __value_type}} + _dataList.Add(_v); + } + {{~if __table.is_union_index~}} + _dataMapUnion = new {{table_union_map_type_name}}(); + foreach(var _v in _dataList) + { + _dataMapUnion.Add(({{table_key_list "_v"}}), _v); + } + {{~else if !__table.index_list.empty?~}} + {{~for idx in __table.index_list~}} + _dataMap_{{idx.index_field.name}} = new System.Collections.Generic.Dictionary<{{declaring_type_name idx.type}}, {{declaring_type_name __value_type}}>(); + {{~end~}} + foreach(var _v in _dataList) + { + {{~for idx in __table.index_list~}} + _dataMap_{{idx.index_field.name}}.Add(_v.{{format_property_name __code_style idx.index_field.name}}, _v); + {{~end~}} + } + {{~end~}} + } + + public System.Collections.Generic.List<{{declaring_type_name __value_type}}> DataList => _dataList; + + + {{~if __table.is_union_index~}} + public {{declaring_type_name __value_type}} Get({{table_param_def_list}}) => _dataMapUnion.TryGetValue(({{table_param_name_list}}), out {{declaring_type_name __value_type}} __v) ? __v : null; + {{~else if !__table.index_list.empty? ~}} + {{~for idx in __table.index_list~}} + public {{declaring_type_name __value_type}} GetBy{{format_property_name __code_style idx.index_field.name}}({{declaring_type_name idx.type}} key) => _dataMap_{{idx.index_field.name}}.TryGetValue(key, out {{declaring_type_name __value_type}} __v) ? __v : null; + {{~end~}} + {{~end~}} + + public void ResolveRef({{__manager_name}} tables) + { + {{~if is_bean_need_resolve_ref value_type ~}} + foreach(var _v in _dataList) + { + _v.ResolveRef(tables); + } + {{~end~}} + } + {{~else~}} + + private readonly {{declaring_type_name __value_type}} _data; + + public {{declaring_type_name __value_type}} Data => _data; + + public {{__name}}(JArray _buf) + { + int n = _buf.Count; + if (n != 1) throw new SerializationException("table mode=one, but size != 1"); + {{deserialize '_data' '_buf[0]' __value_type}} + } + + + {{~ for field in __value_type.def_bean.hierarchy_export_fields ~}} +{{~if field.comment != '' ~}} + /// + /// {{escape_comment field.comment}} + /// +{{~end~}} + public {{declaring_type_name field.ctype}} {{format_property_name __code_style field.name}} => _data.{{format_property_name __code_style field.name}}; + {{~end~}} + + public void ResolveRef({{__manager_name}} tables) + { + {{~if is_bean_need_resolve_ref value_type ~}} + _data.ResolveRef(tables); + {{~end~}} + } + + + + {{~end~}} +} +{{namespace_with_grace_end __namespace_with_top_module}} diff --git a/LuBanConfig/Tools/Luban/Templates/cs-newtonsoft-json/tables.sbn b/LuBanConfig/Tools/Luban/Templates/cs-newtonsoft-json/tables.sbn new file mode 100644 index 000000000..5f10e0a63 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/cs-newtonsoft-json/tables.sbn @@ -0,0 +1,32 @@ +using Newtonsoft.Json.Linq; + +{{namespace_with_grace_begin __namespace}} +public partial class {{__name}} +{ + {{~for table in __tables ~}} +{{~if table.comment != '' ~}} + /// + /// {{escape_comment table.comment}} + /// +{{~end~}} + public {{table.full_name}} {{format_property_name __code_style table.name}} {get; } + {{~end~}} + + + public {{__name}}(System.Func loader) + { + {{~for table in __tables ~}} + {{format_property_name __code_style table.name}} = new {{table.full_name}}(loader("{{table.output_data_file}}")); + {{~end~}} + ResolveRef(); + } + + private void ResolveRef() + { + {{~for table in __tables ~}} + {{format_property_name __code_style table.name}}.ResolveRef(this); + {{~end~}} + } +} + +{{namespace_with_grace_end __namespace}} diff --git a/LuBanConfig/Tools/Luban/Templates/cs-simple-json/bean.sbn b/LuBanConfig/Tools/Luban/Templates/cs-simple-json/bean.sbn new file mode 100644 index 000000000..1d7a4d935 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/cs-simple-json/bean.sbn @@ -0,0 +1,151 @@ +using Luban; +using SimpleJSON; +{{ + parent_def_type = __bean.parent_def_type + export_fields = __bean.export_fields + hierarchy_export_fields = __bean.hierarchy_export_fields +}} + +{{namespace_with_grace_begin __namespace_with_top_module}} +{{~if __bean.comment != '' ~}} +/// +/// {{escape_comment __bean.comment}} +/// +{{~end~}} +{{~ +func get_ref_name + ret (format_property_name __code_style $0.name) + '_Ref' +end + +func get_index_var_name + ret (format_property_name __code_style $0.name) + '_Index' +end + +func generate_resolve_field_ref + field = $0 + fieldName = format_property_name __code_style field.name + refTable = get_ref_table field + if can_generate_ref field + tableName = format_property_name __code_style refTable.name + if field.is_nullable + ret (get_ref_name field) + ' = ' + fieldName + '!= null ? tables.' + tableName + '.GetOrDefault(' + (get_value_of_nullable_type field.ctype fieldName) + ') : null;' + else + ret (get_ref_name field) + ' = tables.' + tableName + '.GetOrDefault(' + fieldName + ');' + end + else if can_generate_collection_ref field + collection_ref_table = get_collection_ref_table field + tableName = format_property_name __code_style collection_ref_table.name + if field.ctype.type_name == 'list' || field.ctype.type_name == 'set' + line1 = (get_ref_name field) + ' = new ' + (declaring_collection_ref_name field.ctype) + '();' + '\n' + line2 = 'foreach (var _v in ' + fieldName + ') { ' + (get_ref_name field) + '.Add(tables.' + tableName + '.GetOrDefault(_v)); }' + '\n' + ret line1 + line2 + else if field.ctype.type_name == 'array' + line1 = (get_ref_name field) + ' = new ' + (declaring_type_name collection_ref_table.value_ttype) + '[' + fieldName + '.Length];' + '\n' + line2 = 'for (int _i = 0; _i < ' + fieldName + '.Length; _i++) { ' + (get_ref_name field) + '[_i] = tables.' + tableName + '.GetOrDefault(' + fieldName + '[_i]); }' + '\n' + ret line1 + line2 + else if field.ctype.type_name == 'map' + line1 = (get_ref_name field) + ' = new ' + (declaring_collection_ref_name field.ctype) + '();' + '\n' + line2 = 'foreach (var kvp in ' + fieldName + ') { ' + (get_ref_name field) + '.Add(kvp.Key, tables.' + tableName + '.GetOrDefault(kvp.Value)); }' + '\n' + ret line1 + line2 + else + ret '' + end + else + if (is_field_bean_need_resolve_ref field) + ret fieldName + '?.ResolveRef(tables);' + else if (is_field_array_like_need_resolve_ref field) + ret 'foreach (var _e in ' + fieldName + ') { _e?.ResolveRef(tables); }' + else if (is_field_map_need_resolve_ref field) + ret 'foreach (var _e in ' + fieldName + '.Values) { _e?.ResolveRef(tables); }' + else + ret '' + end + end +end +~}} +{{~if __bean.is_value_type~}} +public partial struct {{__name}} +{{~else~}} +public {{class_modifier __bean}} partial class {{__name}} : {{if parent_def_type}}{{__bean.parent}}{{else}}Luban.BeanBase{{end}} +{{~end~}} +{ + public {{__name}}(JSONNode _buf) {{if parent_def_type}} : base(_buf) {{end}} + { + {{~ for field in export_fields + fieldName = format_property_name __code_style field.name + ~}} + {{deserialize_field fieldName '_buf' field.name field.ctype}} + {{~if can_generate_ref field~}} + {{get_ref_name field}} = null; + {{~end~}} + {{~if has_index field~}} + foreach(var _v in {{fieldName}}) + { + {{get_index_var_name field}}.Add(_v.{{format_property_name __code_style (get_index_field field).name}}, _v); + } + {{~end~}} + {{~end~}} + } + + public static {{__name}} Deserialize{{__name}}(JSONNode _buf) + { + {{~if __bean.is_abstract_type~}} + switch ((string)_buf["$type"]) + { + {{~for child in __bean.hierarchy_not_abstract_children~}} + case "{{impl_data_type child __bean}}": return new {{child.full_name}}(_buf); + {{~end~}} + default: throw new SerializationException(); + } + {{~else~}} + return new {{__bean.full_name}}(_buf); + {{~end~}} + } + + {{~ for field in export_fields ~}} +{{~if field.comment != '' ~}} + /// + /// {{escape_comment field.comment}} + /// +{{~end~}} + public readonly {{declaring_type_name field.ctype}} {{format_property_name __code_style field.name}}; + {{~if can_generate_ref field~}} + public {{declaring_type_name (get_ref_type field)}} {{get_ref_name field}}; + {{~else if can_generate_collection_ref field~}} + public {{declaring_collection_ref_name field.ctype}} {{get_ref_name field}}; + {{~end~}} + {{~if has_index field + indexMapType = get_index_map_type field + ~}} + public readonly {{declaring_type_name indexMapType}} {{get_index_var_name field}} = new {{declaring_type_name indexMapType}}(); + {{~end~}} + {{~end~}} + +{{~if !__bean.is_abstract_type && !__bean.is_value_type~}} + public const int __ID__ = {{__bean.id}}; + public override int GetTypeId() => __ID__; +{{~end~}} + + public {{method_modifier __bean}} void ResolveRef({{__manager_name}} tables) + { + {{~if parent_def_type~}} + base.ResolveRef(tables); + {{~end~}} + {{~for field in export_fields~}} + {{~ line = generate_resolve_field_ref field ~}} + {{~ if line != ''~}} + {{line}} + {{~end~}} + {{~end~}} + } + + public override string ToString() + { + return "{{full_name}}{ " + {{~for field in hierarchy_export_fields ~}} + + "{{format_field_name __code_style field.name}}:" + {{to_pretty_string (format_property_name __code_style field.name) field.ctype}} + "," + {{~end~}} + + "}"; + } +} +{{namespace_with_grace_end __namespace_with_top_module}} diff --git a/LuBanConfig/Tools/Luban/Templates/cs-simple-json/table.sbn b/LuBanConfig/Tools/Luban/Templates/cs-simple-json/table.sbn new file mode 100644 index 000000000..a07d492e0 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/cs-simple-json/table.sbn @@ -0,0 +1,170 @@ +using Luban; +using SimpleJSON; + +{{ + key_type = __table.key_ttype + value_type = __table.value_ttype + + func index_type_name + ret (declaring_type_name $0.type) + end + + func table_union_map_type_name + ret 'System.Collections.Generic.Dictionary<(' + (array.each __table.index_list @index_type_name | array.join ', ') + '), ' + (declaring_type_name __value_type) + '>' + end + + func table_key_list + varName = $0 + indexList = __table.index_list |array.each do; ret varName + '.' + (format_property_name __code_style $0.index_field.name); end; + ret array.join indexList ', ' + end + + func table_param_def_list + paramList = __table.index_list |array.each do; ret (declaring_type_name $0.type) + ' ' + $0.index_field.name; end + ret array.join paramList ', ' + end + + func table_param_name_list + paramList = __table.index_list |array.each do; ret $0.index_field.name; end + ret array.join paramList ', ' + end +}} +{{namespace_with_grace_begin __namespace_with_top_module}} +{{~if __table.comment != '' ~}} +/// +/// {{escape_comment __table.comment}} +/// +{{~end~}} +public partial class {{__name}} +{ + {{~if __table.is_map_table ~}} + private readonly System.Collections.Generic.Dictionary<{{declaring_type_name __key_type}}, {{declaring_type_name __value_type}}> _dataMap; + private readonly System.Collections.Generic.List<{{declaring_type_name __value_type}}> _dataList; + + public {{__name}}(JSONNode _buf) + { + _dataMap = new System.Collections.Generic.Dictionary<{{declaring_type_name __key_type}}, {{declaring_type_name __value_type}}>(); + _dataList = new System.Collections.Generic.List<{{declaring_type_name __value_type}}>(); + + foreach(JSONNode _ele in _buf.Children) + { + {{declaring_type_name __value_type}} _v; + {{deserialize '_v' '_ele' __value_type}} + _dataList.Add(_v); + _dataMap.Add(_v.{{format_property_name __code_style __table.index_field.name}}, _v); + } + } + + public System.Collections.Generic.Dictionary<{{declaring_type_name __key_type}}, {{declaring_type_name __value_type}}> DataMap => _dataMap; + public System.Collections.Generic.List<{{declaring_type_name __value_type}}> DataList => _dataList; + +{{~if __value_type.is_dynamic~}} + public T GetOrDefaultAs({{declaring_type_name __key_type}} key) where T : {{declaring_type_name __value_type}} => _dataMap.TryGetValue(key, out var v) ? (T)v : null; + public T GetAs({{declaring_type_name __key_type}} key) where T : {{declaring_type_name __value_type}} => (T)_dataMap[key]; +{{~end~}} + public {{declaring_type_name __value_type}} GetOrDefault({{declaring_type_name __key_type}} key) => _dataMap.TryGetValue(key, out var v) ? v : null; + public {{declaring_type_name __value_type}} Get({{declaring_type_name __key_type}} key) => _dataMap[key]; + public {{declaring_type_name __value_type}} this[{{declaring_type_name __key_type}} key] => _dataMap[key]; + + public void ResolveRef({{__manager_name}} tables) + { + {{~if is_bean_need_resolve_ref value_type ~}} + foreach(var _v in _dataList) + { + _v.ResolveRef(tables); + } + {{~end~}} + } + + {{~else if __table.is_list_table ~}} + private readonly System.Collections.Generic.List<{{declaring_type_name __value_type}}> _dataList; + + {{~if __table.is_union_index~}} + private {{table_union_map_type_name}} _dataMapUnion; + {{~else if !__table.index_list.empty?~}} + {{~for idx in __table.index_list~}} + private System.Collections.Generic.Dictionary<{{declaring_type_name idx.type}}, {{declaring_type_name __value_type}}> _dataMap_{{idx.index_field.name}}; + {{~end~}} + {{~end~}} + + public {{__name}}(JSONNode _buf) + { + _dataList = new System.Collections.Generic.List<{{declaring_type_name __value_type}}>(); + + foreach(JSONNode _ele in _buf.Children) + { + {{declaring_type_name __value_type}} _v; + {{deserialize '_v' '_ele' __value_type}} + _dataList.Add(_v); + } + {{~if __table.is_union_index~}} + _dataMapUnion = new {{table_union_map_type_name}}(); + foreach(var _v in _dataList) + { + _dataMapUnion.Add(({{table_key_list "_v"}}), _v); + } + {{~else if !__table.index_list.empty?~}} + {{~for idx in __table.index_list~}} + _dataMap_{{idx.index_field.name}} = new System.Collections.Generic.Dictionary<{{declaring_type_name idx.type}}, {{declaring_type_name __value_type}}>(); + {{~end~}} + foreach(var _v in _dataList) + { + {{~for idx in __table.index_list~}} + _dataMap_{{idx.index_field.name}}.Add(_v.{{format_property_name __code_style idx.index_field.name}}, _v); + {{~end~}} + } + {{~end~}} + } + + public System.Collections.Generic.List<{{declaring_type_name __value_type}}> DataList => _dataList; + + {{~if __table.is_union_index~}} + public {{declaring_type_name __value_type}} Get({{table_param_def_list}}) => _dataMapUnion.TryGetValue(({{table_param_name_list}}), out {{declaring_type_name __value_type}} __v) ? __v : null; + {{~else if !__table.index_list.empty? ~}} + {{~for idx in __table.index_list~}} + public {{declaring_type_name __value_type}} GetBy{{format_property_name __code_style idx.index_field.name}}({{declaring_type_name idx.type}} key) => _dataMap_{{idx.index_field.name}}.TryGetValue(key, out {{declaring_type_name __value_type}} __v) ? __v : null; + {{~end~}} + {{~end~}} + + public void ResolveRef({{__manager_name}} tables) + { + {{~if is_bean_need_resolve_ref value_type ~}} + foreach(var _v in _dataList) + { + _v.ResolveRef(tables); + } + {{~end~}} + } + {{~else~}} + + private readonly {{declaring_type_name __value_type}} _data; + + public {{declaring_type_name __value_type}} Data => _data; + + public {{__name}}(JSONNode _buf) + { + int n = _buf.Count; + if (n != 1) throw new SerializationException("table mode=one, but size != 1"); + {{deserialize '_data' '_buf[0]' __value_type}} + } + + + {{~ for field in __value_type.def_bean.hierarchy_export_fields ~}} +{{~if field.comment != '' ~}} + /// + /// {{escape_comment field.comment}} + /// +{{~end~}} + public {{declaring_type_name field.ctype}} {{format_property_name __code_style field.name}} => _data.{{format_property_name __code_style field.name}}; + {{~end~}} + + public void ResolveRef({{__manager_name}} tables) + { + {{~if is_bean_need_resolve_ref value_type ~}} + _data.ResolveRef(tables); + {{~end~}} + } + {{~end~}} +} + +{{namespace_with_grace_end __namespace_with_top_module}} diff --git a/LuBanConfig/Tools/Luban/Templates/cs-simple-json/tables.sbn b/LuBanConfig/Tools/Luban/Templates/cs-simple-json/tables.sbn new file mode 100644 index 000000000..66770e933 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/cs-simple-json/tables.sbn @@ -0,0 +1,32 @@ +using Luban; +using SimpleJSON; + +{{namespace_with_grace_begin __namespace}} +public partial class {{__name}} +{ + {{~for table in __tables ~}} +{{~if table.comment != '' ~}} + /// + /// {{escape_comment table.comment}} + /// +{{~end~}} + public {{table.full_name}} {{format_property_name __code_style table.name}} {get; } + {{~end~}} + + public {{__name}}(System.Func loader) + { + {{~for table in __tables ~}} + {{format_property_name __code_style table.name}} = new {{table.full_name}}(loader("{{table.output_data_file}}")); + {{~end~}} + ResolveRef(); + } + + private void ResolveRef() + { + {{~for table in __tables ~}} + {{format_property_name __code_style table.name}}.ResolveRef(this); + {{~end~}} + } +} + +{{namespace_with_grace_end __namespace}} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Templates/cs_pb/tables.sbn b/LuBanConfig/Tools/Luban/Templates/cs_pb/tables.sbn new file mode 100644 index 000000000..837061f51 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/cs_pb/tables.sbn @@ -0,0 +1,32 @@ +using Google.Protobuf; +using Google.Protobuf.Collections; +using System.Reflection; + +{{namespace_with_grace_begin __namespace}} +public partial class {{__name}} +{ + {{~for table in __tables ~}} +{{~if table.comment != '' ~}} + /// + /// {{escape_comment table.comment}} + /// +{{~end~}} + public {{proto_full_name table.full_name}} {{format_property_name __code_style table.name}} { get; } + + {{~end~}} + + public {{__name}}(System.Func loader) + { + {{~for table in __tables ~}} + {{format_property_name __code_style table.name}} = {{proto_full_name table.full_name}}.Parser.ParseFrom(loader("{{table.output_data_file}}")); + {{~end~}} + } + public {{__name}}(System.Func loader) + { + {{~for table in __tables ~}} + {{format_property_name __code_style table.name}} = {{proto_full_name table.full_name}}.Parser.ParseJson(loader("{{table.output_data_file}}")); + {{~end~}} + } +} + +{{namespace_with_grace_end __namespace}} diff --git a/LuBanConfig/Tools/Luban/Templates/dart-json/bean.sbn b/LuBanConfig/Tools/Luban/Templates/dart-json/bean.sbn new file mode 100644 index 000000000..c26884f60 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/dart-json/bean.sbn @@ -0,0 +1,143 @@ +import 'dart:ffi'; +import 'dart:collection'; +import '/gen/Tables.dart'; + +{{~ + parent_def_type = __this.parent_def_type + export_fields = __this.export_fields + hierarchy_export_fields = __this.hierarchy_export_fields +~}} +{{for field in hierarchy_export_fields}}{{import_ref_type_dart field '/gen/'}}{{end}} +{{if parent_def_type}}{{declaring_import_bean parent_def_type '/gen/'}}{{end}} +{{~if __bean.is_abstract_type~}} +{{~for child in __this.hierarchy_not_abstract_children~}} +{{declaring_import_bean child '/gen/'}} +{{~end~}} +{{~end~}} +{{~ +func get_ref_name + ret (format_property_name __code_style $0.name) + '_Ref' +end + +func generate_resolve_field_ref + field = $0 + fieldName = format_name_lower_camel field.name + refTable = get_ref_table field + if can_generate_ref field + tableName = format_name_lower_camel refTable.name + if field.is_nullable + ret (get_ref_name field) + ' = ' + fieldName + '!= null ? tables.' + tableName + '?.getOrDefault(' + (get_value_of_nullable_type field.ctype fieldName) + ') : null;' + else + ret (get_ref_name field) + ' = tables.' + tableName + '?.getOrDefault(' + fieldName + ');' + end + else if can_generate_collection_ref field + collection_ref_table = get_collection_ref_table field + tableName = format_name_lower_camel collection_ref_table.name + if field.ctype.type_name == 'list' || field.ctype.type_name == 'array' + line1 = (get_ref_name field) + ' = ' + (declaring_collection_ref_name field.ctype) + '.empty(growable: true);' + '\n' + line2 = 'for (var _v in ' + fieldName + ') { var ref=(tables.'+tableName + '?.getOrDefault(_v))!;'+ (get_ref_name field) + '?.add(ref); }' + '\n' + ret line1 + line2 + else if field.ctype.type_name == 'set' + line1 = (get_ref_name field) + ' = ' + (declaring_collection_ref_name field.ctype) + '();' + '\n' + line2 = 'for (var _v in ' + fieldName + ') { var ref= (tables.'+tableName + '?.getOrDefault(_v))!;'+ (get_ref_name field) + '?.add(ref); }' + '\n' + ret line1 + line2 + else if field.ctype.type_name == 'map' + line1 = (get_ref_name field) + ' = ' + (declaring_collection_ref_name field.ctype) + '();' + '\n' + line2 = 'for (var kvp in ' + fieldName + '.entries) { var ref= (tables.' + tableName + '?.getOrDefault(kvp.value))!;' + (get_ref_name field) + '?[kvp.key]= ref; }' + '\n' + ret line1 + line2 + else + ret '' + end + else + if (is_field_bean_need_resolve_ref field) + ret fieldName + '?.resolveRef(tables);' + else if (is_field_array_like_need_resolve_ref field) + ret 'for (var _e in ' + fieldName + ') { _e?.resolveRef(tables); }' + else if (is_field_map_need_resolve_ref field) + ret 'for (var _e in ' + fieldName + '.values) { _e?.resolveRef(tables); }' + else + ret '' + end + end +end + +~}} +{{~if __bean.comment != '' ~}} +//{{escape_comment __bean.comment}} +{{~end~}} +{{class_modifier __this}} class {{__name}} {{if parent_def_type}}extends {{ __this.parent_def_type.name}}{{end}} +{ + {{__name}}( +{{~if need_gen_constructor hierarchy_export_fields~}} + { +{{~ for field in hierarchy_export_fields ~}} + {{~if is_super_field field parent_def_type~}} + required super.{{format_name_lower_camel field.name}}, + {{~else~}} + required this.{{format_name_lower_camel field.name}}, + {{~end~}} +{{~end~}} + } + {{~end~}} + ); + + factory {{__name}}.deserialize(dynamic _buf){ + {{~if __bean.is_abstract_type~}} + switch (_buf['\$type']) + { + {{~for child in __this.hierarchy_not_abstract_children~}} + case "{{impl_data_type child __this}}": return {{child.name}}.deserialize(_buf); + {{~end~}} + default: throw Exception('unknown type:$_buf[\$type]'); + } + {{~else~}} +{{~ for field in hierarchy_export_fields + fieldName = format_name_lower_camel field.name +~}} + final {{fieldName}}; + {{deserialize_field fieldName '_buf' field.name field.ctype}} +{{~end~}} + return {{__name}}( +{{~ for field in hierarchy_export_fields + fieldName = format_name_lower_camel field.name +~}} + {{fieldName}}:{{fieldName}}, +{{~end~}} + ); + {{~end~}} + } + + {{~ for field in export_fields ~}} +{{~if field.comment != '' ~}} + //{{escape_comment field.comment}} +{{~end~}} + final {{declaring_type_name field.ctype}} {{format_name_lower_camel field.name}}; +{{~if can_generate_ref field~}} + {{declaring_type_name (get_ref_type field)}}? {{get_ref_name field}}; +{{~else if can_generate_collection_ref field~}} + {{declaring_collection_ref_name field.ctype}}? {{get_ref_name field}}; +{{~end~}} + {{~end~}} +{{~if !__bean.is_abstract_type && !__bean.is_value_type~}} + static final int __ID__ = {{__this.id}}; +{{~end~}} + {{method_modifier __bean}} + void resolveRef({{__manager_name}} tables) + { + {{~if parent_def_type~}} + super.resolveRef(tables); + {{~end~}} + + {{~for field in export_fields~}} + {{~ line = generate_resolve_field_ref field ~}} + {{~ if line != ''~}} + {{line}} + {{~end~}} + {{~end~}} + } + + @override + String toString() { + return '{{__name}}({{for field in hierarchy_export_fields}}{{format_name_lower_camel field.name}}:${{format_name_lower_camel field.name}}, {{end}})'; + } +} diff --git a/LuBanConfig/Tools/Luban/Templates/dart-json/table.sbn b/LuBanConfig/Tools/Luban/Templates/dart-json/table.sbn new file mode 100644 index 000000000..57b66c713 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/dart-json/table.sbn @@ -0,0 +1,145 @@ +import 'dart:collection'; +{{declaring_import_name __value_type '/gen/'}} +{{~if __table.is_singleton_table ~}} +{{for field in __value_type.def_bean.hierarchy_export_fields}}{{import_ref_type_dart field '/gen/'}}{{end}} +{{~end~}} +import '/gen/Tables.dart'; +{{ + func index_type_name + ret (declaring_type_name $0.type) + end + + func table_union_map_type_name + ret 'Map<(' + (array.each __table.index_list @index_type_name | array.join ', ') + '), ' + (declaring_type_name __value_type) + '>' + end + + func table_key_list + varName = $0 + indexList = __table.index_list |array.each do; ret varName + '.' + (format_property_name __code_style $0.index_field.name); end; + ret array.join indexList ', ' + end + + func table_param_def_list + paramList = __table.index_list |array.each do; ret (declaring_type_name $0.type) + ' ' + $0.index_field.name; end + ret array.join paramList ', ' + end + + func table_param_name_list + paramList = __table.index_list |array.each do; ret $0.index_field.name; end + ret array.join paramList ', ' + end +}} + +{{~if __this.comment != '' ~}} +//{{escape_comment __this.comment}} +{{~end~}} +final class {{__name}} { + + {{~if __table.is_map_table ~}} + final List<{{declaring_type_name __value_type}}> _dataList = []; + final Map<{{declaring_type_name __key_type}}, {{declaring_type_name __value_type}}> _dataMap = {}; + + {{__name}}(List _array) { + + for (var _buf in _array) { + + {{declaring_type_name __value_type}} _item = {{declaring_type_name __value_type}}.deserialize(_buf); + + _dataList.add(_item); + _dataMap[_item.{{format_field_name __code_style __this.index_field.name}}] = _item; + } + } + + {{declaring_type_name __value_type}}? getOrDefault({{declaring_type_name __key_type}} id) { + if (_dataMap.containsKey(id)) { + return _dataMap[id]; + } + return null; + } + + void resolveRef({{__manager_name}} tables) + { + for(var _v in _dataList) + { + _v.resolveRef(tables); + } + } + + {{~else if __table.is_list_table ~}} + final List<{{declaring_type_name __value_type}}> _dataList = []; + +{{~if __table.is_union_index~}} + final {{table_union_map_type_name}} _dataMapUnion = {}; +{{~else if !__table.index_list.empty?~}} + {{~for idx in __table.index_list~}} + final Map<{{declaring_type_name idx.type}}, {{declaring_type_name __value_type}}> _dataMap_{{idx.index_field.name}}={}; + {{~end~}} +{{~end~}} + + {{__name}}(List _array) { + for (var _buf in _array) { + {{declaring_type_name __value_type}} _item = {{declaring_type_name __value_type}}.deserialize(_buf); + _dataList.add(_item); + } + + {{~if __table.is_union_index~}} + for(var _v in _dataList) + { + _dataMapUnion[({{table_key_list "_v"}})]= _v; + } + {{~else if !__table.index_list.empty?~}} + for(var _v in _dataList) + { + {{~for idx in __table.index_list~}} + _dataMap_{{idx.index_field.name}}[_v.{{format_property_name __code_style idx.index_field.name}}]= _v; + {{~end~}} + } + {{~end~}} + } + + List<{{declaring_type_name __value_type}}> get dataList => _dataList; + + {{~if __table.is_union_index~}} + {{declaring_type_name __value_type}}? get({{table_param_def_list}}) => _dataMapUnion[({{table_param_name_list}})]; + {{~else if !__table.index_list.empty? ~}} + {{~for idx in __table.index_list~}} + {{declaring_type_name __value_type}}? getBy{{format_property_name __code_style idx.index_field.name}}({{declaring_type_name idx.type}} key) => _dataMap_{{idx.index_field.name}}[key]; + {{~end~}} + {{~end~}} + + void resolveRef({{__manager_name}} tables) + { + + } + {{~else~}} + + {{declaring_type_name __value_type}}? _data; + + {{declaring_type_name __value_type}}? get data => _data; + + {{__name}}(List _array) { + + var n = _array.length; + if (n != 1) + { + throw Exception("table mode=one, but size != 1"); + } + for (var _buf in _array) { + _data = {{declaring_type_name __value_type}}.deserialize(_buf); + } + } + +{{~ for field in __value_type.def_bean.hierarchy_export_fields ~}} +{{~if field.comment != '' ~}} + /// + /// {{escape_comment field.comment}} + /// +{{~end~}} + {{declaring_null_type_name field.ctype}} get {{format_property_name __code_style field.name}} => _data?.{{format_name_lower_camel field.name}}; + {{~end~}} + void resolveRef({{__manager_name}} tables) + { + + } + {{~end~}} +} diff --git a/LuBanConfig/Tools/Luban/Templates/dart-json/tables.sbn b/LuBanConfig/Tools/Luban/Templates/dart-json/tables.sbn new file mode 100644 index 000000000..760be5815 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/dart-json/tables.sbn @@ -0,0 +1,43 @@ +{{~ +func get_table_inner_name + ret '_' + ($0 | string.downcase) +end +~}} +{{~for table in __tables ~}} +{{declaring_import_table table '/gen/'}} +{{~end~}} +final class {{__name}} +{ + final Future Function(String filePath) _asyncloadFunction; + Tables(this._asyncloadFunction); + + {{~for table in __tables ~}} +{{~if table.comment != '' ~}} + //{{escape_comment table.comment}} +{{~end~}} + {{table.name}}? _{{format_property_name __code_style table.name}}; + {{~end~}} + + Future waitLoad() async { + var results = await Future.wait([ + {{~for table in __tables ~}} + _asyncloadFunction("{{table.output_data_file}}"), + {{~end~}} + ]); + {{ idx=0 }} + {{~for table in __tables ~}} + _{{format_property_name __code_style table.name}} = {{table.name}}(results[{{idx}}]);{{idx=idx+1}} + {{~end~}} + resolveRef(); + } +{{~for table in __tables ~}} + {{table.name}}? get {{format_name_lower_camel table.name}} => _{{format_property_name __code_style table.name}}; +{{~end~}} + + void resolveRef(){ + {{~for table in __tables ~}} + _{{format_property_name __code_style table.name}}?.resolveRef(this); + {{~end~}} + } + +} diff --git a/LuBanConfig/Tools/Luban/Templates/flatbuffers/schema.sbn b/LuBanConfig/Tools/Luban/Templates/flatbuffers/schema.sbn new file mode 100644 index 000000000..ca8099c10 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/flatbuffers/schema.sbn @@ -0,0 +1,51 @@ +namespace {{__namespace}}; + +{{~for enum in __enums + typeName = full_name enum + ~}} +enum {{typeName}}:int { + {{~if !enum.has_zero_value_item~}} + __GENERATE_DEFAULT_VALUE = 0, + {{~end~}} + {{~for item in enum.items ~}} + {{typeName}}_{{item.name}} = {{item.int_value}}, + {{~end~}} +} +{{~end~}} + +{{~for bean in __beans~}} +{{~if bean.is_abstract_type ~}} +union {{full_name bean}} { + {{~for c in bean.hierarchy_not_abstract_children~}} + {{full_name c}}, + {{~end~}} +} +{{~end~}} +{{~end~}} + +{{~for bean in __beans~}} +{{~if !bean.is_abstract_type ~}} +table {{full_name bean}} { + {{~for f in bean.hierarchy_export_fields ~}} + {{f.name}}:{{declaring_type_name f.ctype}}{{type_metadata f.ctype}}; + {{~end~}} +} +{{~end~}} +{{~end~}} + +{{~for map in __maps~}} +table KeyValue_{{declaring_type_name map.key_type}}_{{declaring_type_name map.value_type}} { + key: {{declaring_type_name map.key_type}}{{type_metadata map.key_type}}; + value: {{declaring_type_name map.value_type}}{{type_metadata map.value_type}}; +} +{{~end~}} + +{{~for table in __tables~}} +table {{full_name table}} { + // WARN! The name 'data_list' is used by FlatBuffersJsonExporter. don't modify it! + data_list:[{{declaring_type_name table.value_ttype}}](required); +} + +root_type {{full_name table}}; +{{~end~}} + diff --git a/LuBanConfig/Tools/Luban/Templates/gdscript-json/schema.sbn b/LuBanConfig/Tools/Luban/Templates/gdscript-json/schema.sbn new file mode 100644 index 000000000..dca953350 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/gdscript-json/schema.sbn @@ -0,0 +1,167 @@ +@tool +class_name Schema +extends RefCounted + + +{{~for enum in __enums~}} +{{~if enum.comment != '' ~}} +## {{enum.comment | html.escape}} +{{~end~}} +enum {{full_name enum}} +{ + {{~ for item in enum.items ~}} + {{~if item.comment_or_alias != '' ~}} + ## {{item.comment_or_alias | html.escape}} + {{~end~}} + {{item.name}} = {{item.value}}, + {{~end~}} +} + + +{{~end~}} +{{~for bean in __beans + name = (full_name bean) +~}} +{{~if bean.comment != '' ~}} +## {{bean.comment | html.escape}} +{{~end~}} +class {{name}}{{if bean.parent_def_type}} extends {{full_name bean.parent_def_type}}{{end}}: +{{~ for field in bean.export_fields ~}} + {{~if field.comment != '' ~}} + ## {{field.comment | html.escape}} + {{~end~}} + var {{format_field_name __code_style field.name}}: {{declaring_type_name field.ctype}} +{{~end~}} + +{{~if bean.is_abstract_type~}} + static func fromJson(_json_): + var type = _json_['$type'] + match type: + {{~ for child in bean.hierarchy_not_abstract_children~}} + "{{impl_data_type child bean}}": return {{full_name child}}.new(_json_) + {{~end~}} + _: assert(false) + +{{~end~}} + func _init(_json_) -> void: +{{~if bean.parent_def_type~}} + super(_json_) +{{~end~}} + {{~ for field in bean.export_fields ~}} + {{deserialize_field ('self.' + (format_field_name __code_style field.name)) '_json_' field.name field.ctype}} + {{~end~}} + {{~if bean.export_fields.empty?~}} + pass + {{~end~}} + + +{{~end~}} +{{~for table in __tables + value_type = table.value_ttype + value_type_name = (declaring_type_name value_type) +~}} +{{~if table.comment != '' ~}} +## {{table.comment | html.escape}} +{{~end~}} +class {{full_name table}}: + {{~if table.is_map_table ~}} + var _data_list: Array[{{value_type_name}}] + var _data_map: Dictionary + + func _init(_json_) -> void: + for _json2_ in _json_: + var _v: {{value_type_name}} + {{deserialize '_v' '_json2_' value_type}} + self._data_list.append(_v) + self._data_map[_v.{{format_field_name __code_style table.index_field.name}}] = _v + + func get_data_list() -> Array[{{value_type_name}}]: + return self._data_list + + func get_data_map() -> Dictionary: + return self._data_map + + func get_item(key) -> {{value_type_name}}: + return self._data_map.get(key) + + {{~else if table.multi_key ~}} + var _data_list: Array[{{value_type_name}}] + {{~ for INDEX in table.index_list ~}} + var _{{INDEX.index_field.name}}_data_map: Dictionary + {{~ end ~}} + + func _init(_json_) -> void: + {{~ for INDEX in table.index_list ~}} + self._{{INDEX.index_field.name}}_data_map = {} + {{~ end ~}} + + for _json2_ in _json_: + var _v: {{value_type_name}} + {{deserialize '_v' '_json2_' value_type}} + self._data_list.append(_v) + {{~ for INDEX in table.index_list ~}} + self._{{INDEX.index_field.name}}_data_map[_v.{{INDEX.index_field.name}}] = _v + {{~ end ~}} + + func get_data_list() -> Array[{{value_type_name}}]: + return self._data_list + + {{~ for INDEX in table.index_list ~}} + func get_{{INDEX.index_field.name}}_data_map() -> Dictionary: + return self._{{INDEX.index_field.name}}_data_map + {{~ end ~}} + +{{~ for INDEX in table.index_list ~}} + func get_item_by_{{INDEX.index_field.name}}({{INDEX.index_field.name}}) -> {{value_type_name}}: + return self._{{INDEX.index_field.name}}_data_map.get({{INDEX.index_field.name}}) + +{{~ end ~}} + {{~else if table.is_list_table ~}} + var _data_list: Array[{{value_type_name}}] + + func _init(_json_) -> void: + for _json2_ in _json_: + var _v: {{value_type_name}} + {{deserialize '_v' '_json2_' value_type}} + self._data_list.append(_v) + + func get_data_list() -> Array[{{value_type_name}}]: + return self._data_list + + func get_item(index) -> {{value_type_name}}: + return self._data_list[index] + {{~else~}} + var _data:{{value_type_name}} + + func _init(_json_) -> void: + assert(len(_json_) == 1, "table mode = one, but size != 1") + {{deserialize 'self._data' '_json_[0]' value_type}} + + func get_data() -> {{value_type_name}}: + return self._data + + {{~ for field in value_type.def_bean.hierarchy_export_fields + name = format_field_name __code_style field.name + ~}} +{{~if field.comment != '' ~}} + ## {{escape_comment field.comment}} +{{~end~}} + var {{name}}: {{declaring_type_name field.ctype}}: + get: return self._data.{{name}} + + {{~end~}} + {{~end~}} + +{{~end~}} +class {{str_full_name __full_name}}: + {{~for table in __tables ~}} + {{~if table.comment != ''~}} + ## {{table.comment | html.escape}} + {{~end~}} + var {{format_method_name __code_style table.name}}: {{full_name table}} + {{~end~}} + + func _init(loader: Callable) -> void: + {{~for table in __tables ~}} + self.{{format_method_name __code_style table.name}} = {{full_name table}}.new(loader.call('{{table.output_data_file}}')) + {{~end~}} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Templates/go-bin/bean.sbn b/LuBanConfig/Tools/Luban/Templates/go-bin/bean.sbn new file mode 100644 index 000000000..0ff01a032 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/go-bin/bean.sbn @@ -0,0 +1,54 @@ +{{~if ___top_module != ''~}} +package {{__top_module}}; +{{~end~}} + +{{~ + go_full_name = full_name __this + parent_def_type = __this.parent_def_type + is_abstract_type = __this.is_abstract_type + hierarchy_fields = __this.hierarchy_export_fields + hierarchy_not_abstract_children = __this.hierarchy_not_abstract_children +~}} + +import ( + "{{__luban_module_name}}" +) + +{{collect_import __this}} + +type {{go_full_name}} struct { + {{~for field in hierarchy_fields ~}} + {{format_field_name __code_style field.name}} {{declaring_type_name field.ctype}} + {{~end~}} +} + +const TypeId_{{go_full_name}} = {{__this.id}} + +func (*{{go_full_name}}) GetTypeId() int32 { + return {{__this.id}} +} + +{{~if is_abstract_type~}} +func New{{go_full_name}}(_buf *luban.ByteBuf) (interface{}, error) { + var id int32 + var err error + if id, err = _buf.ReadInt() ; err != nil { + return nil, err + } + switch id { + {{~for child in hierarchy_not_abstract_children~}} + case {{child.id}}: _v, err := New{{full_name child}}(_buf); if err != nil { return nil, errors.New("{{child.full_name|string.downcase}}") } else { return _v, nil } + {{~end~}} + default: return nil, errors.New("unknown type id") + } +} + +{{~else~}} +func New{{go_full_name}}(_buf *luban.ByteBuf) (_v *{{go_full_name}}, err error) { + _v = &{{go_full_name}}{} + {{~for field in hierarchy_fields ~}} + {{deserialize_field field.ctype ("_v." + (format_field_name __code_style field.name)) '_buf' 'err'}} + {{~end~}} + return +} +{{~end~}} diff --git a/LuBanConfig/Tools/Luban/Templates/go-bin/table.sbn b/LuBanConfig/Tools/Luban/Templates/go-bin/table.sbn new file mode 100644 index 000000000..e511405b8 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/go-bin/table.sbn @@ -0,0 +1,116 @@ +{{~if ___top_module != ''~}} +package {{__top_module}}; +{{~end~}} + +{{~ + go_full_name = full_name __this + key_type = __this.key_ttype + value_type = __this.value_ttype + index_field = __this.index_field +~}} + +import "{{__luban_module_name}}" + +{{~if __this.is_map_table~}} +type {{go_full_name}} struct { + _dataMap map[{{declaring_type_name key_type}}]{{declaring_type_name value_type}} + _dataList []{{declaring_type_name value_type}} +} + +func New{{go_full_name}}(_buf *luban.ByteBuf) (*{{go_full_name}}, error) { + if size, err := _buf.ReadSize() ; err != nil { + return nil, err + } else { + _dataList := make([]{{declaring_type_name value_type}}, 0, size) + dataMap := make(map[{{declaring_type_name key_type}}]{{declaring_type_name value_type}}) + + for i := 0 ; i < size ; i++ { + if _v, err2 := New{{full_name value_type.def_bean}}(_buf); err2 != nil { + return nil, err2 + } else { + _dataList = append(_dataList, _v) +{{~if value_type.is_dynamic ~}} + {{~for child in value_type.def_bean.hierarchy_not_abstract_children~}} + if __v, __is := _v.(*{{full_name child}}) ; __is { + dataMap[__v.{{format_field_name __code_style index_field.name}}] = _v + continue + } + {{~end~}} +{{~else~}} + dataMap[_v.{{format_field_name __code_style index_field.name}}] = _v +{{~end~}} + } + } + return &{{go_full_name}}{_dataList:_dataList, _dataMap:dataMap}, nil + } +} + +func (table *{{go_full_name}}) GetDataMap() map[{{declaring_type_name key_type}}]{{declaring_type_name value_type}} { + return table._dataMap +} + +func (table *{{go_full_name}}) GetDataList() []{{declaring_type_name value_type}} { + return table._dataList +} + +func (table *{{go_full_name}}) Get(key {{declaring_type_name key_type}}) {{declaring_type_name value_type}} { + return table._dataMap[key] +} + +{{~else if __this.is_list_table~}} +type {{go_full_name}} struct { + _dataList []{{declaring_type_name value_type}} +} + +func New{{go_full_name}}(_buf *luban.ByteBuf) (*{{go_full_name}}, error) { + if size, err := _buf.ReadSize() ; err != nil { + return nil, err + } else { + _dataList := make([]{{declaring_type_name value_type}}, 0, size) + + for i := 0 ; i < size ; i++ { + if _v, err2 := New{{full_name value_type.def_bean}}(_buf); err2 != nil { + return nil, err2 + } else { + _dataList = append(_dataList, _v) + } + } + return &{{go_full_name}}{_dataList:_dataList}, nil + } +} + +func (table *{{go_full_name}}) GetDataList() []{{declaring_type_name value_type}} { + return table._dataList +} + +func (table *{{go_full_name}}) Get(index int) {{declaring_type_name value_type}} { + return table._dataList[index] +} + +{{~else~}} + +import "errors" + +type {{go_full_name}} struct { + _data {{declaring_type_name value_type}} +} + +func New{{go_full_name}}(_buf *luban.ByteBuf) (*{{go_full_name}}, error) { + if size, err := _buf.ReadSize() ; err != nil { + return nil, err + } else if size != 1 { + return nil, errors.New(" size != 1 ") + } else { + if _v, err2 := New{{full_name value_type.def_bean}}(_buf); err2 != nil { + return nil, err2 + } else { + return &{{go_full_name}}{_data:_v}, nil + } + } +} + +func (table *{{go_full_name}}) Get() {{declaring_type_name value_type}} { + return table._data +} + +{{~end~}} diff --git a/LuBanConfig/Tools/Luban/Templates/go-bin/tables.sbn b/LuBanConfig/Tools/Luban/Templates/go-bin/tables.sbn new file mode 100644 index 000000000..4b0e7d127 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/go-bin/tables.sbn @@ -0,0 +1,33 @@ +{{~if __namespace != ''~}} +package {{__namespace}}; +{{~end~}} + +import ( + "{{__luban_module_name}}" + "errors" +) + +type ByteBufLoader func(string) (*luban.ByteBuf, error) + +type {{__name}} struct { + {{~for table in __tables ~}} + {{table.name}} *{{full_name table}} + {{~end~}} +} + +func NewTables(loader ByteBufLoader) (*{{__name}}, error) { + var err error + var buf *luban.ByteBuf + + tables := &{{__name}}{} + {{~for table in __tables ~}} + if buf, err = loader("{{table.output_data_file}}") ; err != nil { + return nil, err + } + if tables.{{table.name}}, err = New{{full_name table}}(buf) ; err != nil { + return nil, errors.Join(errors.New("failed to load {{table.name}}"), err) + } + {{~end~}} + return tables, nil +} + diff --git a/LuBanConfig/Tools/Luban/Templates/go-json/bean.sbn b/LuBanConfig/Tools/Luban/Templates/go-json/bean.sbn new file mode 100644 index 000000000..1da3b0e45 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/go-json/bean.sbn @@ -0,0 +1,50 @@ +{{~if ___top_module != ''~}} +package {{__top_module}}; +{{~end~}} + +{{~ + go_full_name = full_name __this + parent_def_type = __this.parent_def_type + is_abstract_type = __this.is_abstract_type + hierarchy_fields = __this.hierarchy_export_fields + hierarchy_not_abstract_children = __this.hierarchy_not_abstract_children +~}} + +{{collect_import __this}} + +type {{go_full_name}} struct { + {{~for field in hierarchy_fields ~}} + {{format_field_name __code_style field.name}} {{declaring_type_name field.ctype}} + {{~end~}} +} + +const TypeId_{{go_full_name}} = {{__this.id}} + +func (*{{go_full_name}}) GetTypeId() int32 { + return {{__this.id}} +} + +{{~if is_abstract_type~}} +func New{{go_full_name}}(_buf map[string]interface{}) (interface{}, error) { + var id string + var _ok_ bool + if id, _ok_ = _buf["$type"].(string) ; !_ok_ { + return nil, errors.New("type id missing") + } + switch id { + {{~for child in hierarchy_not_abstract_children~}} + case "{{impl_data_type child __this}}": _v, err := New{{full_name child}}(_buf); if err != nil { return nil, errors.New("{{full_name child|string.downcase}}") } else { return _v, nil } + {{~end~}} + default: return nil, errors.New("unknown type id") + } +} + +{{~else~}} +func New{{go_full_name}}(_buf map[string]interface{}) (_v *{{go_full_name}}, err error) { + _v = &{{go_full_name}}{} + {{~for field in hierarchy_fields ~}} + {{deserialize_field field.ctype ("_v." + (format_field_name __code_style field.name)) field.name '_buf'}} + {{~end~}} + return +} +{{~end~}} diff --git a/LuBanConfig/Tools/Luban/Templates/go-json/table.sbn b/LuBanConfig/Tools/Luban/Templates/go-json/table.sbn new file mode 100644 index 000000000..3fd5f9e4a --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/go-json/table.sbn @@ -0,0 +1,103 @@ +{{~if ___top_module != ''~}} +package {{__top_module}}; +{{~end~}} + +{{~ + go_full_name = full_name __this + key_type = __this.key_ttype + value_type = __this.value_ttype + index_field = __this.index_field +~}} + +{{~if __this.is_map_table~}} +type {{go_full_name}} struct { + _dataMap map[{{declaring_type_name key_type}}]{{declaring_type_name value_type}} + _dataList []{{declaring_type_name value_type}} +} + +func New{{go_full_name}}(_buf []map[string]interface{}) (*{{go_full_name}}, error) { + _dataList := make([]{{declaring_type_name value_type}}, 0, len(_buf)) + dataMap := make(map[{{declaring_type_name key_type}}]{{declaring_type_name value_type}}) + + for _, _ele_ := range _buf { + if _v, err2 := New{{full_name value_type.def_bean}}(_ele_); err2 != nil { + return nil, err2 + } else { + _dataList = append(_dataList, _v) +{{~if value_type.is_dynamic ~}} + {{~for child in value_type.def_bean.hierarchy_not_abstract_children~}} + if __v, __is := _v.(*{{full_name child}}) ; __is { + dataMap[__v.{{format_field_name __code_style index_field.name}}] = _v + continue + } + {{~end~}} +{{~else~}} + dataMap[_v.{{format_field_name __code_style index_field.name}}] = _v +{{~end~}} + } + } + return &{{go_full_name}}{_dataList:_dataList, _dataMap:dataMap}, nil +} + +func (table *{{go_full_name}}) GetDataMap() map[{{declaring_type_name key_type}}]{{declaring_type_name value_type}} { + return table._dataMap +} + +func (table *{{go_full_name}}) GetDataList() []{{declaring_type_name value_type}} { + return table._dataList +} + +func (table *{{go_full_name}}) Get(key {{declaring_type_name key_type}}) {{declaring_type_name value_type}} { + return table._dataMap[key] +} + +{{~else if __this.is_list_table~}} +type {{go_full_name}} struct { + _dataList []{{declaring_type_name value_type}} +} + +func New{{go_full_name}}(_buf []map[string]interface{}) (*{{go_full_name}}, error) { + _dataList := make([]{{declaring_type_name value_type}}, 0, len(_buf)) + for _, _ele_ := range _buf { + if _v, err2 := New{{full_name value_type.def_bean}}(_ele_); err2 != nil { + return nil, err2 + } else { + _dataList = append(_dataList, _v) + } + } + return &{{go_full_name}}{_dataList:_dataList}, nil +} + +func (table *{{go_full_name}}) GetDataList() []{{declaring_type_name value_type}} { + return table._dataList +} + +func (table *{{go_full_name}}) Get(index int) {{declaring_type_name value_type}} { + return table._dataList[index] +} + +{{~else~}} + +import "errors" + +type {{go_full_name}} struct { + _data {{declaring_type_name value_type}} +} + +func New{{go_full_name}}(_buf []map[string]interface{}) (*{{go_full_name}}, error) { + if len(_buf) != 1 { + return nil, errors.New(" size != 1 ") + } else { + if _v, err2 := New{{full_name value_type.def_bean}}(_buf[0]); err2 != nil { + return nil, err2 + } else { + return &{{go_full_name}}{_data:_v}, nil + } + } +} + +func (table *{{go_full_name}}) Get() {{declaring_type_name value_type}} { + return table._data +} + +{{~end~}} diff --git a/LuBanConfig/Tools/Luban/Templates/go-json/tables.sbn b/LuBanConfig/Tools/Luban/Templates/go-json/tables.sbn new file mode 100644 index 000000000..6f174821f --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/go-json/tables.sbn @@ -0,0 +1,28 @@ +{{~if __namespace != ''~}} +package {{__namespace}}; +{{~end~}} + +type JsonLoader func(string) ([]map[string]interface{}, error) + +type {{__name}} struct { + {{~for table in __tables ~}} + {{table.name}} *{{full_name table}} + {{~end~}} +} + +func NewTables(loader JsonLoader) (*{{__name}}, error) { + var err error + var buf []map[string]interface{} + + tables := &{{__name}}{} + {{~for table in __tables ~}} + if buf, err = loader("{{table.output_data_file}}") ; err != nil { + return nil, err + } + if tables.{{table.name}}, err = New{{full_name table}}(buf) ; err != nil { + return nil, err + } + {{~end~}} + return tables, nil +} + diff --git a/LuBanConfig/Tools/Luban/Templates/java-bin/bean.sbn b/LuBanConfig/Tools/Luban/Templates/java-bin/bean.sbn new file mode 100644 index 000000000..39f90f0aa --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/java-bin/bean.sbn @@ -0,0 +1,65 @@ +{{~if __namespace_with_top_module != ''~}} +package {{__namespace_with_top_module}}; +{{~end~}} + +import luban.*; + +{{~ + parent_def_type = __this.parent_def_type + export_fields = __this.export_fields + hierarchy_export_fields = __this.hierarchy_export_fields +~}} + +{{~if __this.comment != '' ~}} +/** + * {{escape_comment __this.comment}} + */ +{{~end~}} +public {{class_modifier __this}} class {{__name}} extends {{if parent_def_type}}{{__this.parent_def_type.full_name_with_top_module}}{{else}}AbstractBean{{end}} { + public {{__name}}(ByteBuf _buf) { + {{~if parent_def_type~}} + super(_buf); + {{~end~}} + {{~ for field in export_fields ~}} + {{deserialize '_buf' (format_field_name __code_style field.name) field.ctype}} + {{~end~}} + } + + public static {{__name}} deserialize(ByteBuf _buf) { + {{~if __this.is_abstract_type~}} + switch (_buf.readInt()) { + {{~for child in __this.hierarchy_not_abstract_children~}} + case {{child.full_name_with_top_module}}.__ID__: return new {{child.full_name_with_top_module}}(_buf); + {{~end~}} + default: throw new SerializationException(); + } + {{~else~}} + return new {{__this.full_name_with_top_module}}(_buf); + {{~end~}} + } + + {{~ for field in export_fields ~}} +{{~if field.comment != '' ~}} + /** + * {{escape_comment field.comment}} + */ +{{~end~}} + public final {{declaring_type_name field.ctype}} {{format_field_name __code_style field.name}}; + {{~end~}} + +{{~if !__this.is_abstract_type~}} + public static final int __ID__ = {{__this.id}}; + + @Override + public int getTypeId() { return __ID__; } +{{~end~}} + + @Override + public String toString() { + return "{{full_name}}{ " + {{~for field in hierarchy_export_fields ~}} + + "{{format_field_name __code_style field.name}}:" + {{format_field_name __code_style field.name}} + "," + {{~end~}} + + "}"; + } +} diff --git a/LuBanConfig/Tools/Luban/Templates/java-bin/table.sbn b/LuBanConfig/Tools/Luban/Templates/java-bin/table.sbn new file mode 100644 index 000000000..8f3c2225a --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/java-bin/table.sbn @@ -0,0 +1,81 @@ +{{~if __namespace_with_top_module != ''~}} +package {{__namespace_with_top_module}}; +{{~end~}} + +import luban.*; + + +{{~if __this.comment != '' ~}} +/** + * {{escape_comment __this.comment}} + */ +{{~end~}} +public final class {{__name}} { + {{~if __this.is_map_table + key_type = __this.key_ttype + ~}} + private final java.util.HashMap<{{declaring_box_type_name key_type}}, {{declaring_box_type_name __value_type}}> _dataMap; + private final java.util.ArrayList<{{declaring_box_type_name __value_type}}> _dataList; + + public {{__name}}(ByteBuf _buf) { + _dataMap = new java.util.HashMap<{{declaring_box_type_name key_type}}, {{declaring_box_type_name __value_type}}>(); + _dataList = new java.util.ArrayList<{{declaring_box_type_name __value_type}}>(); + + for(int n = _buf.readSize() ; n > 0 ; --n) { + {{declaring_box_type_name __value_type}} _v; + {{deserialize '_buf' '_v' __value_type}} + _dataList.add(_v); + _dataMap.put(_v.{{format_field_name __code_style __this.index_field.name}}, _v); + } + } + + public java.util.HashMap<{{declaring_box_type_name key_type}}, {{declaring_box_type_name __value_type}}> getDataMap() { return _dataMap; } + public java.util.ArrayList<{{declaring_box_type_name __value_type}}> getDataList() { return _dataList; } + +{{~if __value_type.is_dynamic~}} + @SuppressWarnings("unchecked") + public T getAs({{declaring_type_name key_type}} key) { return (T)_dataMap.get(key); } +{{~end~}} + public {{declaring_box_type_name __value_type}} get({{declaring_type_name key_type}} key) { return _dataMap.get(key); } + + {{~else if __this.is_list_table ~}} + private final java.util.ArrayList<{{declaring_box_type_name __value_type}}> _dataList; + + public {{__name}}(ByteBuf _buf) { + _dataList = new java.util.ArrayList<{{declaring_box_type_name __value_type}}>(); + + for(int n = _buf.readSize() ; n > 0 ; --n) { + {{declaring_box_type_name __value_type}} _v; + {{deserialize '_buf' '_v' __value_type}} + _dataList.add(_v); + } + } + + public java.util.ArrayList<{{declaring_box_type_name __value_type}}> getDataList() { return _dataList; } + + public {{declaring_box_type_name __value_type}} get(int index) { return _dataList.get(index); } + + + {{~else~}} + private final {{declaring_type_name __value_type}} _data; + + public final {{declaring_type_name __value_type}} data() { return _data; } + + public {{__name}}(ByteBuf _buf) { + int n = _buf.readSize(); + if (n != 1) throw new SerializationException("table mode=one, but size != 1"); + {{deserialize '_buf' '_data' __value_type}} + } + + + {{~ for field in __value_type.def_bean.hierarchy_export_fields ~}} +{{~if field.comment != '' ~}} + /** + * {{escape_comment field.comment}} + */ +{{~end~}} + public {{declaring_type_name field.ctype}} {{getter_name field.name}}() { return _data.{{format_field_name __code_style field.name}}; } + {{~end~}} + + {{~end~}} +} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Templates/java-bin/tables.sbn b/LuBanConfig/Tools/Luban/Templates/java-bin/tables.sbn new file mode 100644 index 000000000..7ab77d85a --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/java-bin/tables.sbn @@ -0,0 +1,37 @@ +{{~if __namespace != ''~}} +package {{__namespace}}; +{{~end~}} + +import luban.*; +{{~ +func get_table_inner_name + ret '_' + ($0 | string.downcase) +end +~}} + +public final class {{__name}} +{ + public static interface IByteBufLoader { + ByteBuf load(String file) throws java.io.IOException; + } + + {{~for table in __tables + inner_name = get_table_inner_name table.name + ~}} +{{~if table.comment != '' ~}} + /** + * {{escape_comment table.comment}} + */ +{{~end~}} + private final {{table.full_name_with_top_module}} {{inner_name}}; + public {{table.full_name_with_top_module}} get{{table.name}}() { return {{inner_name}}; } + {{~end~}} + + public {{__name}}(IByteBufLoader loader) throws java.io.IOException { + {{~for table in __tables + inner_name = get_table_inner_name table.name + ~}} + {{inner_name}} = new {{table.full_name_with_top_module}}(loader.load("{{table.output_data_file}}")); + {{~end~}} + } +} diff --git a/LuBanConfig/Tools/Luban/Templates/java-json/bean.sbn b/LuBanConfig/Tools/Luban/Templates/java-json/bean.sbn new file mode 100644 index 000000000..34fe4158d --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/java-json/bean.sbn @@ -0,0 +1,67 @@ +{{~if __namespace_with_top_module != ''~}} +package {{__namespace_with_top_module}}; +{{~end~}} + +import luban.*; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; + +{{~ + parent_def_type = __this.parent_def_type + export_fields = __this.export_fields + hierarchy_export_fields = __this.hierarchy_export_fields +~}} + +{{~if __this.comment != '' ~}} +/** + * {{escape_comment __this.comment}} + */ +{{~end~}} +public {{class_modifier __this}} class {{__name}} extends {{if parent_def_type}}{{__this.parent_def_type.full_name_with_top_module}}{{else}}AbstractBean{{end}} { + public {{__name}}(JsonObject _buf) { + {{~if parent_def_type~}} + super(_buf); + {{~end~}} + {{~ for field in export_fields ~}} + {{deserialize_field (format_field_name __code_style field.name) '_buf' field.name field.ctype}} + {{~end~}} + } + + public static {{__name}} deserialize(JsonObject _buf) { + {{~if __this.is_abstract_type~}} + switch (_buf.get("$type").getAsString()) { + {{~for child in __this.hierarchy_not_abstract_children~}} + case "{{impl_data_type child __this}}": return new {{child.full_name_with_top_module}}(_buf); + {{~end~}} + default: throw new SerializationException(); + } + {{~else~}} + return new {{__this.full_name_with_top_module}}(_buf); + {{~end~}} + } + + {{~ for field in export_fields ~}} +{{~if field.comment != '' ~}} + /** + * {{escape_comment field.comment}} + */ +{{~end~}} + public final {{declaring_type_name field.ctype}} {{format_field_name __code_style field.name}}; + {{~end~}} + +{{~if !__this.is_abstract_type~}} + public static final int __ID__ = {{__this.id}}; + + @Override + public int getTypeId() { return __ID__; } +{{~end~}} + + @Override + public String toString() { + return "{{full_name}}{ " + {{~for field in hierarchy_export_fields ~}} + + "{{format_field_name __code_style field.name}}:" + {{format_field_name __code_style field.name}} + "," + {{~end~}} + + "}"; + } +} diff --git a/LuBanConfig/Tools/Luban/Templates/java-json/table.sbn b/LuBanConfig/Tools/Luban/Templates/java-json/table.sbn new file mode 100644 index 000000000..d4a5ebd60 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/java-json/table.sbn @@ -0,0 +1,82 @@ +{{~if __namespace_with_top_module != ''~}} +package {{__namespace_with_top_module}}; +{{~end~}} + +import luban.*; +import com.google.gson.JsonElement; + + +{{~if __this.comment != '' ~}} +/** + * {{escape_comment __this.comment}} + */ +{{~end~}} +public final class {{__name}} { + {{~if __this.is_map_table + key_type = __this.key_ttype + ~}} + private final java.util.HashMap<{{declaring_box_type_name key_type}}, {{declaring_box_type_name __value_type}}> _dataMap; + private final java.util.ArrayList<{{declaring_box_type_name __value_type}}> _dataList; + + public {{__name}}(JsonElement _buf) { + _dataMap = new java.util.HashMap<{{declaring_box_type_name key_type}}, {{declaring_box_type_name __value_type}}>(); + _dataList = new java.util.ArrayList<{{declaring_box_type_name __value_type}}>(); + + for (com.google.gson.JsonElement _e_ : _buf.getAsJsonArray()) { + {{declaring_box_type_name __value_type}} _v; + {{deserialize '_v' '_e_' __value_type}} + _dataList.add(_v); + _dataMap.put(_v.{{format_field_name __code_style __this.index_field.name}}, _v); + } + } + + public java.util.HashMap<{{declaring_box_type_name key_type}}, {{declaring_box_type_name __value_type}}> getDataMap() { return _dataMap; } + public java.util.ArrayList<{{declaring_box_type_name __value_type}}> getDataList() { return _dataList; } + +{{~if __value_type.is_dynamic~}} + @SuppressWarnings("unchecked") + public T getAs({{declaring_type_name key_type}} key) { return (T)_dataMap.get(key); } +{{~end~}} + public {{declaring_box_type_name __value_type}} get({{declaring_type_name key_type}} key) { return _dataMap.get(key); } + + {{~else if __this.is_list_table ~}} + private final java.util.ArrayList<{{declaring_box_type_name __value_type}}> _dataList; + + public {{__name}}(JsonElement _buf) { + _dataList = new java.util.ArrayList<{{declaring_box_type_name __value_type}}>(); + + for (com.google.gson.JsonElement _e_ : _buf.getAsJsonArray()) { + {{declaring_box_type_name __value_type}} _v; + {{deserialize '_v' '_e_' __value_type}} + _dataList.add(_v); + } + } + + public java.util.ArrayList<{{declaring_box_type_name __value_type}}> getDataList() { return _dataList; } + + public {{declaring_box_type_name __value_type}} get(int index) { return _dataList.get(index); } + + + {{~else~}} + private final {{declaring_type_name __value_type}} _data; + + public final {{declaring_type_name __value_type}} data() { return _data; } + + public {{__name}}(JsonElement _buf) { + int n = _buf.getAsJsonArray().size(); + if (n != 1) throw new SerializationException("table mode=one, but size != 1"); + {{deserialize '_data' '_buf.getAsJsonArray().get(0).getAsJsonObject()' __value_type}} + } + + + {{~ for field in __value_type.def_bean.hierarchy_export_fields ~}} +{{~if field.comment != '' ~}} + /** + * {{escape_comment field.comment}} + */ +{{~end~}} + public {{declaring_type_name field.ctype}} {{getter_name field.name}}() { return _data.{{format_field_name __code_style field.name}}; } + {{~end~}} + + {{~end~}} +} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Templates/java-json/tables.sbn b/LuBanConfig/Tools/Luban/Templates/java-json/tables.sbn new file mode 100644 index 000000000..dbb624b0c --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/java-json/tables.sbn @@ -0,0 +1,39 @@ +{{~if __namespace != ''~}} +package {{__namespace}}; +{{~end~}} + +import luban.*; +import com.google.gson.JsonElement; +{{~ +func get_table_inner_name + ret '_' + ($0 | string.downcase) +end +~}} + +public final class {{__name}} +{ + + public interface IJsonLoader { + JsonElement load(String file) throws java.io.IOException; + } + + {{~for table in __tables + inner_name = get_table_inner_name table.name + ~}} +{{~if table.comment != '' ~}} + /** + * {{escape_comment table.comment}} + */ +{{~end~}} + private final {{table.full_name_with_top_module}} {{inner_name}}; + public {{table.full_name_with_top_module}} get{{table.name}}() { return {{inner_name}}; } + {{~end~}} + + public {{__name}}(IJsonLoader loader) throws java.io.IOException { + {{~for table in __tables + inner_name = get_table_inner_name table.name + ~}} + {{inner_name}} = new {{table.full_name_with_top_module}}(loader.load("{{table.output_data_file}}")); + {{~end~}} + } +} diff --git a/LuBanConfig/Tools/Luban/Templates/lua-bin/schema.sbn b/LuBanConfig/Tools/Luban/Templates/lua-bin/schema.sbn new file mode 100644 index 000000000..5a492a7f2 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/lua-bin/schema.sbn @@ -0,0 +1,158 @@ +local setmetatable = setmetatable +local pairs = pairs +local ipairs = ipairs +local tinsert = table.insert + +local function SimpleClass() + local class = {} + class.__index = class + class.New = function(...) + local ctor = class.ctor + local o = ctor and ctor(...) or {} + setmetatable(o, class) + return o + end + return class +end + + +local function get_map_size(m) + local n = 0 + for _ in pairs(m) do + n = n + 1 + end + return n +end + +local enums = +{ + {{~ for c in __enums ~}} + ---@class {{c.full_name}} {{-if c.comment != ''}} @{{escape_comment c.comment}}{{end}} + {{~ for item in c.items ~}} + ---@field public {{item.name}} integer {{-if item.comment != ''}} @{{escape_comment item.comment}}{{end}} + {{~end~}} + ['{{c.full_name}}'] = { {{ for item in c.items }} {{item.name}}={{item.int_value}}, {{end}} }; + {{~end~}} +} + +local tables = +{ +{{~for table in __tables ~}} + {{~if table.is_map_table ~}} + { name='{{table.name}}', file='{{table.output_data_file}}', mode='map', index='{{table.index}}', value_type='{{table.value_ttype.def_bean.full_name}}' }, + {{~else if table.is_list_table ~}} + { name='{{table.name}}', file='{{table.output_data_file}}', mode='list', index='{{table.index}}', value_type='{{table.value_ttype.def_bean.full_name}}' }, + {{~else~}} + { name='{{table.name}}', file='{{table.output_data_file}}', mode='one', value_type='{{table.value_ttype.def_bean.full_name}}'}, + {{~end~}} +{{~end~}} +} + +local function InitTypes(methods) + local readBool = methods.readBool + local readByte = methods.readByte + local readShort = methods.readShort + local readFshort = methods.readFshort + local readInt = methods.readInt + local readFint = methods.readFint + local readLong = methods.readLong + local readFlong = methods.readFlong + local readFloat = methods.readFloat + local readDouble = methods.readDouble + local readSize = methods.readSize + + local readString = methods.readString + + local function readList(bs, keyFun) + local list = {} + local v + for i = 1, readSize(bs) do + tinsert(list, keyFun(bs)) + end + return list + end + + local readArray = readList + + local function readSet(bs, keyFun) + local set = {} + local v + for i = 1, readSize(bs) do + tinsert(set, keyFun(bs)) + end + return set + end + + local function readMap(bs, keyFun, valueFun) + local map = {} + for i = 1, readSize(bs) do + local k = keyFun(bs) + local v = valueFun(bs) + map[k] = v + end + return map + end + + local function readNullableBool(bs) + if readBool(bs) then + return readBool(bs) + end + end + + local beans = {} + {{~ for bean in __beans ~}} + do + ---@class {{bean.full_name}} {{if bean.parent_def_type}}:{{bean.parent}} {{end}} {{-if bean.comment != ''}} @{{escape_comment bean.comment}}{{end}} + {{~ for field in bean.export_fields~}} + ---@field public {{field.name}} {{comment_type field.ctype}} {{-if field.comment != ''}} @{{escape_comment field.comment}}{{end}} + {{~end~}} + local class = { + {{~ for field in bean.export_fields~}} + { name='{{field.name}}', type='{{comment_type field.ctype}}'}, + {{~end~}} + } + beans['{{bean.full_name}}'] = class + end + {{~end~}} + + local beans = {} +{{~ for bean in __beans ~}} + do + ---@class {{bean.full_name}} {{if bean.parent_def_type}}:{{bean.parent}} {{end}} + {{~ for field in bean.export_fields~}} + ---@field public {{field.name}} {{comment_type field.ctype}} + {{~end~}} + local class = SimpleClass() + class._id = {{bean.id}} + class._type_ = '{{bean.full_name}}' + local id2name = { {{for c in bean.hierarchy_not_abstract_children}} [{{c.id}}] = '{{c.full_name}}', {{end}} } +{{~if bean.is_abstract_type~}} + class._deserialize = function(bs) + local id = readInt(bs) + return beans[id2name[id]]._deserialize(bs) + end +{{~else~}} + class._deserialize = function(bs) + local o = { + {{~ for field in bean.hierarchy_export_fields ~}} + {{~if !(need_marshal_bool_prefix field.ctype)~}} + {{field.name}} = {{deserialize 'bs' field.ctype}}, + {{~else~}} + {{field.name}} = {{if !field.ctype.is_bool}}readBool(bs) and {{deserialize 'bs' field.ctype}} or nil {{-else-}} readNullableBool(bs) {{-end-}}, + {{~end~}} + {{~end~}} + } + setmetatable(o, class) + return o + end +{{~end~}} + beans[class._type_] = class + end +{{~end~}} + + + return { enums = enums, beans = beans, tables = tables } + end + +return { InitTypes = InitTypes } + diff --git a/LuBanConfig/Tools/Luban/Templates/lua-lua/schema.sbn b/LuBanConfig/Tools/Luban/Templates/lua-lua/schema.sbn new file mode 100644 index 000000000..3a75e1a3e --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/lua-lua/schema.sbn @@ -0,0 +1,42 @@ + +local enums = +{ + {{~ for c in __enums ~}} + ---@class {{c.full_name}} {{-if c.comment != ''}} @{{escape_comment c.comment}}{{end}} + {{~ for item in c.items ~}} + ---@field public {{item.name}} integer {{-if item.comment != ''}} @{{escape_comment item.comment}}{{end}} + {{~end~}} + ['{{c.full_name}}'] = { {{ for item in c.items }} {{item.name}}={{item.int_value}}, {{end}} }; + {{~end~}} +} + +local beans = {} +{{~ for bean in __beans ~}} + do + ---@class {{bean.full_name}} {{if bean.parent_def_type}}:{{bean.parent}} {{end}} {{-if bean.comment != ''}} @{{escape_comment bean.comment}}{{end}} + {{~ for field in bean.export_fields~}} + ---@field public {{field.name}} {{comment_type field.ctype}} {{-if field.comment != ''}} @{{escape_comment field.comment}}{{end}} + {{~end~}} + local class = { + {{~ for field in bean.export_fields~}} + { name='{{field.name}}', type='{{comment_type field.ctype}}'}, + {{~end~}} + } + beans['{{bean.full_name}}'] = class + end +{{~end~}} + +local tables = +{ +{{~for table in __tables ~}} + {{~if table.is_map_table ~}} + { name='{{table.name}}', file='{{table.output_data_file}}', mode='map', index='{{table.index}}', value_type='{{table.value_ttype.def_bean.full_name}}' }, + {{~else if table.is_list_table ~}} + { name='{{table.name}}', file='{{table.output_data_file}}', mode='list', index='{{table.index}}', value_type='{{table.value_ttype.def_bean.full_name}}' }, + {{~else~}} + { name='{{table.name}}', file='{{table.output_data_file}}', mode='one', value_type='{{table.value_ttype.def_bean.full_name}}'}, + {{~end~}} +{{~end~}} +} + +return { enums = enums, beans = beans, tables = tables } diff --git a/LuBanConfig/Tools/Luban/Templates/pb/schema.sbn b/LuBanConfig/Tools/Luban/Templates/pb/schema.sbn new file mode 100644 index 000000000..fce803543 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/pb/schema.sbn @@ -0,0 +1,41 @@ +syntax = "{{__syntax}}"; + +package {{__namespace}}; + +{{~for enum in __enums + typeName = full_name enum + ~}} +enum {{typeName}} { + {{~if !enum.has_zero_value_item ~}} + {{typeName}}_EMPTY_PLACEHOLDER = 0; + {{~end~}} + {{~for item in enum.items ~}} + {{typeName}}_{{item.name}} = {{item.int_value}}; + {{~end~}} +} +{{~end~}} + +{{~for bean in __beans + typeName = full_name bean +~}} +message {{typeName}} { +{{~if bean.is_abstract_type ~}} + oneof value { + {{~for c in bean.hierarchy_not_abstract_children~}} + {{full_name c}} {{c.name}} = {{c.auto_id}}; + {{~end~}} + } +{{~else~}} + {{~for f in bean.hierarchy_export_fields ~}} + {{pre_decorator f.ctype}} {{declaring_type_name f.ctype}} {{f.name}} = {{f.auto_id}} {{suffix_options f.ctype}}; + {{~end~}} +{{~end~}} +} +{{~end~}} + +{{~for table in __tables~}} +message {{full_name table}} { + repeated {{declaring_type_name table.value_ttype}} data_list = 1 [packed = false]; +} +{{~end~}} + diff --git a/LuBanConfig/Tools/Luban/Templates/php-json/schema.sbn b/LuBanConfig/Tools/Luban/Templates/php-json/schema.sbn new file mode 100644 index 000000000..478c850fd --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/php-json/schema.sbn @@ -0,0 +1,155 @@ +{{~namespace_with_grace_begin __namespace~}} + +{{~for enum in __enums~}} +{{~if enum.comment != '' ~}} +/** + * {{enum.comment | html.escape}} + */ +{{~end~}} +class {{full_name enum}} { + {{~for item in enum.items ~}} +{{~if item.comment != '' ~}} + /** + * {{escape_comment item.comment}} + */ +{{~end~}} + public const {{item.name}} = {{item.value}}; + {{~end~}} +} + +{{~end~}} + + +{{~for bean in __beans~}} +{{name = (full_name bean)}} +{{~if bean.comment != '' ~}} +/** + * {{escape_comment bean.comment}} + */ +{{~end~}} +{{class_modifier bean}} class {{name}}{{if bean.parent_def_type}} extends {{full_name bean.parent_def_type}}{{end}} { +{{~if bean.is_abstract_type~}} + public static function constructFrom($_json_) { + $type = $_json_['$type']; + switch ($type) { + {{~ for child in bean.hierarchy_not_abstract_children~}} + case '{{impl_data_type child bean}}': return new {{full_name child}}($_json_); + {{~end~}} + default: throw new \Exception("unknown type:$type"); + } + } +{{~end~}} + + public function __construct($_json_) { + {{~if bean.parent_def_type~}} + parent::__construct($_json_); + {{~end~}} + {{~ for field in bean.export_fields ~}} + {{~if !field.ctype.is_nullable~}} + if (!array_key_exists('{{field.name}}', $_json_)) { throw new \Exception("field:'{{field.name}}' missing"); } + {{~end~}} + {{deserialize ('$this->' + format_field_name __code_style field.name) ( '$_json_[\'' + field.name + '\']') field.ctype}}; + {{~end~}} + } + + {{~ for field in bean.export_fields ~}} +{{~if field.comment != '' ~}} + /** + * {{escape_comment field.comment}} + */ +{{~end~}} + public ${{format_field_name __code_style field.name}}; + {{~end~}} +} + + +{{~end~}} + +{{~for table in __tables + key_type = table.key_ttype + value_type = table.value_ttype + name = (full_name table) +~}} + +{{~if table.comment != '' ~}} +/** + * {{escape_comment table.comment}} + */ +{{~end~}} +class {{name}} { + {{~if table.is_map_table ~}} + private $_dataMap; + private $_dataList; + public function __construct($_json_) { + $this->_dataMap = []; + $this->_dataList = []; + foreach ($_json_ as $_json2_) { + {{deserialize '$_v' '$_json2_' value_type}}; + array_push($this->_dataList, $_v); + $this->_dataMap[$_v->{{format_field_name __code_style table.index_field.name}}] = $_v; + } + } + + public function getDataMap() { return $this->_dataMap; } + public function getDataList() { return $this->_dataList; } + + public function get($key) { return $this->_dataMap[$key]; } + + {{~else if table.is_list_table ~}} + private $_dataList; + + public function __construct($_json_) { + $this->_dataList = []; + foreach ($_json_ as $_json2_) { + {{deserialize '$_v' '$_json2_' value_type}}; + array_push($this->_dataList, $_v); + } + } + + public function getDataList() { return $this->_dataList; } + + public function get($index) { return $this->_dataList[$index]; } + + {{~else~}} + + private $_data; + public function __construct($_json_) { + if (count($_json_) != 1) throw new \Exception('table:{{table.name}} mode=one, but size != 1'); + {{deserialize '$this->_data' '$_json_[0]' value_type}}; + } + + public function getData() { return $this->_data; } + + {{~ for field in value_type.def_bean.hierarchy_export_fields ~}} +{{~if field.comment != '' ~}} + /** + * {{escape_comment field.comment}} + */ +{{~end~}} + public function get{{format_field_name __code_style field.name}}() { return $this->_data->{{format_field_name __code_style field.name}}; } + {{~end~}} + + {{end}} +} + +{{~end~}} + +class {{__name}} { + {{~ for table in __tables ~}} + private $_{{table.name}}; +{{~if table.comment != '' ~}} + /** + * {{escape_comment table.comment}} + */ +{{~end~}} + public function get{{table.name}}() { return $this->_{{table.name}}; } + {{~end~}} + + public function __construct($loader) { + {{~for table in __tables ~}} + $this->_{{table.name}} = new {{full_name table}}($loader('{{table.output_data_file}}')); + {{~end~}} + } +} + +{{~namespace_with_grace_end __namespace~}} diff --git a/LuBanConfig/Tools/Luban/Templates/python-json/schema.sbn b/LuBanConfig/Tools/Luban/Templates/python-json/schema.sbn new file mode 100644 index 000000000..dfa6e4bb0 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/python-json/schema.sbn @@ -0,0 +1,156 @@ +from enum import Enum +{{ + + func table_key_list + table = $0 + varName = $1 + indexList = table.index_list |array.each do; ret varName + '.' + (format_property_name __code_style $0.index_field.name); end; + ret array.join indexList ', ' + end + + func table_param_name_list + table = $0 + paramList = table.index_list |array.each do; ret $0.index_field.name; end + ret array.join paramList ', ' + end +}} + +{{~for enum in __enums~}} +{{~if enum.comment != '' ~}} +''' +{{enum.comment | html.escape}} +''' +{{~end~}} +class {{full_name enum}}(Enum): + {{~ for item in enum.items ~}} +{{~if item.comment_or_alias != '' ~}} + ''' + {{item.comment_or_alias | html.escape}} + ''' +{{~end~}} + {{item.name}} = {{item.value}} + {{~end~}} + {{~if enum.items.empty?~}} + pass + {{~end~}} + +{{~end~}} + +{{~for bean in __beans + name = (full_name bean) +~}} +class {{name}} {{if bean.parent_def_type}}({{full_name bean.parent_def_type}}){{end}}: +{{~if bean.is_abstract_type~}} + _childrenTypes = None + @staticmethod + def fromJson(_json_): + childrenTypes = {{name}}._childrenTypes + if not childrenTypes: + childrenTypes = {{name}}._childrenTypes = { + {{~ for child in bean.hierarchy_not_abstract_children~}} + '{{impl_data_type child bean}}': {{name}}, + {{~end~}} + } + type = _json_['$type'] + child = {{name}}._childrenTypes.get(type) + if child != None: + return child(_json_) + else: + raise Exception() +{{~end~}} + def __init__(self, _json_): + {{~if bean.parent_def_type~}} + {{full_name bean.parent_def_type}}.__init__(self, _json_) + {{~end~}} + {{~ for field in bean.export_fields ~}} + {{deserialize_field ('self.' + (format_field_name __code_style field.name)) '_json_' field.name field.ctype}} + {{~end~}} + {{~if bean.export_fields.empty?}} + pass + {{~end~}} + +{{~end~}} + +{{~for table in __tables + value_type = table.value_ttype +~}} +class {{full_name table}}: + {{~if table.is_map_table ~}} + + def __init__(self, _json_ ): + self._dataMap = {} + self._dataList = [] + + for _json2_ in _json_: + {{deserialize '_v' '_json2_' value_type}} + self._dataList.append(_v) + self._dataMap[_v.{{format_field_name __code_style table.index_field.name}}] = _v + + def getDataMap(self) : return self._dataMap + def getDataList(self) : return self._dataList + + def get(self, key) : return self._dataMap.get(key) + {{~else if table.is_union_index~}} + + def __init__(self, _json_ ): + self._dataMap = {} + self._dataList = [] + + for _json2_ in _json_: + {{deserialize '_v' '_json2_' value_type}} + self._dataList.append(_v) + self._dataMap[({{table_key_list table '_v'}})] = _v + + def getDataMap(self) : return self._dataMap + def getDataList(self) : return self._dataList + + def get(self, {{table_param_name_list table}}) : return self._dataMap.get(({{table_param_name_list table}})) + + {{~else if table.is_list_table ~}} + + def __init__(self, _json_ ): + self._dataList = [] + {{~for idx in table.index_list~}} + self._dataMap_{{idx.index_field.name}} = {} + {{~end~}} + for _json2_ in _json_: + {{deserialize '_v' '_json2_' value_type}} + self._dataList.append(_v) + {{~for idx in table.index_list~}} + self._dataMap_{{idx.index_field.name}}[_v.{{format_property_name __code_style idx.index_field.name}}] = _v + {{~end~}} + + def getDataList(self) : return self._dataList + + def get(self, index) : return self._dataList[index] + {{~for idx in table.index_list~}} + def get_by_{{format_property_name __code_style idx.index_field.name}}(self, key): return self._dataMap_{{idx.index_field.name}}.get(key) + {{~end~}} + {{~else~}} + + def __init__(self, _json_): + if (len(_json_) != 1): raise Exception('table mode=one, but size != 1') + {{deserialize 'self._data' '_json_[0]' value_type}} + + def getData(self) : return self._data + + {{~ for field in value_type.def_bean.hierarchy_export_fields ~}} +{{~if field.comment != '' + name = format_field_name __code_style field.name +~}} + ''' + {{escape_comment field.comment}} + ''' +{{~end~}} + def {{name}}(self) : return self._data.{{name}} + {{~end~}} + {{~end~}} + +{{~end~}} + + +class {{str_full_name __full_name}}: + def __init__(self, loader): + {{~for table in __tables ~}} + self.{{format_method_name __code_style table.name}} = {{full_name table}}(loader('{{table.output_data_file}}')); + {{~end~}} diff --git a/LuBanConfig/Tools/Luban/Templates/rust-bin/lib.sbn b/LuBanConfig/Tools/Luban/Templates/rust-bin/lib.sbn new file mode 100644 index 000000000..254110e73 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/rust-bin/lib.sbn @@ -0,0 +1,51 @@ +pub mod prelude{ + pub use crate::*; +{{~ for ns in __ns ~}} + pub use {{ns}}::*; +{{~end~}} +} +{{~ if __polymorphic_beans.count != 0 ~}} + +type AbstractBase = dyn std::any::Any + Sync + Send; + +pub trait GetBase<'a, T> { + fn get_base(&'a self) -> Result; +} +{{~end~}} + +#[derive(Debug)] +pub enum LubanError { + Loader(String), + Table(String), + Bean(String), + Polymorphic(String), + Unknown(String), +} + +impl std::fmt::Display for LubanError { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.write_str(match self { + LubanError::Loader(msg) | + LubanError::Table(msg) | + LubanError::Bean(msg) | + LubanError::Polymorphic(msg) | + LubanError::Unknown(msg) => msg, + }) + } +} + +pub struct Tables{ +{{~ for table in __tables ~}} + pub {{table.name}}: std::sync::Arc<{{full_name table}}>, +{{~end~}} +} + +impl Tables { + pub fn new Result>(loader: T) -> Result { + Ok(Tables { +{{~ for table in __tables ~}} + {{table.name}}: {{full_name table}}::new(loader("{{table.output_data_file}}")?)?, +{{~end~}} + }) + } +} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Templates/rust-bin/mod.sbn b/LuBanConfig/Tools/Luban/Templates/rust-bin/mod.sbn new file mode 100644 index 000000000..a844024b7 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/rust-bin/mod.sbn @@ -0,0 +1,280 @@ +{{~ for mod in __mod.sub_mods ~}} +pub mod {{mod.name}}; +{{~end~}} + +{{~ if __mod.name != '' ~}} +use super::*; +{{~end~}} +use luban_lib::*; + +{{~ for enum in __mod.enums ~}} +{{~ if enum.comment != '' ~}} +///{{enum.comment | html.escape}} +{{~end~}} +{{~ if enum.is_flags ~}} +bitflags::bitflags!{ + #[derive(Debug, Hash, Eq, PartialEq)] + pub struct {{enum.name}} : u32 { + {{~ for item in enum.items ~}} + {{~if item.comment_or_alias != '' ~}} + ///{{item.comment_or_alias | html.escape}} + {{~end~}} + const {{item.name}} = {{item.int_value}}; + {{~end~}} + } +} +{{~else~}} +#[derive(Debug, Hash, Eq, PartialEq, macros::EnumFromNum)] +pub enum {{enum.name}} { + {{~ for item in enum.items ~}} +{{~if item.comment_or_alias != '' ~}} + ///{{item.comment_or_alias | html.escape}} +{{~end~}} + {{item.name}} = {{item.value}}, + {{~end~}} + {{~if enum.items.empty?~}} + None + {{~end~}} +} + +impl From for {{enum.name}} { + fn from(value: i32) -> Self { + match value { + {{~ for item in enum.items ~}} + {{item.value}} => {{enum.name}}::{{item.name}}, + {{~end~}} + _ => panic!("Invalid value for {{enum.name}}:{}", value), + } + } +} + +{{~end~}} +{{~end~}} +{{~ for bean in __mod.beans + hierarchy_fields = bean.hierarchy_export_fields +~}} +#[derive(Debug)] +{{~if bean.parent != ''~}} +#[derive(macros::TryIntoBase)] +{{~end~}} +pub struct {{bean.name}} { + {{~ for field in hierarchy_fields ~}} +{{~if field.comment != '' ~}} + /// {{escape_comment field.comment}} +{{~end~}} + pub {{field.name}}: {{declaring_type_name field.ctype}}, + {{~end~}} +} +{{~if bean.is_abstract_type~}} + +impl {{bean.name}} { + pub fn new(mut buf: &mut ByteBuf) -> Result, LubanError> { + let type_id = buf.read_int(); + match type_id { + {{~for child in bean.hierarchy_not_abstract_children~}} + {{full_name child}}::__ID__ => Ok(std::sync::Arc::new({{full_name child}}::new(buf)?)), + {{~end~}} + _ => Err(LubanError::Bean(format!("Invalid type for {{bean.name}}:{}", type_id))) + } + } +} + +pub trait T{{bean.name}} { + {{~ for field in hierarchy_fields ~}} + fn {{getter_name field.name}}(&self) -> &{{declaring_type_name field.ctype}}; + {{~end~}} +} +{{~for child in bean.hierarchy_not_abstract_children~}} + +impl {{base_trait_name bean}} for {{full_name child}} { + {{~ for field in hierarchy_fields ~}} + fn {{getter_name field.name}}(&self) -> &{{declaring_type_name field.ctype}} { + &self.{{field.name}} + } + {{~end~}} +} +{{~end~}} + +impl<'a> GetBase<'a, &'a dyn {{base_trait_name bean}}> for AbstractBase { + fn get_base(&'a self) -> Result<&'a dyn {{base_trait_name bean}}, LubanError> { + {{~for child in bean.hierarchy_not_abstract_children~}} + let base: Result<&{{full_name child}}, _> = self.try_into(); + if let Ok(r) = base { + return Ok(r); + } + {{~end~}} + + Err(LubanError::Polymorphic(format!("Invalid type for {{bean.name}}"))) + } +} +{{~else~}} + +impl {{bean.name}}{ + pub fn new(mut buf: &mut ByteBuf) -> Result<{{bean.name}}, LubanError> { + {{~ for field in hierarchy_fields ~}} + {{deserialize field.name 'buf' field.ctype}} + {{~end~}} + + Ok({{bean.name}} { {{ for field in hierarchy_fields }}{{field.name}}, {{end}}}) + } + + pub const __ID__: i32 = {{bean.id}}; +} +{{~end~}} + +{{~end~}} +{{~ for table in __mod.tables + key_type = declaring_type_name table.key_ttype + if table.value_ttype.def_bean.is_abstract_type + value_type = declaring_type_name table.value_ttype + else + value_type = "std::sync::Arc<"+declaring_type_name table.value_ttype+">" + end + name = table.name + map_type = "std::collections::HashMap<"+key_type+", "+value_type+">" +~}} +{{ + + func index_type_name + ret (declaring_type_name $0.type) + end + + func table_union_map_type_name + ret 'std::collections::HashMap<(' + (array.each table.index_list @index_type_name | array.join ', ') + '), ' + value_type + '>' + end + + func table_key_list + varName = $0 + indexList = table.index_list |array.each do; ret varName + '.' + (format_property_name __code_style $0.index_field.name); end; + ret array.join indexList ', ' + end + + func table_param_def_list + paramList = table.index_list |array.each do; ret (declaring_type_name $0.type) + ' ' + $0.index_field.name; end + ret array.join paramList ', ' + end + + func table_param_name_list + paramList = table.index_list |array.each do; ret $0.index_field.name; end + ret array.join paramList ', ' + end +}} +{{~ if table.comment != '' ~}} +///{{table.comment | html.escape}} +{{~end~}} +#[derive(Debug)] +pub struct {{table.name}} { + {{~if table.is_map_table ~}} + pub data_list: Vec<{{value_type}}>, + pub data_map: {{map_type}}, + {{~else if table.is_list_table ~}} + pub data_list: Vec<{{value_type}}>, + {{~if table.is_union_index~}} + pub data_map_union: {{table_union_map_type_name}}, + {{~else if !table.index_list.empty?~}} + {{~for idx in table.index_list~}} + pub data_map_{{idx.index_field.name}}: std::collections::HashMap<{{declaring_type_name idx.type}}, {{value_type}}>, + {{~end~}} + {{~end~}} + {{~else~}} + pub data: {{declaring_type_name table.value_ttype}}, + {{~end~}} +} +{{~if table.is_map_table ~}} + +impl {{name}} { + pub fn new(mut buf: ByteBuf) -> Result, LubanError> { + let mut data_map: {{map_type}} = Default::default(); + let mut data_list: Vec<{{value_type}}> = vec![]; + + for x in (0..buf.read_size()).rev() { + {{deserialize_row "row" "buf" table.value_ttype}} + data_list.push(row.clone()); + {{~ if table.value_ttype.def_bean.is_abstract_type ~}} + let key = >::get_base(std::ops::Deref::deref(&row))?; + data_map.insert(key.{{getter_name table.index_field.name}}().clone(), row.clone()); + {{~else~}} + data_map.insert(row.{{table.index_field.name}}.clone(), row.clone()); + {{~end~}} + } + + Ok(std::sync::Arc::new({{name}} { data_map, data_list })) + } + + pub fn get(&self, key: &{{key_type}}) -> Option<{{value_type}}> { + self.data_map.get(key).map(|x| x.clone()) + } +} + +impl std::ops::Index<{{key_type}}> for {{name}} { + type Output = {{value_type}}; + + fn index(&self, index: {{key_type}}) -> &Self::Output { + &self.data_map.get(&index).unwrap() + } +} +{{~else if table.is_list_table ~}} + +impl {{name}} { + pub fn new(mut buf: ByteBuf) -> Result, LubanError> { + let mut data_list: Vec<{{value_type}}> = vec![]; + + for x in (0..buf.read_size()).rev() { + {{deserialize_row "row" "buf" table.value_ttype}} + data_list.push(row.clone()); + } + {{~if table.is_union_index~}} + let mut data_map_union: {{table_union_map_type_name}} = Default::default(); + for x in &data_list { + data_map_union.insert(({{table_key_list "x"}}.clone()), x.clone()); + } + {{~else if !table.index_list.empty?~}} + {{~for idx in table.index_list~}} + let mut data_map_{{idx.index_field.name}}: std::collections::HashMap<{{declaring_type_name idx.index_field.ctype}}, {{value_type}}> = Default::default(); + {{~end~}} + for x in &data_list { + {{~for idx in table.index_list~}} + data_map_{{idx.index_field.name}}.insert(x.{{format_property_name __code_style idx.index_field.name}}.clone(), x.clone()); + {{~end~}} + } + {{~end~}} + + Ok(std::sync::Arc::new({{table.name}} { + data_list, +{{~if table.is_union_index~}} + data_map_union, +{{~else if !table.index_list.empty?~}} + {{~for idx in table.index_list~}} + data_map_{{idx.index_field.name}}, + {{~end~}} +{{~end~}} + })) + } + + {{~if table.is_union_index~}} + pub fn get(&self, key: &({{array.each table.index_list @index_type_name | array.join ', '}})) -> Option<{{value_type}}> { + self.data_map_union.get(key).map(|x| x.clone()) + } + {{~else if !table.index_list.empty? ~}} + {{~for idx in table.index_list + index = format_property_name __code_style idx.index_field.name + ~}} + pub fn get_by_{{index}}(&self, key: &{{declaring_type_name idx.type}}) -> Option<{{value_type}}> { + self.data_map_{{index}}.get(key).map(|x| x.clone()) + } + {{~end~}} + {{~end~}} +} +{{~else~}} + +impl {{name}} { + pub fn new(mut buf: ByteBuf) -> Result, LubanError> { + let n = buf.read_size(); + if n != 1 { return Err(LubanError::Table(format!("table mode=one, but size != 1"))); } + {{deserialize 'data' 'buf' table.value_ttype}} + Ok(std::sync::Arc::new({{name}} { data })) + } +} +{{~end~}} + +{{~end~}} diff --git a/LuBanConfig/Tools/Luban/Templates/rust-bin/toml.sbn b/LuBanConfig/Tools/Luban/Templates/rust-bin/toml.sbn new file mode 100644 index 000000000..6345181f8 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/rust-bin/toml.sbn @@ -0,0 +1,11 @@ +[package] +name = "{{__name}}" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +bitflags = { version = "2.5.x" , features = ["serde"] } +macros = { path = "../macros" } +luban_lib = { path = "../../luban_lib" } \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Templates/rust-json/lib.sbn b/LuBanConfig/Tools/Luban/Templates/rust-json/lib.sbn new file mode 100644 index 000000000..8f906cc1e --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/rust-json/lib.sbn @@ -0,0 +1,51 @@ +pub mod prelude{ + pub use crate::*; +{{~ for ns in __ns ~}} + pub use {{ns}}::*; +{{~end~}} +} +{{~ if __polymorphic_beans.count != 0 ~}} + +type AbstractBase = dyn std::any::Any + Sync + Send; + +pub trait GetBase<'a, T> { + fn get_base(&'a self) -> Result; +} +{{~end~}} + +#[derive(Debug)] +pub enum LubanError { + Loader(String), + Table(String), + Bean(String), + Polymorphic(String), + Unknown(String), +} + +impl std::fmt::Display for LubanError { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.write_str(match self { + LubanError::Loader(msg) | + LubanError::Table(msg) | + LubanError::Bean(msg) | + LubanError::Polymorphic(msg) | + LubanError::Unknown(msg) => msg, + }) + } +} + +pub struct Tables{ +{{~ for table in __tables ~}} + pub {{table.name}}: std::sync::Arc<{{full_name table}}>, +{{~end~}} +} + +impl Tables { + pub fn new Result>(loader: T) -> Result { + Ok(Tables { +{{~ for table in __tables ~}} + {{table.name}}: {{full_name table}}::new(&loader("{{table.output_data_file}}")?)?, +{{~end~}} + }) + } +} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Templates/rust-json/mod.sbn b/LuBanConfig/Tools/Luban/Templates/rust-json/mod.sbn new file mode 100644 index 000000000..fc2f0be42 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/rust-json/mod.sbn @@ -0,0 +1,287 @@ +{{~ for mod in __mod.sub_mods ~}} +pub mod {{mod.name}}; +{{~end~}} + +{{~ if __mod.name != '' ~}} +use super::*; +{{~end~}} +use serde::Deserialize; + +{{~ for enum in __mod.enums ~}} +{{~ if enum.comment != '' ~}} +///{{enum.comment | html.escape}} +{{~end~}} +{{~ if enum.is_flags ~}} +bitflags::bitflags!{ + #[derive(Debug, Hash, Eq, PartialEq)] + pub struct {{enum.name}} : u32 { + {{~ for item in enum.items ~}} + {{~if item.comment_or_alias != '' ~}} + ///{{item.comment_or_alias | html.escape}} + {{~end~}} + const {{item.name}} = {{item.int_value}}; + {{~end~}} + } +} +{{~else~}} +#[derive(Deserialize, Debug, Hash, Eq, PartialEq, macros::EnumFromNum)] +pub enum {{enum.name}} { + {{~ for item in enum.items ~}} +{{~if item.comment_or_alias != '' ~}} + ///{{item.comment_or_alias | html.escape}} +{{~end~}} + {{item.name}} = {{item.value}}, + {{~end~}} + {{~if enum.items.empty?~}} + None + {{~end~}} +} + +impl From for {{enum.name}} { + fn from(value: i32) -> Self { + match value { + {{~ for item in enum.items ~}} + {{item.value}} => {{enum.name}}::{{item.name}}, + {{~end~}} + _ => panic!("Invalid value for {{enum.name}}:{}", value), + } + } +} + +{{~end~}} +{{~end~}} +{{~ for bean in __mod.beans + hierarchy_fields = bean.hierarchy_export_fields +~}} +#[derive(Debug)] +{{~if bean.parent != ''~}} +#[derive(macros::TryIntoBase)] +{{~end~}} +pub struct {{bean.name}} { + {{~ for field in hierarchy_fields ~}} +{{~if field.comment != '' ~}} + /// {{escape_comment field.comment}} +{{~end~}} + pub {{field.name}}: {{declaring_type_name field.ctype}}, + {{~end~}} +} +{{~if bean.is_abstract_type~}} + +impl {{bean.name}} { + pub fn new(json: &serde_json::Value) -> Result, LubanError> { + let type_id = json["$type"].as_str().unwrap(); + match type_id { + {{~for child in bean.hierarchy_not_abstract_children~}} + "{{impl_data_type child bean}}" => Ok(std::sync::Arc::new({{full_name child}}::new(json)?)), + {{~end~}} + _ => Err(LubanError::Bean(format!("Invalid type for {{bean.name}}:{}", type_id))) + } + } +} + +pub trait T{{bean.name}} { + {{~ for field in hierarchy_fields ~}} + fn {{getter_name field.name}}(&self) -> &{{declaring_type_name field.ctype}}; + {{~end~}} +} +{{~for child in bean.hierarchy_not_abstract_children~}} + +impl {{base_trait_name bean}} for {{full_name child}} { + {{~ for field in hierarchy_fields ~}} + fn {{getter_name field.name}}(&self) -> &{{declaring_type_name field.ctype}} { + &self.{{field.name}} + } + {{~end~}} +} +{{~end~}} + +impl<'a> GetBase<'a, &'a dyn {{base_trait_name bean}}> for AbstractBase { + fn get_base(&'a self) -> Result<&'a dyn {{base_trait_name bean}}, LubanError> { + {{~for child in bean.hierarchy_not_abstract_children~}} + let base: Result<&{{full_name child}}, _> = self.try_into(); + if let Ok(r) = base { + return Ok(r); + } + {{~end~}} + + Err(LubanError::Polymorphic(format!("Invalid type for {{bean.name}}"))) + } +} +{{~else~}} + +impl {{bean.name}}{ + pub fn new(json: &serde_json::Value) -> Result<{{bean.name}}, LubanError> { + {{~ for field in hierarchy_fields ~}} + {{deserialize_field field.name 'json' field.ctype}} + {{~end~}} + + Ok({{bean.name}} { {{ for field in hierarchy_fields }}{{field.name}}, {{end}}}) + } +} +{{~end~}} + +{{~end~}} +{{~ for table in __mod.tables + key_type = declaring_type_name table.key_ttype + if table.value_ttype.def_bean.is_abstract_type + value_type = declaring_type_name table.value_ttype + else + value_type = "std::sync::Arc<"+declaring_type_name table.value_ttype+">" + end + name = table.name + map_type = "std::collections::HashMap<"+key_type+", "+value_type+">" +~}} +{{ + + func index_type_name + ret (declaring_type_name $0.type) + end + + func table_union_map_type_name + ret 'std::collections::HashMap<(' + (array.each table.index_list @index_type_name | array.join ', ') + '), ' + value_type + '>' + end + + func table_key_list + varName = $0 + indexList = table.index_list |array.each do; ret varName + '.' + (format_property_name __code_style $0.index_field.name); end; + ret array.join indexList ', ' + end + + func table_param_def_list + paramList = table.index_list |array.each do; ret (declaring_type_name $0.type) + ' ' + $0.index_field.name; end + ret array.join paramList ', ' + end + + func table_param_name_list + paramList = table.index_list |array.each do; ret $0.index_field.name; end + ret array.join paramList ', ' + end +}} +{{~ if table.comment != '' ~}} +///{{table.comment | html.escape}} +{{~end~}} +#[derive(Debug)] +pub struct {{table.name}} { + {{~if table.is_map_table ~}} + pub data_list: Vec<{{value_type}}>, + pub data_map: {{map_type}}, + {{~else if table.is_list_table ~}} + pub data_list: Vec<{{value_type}}>, + {{~if table.is_union_index~}} + pub data_map_union: {{table_union_map_type_name}}, + {{~else if !table.index_list.empty?~}} + {{~for idx in table.index_list~}} + pub data_map_{{idx.index_field.name}}: std::collections::HashMap<{{declaring_type_name idx.type}}, {{value_type}}>, + {{~end~}} + {{~end~}} + {{~else~}} + pub data: {{declaring_type_name table.value_ttype}}, + {{~end~}} +} +{{~if table.is_map_table ~}} + +impl {{name}} { + pub fn new(json: &serde_json::Value) -> Result, LubanError> { + let mut data_map: {{map_type}} = Default::default(); + let mut data_list: Vec<{{value_type}}> = vec![]; + + for x in json.as_array().unwrap() { + {{~ if table.value_ttype.is_bean ~}} + {{deserialize_row "row" "x" table.value_ttype}} + {{~else~}} + let row: {{value_type}} = std::sync::Arc::new(serde_json::from_value(x.clone()).unwrap()); + {{~end~}} + data_list.push(row.clone()); + {{~ if table.value_ttype.def_bean.is_abstract_type ~}} + let key = >::get_base(std::ops::Deref::deref(&row))?; + data_map.insert(key.{{getter_name table.index_field.name}}().clone(), row.clone()); + {{~else~}} + data_map.insert(row.{{table.index_field.name}}.clone(), row.clone()); + {{~end~}} + } + + Ok(std::sync::Arc::new({{name}} { data_map, data_list })) + } + + pub fn get(&self, key: &{{key_type}}) -> Option<{{value_type}}> { + self.data_map.get(key).map(|x| x.clone()) + } +} + +impl std::ops::Index<{{key_type}}> for {{name}} { + type Output = {{value_type}}; + + fn index(&self, index: {{key_type}}) -> &Self::Output { + &self.data_map.get(&index).unwrap() + } +} +{{~else if table.is_list_table ~}} + +impl {{name}} { + pub fn new(json: &serde_json::Value) -> Result, LubanError> { + let mut data_list: Vec<{{value_type}}> = vec![]; + + for x in json.as_array().unwrap() { + {{~ if table.value_ttype.is_bean ~}} + {{deserialize_row "row" "x" table.value_ttype}} + {{~else~}} + let row: {{value_type}} = std::sync::Arc::new(serde_json::from_value(x.clone()).unwrap()); + {{~end~}} + data_list.push(row.clone()); + } + {{~if table.is_union_index~}} + let mut data_map_union: {{table_union_map_type_name}} = Default::default(); + for x in &data_list { + data_map_union.insert(({{table_key_list "x"}}.clone()), x.clone()); + } + {{~else if !table.index_list.empty?~}} + {{~for idx in table.index_list~}} + let mut data_map_{{idx.index_field.name}}: std::collections::HashMap<{{declaring_type_name idx.index_field.ctype}}, {{value_type}}> = Default::default(); + {{~end~}} + for x in &data_list { + {{~for idx in table.index_list~}} + data_map_{{idx.index_field.name}}.insert(x.{{format_property_name __code_style idx.index_field.name}}.clone(), x.clone()); + {{~end~}} + } + {{~end~}} + + Ok(std::sync::Arc::new({{table.name}} { + data_list, +{{~if table.is_union_index~}} + data_map_union, +{{~else if !table.index_list.empty?~}} + {{~for idx in table.index_list~}} + data_map_{{idx.index_field.name}}, + {{~end~}} +{{~end~}} + })) + } + + {{~if table.is_union_index~}} + pub fn get(&self, key: &({{array.each table.index_list @index_type_name | array.join ', '}})) -> Option<{{value_type}}> { + self.data_map_union.get(key).map(|x| x.clone()) + } + {{~else if !table.index_list.empty? ~}} + {{~for idx in table.index_list + index = format_property_name __code_style idx.index_field.name + ~}} + pub fn get_by_{{index}}(&self, key: &{{declaring_type_name idx.type}}) -> Option<{{value_type}}> { + self.data_map_{{index}}.get(key).map(|x| x.clone()) + } + {{~end~}} + {{~end~}} +} +{{~else~}} + +impl {{name}} { + pub fn new(json: &serde_json::Value) -> Result, LubanError> { + let json = json.as_array().unwrap(); + let n = json.len(); + if n != 1 { return Err(LubanError::Table(format!("table mode=one, but size != 1"))); } + let data = {{full_name table.value_ttype.def_bean}}::new(&json[0])?; + Ok(std::sync::Arc::new({{name}} { data })) + } +} +{{~end~}} + +{{~end~}} diff --git a/LuBanConfig/Tools/Luban/Templates/rust-json/toml.sbn b/LuBanConfig/Tools/Luban/Templates/rust-json/toml.sbn new file mode 100644 index 000000000..40870c70a --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/rust-json/toml.sbn @@ -0,0 +1,12 @@ +[package] +name = "{{__name}}" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +serde = { version = "1.0.x", features = ["derive"] } +serde_json = "1.0.x" +bitflags = { version = "2.5.x" , features = ["serde"]} +macros = {path = "../macros"} \ No newline at end of file diff --git a/LuBanConfig/Tools/Luban/Templates/typescript-bin/schema.sbn b/LuBanConfig/Tools/Luban/Templates/typescript-bin/schema.sbn new file mode 100644 index 000000000..f8f9f9671 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/typescript-bin/schema.sbn @@ -0,0 +1,234 @@ + +import ByteBuf from '../bright/serialization/ByteBuf' + +{{~for enum in __enums~}} +{{namespace_with_grace_begin enum.namespace}} +{{~if enum.comment != '' ~}} +/** + * {{enum.comment | html.escape}} + */ +{{~end~}} +export enum {{enum.name}} { + {{~for item in enum.items ~}} +{{~if item.comment != '' ~}} + /** + * {{escape_comment item.comment}} + */ +{{~end~}} + {{item.name}} = {{item.value}}, + {{~end~}} +} + +{{namespace_with_grace_end enum.namespace}} +{{~end~}} + + +{{~ +func get_ref_name + ret (format_property_name __code_style $0.name) + '_ref' +end + +func generate_resolve_field_ref + field = $0 + fieldName = format_property_name __code_style field.name + refTable = get_ref_table field + if can_generate_ref field + tableName = refTable.name + if field.is_nullable + ret 'this.'+(get_ref_name field) + ' = this.' + fieldName + '!= null ? tables.' + tableName + '.get(this.' + fieldName + ') : null' + else + ret 'this.'+(get_ref_name field) + ' = tables.' + tableName + '.get(this.' + fieldName + ')' + end + else + if (is_field_bean_need_resolve_ref field) + ret 'this.'+fieldName + '?.resolve(tables);' + else if (is_field_array_like_need_resolve_ref field) + ret 'for (let _e of ' + 'this.' + fieldName + ') { _e?.resolve(tables); }' + else if (is_field_map_need_resolve_ref field) + ret 'for (let [_, _e] of ' + 'this.' + fieldName + ') { _e?.resolve(tables); }' + else + ret '' + end + end +end +~}} + +{{~for bean in __beans~}} + +{{namespace_with_grace_begin bean.namespace}} +{{~if bean.comment != '' ~}} +/** + * {{escape_comment bean.comment}} + */ +{{~end~}} +export {{if bean.is_abstract_type}}abstract {{end}}class {{bean.name}}{{if bean.parent_def_type}} extends {{bean.parent_def_type.full_name}}{{end}} { +{{~if bean.is_abstract_type~}} + static constructorFrom(_buf_: ByteBuf): {{bean.name}}{ + switch (_buf_.ReadInt()) { + {{~ for child in bean.hierarchy_not_abstract_children~}} + case {{child.id}}: return new {{child.full_name}}(_buf_) + {{~end~}} + default: throw new Error() + } + } +{{~end~}} + + constructor(_buf_: ByteBuf) { + {{~if bean.parent_def_type~}} + super(_buf_) + {{~end~}} + {{~ for field in bean.export_fields ~}} + {{deserialize ('this.' + format_field_name __code_style field.name) '_buf_' field.ctype}} + {{~end~}} + } + + {{~ for field in bean.export_fields ~}} +{{~if field.comment != '' ~}} + /** + * {{escape_comment field.comment}} + */ +{{~end~}} + readonly {{format_field_name __code_style field.name}}: {{declaring_type_name field.ctype}} + {{~if can_generate_ref field~}} + {{get_ref_name field}}: {{declaring_type_name (get_ref_type field)}} | undefined + {{~end~}} + {{~end~}} + + resolve(tables:{{__name}}) { + {{~if bean.parent_def_type~}} + super.resolve(tables) + {{~end~}} + {{~ for field in bean.export_fields ~}} + {{generate_resolve_field_ref field}} + {{~end~}} + } +} + +{{namespace_with_grace_end bean.namespace}} + +{{~end~}} + +{{~for table in __tables + key_type = table.key_ttype + value_type = table.value_ttype +~}} + +{{namespace_with_grace_begin table.namespace}} +{{~if table.comment != '' ~}} +/** + * {{escape_comment table.comment}} + */ +{{~end~}} +export class {{table.name}} { + {{~if table.is_map_table ~}} + private _dataMap: Map<{{declaring_type_name key_type}}, {{declaring_type_name value_type}}> + private _dataList: {{declaring_type_name value_type}}[] + constructor(_buf_: ByteBuf) { + this._dataMap = new Map<{{declaring_type_name key_type}}, {{declaring_type_name value_type}}>() + this._dataList = [] + for(let n = _buf_.ReadInt(); n > 0; n--) { + let _v: {{declaring_type_name value_type}} + {{deserialize '_v' '_buf_' value_type}} + this._dataList.push(_v) + this._dataMap.set(_v.{{format_field_name __code_style table.index_field.name}}, _v) + } + } + + getDataMap(): Map<{{declaring_type_name key_type}}, {{declaring_type_name value_type}}> { return this._dataMap; } + getDataList(): {{declaring_type_name value_type}}[] { return this._dataList; } + + get(key: {{declaring_type_name key_type}}): {{declaring_type_name value_type}} | undefined { + return this._dataMap.get(key); + } + + resolve(tables:{{__name}}) { + for(let data of this._dataList) + { + data.resolve(tables) + } + } + {{~else if table.is_list_table ~}} + private _dataList: {{declaring_type_name value_type}}[] + + constructor(_buf_: ByteBuf) { + this._dataList = [] + for(let n = _buf_.ReadInt(); n > 0; n--) { + let _v: {{declaring_type_name value_type}} + {{deserialize '_v' '_buf_' value_type}} + this._dataList.push(_v) + } + } + + getDataList(): {{declaring_type_name value_type}}[] { return this._dataList } + + get(index: number): {{declaring_type_name value_type}} | undefined { return this._dataList[index] } + + resolve(tables:{{__name}}) { + for(let data of this._dataList) + { + data.resolve(tables) + } + } + {{~else~}} + + private _data: {{declaring_type_name value_type}} + constructor(_buf_: ByteBuf) { + if (_buf_.ReadInt() != 1) throw new Error('table mode=one, but size != 1') + {{deserialize 'this._data' '_buf_' value_type}} + } + + getData(): {{declaring_type_name value_type}} { return this._data; } + + {{~ for field in value_type.def_bean.hierarchy_export_fields ~}} +{{~if field.comment != '' ~}} + /** + * {{escape_comment field.comment}} + */ +{{~end~}} + get {{format_field_name __code_style field.name}}(): {{declaring_type_name field.ctype}} { return this._data.{{format_field_name __code_style field.name}}; } + {{~if can_generate_ref field~}} + get {{format_field_name __code_style field.name}}_ref(): {{declaring_type_name (get_ref_type field)}} | undefined { return this._data.{{format_field_name __code_style field.name}}_ref; } + {{~end~}} + {{~end~}} + + resolve(tables:{{__name}}) { + this._data.resolve(tables) + } + {{end}} +} +{{namespace_with_grace_end table.namespace}} + +{{~end~}} + + +type ByteBufLoader = (file: string) => ByteBuf + +export class {{__name}} { + {{~ for table in __tables ~}} + private _{{table.name}}: {{table.full_name}} +{{~if table.comment != '' ~}} + /** + * {{escape_comment table.comment}} + */ +{{~end~}} + get {{table.name}}(): {{table.full_name}} { return this._{{table.name}};} + {{~end~}} + + static getTableNames(): string[] { + let names: string[] = []; + {{~for table in __tables ~}} + names.push('{{table.output_data_file}}'); + {{~end~}} + return names; + } + + constructor(loader: ByteBufLoader) { + {{~for table in __tables ~}} + this._{{table.name}} = new {{table.full_name}}(loader('{{table.output_data_file}}')) + {{~end~}} + + {{~for table in __tables ~}} + this._{{table.name}}.resolve(this) + {{~end~}} + } +} diff --git a/LuBanConfig/Tools/Luban/Templates/typescript-json/schema.sbn b/LuBanConfig/Tools/Luban/Templates/typescript-json/schema.sbn new file mode 100644 index 000000000..ed7942231 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/typescript-json/schema.sbn @@ -0,0 +1,226 @@ + +{{~for enum in __enums~}} +{{namespace_with_grace_begin enum.namespace}} +{{~if enum.comment != '' ~}} +/** + * {{enum.comment | html.escape}} + */ +{{~end~}} +export enum {{enum.name}} { + {{~for item in enum.items ~}} +{{~if item.comment != '' ~}} + /** + * {{escape_comment item.comment}} + */ +{{~end~}} + {{item.name}} = {{item.value}}, + {{~end~}} +} + +{{namespace_with_grace_end enum.namespace}} +{{~end~}} + + +{{~ +func get_ref_name + ret (format_property_name __code_style $0.name) + '_ref' +end + +func generate_resolve_field_ref + field = $0 + fieldName = format_property_name __code_style field.name + refTable = get_ref_table field + if can_generate_ref field + tableName = refTable.name + if field.is_nullable + ret 'this.'+(get_ref_name field) + ' = this.' + fieldName + '!= null ? tables.' + tableName + '.get(this.' + fieldName + ') : null' + else + ret 'this.'+(get_ref_name field) + ' = tables.' + tableName + '.get(this.' + fieldName + ')' + end + else + if (is_field_bean_need_resolve_ref field) + ret 'this.'+fieldName + '?.resolve(tables);' + else if (is_field_array_like_need_resolve_ref field) + ret 'for (let _e of ' + 'this.' + fieldName + ') { _e?.resolve(tables); }' + else if (is_field_map_need_resolve_ref field) + ret 'for (let [_, _e] of ' + 'this.' + fieldName + ') { _e?.resolve(tables); }' + else + ret '' + end + end +end +~}} + +{{~for bean in __beans~}} + +{{namespace_with_grace_begin bean.namespace}} +{{~if bean.comment != '' ~}} +/** + * {{escape_comment bean.comment}} + */ +{{~end~}} +export {{if bean.is_abstract_type}}abstract {{end}}class {{bean.name}}{{if bean.parent_def_type}} extends {{bean.parent_def_type.full_name}}{{end}} { +{{~if bean.is_abstract_type~}} + static constructorFrom(_json_: any): {{bean.name}}{ + switch (_json_["$type"]) { + {{~ for child in bean.hierarchy_not_abstract_children~}} + case '{{impl_data_type child bean}}': return new {{child.full_name}}(_json_) + {{~end~}} + default: throw new Error() + } + } +{{~end~}} + + constructor(_json_: any) { + {{~if bean.parent_def_type~}} + super(_json_) + {{~end~}} + {{~ for field in bean.export_fields ~}} + {{~if !field.ctype.is_nullable~}} + if (_json_.{{field.name}} === undefined) { throw new Error() } + {{~end~}} + {{deserialize ('this.' + format_field_name __code_style field.name) ( '_json_.' + field.name) field.ctype}} + {{~end~}} + } + + {{~ for field in bean.export_fields ~}} +{{~if field.comment != '' ~}} + /** + * {{escape_comment field.comment}} + */ +{{~end~}} + readonly {{format_field_name __code_style field.name}}: {{declaring_type_name field.ctype}} + {{~if can_generate_ref field~}} + {{get_ref_name field}}: {{declaring_type_name (get_ref_type field)}} | undefined + {{~end~}} + {{~end~}} + + resolve(tables:{{__name}}) { + {{~if bean.parent_def_type~}} + super.resolve(tables) + {{~end~}} + {{~ for field in bean.export_fields ~}} + {{generate_resolve_field_ref field}} + {{~end~}} + } +} + +{{namespace_with_grace_end bean.namespace}} + +{{~end~}} + +{{~for table in __tables + key_type = table.key_ttype + value_type = table.value_ttype +~}} + +{{namespace_with_grace_begin table.namespace}} +{{~if table.comment != '' ~}} +/** + * {{escape_comment table.comment}} + */ +{{~end~}} +export class {{table.name}} { + {{~if table.is_map_table ~}} + private _dataMap: Map<{{declaring_type_name key_type}}, {{declaring_type_name value_type}}> + private _dataList: {{declaring_type_name value_type}}[] + constructor(_json_: any) { + this._dataMap = new Map<{{declaring_type_name key_type}}, {{declaring_type_name value_type}}>() + this._dataList = [] + for(var _json2_ of _json_) { + let _v: {{declaring_type_name value_type}} + {{deserialize '_v' '_json2_' value_type}} + this._dataList.push(_v) + this._dataMap.set(_v.{{format_field_name __code_style table.index_field.name}}, _v) + } + } + + getDataMap(): Map<{{declaring_type_name key_type}}, {{declaring_type_name value_type}}> { return this._dataMap; } + getDataList(): {{declaring_type_name value_type}}[] { return this._dataList; } + + get(key: {{declaring_type_name key_type}}): {{declaring_type_name value_type}} | undefined { return this._dataMap.get(key); } + + resolve(tables:{{__name}}) { + for(let data of this._dataList) + { + data.resolve(tables) + } + } + {{~else if table.is_list_table ~}} + private _dataList: {{declaring_type_name value_type}}[] + + constructor(_json_: any) { + this._dataList = [] + for(var _json2_ of _json_) { + let _v: {{declaring_type_name value_type}} + {{deserialize '_v' '_json2_' value_type}} + this._dataList.push(_v) + } + } + + getDataList(): {{declaring_type_name value_type}}[] { return this._dataList } + + get(index: number): {{declaring_type_name value_type}} | undefined { return this._dataList[index] } + + resolve(tables:{{__name}}) { + for(let data of this._dataList) + { + data.resolve(tables) + } + } + {{~else~}} + + private _data: {{declaring_type_name value_type}} + constructor(_json_: any) { + if (_json_.length != 1) throw new Error('table mode=one, but size != 1') + {{deserialize 'this._data' '_json_[0]' value_type}} + } + + getData(): {{declaring_type_name value_type}} { return this._data; } + + {{~ for field in value_type.def_bean.hierarchy_export_fields ~}} +{{~if field.comment != '' ~}} + /** + * {{escape_comment field.comment}} + */ +{{~end~}} + get {{format_field_name __code_style field.name}}(): {{declaring_type_name field.ctype}} { return this._data.{{format_field_name __code_style field.name}}; } + {{~if can_generate_ref field~}} + get {{format_field_name __code_style field.name}}_ref(): {{declaring_type_name (get_ref_type field)}} | undefined { return this._data.{{format_field_name __code_style field.name}}_ref; } + {{~end~}} + {{~end~}} + + resolve(tables:{{__name}}) + { + this._data.resolve(tables) + } + {{end}} +} +{{namespace_with_grace_end table.namespace}} + +{{~end~}} + + +type JsonLoader = (file: string) => any + +export class {{__name}} { + {{~ for table in __tables ~}} + private _{{table.name}}: {{table.full_name}} +{{~if table.comment != '' ~}} + /** + * {{escape_comment table.comment}} + */ +{{~end~}} + get {{table.name}}(): {{table.full_name}} { return this._{{table.name}};} + {{~end~}} + + constructor(loader: JsonLoader) { + {{~for table in __tables ~}} + this._{{table.name}} = new {{table.full_name}}(loader('{{table.output_data_file}}')) + {{~end~}} + + {{~for table in __tables ~}} + this._{{table.name}}.resolve(this) + {{~end~}} + } +} diff --git a/LuBanConfig/Tools/Luban/Templates/typescript-protobuf/schema.sbn b/LuBanConfig/Tools/Luban/Templates/typescript-protobuf/schema.sbn new file mode 100644 index 000000000..0538d7b57 --- /dev/null +++ b/LuBanConfig/Tools/Luban/Templates/typescript-protobuf/schema.sbn @@ -0,0 +1,31 @@ +import pb from 'pb'; + +type BufLoader = (file: string) => Uint8Array; + +export class {{__name}} { + {{~ for table in __tables ~}} + private _{{table.name}}: pb.cfg.{{table.name}} +{{~if table.comment != '' ~}} + /** + * {{escape_comment table.comment}} + */ +{{~end~}} + get {{table.name}}(): pb.cfg.{{table.name}} { return this._{{table.name}};} + {{~end~}} + + static getTableNames(): string[] { + let names: string[] = []; + {{~for table in __tables ~}} + names.push('{{table.output_data_file}}'); + {{~end~}} + return names; + } + + constructor(loader: BufLoader) { + let buffer: Uint8Array; + {{~for table in __tables ~}} + buffer = loader('{{table.output_data_file}}'); + this._{{table.name}} = pb.cfg.{{table.name}}.decode(buffer, buffer.length); + {{~end~}} + } +} diff --git a/LuBanConfig/Tools/Luban/Ude.NetStandard.dll b/LuBanConfig/Tools/Luban/Ude.NetStandard.dll new file mode 100644 index 000000000..2cb9b2f50 Binary files /dev/null and b/LuBanConfig/Tools/Luban/Ude.NetStandard.dll differ diff --git a/LuBanConfig/Tools/Luban/YamlDotNet.NetCore.dll b/LuBanConfig/Tools/Luban/YamlDotNet.NetCore.dll new file mode 100644 index 000000000..1c598d789 Binary files /dev/null and b/LuBanConfig/Tools/Luban/YamlDotNet.NetCore.dll differ diff --git a/LuBanConfig/Tools/Luban/de/Neo.Lua.resources.dll b/LuBanConfig/Tools/Luban/de/Neo.Lua.resources.dll new file mode 100644 index 000000000..69bb38529 Binary files /dev/null and b/LuBanConfig/Tools/Luban/de/Neo.Lua.resources.dll differ diff --git a/LuBanConfig/Tools/Luban/nlog.xml b/LuBanConfig/Tools/Luban/nlog.xml new file mode 100644 index 000000000..8c390bc00 --- /dev/null +++ b/LuBanConfig/Tools/Luban/nlog.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + diff --git a/LuBanConfig/Tools/build-luban.bat b/LuBanConfig/Tools/build-luban.bat new file mode 100644 index 000000000..3b26f43c8 --- /dev/null +++ b/LuBanConfig/Tools/build-luban.bat @@ -0,0 +1,5 @@ +rd /s /q Luban + +dotnet build ../../luban/src/Luban/Luban.csproj -c Release -o Luban + +pause \ No newline at end of file diff --git a/LuBanConfig/Tools/build-luban.sh b/LuBanConfig/Tools/build-luban.sh new file mode 100644 index 000000000..c09a72867 --- /dev/null +++ b/LuBanConfig/Tools/build-luban.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +[ -d Luban ] && rm -rf Luban + +dotnet build ../../luban/src/Luban/Luban.csproj -c Release -o Luban \ No newline at end of file diff --git a/LuBanConfig/Tools/protoc/bin/protoc.exe b/LuBanConfig/Tools/protoc/bin/protoc.exe new file mode 100644 index 000000000..607e7841f Binary files /dev/null and b/LuBanConfig/Tools/protoc/bin/protoc.exe differ diff --git a/LuBanConfig/Tools/protoc/include/google/protobuf/any.proto b/LuBanConfig/Tools/protoc/include/google/protobuf/any.proto new file mode 100644 index 000000000..eff44e509 --- /dev/null +++ b/LuBanConfig/Tools/protoc/include/google/protobuf/any.proto @@ -0,0 +1,162 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +option go_package = "google.golang.org/protobuf/types/known/anypb"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "AnyProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; + +// `Any` contains an arbitrary serialized protocol buffer message along with a +// URL that describes the type of the serialized message. +// +// Protobuf library provides support to pack/unpack Any values in the form +// of utility functions or additional generated methods of the Any type. +// +// Example 1: Pack and unpack a message in C++. +// +// Foo foo = ...; +// Any any; +// any.PackFrom(foo); +// ... +// if (any.UnpackTo(&foo)) { +// ... +// } +// +// Example 2: Pack and unpack a message in Java. +// +// Foo foo = ...; +// Any any = Any.pack(foo); +// ... +// if (any.is(Foo.class)) { +// foo = any.unpack(Foo.class); +// } +// // or ... +// if (any.isSameTypeAs(Foo.getDefaultInstance())) { +// foo = any.unpack(Foo.getDefaultInstance()); +// } +// +// Example 3: Pack and unpack a message in Python. +// +// foo = Foo(...) +// any = Any() +// any.Pack(foo) +// ... +// if any.Is(Foo.DESCRIPTOR): +// any.Unpack(foo) +// ... +// +// Example 4: Pack and unpack a message in Go +// +// foo := &pb.Foo{...} +// any, err := anypb.New(foo) +// if err != nil { +// ... +// } +// ... +// foo := &pb.Foo{} +// if err := any.UnmarshalTo(foo); err != nil { +// ... +// } +// +// The pack methods provided by protobuf library will by default use +// 'type.googleapis.com/full.type.name' as the type URL and the unpack +// methods only use the fully qualified type name after the last '/' +// in the type URL, for example "foo.bar.com/x/y.z" will yield type +// name "y.z". +// +// JSON +// ==== +// The JSON representation of an `Any` value uses the regular +// representation of the deserialized, embedded message, with an +// additional field `@type` which contains the type URL. Example: +// +// package google.profile; +// message Person { +// string first_name = 1; +// string last_name = 2; +// } +// +// { +// "@type": "type.googleapis.com/google.profile.Person", +// "firstName": , +// "lastName": +// } +// +// If the embedded message type is well-known and has a custom JSON +// representation, that representation will be embedded adding a field +// `value` which holds the custom JSON in addition to the `@type` +// field. Example (for message [google.protobuf.Duration][]): +// +// { +// "@type": "type.googleapis.com/google.protobuf.Duration", +// "value": "1.212s" +// } +// +message Any { + // A URL/resource name that uniquely identifies the type of the serialized + // protocol buffer message. This string must contain at least + // one "/" character. The last segment of the URL's path must represent + // the fully qualified name of the type (as in + // `path/google.protobuf.Duration`). The name should be in a canonical form + // (e.g., leading "." is not accepted). + // + // In practice, teams usually precompile into the binary all types that they + // expect it to use in the context of Any. However, for URLs which use the + // scheme `http`, `https`, or no scheme, one can optionally set up a type + // server that maps type URLs to message definitions as follows: + // + // * If no scheme is provided, `https` is assumed. + // * An HTTP GET on the URL must yield a [google.protobuf.Type][] + // value in binary format, or produce an error. + // * Applications are allowed to cache lookup results based on the + // URL, or have them precompiled into a binary to avoid any + // lookup. Therefore, binary compatibility needs to be preserved + // on changes to types. (Use versioned type names to manage + // breaking changes.) + // + // Note: this functionality is not currently available in the official + // protobuf release, and it is not used for type URLs beginning with + // type.googleapis.com. As of May 2023, there are no widely used type server + // implementations and no plans to implement one. + // + // Schemes other than `http`, `https` (or the empty scheme) might be + // used with implementation specific semantics. + // + string type_url = 1; + + // Must be a valid serialized protocol buffer of the above specified type. + bytes value = 2; +} diff --git a/LuBanConfig/Tools/protoc/include/google/protobuf/api.proto b/LuBanConfig/Tools/protoc/include/google/protobuf/api.proto new file mode 100644 index 000000000..422235167 --- /dev/null +++ b/LuBanConfig/Tools/protoc/include/google/protobuf/api.proto @@ -0,0 +1,207 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +import "google/protobuf/source_context.proto"; +import "google/protobuf/type.proto"; + +option java_package = "com.google.protobuf"; +option java_outer_classname = "ApiProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option go_package = "google.golang.org/protobuf/types/known/apipb"; + +// Api is a light-weight descriptor for an API Interface. +// +// Interfaces are also described as "protocol buffer services" in some contexts, +// such as by the "service" keyword in a .proto file, but they are different +// from API Services, which represent a concrete implementation of an interface +// as opposed to simply a description of methods and bindings. They are also +// sometimes simply referred to as "APIs" in other contexts, such as the name of +// this message itself. See https://cloud.google.com/apis/design/glossary for +// detailed terminology. +message Api { + // The fully qualified name of this interface, including package name + // followed by the interface's simple name. + string name = 1; + + // The methods of this interface, in unspecified order. + repeated Method methods = 2; + + // Any metadata attached to the interface. + repeated Option options = 3; + + // A version string for this interface. If specified, must have the form + // `major-version.minor-version`, as in `1.10`. If the minor version is + // omitted, it defaults to zero. If the entire version field is empty, the + // major version is derived from the package name, as outlined below. If the + // field is not empty, the version in the package name will be verified to be + // consistent with what is provided here. + // + // The versioning schema uses [semantic + // versioning](http://semver.org) where the major version number + // indicates a breaking change and the minor version an additive, + // non-breaking change. Both version numbers are signals to users + // what to expect from different versions, and should be carefully + // chosen based on the product plan. + // + // The major version is also reflected in the package name of the + // interface, which must end in `v`, as in + // `google.feature.v1`. For major versions 0 and 1, the suffix can + // be omitted. Zero major versions must only be used for + // experimental, non-GA interfaces. + // + string version = 4; + + // Source context for the protocol buffer service represented by this + // message. + SourceContext source_context = 5; + + // Included interfaces. See [Mixin][]. + repeated Mixin mixins = 6; + + // The source syntax of the service. + Syntax syntax = 7; +} + +// Method represents a method of an API interface. +message Method { + // The simple name of this method. + string name = 1; + + // A URL of the input message type. + string request_type_url = 2; + + // If true, the request is streamed. + bool request_streaming = 3; + + // The URL of the output message type. + string response_type_url = 4; + + // If true, the response is streamed. + bool response_streaming = 5; + + // Any metadata attached to the method. + repeated Option options = 6; + + // The source syntax of this method. + Syntax syntax = 7; +} + +// Declares an API Interface to be included in this interface. The including +// interface must redeclare all the methods from the included interface, but +// documentation and options are inherited as follows: +// +// - If after comment and whitespace stripping, the documentation +// string of the redeclared method is empty, it will be inherited +// from the original method. +// +// - Each annotation belonging to the service config (http, +// visibility) which is not set in the redeclared method will be +// inherited. +// +// - If an http annotation is inherited, the path pattern will be +// modified as follows. Any version prefix will be replaced by the +// version of the including interface plus the [root][] path if +// specified. +// +// Example of a simple mixin: +// +// package google.acl.v1; +// service AccessControl { +// // Get the underlying ACL object. +// rpc GetAcl(GetAclRequest) returns (Acl) { +// option (google.api.http).get = "/v1/{resource=**}:getAcl"; +// } +// } +// +// package google.storage.v2; +// service Storage { +// rpc GetAcl(GetAclRequest) returns (Acl); +// +// // Get a data record. +// rpc GetData(GetDataRequest) returns (Data) { +// option (google.api.http).get = "/v2/{resource=**}"; +// } +// } +// +// Example of a mixin configuration: +// +// apis: +// - name: google.storage.v2.Storage +// mixins: +// - name: google.acl.v1.AccessControl +// +// The mixin construct implies that all methods in `AccessControl` are +// also declared with same name and request/response types in +// `Storage`. A documentation generator or annotation processor will +// see the effective `Storage.GetAcl` method after inherting +// documentation and annotations as follows: +// +// service Storage { +// // Get the underlying ACL object. +// rpc GetAcl(GetAclRequest) returns (Acl) { +// option (google.api.http).get = "/v2/{resource=**}:getAcl"; +// } +// ... +// } +// +// Note how the version in the path pattern changed from `v1` to `v2`. +// +// If the `root` field in the mixin is specified, it should be a +// relative path under which inherited HTTP paths are placed. Example: +// +// apis: +// - name: google.storage.v2.Storage +// mixins: +// - name: google.acl.v1.AccessControl +// root: acls +// +// This implies the following inherited HTTP annotation: +// +// service Storage { +// // Get the underlying ACL object. +// rpc GetAcl(GetAclRequest) returns (Acl) { +// option (google.api.http).get = "/v2/acls/{resource=**}:getAcl"; +// } +// ... +// } +message Mixin { + // The fully qualified name of the interface which is included. + string name = 1; + + // If non-empty specifies a path under which inherited HTTP paths + // are rooted. + string root = 2; +} diff --git a/LuBanConfig/Tools/protoc/include/google/protobuf/compiler/plugin.proto b/LuBanConfig/Tools/protoc/include/google/protobuf/compiler/plugin.proto new file mode 100644 index 000000000..1a8098681 --- /dev/null +++ b/LuBanConfig/Tools/protoc/include/google/protobuf/compiler/plugin.proto @@ -0,0 +1,191 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Author: kenton@google.com (Kenton Varda) +// +// protoc (aka the Protocol Compiler) can be extended via plugins. A plugin is +// just a program that reads a CodeGeneratorRequest from stdin and writes a +// CodeGeneratorResponse to stdout. +// +// Plugins written using C++ can use google/protobuf/compiler/plugin.h instead +// of dealing with the raw protocol defined here. +// +// A plugin executable needs only to be placed somewhere in the path. The +// plugin should be named "protoc-gen-$NAME", and will then be used when the +// flag "--${NAME}_out" is passed to protoc. + +syntax = "proto2"; + +package google.protobuf.compiler; +option java_package = "com.google.protobuf.compiler"; +option java_outer_classname = "PluginProtos"; + +option csharp_namespace = "Google.Protobuf.Compiler"; +option go_package = "google.golang.org/protobuf/types/pluginpb"; + +import "google/protobuf/descriptor.proto"; + +// The version number of protocol compiler. +message Version { + optional int32 major = 1; + optional int32 minor = 2; + optional int32 patch = 3; + // A suffix for alpha, beta or rc release, e.g., "alpha-1", "rc2". It should + // be empty for mainline stable releases. + optional string suffix = 4; +} + +// An encoded CodeGeneratorRequest is written to the plugin's stdin. +message CodeGeneratorRequest { + // The .proto files that were explicitly listed on the command-line. The + // code generator should generate code only for these files. Each file's + // descriptor will be included in proto_file, below. + repeated string file_to_generate = 1; + + // The generator parameter passed on the command-line. + optional string parameter = 2; + + // FileDescriptorProtos for all files in files_to_generate and everything + // they import. The files will appear in topological order, so each file + // appears before any file that imports it. + // + // Note: the files listed in files_to_generate will include runtime-retention + // options only, but all other files will include source-retention options. + // The source_file_descriptors field below is available in case you need + // source-retention options for files_to_generate. + // + // protoc guarantees that all proto_files will be written after + // the fields above, even though this is not technically guaranteed by the + // protobuf wire format. This theoretically could allow a plugin to stream + // in the FileDescriptorProtos and handle them one by one rather than read + // the entire set into memory at once. However, as of this writing, this + // is not similarly optimized on protoc's end -- it will store all fields in + // memory at once before sending them to the plugin. + // + // Type names of fields and extensions in the FileDescriptorProto are always + // fully qualified. + repeated FileDescriptorProto proto_file = 15; + + // File descriptors with all options, including source-retention options. + // These descriptors are only provided for the files listed in + // files_to_generate. + repeated FileDescriptorProto source_file_descriptors = 17; + + // The version number of protocol compiler. + optional Version compiler_version = 3; +} + +// The plugin writes an encoded CodeGeneratorResponse to stdout. +message CodeGeneratorResponse { + // Error message. If non-empty, code generation failed. The plugin process + // should exit with status code zero even if it reports an error in this way. + // + // This should be used to indicate errors in .proto files which prevent the + // code generator from generating correct code. Errors which indicate a + // problem in protoc itself -- such as the input CodeGeneratorRequest being + // unparseable -- should be reported by writing a message to stderr and + // exiting with a non-zero status code. + optional string error = 1; + + // A bitmask of supported features that the code generator supports. + // This is a bitwise "or" of values from the Feature enum. + optional uint64 supported_features = 2; + + // Sync with code_generator.h. + enum Feature { + FEATURE_NONE = 0; + FEATURE_PROTO3_OPTIONAL = 1; + FEATURE_SUPPORTS_EDITIONS = 2; + } + + // Represents a single generated file. + message File { + // The file name, relative to the output directory. The name must not + // contain "." or ".." components and must be relative, not be absolute (so, + // the file cannot lie outside the output directory). "/" must be used as + // the path separator, not "\". + // + // If the name is omitted, the content will be appended to the previous + // file. This allows the generator to break large files into small chunks, + // and allows the generated text to be streamed back to protoc so that large + // files need not reside completely in memory at one time. Note that as of + // this writing protoc does not optimize for this -- it will read the entire + // CodeGeneratorResponse before writing files to disk. + optional string name = 1; + + // If non-empty, indicates that the named file should already exist, and the + // content here is to be inserted into that file at a defined insertion + // point. This feature allows a code generator to extend the output + // produced by another code generator. The original generator may provide + // insertion points by placing special annotations in the file that look + // like: + // @@protoc_insertion_point(NAME) + // The annotation can have arbitrary text before and after it on the line, + // which allows it to be placed in a comment. NAME should be replaced with + // an identifier naming the point -- this is what other generators will use + // as the insertion_point. Code inserted at this point will be placed + // immediately above the line containing the insertion point (thus multiple + // insertions to the same point will come out in the order they were added). + // The double-@ is intended to make it unlikely that the generated code + // could contain things that look like insertion points by accident. + // + // For example, the C++ code generator places the following line in the + // .pb.h files that it generates: + // // @@protoc_insertion_point(namespace_scope) + // This line appears within the scope of the file's package namespace, but + // outside of any particular class. Another plugin can then specify the + // insertion_point "namespace_scope" to generate additional classes or + // other declarations that should be placed in this scope. + // + // Note that if the line containing the insertion point begins with + // whitespace, the same whitespace will be added to every line of the + // inserted text. This is useful for languages like Python, where + // indentation matters. In these languages, the insertion point comment + // should be indented the same amount as any inserted code will need to be + // in order to work correctly in that context. + // + // The code generator that generates the initial file and the one which + // inserts into it must both run as part of a single invocation of protoc. + // Code generators are executed in the order in which they appear on the + // command line. + // + // If |insertion_point| is present, |name| must also be present. + optional string insertion_point = 2; + + // The file contents. + optional string content = 15; + + // Information describing the file content being inserted. If an insertion + // point is used, this information will be appropriately offset and inserted + // into the code generation metadata for the generated files. + optional GeneratedCodeInfo generated_code_info = 16; + } + repeated File file = 15; +} diff --git a/LuBanConfig/Tools/protoc/include/google/protobuf/descriptor.proto b/LuBanConfig/Tools/protoc/include/google/protobuf/descriptor.proto new file mode 100644 index 000000000..5f148224c --- /dev/null +++ b/LuBanConfig/Tools/protoc/include/google/protobuf/descriptor.proto @@ -0,0 +1,1157 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Author: kenton@google.com (Kenton Varda) +// Based on original Protocol Buffers design by +// Sanjay Ghemawat, Jeff Dean, and others. +// +// The messages in this file describe the definitions found in .proto files. +// A valid .proto file can be translated directly to a FileDescriptorProto +// without any other information (e.g. without reading its imports). + +syntax = "proto2"; + +package google.protobuf; + +option go_package = "google.golang.org/protobuf/types/descriptorpb"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "DescriptorProtos"; +option csharp_namespace = "Google.Protobuf.Reflection"; +option objc_class_prefix = "GPB"; +option cc_enable_arenas = true; + +// descriptor.proto must be optimized for speed because reflection-based +// algorithms don't work during bootstrapping. +option optimize_for = SPEED; + +// The protocol compiler can output a FileDescriptorSet containing the .proto +// files it parses. +message FileDescriptorSet { + repeated FileDescriptorProto file = 1; +} + +// Describes a complete .proto file. +message FileDescriptorProto { + optional string name = 1; // file name, relative to root of source tree + optional string package = 2; // e.g. "foo", "foo.bar", etc. + + // Names of files imported by this file. + repeated string dependency = 3; + // Indexes of the public imported files in the dependency list above. + repeated int32 public_dependency = 10; + // Indexes of the weak imported files in the dependency list. + // For Google-internal migration only. Do not use. + repeated int32 weak_dependency = 11; + + // All top-level definitions in this file. + repeated DescriptorProto message_type = 4; + repeated EnumDescriptorProto enum_type = 5; + repeated ServiceDescriptorProto service = 6; + repeated FieldDescriptorProto extension = 7; + + optional FileOptions options = 8; + + // This field contains optional information about the original source code. + // You may safely remove this entire field without harming runtime + // functionality of the descriptors -- the information is needed only by + // development tools. + optional SourceCodeInfo source_code_info = 9; + + // The syntax of the proto file. + // The supported values are "proto2", "proto3", and "editions". + // + // If `edition` is present, this value must be "editions". + optional string syntax = 12; + + // The edition of the proto file, which is an opaque string. + optional string edition = 13; +} + +// Describes a message type. +message DescriptorProto { + optional string name = 1; + + repeated FieldDescriptorProto field = 2; + repeated FieldDescriptorProto extension = 6; + + repeated DescriptorProto nested_type = 3; + repeated EnumDescriptorProto enum_type = 4; + + message ExtensionRange { + optional int32 start = 1; // Inclusive. + optional int32 end = 2; // Exclusive. + + optional ExtensionRangeOptions options = 3; + } + repeated ExtensionRange extension_range = 5; + + repeated OneofDescriptorProto oneof_decl = 8; + + optional MessageOptions options = 7; + + // Range of reserved tag numbers. Reserved tag numbers may not be used by + // fields or extension ranges in the same message. Reserved ranges may + // not overlap. + message ReservedRange { + optional int32 start = 1; // Inclusive. + optional int32 end = 2; // Exclusive. + } + repeated ReservedRange reserved_range = 9; + // Reserved field names, which may not be used by fields in the same message. + // A given name may only be reserved once. + repeated string reserved_name = 10; +} + +message ExtensionRangeOptions { + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + message Declaration { + // The extension number declared within the extension range. + optional int32 number = 1; + + // The fully-qualified name of the extension field. There must be a leading + // dot in front of the full name. + optional string full_name = 2; + + // The fully-qualified type name of the extension field. Unlike + // Metadata.type, Declaration.type must have a leading dot for messages + // and enums. + optional string type = 3; + + // If true, indicates that the number is reserved in the extension range, + // and any extension field with the number will fail to compile. Set this + // when a declared extension field is deleted. + optional bool reserved = 5; + + // If true, indicates that the extension must be defined as repeated. + // Otherwise the extension must be defined as optional. + optional bool repeated = 6; + + reserved 4; // removed is_repeated + } + + // For external users: DO NOT USE. We are in the process of open sourcing + // extension declaration and executing internal cleanups before it can be + // used externally. + repeated Declaration declaration = 2 [retention = RETENTION_SOURCE]; + + // Any features defined in the specific edition. + optional FeatureSet features = 50; + + // The verification state of the extension range. + enum VerificationState { + // All the extensions of the range must be declared. + DECLARATION = 0; + UNVERIFIED = 1; + } + + // The verification state of the range. + // TODO(b/278783756): flip the default to DECLARATION once all empty ranges + // are marked as UNVERIFIED. + optional VerificationState verification = 3 [default = UNVERIFIED]; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +// Describes a field within a message. +message FieldDescriptorProto { + enum Type { + // 0 is reserved for errors. + // Order is weird for historical reasons. + TYPE_DOUBLE = 1; + TYPE_FLOAT = 2; + // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if + // negative values are likely. + TYPE_INT64 = 3; + TYPE_UINT64 = 4; + // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if + // negative values are likely. + TYPE_INT32 = 5; + TYPE_FIXED64 = 6; + TYPE_FIXED32 = 7; + TYPE_BOOL = 8; + TYPE_STRING = 9; + // Tag-delimited aggregate. + // Group type is deprecated and not supported in proto3. However, Proto3 + // implementations should still be able to parse the group wire format and + // treat group fields as unknown fields. + TYPE_GROUP = 10; + TYPE_MESSAGE = 11; // Length-delimited aggregate. + + // New in version 2. + TYPE_BYTES = 12; + TYPE_UINT32 = 13; + TYPE_ENUM = 14; + TYPE_SFIXED32 = 15; + TYPE_SFIXED64 = 16; + TYPE_SINT32 = 17; // Uses ZigZag encoding. + TYPE_SINT64 = 18; // Uses ZigZag encoding. + } + + enum Label { + // 0 is reserved for errors + LABEL_OPTIONAL = 1; + LABEL_REQUIRED = 2; + LABEL_REPEATED = 3; + } + + optional string name = 1; + optional int32 number = 3; + optional Label label = 4; + + // If type_name is set, this need not be set. If both this and type_name + // are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP. + optional Type type = 5; + + // For message and enum types, this is the name of the type. If the name + // starts with a '.', it is fully-qualified. Otherwise, C++-like scoping + // rules are used to find the type (i.e. first the nested types within this + // message are searched, then within the parent, on up to the root + // namespace). + optional string type_name = 6; + + // For extensions, this is the name of the type being extended. It is + // resolved in the same manner as type_name. + optional string extendee = 2; + + // For numeric types, contains the original text representation of the value. + // For booleans, "true" or "false". + // For strings, contains the default text contents (not escaped in any way). + // For bytes, contains the C escaped value. All bytes >= 128 are escaped. + optional string default_value = 7; + + // If set, gives the index of a oneof in the containing type's oneof_decl + // list. This field is a member of that oneof. + optional int32 oneof_index = 9; + + // JSON name of this field. The value is set by protocol compiler. If the + // user has set a "json_name" option on this field, that option's value + // will be used. Otherwise, it's deduced from the field's name by converting + // it to camelCase. + optional string json_name = 10; + + optional FieldOptions options = 8; + + // If true, this is a proto3 "optional". When a proto3 field is optional, it + // tracks presence regardless of field type. + // + // When proto3_optional is true, this field must be belong to a oneof to + // signal to old proto3 clients that presence is tracked for this field. This + // oneof is known as a "synthetic" oneof, and this field must be its sole + // member (each proto3 optional field gets its own synthetic oneof). Synthetic + // oneofs exist in the descriptor only, and do not generate any API. Synthetic + // oneofs must be ordered after all "real" oneofs. + // + // For message fields, proto3_optional doesn't create any semantic change, + // since non-repeated message fields always track presence. However it still + // indicates the semantic detail of whether the user wrote "optional" or not. + // This can be useful for round-tripping the .proto file. For consistency we + // give message fields a synthetic oneof also, even though it is not required + // to track presence. This is especially important because the parser can't + // tell if a field is a message or an enum, so it must always create a + // synthetic oneof. + // + // Proto2 optional fields do not set this flag, because they already indicate + // optional with `LABEL_OPTIONAL`. + optional bool proto3_optional = 17; +} + +// Describes a oneof. +message OneofDescriptorProto { + optional string name = 1; + optional OneofOptions options = 2; +} + +// Describes an enum type. +message EnumDescriptorProto { + optional string name = 1; + + repeated EnumValueDescriptorProto value = 2; + + optional EnumOptions options = 3; + + // Range of reserved numeric values. Reserved values may not be used by + // entries in the same enum. Reserved ranges may not overlap. + // + // Note that this is distinct from DescriptorProto.ReservedRange in that it + // is inclusive such that it can appropriately represent the entire int32 + // domain. + message EnumReservedRange { + optional int32 start = 1; // Inclusive. + optional int32 end = 2; // Inclusive. + } + + // Range of reserved numeric values. Reserved numeric values may not be used + // by enum values in the same enum declaration. Reserved ranges may not + // overlap. + repeated EnumReservedRange reserved_range = 4; + + // Reserved enum value names, which may not be reused. A given name may only + // be reserved once. + repeated string reserved_name = 5; +} + +// Describes a value within an enum. +message EnumValueDescriptorProto { + optional string name = 1; + optional int32 number = 2; + + optional EnumValueOptions options = 3; +} + +// Describes a service. +message ServiceDescriptorProto { + optional string name = 1; + repeated MethodDescriptorProto method = 2; + + optional ServiceOptions options = 3; +} + +// Describes a method of a service. +message MethodDescriptorProto { + optional string name = 1; + + // Input and output type names. These are resolved in the same way as + // FieldDescriptorProto.type_name, but must refer to a message type. + optional string input_type = 2; + optional string output_type = 3; + + optional MethodOptions options = 4; + + // Identifies if client streams multiple client messages + optional bool client_streaming = 5 [default = false]; + // Identifies if server streams multiple server messages + optional bool server_streaming = 6 [default = false]; +} + +// =================================================================== +// Options + +// Each of the definitions above may have "options" attached. These are +// just annotations which may cause code to be generated slightly differently +// or may contain hints for code that manipulates protocol messages. +// +// Clients may define custom options as extensions of the *Options messages. +// These extensions may not yet be known at parsing time, so the parser cannot +// store the values in them. Instead it stores them in a field in the *Options +// message called uninterpreted_option. This field must have the same name +// across all *Options messages. We then use this field to populate the +// extensions when we build a descriptor, at which point all protos have been +// parsed and so all extensions are known. +// +// Extension numbers for custom options may be chosen as follows: +// * For options which will only be used within a single application or +// organization, or for experimental options, use field numbers 50000 +// through 99999. It is up to you to ensure that you do not use the +// same number for multiple options. +// * For options which will be published and used publicly by multiple +// independent entities, e-mail protobuf-global-extension-registry@google.com +// to reserve extension numbers. Simply provide your project name (e.g. +// Objective-C plugin) and your project website (if available) -- there's no +// need to explain how you intend to use them. Usually you only need one +// extension number. You can declare multiple options with only one extension +// number by putting them in a sub-message. See the Custom Options section of +// the docs for examples: +// https://developers.google.com/protocol-buffers/docs/proto#options +// If this turns out to be popular, a web service will be set up +// to automatically assign option numbers. + +message FileOptions { + + // Sets the Java package where classes generated from this .proto will be + // placed. By default, the proto package is used, but this is often + // inappropriate because proto packages do not normally start with backwards + // domain names. + optional string java_package = 1; + + // Controls the name of the wrapper Java class generated for the .proto file. + // That class will always contain the .proto file's getDescriptor() method as + // well as any top-level extensions defined in the .proto file. + // If java_multiple_files is disabled, then all the other classes from the + // .proto file will be nested inside the single wrapper outer class. + optional string java_outer_classname = 8; + + // If enabled, then the Java code generator will generate a separate .java + // file for each top-level message, enum, and service defined in the .proto + // file. Thus, these types will *not* be nested inside the wrapper class + // named by java_outer_classname. However, the wrapper class will still be + // generated to contain the file's getDescriptor() method as well as any + // top-level extensions defined in the file. + optional bool java_multiple_files = 10 [default = false]; + + // This option does nothing. + optional bool java_generate_equals_and_hash = 20 [deprecated=true]; + + // If set true, then the Java2 code generator will generate code that + // throws an exception whenever an attempt is made to assign a non-UTF-8 + // byte sequence to a string field. + // Message reflection will do the same. + // However, an extension field still accepts non-UTF-8 byte sequences. + // This option has no effect on when used with the lite runtime. + optional bool java_string_check_utf8 = 27 [default = false]; + + // Generated classes can be optimized for speed or code size. + enum OptimizeMode { + SPEED = 1; // Generate complete code for parsing, serialization, + // etc. + CODE_SIZE = 2; // Use ReflectionOps to implement these methods. + LITE_RUNTIME = 3; // Generate code using MessageLite and the lite runtime. + } + optional OptimizeMode optimize_for = 9 [default = SPEED]; + + // Sets the Go package where structs generated from this .proto will be + // placed. If omitted, the Go package will be derived from the following: + // - The basename of the package import path, if provided. + // - Otherwise, the package statement in the .proto file, if present. + // - Otherwise, the basename of the .proto file, without extension. + optional string go_package = 11; + + // Should generic services be generated in each language? "Generic" services + // are not specific to any particular RPC system. They are generated by the + // main code generators in each language (without additional plugins). + // Generic services were the only kind of service generation supported by + // early versions of google.protobuf. + // + // Generic services are now considered deprecated in favor of using plugins + // that generate code specific to your particular RPC system. Therefore, + // these default to false. Old code which depends on generic services should + // explicitly set them to true. + optional bool cc_generic_services = 16 [default = false]; + optional bool java_generic_services = 17 [default = false]; + optional bool py_generic_services = 18 [default = false]; + optional bool php_generic_services = 42 [default = false]; + + // Is this file deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for everything in the file, or it will be completely ignored; in the very + // least, this is a formalization for deprecating files. + optional bool deprecated = 23 [default = false]; + + // Enables the use of arenas for the proto messages in this file. This applies + // only to generated classes for C++. + optional bool cc_enable_arenas = 31 [default = true]; + + // Sets the objective c class prefix which is prepended to all objective c + // generated classes from this .proto. There is no default. + optional string objc_class_prefix = 36; + + // Namespace for generated classes; defaults to the package. + optional string csharp_namespace = 37; + + // By default Swift generators will take the proto package and CamelCase it + // replacing '.' with underscore and use that to prefix the types/symbols + // defined. When this options is provided, they will use this value instead + // to prefix the types/symbols defined. + optional string swift_prefix = 39; + + // Sets the php class prefix which is prepended to all php generated classes + // from this .proto. Default is empty. + optional string php_class_prefix = 40; + + // Use this option to change the namespace of php generated classes. Default + // is empty. When this option is empty, the package name will be used for + // determining the namespace. + optional string php_namespace = 41; + + // Use this option to change the namespace of php generated metadata classes. + // Default is empty. When this option is empty, the proto file name will be + // used for determining the namespace. + optional string php_metadata_namespace = 44; + + // Use this option to change the package of ruby generated classes. Default + // is empty. When this option is not set, the package name will be used for + // determining the ruby package. + optional string ruby_package = 45; + + // Any features defined in the specific edition. + optional FeatureSet features = 50; + + // The parser stores options it doesn't recognize here. + // See the documentation for the "Options" section above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. + // See the documentation for the "Options" section above. + extensions 1000 to max; + + reserved 38; +} + +message MessageOptions { + // Set true to use the old proto1 MessageSet wire format for extensions. + // This is provided for backwards-compatibility with the MessageSet wire + // format. You should not use this for any other reason: It's less + // efficient, has fewer features, and is more complicated. + // + // The message must be defined exactly as follows: + // message Foo { + // option message_set_wire_format = true; + // extensions 4 to max; + // } + // Note that the message cannot have any defined fields; MessageSets only + // have extensions. + // + // All extensions of your type must be singular messages; e.g. they cannot + // be int32s, enums, or repeated messages. + // + // Because this is an option, the above two restrictions are not enforced by + // the protocol compiler. + optional bool message_set_wire_format = 1 [default = false]; + + // Disables the generation of the standard "descriptor()" accessor, which can + // conflict with a field of the same name. This is meant to make migration + // from proto1 easier; new code should avoid fields named "descriptor". + optional bool no_standard_descriptor_accessor = 2 [default = false]; + + // Is this message deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the message, or it will be completely ignored; in the very least, + // this is a formalization for deprecating messages. + optional bool deprecated = 3 [default = false]; + + reserved 4, 5, 6; + + // NOTE: Do not set the option in .proto files. Always use the maps syntax + // instead. The option should only be implicitly set by the proto compiler + // parser. + // + // Whether the message is an automatically generated map entry type for the + // maps field. + // + // For maps fields: + // map map_field = 1; + // The parsed descriptor looks like: + // message MapFieldEntry { + // option map_entry = true; + // optional KeyType key = 1; + // optional ValueType value = 2; + // } + // repeated MapFieldEntry map_field = 1; + // + // Implementations may choose not to generate the map_entry=true message, but + // use a native map in the target language to hold the keys and values. + // The reflection APIs in such implementations still need to work as + // if the field is a repeated message field. + optional bool map_entry = 7; + + reserved 8; // javalite_serializable + reserved 9; // javanano_as_lite + + // Enable the legacy handling of JSON field name conflicts. This lowercases + // and strips underscored from the fields before comparison in proto3 only. + // The new behavior takes `json_name` into account and applies to proto2 as + // well. + // + // This should only be used as a temporary measure against broken builds due + // to the change in behavior for JSON field name conflicts. + // + // TODO(b/261750190) This is legacy behavior we plan to remove once downstream + // teams have had time to migrate. + optional bool deprecated_legacy_json_field_conflicts = 11 [deprecated = true]; + + // Any features defined in the specific edition. + optional FeatureSet features = 12; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message FieldOptions { + // The ctype option instructs the C++ code generator to use a different + // representation of the field than it normally would. See the specific + // options below. This option is only implemented to support use of + // [ctype=CORD] and [ctype=STRING] (the default) on non-repeated fields of + // type "bytes" in the open source release -- sorry, we'll try to include + // other types in a future version! + optional CType ctype = 1 [default = STRING]; + enum CType { + // Default mode. + STRING = 0; + + // The option [ctype=CORD] may be applied to a non-repeated field of type + // "bytes". It indicates that in C++, the data should be stored in a Cord + // instead of a string. For very large strings, this may reduce memory + // fragmentation. It may also allow better performance when parsing from a + // Cord, or when parsing with aliasing enabled, as the parsed Cord may then + // alias the original buffer. + CORD = 1; + + STRING_PIECE = 2; + } + // The packed option can be enabled for repeated primitive fields to enable + // a more efficient representation on the wire. Rather than repeatedly + // writing the tag and type for each element, the entire array is encoded as + // a single length-delimited blob. In proto3, only explicit setting it to + // false will avoid using packed encoding. + optional bool packed = 2; + + // The jstype option determines the JavaScript type used for values of the + // field. The option is permitted only for 64 bit integral and fixed types + // (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING + // is represented as JavaScript string, which avoids loss of precision that + // can happen when a large value is converted to a floating point JavaScript. + // Specifying JS_NUMBER for the jstype causes the generated JavaScript code to + // use the JavaScript "number" type. The behavior of the default option + // JS_NORMAL is implementation dependent. + // + // This option is an enum to permit additional types to be added, e.g. + // goog.math.Integer. + optional JSType jstype = 6 [default = JS_NORMAL]; + enum JSType { + // Use the default type. + JS_NORMAL = 0; + + // Use JavaScript strings. + JS_STRING = 1; + + // Use JavaScript numbers. + JS_NUMBER = 2; + } + + // Should this field be parsed lazily? Lazy applies only to message-type + // fields. It means that when the outer message is initially parsed, the + // inner message's contents will not be parsed but instead stored in encoded + // form. The inner message will actually be parsed when it is first accessed. + // + // This is only a hint. Implementations are free to choose whether to use + // eager or lazy parsing regardless of the value of this option. However, + // setting this option true suggests that the protocol author believes that + // using lazy parsing on this field is worth the additional bookkeeping + // overhead typically needed to implement it. + // + // This option does not affect the public interface of any generated code; + // all method signatures remain the same. Furthermore, thread-safety of the + // interface is not affected by this option; const methods remain safe to + // call from multiple threads concurrently, while non-const methods continue + // to require exclusive access. + // + // Note that implementations may choose not to check required fields within + // a lazy sub-message. That is, calling IsInitialized() on the outer message + // may return true even if the inner message has missing required fields. + // This is necessary because otherwise the inner message would have to be + // parsed in order to perform the check, defeating the purpose of lazy + // parsing. An implementation which chooses not to check required fields + // must be consistent about it. That is, for any particular sub-message, the + // implementation must either *always* check its required fields, or *never* + // check its required fields, regardless of whether or not the message has + // been parsed. + // + // As of May 2022, lazy verifies the contents of the byte stream during + // parsing. An invalid byte stream will cause the overall parsing to fail. + optional bool lazy = 5 [default = false]; + + // unverified_lazy does no correctness checks on the byte stream. This should + // only be used where lazy with verification is prohibitive for performance + // reasons. + optional bool unverified_lazy = 15 [default = false]; + + // Is this field deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for accessors, or it will be completely ignored; in the very least, this + // is a formalization for deprecating fields. + optional bool deprecated = 3 [default = false]; + + // For Google-internal migration only. Do not use. + optional bool weak = 10 [default = false]; + + // Indicate that the field value should not be printed out when using debug + // formats, e.g. when the field contains sensitive credentials. + optional bool debug_redact = 16 [default = false]; + + // If set to RETENTION_SOURCE, the option will be omitted from the binary. + // Note: as of January 2023, support for this is in progress and does not yet + // have an effect (b/264593489). + enum OptionRetention { + RETENTION_UNKNOWN = 0; + RETENTION_RUNTIME = 1; + RETENTION_SOURCE = 2; + } + + optional OptionRetention retention = 17; + + // This indicates the types of entities that the field may apply to when used + // as an option. If it is unset, then the field may be freely used as an + // option on any kind of entity. Note: as of January 2023, support for this is + // in progress and does not yet have an effect (b/264593489). + enum OptionTargetType { + TARGET_TYPE_UNKNOWN = 0; + TARGET_TYPE_FILE = 1; + TARGET_TYPE_EXTENSION_RANGE = 2; + TARGET_TYPE_MESSAGE = 3; + TARGET_TYPE_FIELD = 4; + TARGET_TYPE_ONEOF = 5; + TARGET_TYPE_ENUM = 6; + TARGET_TYPE_ENUM_ENTRY = 7; + TARGET_TYPE_SERVICE = 8; + TARGET_TYPE_METHOD = 9; + } + + repeated OptionTargetType targets = 19; + + message EditionDefault { + optional string edition = 1; + optional string value = 2; // Textproto value. + } + repeated EditionDefault edition_defaults = 20; + + // Any features defined in the specific edition. + optional FeatureSet features = 21; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; + + reserved 4; // removed jtype + reserved 18; // reserve target, target_obsolete_do_not_use +} + +message OneofOptions { + // Any features defined in the specific edition. + optional FeatureSet features = 1; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message EnumOptions { + + // Set this option to true to allow mapping different tag names to the same + // value. + optional bool allow_alias = 2; + + // Is this enum deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the enum, or it will be completely ignored; in the very least, this + // is a formalization for deprecating enums. + optional bool deprecated = 3 [default = false]; + + reserved 5; // javanano_as_lite + + // Enable the legacy handling of JSON field name conflicts. This lowercases + // and strips underscored from the fields before comparison in proto3 only. + // The new behavior takes `json_name` into account and applies to proto2 as + // well. + // TODO(b/261750190) Remove this legacy behavior once downstream teams have + // had time to migrate. + optional bool deprecated_legacy_json_field_conflicts = 6 [deprecated = true]; + + // Any features defined in the specific edition. + optional FeatureSet features = 7; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message EnumValueOptions { + // Is this enum value deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the enum value, or it will be completely ignored; in the very least, + // this is a formalization for deprecating enum values. + optional bool deprecated = 1 [default = false]; + + // Any features defined in the specific edition. + optional FeatureSet features = 2; + + // Indicate that fields annotated with this enum value should not be printed + // out when using debug formats, e.g. when the field contains sensitive + // credentials. + optional bool debug_redact = 3 [default = false]; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message ServiceOptions { + + // Any features defined in the specific edition. + optional FeatureSet features = 34; + + // Note: Field numbers 1 through 32 are reserved for Google's internal RPC + // framework. We apologize for hoarding these numbers to ourselves, but + // we were already using them long before we decided to release Protocol + // Buffers. + + // Is this service deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the service, or it will be completely ignored; in the very least, + // this is a formalization for deprecating services. + optional bool deprecated = 33 [default = false]; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message MethodOptions { + + // Note: Field numbers 1 through 32 are reserved for Google's internal RPC + // framework. We apologize for hoarding these numbers to ourselves, but + // we were already using them long before we decided to release Protocol + // Buffers. + + // Is this method deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the method, or it will be completely ignored; in the very least, + // this is a formalization for deprecating methods. + optional bool deprecated = 33 [default = false]; + + // Is this method side-effect-free (or safe in HTTP parlance), or idempotent, + // or neither? HTTP based RPC implementation may choose GET verb for safe + // methods, and PUT verb for idempotent methods instead of the default POST. + enum IdempotencyLevel { + IDEMPOTENCY_UNKNOWN = 0; + NO_SIDE_EFFECTS = 1; // implies idempotent + IDEMPOTENT = 2; // idempotent, but may have side effects + } + optional IdempotencyLevel idempotency_level = 34 + [default = IDEMPOTENCY_UNKNOWN]; + + // Any features defined in the specific edition. + optional FeatureSet features = 35; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +// A message representing a option the parser does not recognize. This only +// appears in options protos created by the compiler::Parser class. +// DescriptorPool resolves these when building Descriptor objects. Therefore, +// options protos in descriptor objects (e.g. returned by Descriptor::options(), +// or produced by Descriptor::CopyTo()) will never have UninterpretedOptions +// in them. +message UninterpretedOption { + // The name of the uninterpreted option. Each string represents a segment in + // a dot-separated name. is_extension is true iff a segment represents an + // extension (denoted with parentheses in options specs in .proto files). + // E.g.,{ ["foo", false], ["bar.baz", true], ["moo", false] } represents + // "foo.(bar.baz).moo". + message NamePart { + required string name_part = 1; + required bool is_extension = 2; + } + repeated NamePart name = 2; + + // The value of the uninterpreted option, in whatever type the tokenizer + // identified it as during parsing. Exactly one of these should be set. + optional string identifier_value = 3; + optional uint64 positive_int_value = 4; + optional int64 negative_int_value = 5; + optional double double_value = 6; + optional bytes string_value = 7; + optional string aggregate_value = 8; +} + +// =================================================================== +// Features + +// TODO(b/274655146) Enums in C++ gencode (and potentially other languages) are +// not well scoped. This means that each of the feature enums below can clash +// with each other. The short names we've chosen maximize call-site +// readability, but leave us very open to this scenario. A future feature will +// be designed and implemented to handle this, hopefully before we ever hit a +// conflict here. +message FeatureSet { + enum FieldPresence { + FIELD_PRESENCE_UNKNOWN = 0; + EXPLICIT = 1; + IMPLICIT = 2; + LEGACY_REQUIRED = 3; + } + optional FieldPresence field_presence = 1 [ + retention = RETENTION_RUNTIME, + targets = TARGET_TYPE_FIELD, + targets = TARGET_TYPE_FILE, + edition_defaults = { edition: "2023", value: "EXPLICIT" } + ]; + + enum EnumType { + ENUM_TYPE_UNKNOWN = 0; + OPEN = 1; + CLOSED = 2; + } + optional EnumType enum_type = 2 [ + retention = RETENTION_RUNTIME, + targets = TARGET_TYPE_ENUM, + targets = TARGET_TYPE_FILE, + edition_defaults = { edition: "2023", value: "OPEN" } + ]; + + enum RepeatedFieldEncoding { + REPEATED_FIELD_ENCODING_UNKNOWN = 0; + PACKED = 1; + EXPANDED = 2; + } + optional RepeatedFieldEncoding repeated_field_encoding = 3 [ + retention = RETENTION_RUNTIME, + targets = TARGET_TYPE_FIELD, + targets = TARGET_TYPE_FILE, + edition_defaults = { edition: "2023", value: "PACKED" } + ]; + + enum StringFieldValidation { + STRING_FIELD_VALIDATION_UNKNOWN = 0; + MANDATORY = 1; + HINT = 2; + NONE = 3; + } + optional StringFieldValidation string_field_validation = 4 [ + retention = RETENTION_RUNTIME, + targets = TARGET_TYPE_FIELD, + targets = TARGET_TYPE_FILE, + edition_defaults = { edition: "2023", value: "MANDATORY" } + ]; + + enum MessageEncoding { + MESSAGE_ENCODING_UNKNOWN = 0; + LENGTH_PREFIXED = 1; + DELIMITED = 2; + } + optional MessageEncoding message_encoding = 5 [ + retention = RETENTION_RUNTIME, + targets = TARGET_TYPE_FIELD, + targets = TARGET_TYPE_FILE, + edition_defaults = { edition: "2023", value: "LENGTH_PREFIXED" } + ]; + + enum JsonFormat { + JSON_FORMAT_UNKNOWN = 0; + ALLOW = 1; + LEGACY_BEST_EFFORT = 2; + } + optional JsonFormat json_format = 6 [ + retention = RETENTION_RUNTIME, + targets = TARGET_TYPE_MESSAGE, + targets = TARGET_TYPE_ENUM, + targets = TARGET_TYPE_FILE, + edition_defaults = { edition: "2023", value: "ALLOW" } + ]; + + optional FeatureSet raw_features = 999 [targets = TARGET_TYPE_UNKNOWN]; + + extensions 1000; // for Protobuf C++ + extensions 1001; // for Protobuf Java + + extensions 9995 to 9999; // For internal testing +} + +// =================================================================== +// Optional source code info + +// Encapsulates information about the original source file from which a +// FileDescriptorProto was generated. +message SourceCodeInfo { + // A Location identifies a piece of source code in a .proto file which + // corresponds to a particular definition. This information is intended + // to be useful to IDEs, code indexers, documentation generators, and similar + // tools. + // + // For example, say we have a file like: + // message Foo { + // optional string foo = 1; + // } + // Let's look at just the field definition: + // optional string foo = 1; + // ^ ^^ ^^ ^ ^^^ + // a bc de f ghi + // We have the following locations: + // span path represents + // [a,i) [ 4, 0, 2, 0 ] The whole field definition. + // [a,b) [ 4, 0, 2, 0, 4 ] The label (optional). + // [c,d) [ 4, 0, 2, 0, 5 ] The type (string). + // [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). + // [g,h) [ 4, 0, 2, 0, 3 ] The number (1). + // + // Notes: + // - A location may refer to a repeated field itself (i.e. not to any + // particular index within it). This is used whenever a set of elements are + // logically enclosed in a single code segment. For example, an entire + // extend block (possibly containing multiple extension definitions) will + // have an outer location whose path refers to the "extensions" repeated + // field without an index. + // - Multiple locations may have the same path. This happens when a single + // logical declaration is spread out across multiple places. The most + // obvious example is the "extend" block again -- there may be multiple + // extend blocks in the same scope, each of which will have the same path. + // - A location's span is not always a subset of its parent's span. For + // example, the "extendee" of an extension declaration appears at the + // beginning of the "extend" block and is shared by all extensions within + // the block. + // - Just because a location's span is a subset of some other location's span + // does not mean that it is a descendant. For example, a "group" defines + // both a type and a field in a single declaration. Thus, the locations + // corresponding to the type and field and their components will overlap. + // - Code which tries to interpret locations should probably be designed to + // ignore those that it doesn't understand, as more types of locations could + // be recorded in the future. + repeated Location location = 1; + message Location { + // Identifies which part of the FileDescriptorProto was defined at this + // location. + // + // Each element is a field number or an index. They form a path from + // the root FileDescriptorProto to the place where the definition occurs. + // For example, this path: + // [ 4, 3, 2, 7, 1 ] + // refers to: + // file.message_type(3) // 4, 3 + // .field(7) // 2, 7 + // .name() // 1 + // This is because FileDescriptorProto.message_type has field number 4: + // repeated DescriptorProto message_type = 4; + // and DescriptorProto.field has field number 2: + // repeated FieldDescriptorProto field = 2; + // and FieldDescriptorProto.name has field number 1: + // optional string name = 1; + // + // Thus, the above path gives the location of a field name. If we removed + // the last element: + // [ 4, 3, 2, 7 ] + // this path refers to the whole field declaration (from the beginning + // of the label to the terminating semicolon). + repeated int32 path = 1 [packed = true]; + + // Always has exactly three or four elements: start line, start column, + // end line (optional, otherwise assumed same as start line), end column. + // These are packed into a single field for efficiency. Note that line + // and column numbers are zero-based -- typically you will want to add + // 1 to each before displaying to a user. + repeated int32 span = 2 [packed = true]; + + // If this SourceCodeInfo represents a complete declaration, these are any + // comments appearing before and after the declaration which appear to be + // attached to the declaration. + // + // A series of line comments appearing on consecutive lines, with no other + // tokens appearing on those lines, will be treated as a single comment. + // + // leading_detached_comments will keep paragraphs of comments that appear + // before (but not connected to) the current element. Each paragraph, + // separated by empty lines, will be one comment element in the repeated + // field. + // + // Only the comment content is provided; comment markers (e.g. //) are + // stripped out. For block comments, leading whitespace and an asterisk + // will be stripped from the beginning of each line other than the first. + // Newlines are included in the output. + // + // Examples: + // + // optional int32 foo = 1; // Comment attached to foo. + // // Comment attached to bar. + // optional int32 bar = 2; + // + // optional string baz = 3; + // // Comment attached to baz. + // // Another line attached to baz. + // + // // Comment attached to moo. + // // + // // Another line attached to moo. + // optional double moo = 4; + // + // // Detached comment for corge. This is not leading or trailing comments + // // to moo or corge because there are blank lines separating it from + // // both. + // + // // Detached comment for corge paragraph 2. + // + // optional string corge = 5; + // /* Block comment attached + // * to corge. Leading asterisks + // * will be removed. */ + // /* Block comment attached to + // * grault. */ + // optional int32 grault = 6; + // + // // ignored detached comments. + optional string leading_comments = 3; + optional string trailing_comments = 4; + repeated string leading_detached_comments = 6; + } +} + +// Describes the relationship between generated code and its original source +// file. A GeneratedCodeInfo message is associated with only one generated +// source file, but may contain references to different source .proto files. +message GeneratedCodeInfo { + // An Annotation connects some span of text in generated code to an element + // of its generating .proto file. + repeated Annotation annotation = 1; + message Annotation { + // Identifies the element in the original source .proto file. This field + // is formatted the same as SourceCodeInfo.Location.path. + repeated int32 path = 1 [packed = true]; + + // Identifies the filesystem path to the original source .proto. + optional string source_file = 2; + + // Identifies the starting offset in bytes in the generated code + // that relates to the identified object. + optional int32 begin = 3; + + // Identifies the ending offset in bytes in the generated code that + // relates to the identified object. The end offset should be one past + // the last relevant byte (so the length of the text = end - begin). + optional int32 end = 4; + + // Represents the identified object's effect on the element in the original + // .proto file. + enum Semantic { + // There is no effect or the effect is indescribable. + NONE = 0; + // The element is set or otherwise mutated. + SET = 1; + // An alias to the element is returned. + ALIAS = 2; + } + optional Semantic semantic = 5; + } +} diff --git a/LuBanConfig/Tools/protoc/include/google/protobuf/duration.proto b/LuBanConfig/Tools/protoc/include/google/protobuf/duration.proto new file mode 100644 index 000000000..41f40c222 --- /dev/null +++ b/LuBanConfig/Tools/protoc/include/google/protobuf/duration.proto @@ -0,0 +1,115 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +option cc_enable_arenas = true; +option go_package = "google.golang.org/protobuf/types/known/durationpb"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "DurationProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; + +// A Duration represents a signed, fixed-length span of time represented +// as a count of seconds and fractions of seconds at nanosecond +// resolution. It is independent of any calendar and concepts like "day" +// or "month". It is related to Timestamp in that the difference between +// two Timestamp values is a Duration and it can be added or subtracted +// from a Timestamp. Range is approximately +-10,000 years. +// +// # Examples +// +// Example 1: Compute Duration from two Timestamps in pseudo code. +// +// Timestamp start = ...; +// Timestamp end = ...; +// Duration duration = ...; +// +// duration.seconds = end.seconds - start.seconds; +// duration.nanos = end.nanos - start.nanos; +// +// if (duration.seconds < 0 && duration.nanos > 0) { +// duration.seconds += 1; +// duration.nanos -= 1000000000; +// } else if (duration.seconds > 0 && duration.nanos < 0) { +// duration.seconds -= 1; +// duration.nanos += 1000000000; +// } +// +// Example 2: Compute Timestamp from Timestamp + Duration in pseudo code. +// +// Timestamp start = ...; +// Duration duration = ...; +// Timestamp end = ...; +// +// end.seconds = start.seconds + duration.seconds; +// end.nanos = start.nanos + duration.nanos; +// +// if (end.nanos < 0) { +// end.seconds -= 1; +// end.nanos += 1000000000; +// } else if (end.nanos >= 1000000000) { +// end.seconds += 1; +// end.nanos -= 1000000000; +// } +// +// Example 3: Compute Duration from datetime.timedelta in Python. +// +// td = datetime.timedelta(days=3, minutes=10) +// duration = Duration() +// duration.FromTimedelta(td) +// +// # JSON Mapping +// +// In JSON format, the Duration type is encoded as a string rather than an +// object, where the string ends in the suffix "s" (indicating seconds) and +// is preceded by the number of seconds, with nanoseconds expressed as +// fractional seconds. For example, 3 seconds with 0 nanoseconds should be +// encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should +// be expressed in JSON format as "3.000000001s", and 3 seconds and 1 +// microsecond should be expressed in JSON format as "3.000001s". +// +message Duration { + // Signed seconds of the span of time. Must be from -315,576,000,000 + // to +315,576,000,000 inclusive. Note: these bounds are computed from: + // 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + int64 seconds = 1; + + // Signed fractions of a second at nanosecond resolution of the span + // of time. Durations less than one second are represented with a 0 + // `seconds` field and a positive or negative `nanos` field. For durations + // of one second or more, a non-zero value for the `nanos` field must be + // of the same sign as the `seconds` field. Must be from -999,999,999 + // to +999,999,999 inclusive. + int32 nanos = 2; +} diff --git a/LuBanConfig/Tools/protoc/include/google/protobuf/empty.proto b/LuBanConfig/Tools/protoc/include/google/protobuf/empty.proto new file mode 100644 index 000000000..b87c89dcf --- /dev/null +++ b/LuBanConfig/Tools/protoc/include/google/protobuf/empty.proto @@ -0,0 +1,51 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +option go_package = "google.golang.org/protobuf/types/known/emptypb"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "EmptyProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option cc_enable_arenas = true; + +// A generic empty message that you can re-use to avoid defining duplicated +// empty messages in your APIs. A typical example is to use it as the request +// or the response type of an API method. For instance: +// +// service Foo { +// rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); +// } +// +message Empty {} diff --git a/LuBanConfig/Tools/protoc/include/google/protobuf/field_mask.proto b/LuBanConfig/Tools/protoc/include/google/protobuf/field_mask.proto new file mode 100644 index 000000000..b28334b94 --- /dev/null +++ b/LuBanConfig/Tools/protoc/include/google/protobuf/field_mask.proto @@ -0,0 +1,245 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +option java_package = "com.google.protobuf"; +option java_outer_classname = "FieldMaskProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option go_package = "google.golang.org/protobuf/types/known/fieldmaskpb"; +option cc_enable_arenas = true; + +// `FieldMask` represents a set of symbolic field paths, for example: +// +// paths: "f.a" +// paths: "f.b.d" +// +// Here `f` represents a field in some root message, `a` and `b` +// fields in the message found in `f`, and `d` a field found in the +// message in `f.b`. +// +// Field masks are used to specify a subset of fields that should be +// returned by a get operation or modified by an update operation. +// Field masks also have a custom JSON encoding (see below). +// +// # Field Masks in Projections +// +// When used in the context of a projection, a response message or +// sub-message is filtered by the API to only contain those fields as +// specified in the mask. For example, if the mask in the previous +// example is applied to a response message as follows: +// +// f { +// a : 22 +// b { +// d : 1 +// x : 2 +// } +// y : 13 +// } +// z: 8 +// +// The result will not contain specific values for fields x,y and z +// (their value will be set to the default, and omitted in proto text +// output): +// +// +// f { +// a : 22 +// b { +// d : 1 +// } +// } +// +// A repeated field is not allowed except at the last position of a +// paths string. +// +// If a FieldMask object is not present in a get operation, the +// operation applies to all fields (as if a FieldMask of all fields +// had been specified). +// +// Note that a field mask does not necessarily apply to the +// top-level response message. In case of a REST get operation, the +// field mask applies directly to the response, but in case of a REST +// list operation, the mask instead applies to each individual message +// in the returned resource list. In case of a REST custom method, +// other definitions may be used. Where the mask applies will be +// clearly documented together with its declaration in the API. In +// any case, the effect on the returned resource/resources is required +// behavior for APIs. +// +// # Field Masks in Update Operations +// +// A field mask in update operations specifies which fields of the +// targeted resource are going to be updated. The API is required +// to only change the values of the fields as specified in the mask +// and leave the others untouched. If a resource is passed in to +// describe the updated values, the API ignores the values of all +// fields not covered by the mask. +// +// If a repeated field is specified for an update operation, new values will +// be appended to the existing repeated field in the target resource. Note that +// a repeated field is only allowed in the last position of a `paths` string. +// +// If a sub-message is specified in the last position of the field mask for an +// update operation, then new value will be merged into the existing sub-message +// in the target resource. +// +// For example, given the target message: +// +// f { +// b { +// d: 1 +// x: 2 +// } +// c: [1] +// } +// +// And an update message: +// +// f { +// b { +// d: 10 +// } +// c: [2] +// } +// +// then if the field mask is: +// +// paths: ["f.b", "f.c"] +// +// then the result will be: +// +// f { +// b { +// d: 10 +// x: 2 +// } +// c: [1, 2] +// } +// +// An implementation may provide options to override this default behavior for +// repeated and message fields. +// +// In order to reset a field's value to the default, the field must +// be in the mask and set to the default value in the provided resource. +// Hence, in order to reset all fields of a resource, provide a default +// instance of the resource and set all fields in the mask, or do +// not provide a mask as described below. +// +// If a field mask is not present on update, the operation applies to +// all fields (as if a field mask of all fields has been specified). +// Note that in the presence of schema evolution, this may mean that +// fields the client does not know and has therefore not filled into +// the request will be reset to their default. If this is unwanted +// behavior, a specific service may require a client to always specify +// a field mask, producing an error if not. +// +// As with get operations, the location of the resource which +// describes the updated values in the request message depends on the +// operation kind. In any case, the effect of the field mask is +// required to be honored by the API. +// +// ## Considerations for HTTP REST +// +// The HTTP kind of an update operation which uses a field mask must +// be set to PATCH instead of PUT in order to satisfy HTTP semantics +// (PUT must only be used for full updates). +// +// # JSON Encoding of Field Masks +// +// In JSON, a field mask is encoded as a single string where paths are +// separated by a comma. Fields name in each path are converted +// to/from lower-camel naming conventions. +// +// As an example, consider the following message declarations: +// +// message Profile { +// User user = 1; +// Photo photo = 2; +// } +// message User { +// string display_name = 1; +// string address = 2; +// } +// +// In proto a field mask for `Profile` may look as such: +// +// mask { +// paths: "user.display_name" +// paths: "photo" +// } +// +// In JSON, the same mask is represented as below: +// +// { +// mask: "user.displayName,photo" +// } +// +// # Field Masks and Oneof Fields +// +// Field masks treat fields in oneofs just as regular fields. Consider the +// following message: +// +// message SampleMessage { +// oneof test_oneof { +// string name = 4; +// SubMessage sub_message = 9; +// } +// } +// +// The field mask can be: +// +// mask { +// paths: "name" +// } +// +// Or: +// +// mask { +// paths: "sub_message" +// } +// +// Note that oneof type names ("test_oneof" in this case) cannot be used in +// paths. +// +// ## Field Mask Verification +// +// The implementation of any API method which has a FieldMask type field in the +// request should verify the included field paths, and return an +// `INVALID_ARGUMENT` error if any path is unmappable. +message FieldMask { + // The set of field mask paths. + repeated string paths = 1; +} diff --git a/LuBanConfig/Tools/protoc/include/google/protobuf/source_context.proto b/LuBanConfig/Tools/protoc/include/google/protobuf/source_context.proto new file mode 100644 index 000000000..135f50fea --- /dev/null +++ b/LuBanConfig/Tools/protoc/include/google/protobuf/source_context.proto @@ -0,0 +1,48 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +option java_package = "com.google.protobuf"; +option java_outer_classname = "SourceContextProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option go_package = "google.golang.org/protobuf/types/known/sourcecontextpb"; + +// `SourceContext` represents information about the source of a +// protobuf element, like the file in which it is defined. +message SourceContext { + // The path-qualified name of the .proto file that contained the associated + // protobuf element. For example: `"google/protobuf/source_context.proto"`. + string file_name = 1; +} diff --git a/LuBanConfig/Tools/protoc/include/google/protobuf/struct.proto b/LuBanConfig/Tools/protoc/include/google/protobuf/struct.proto new file mode 100644 index 000000000..1bf0c1ad9 --- /dev/null +++ b/LuBanConfig/Tools/protoc/include/google/protobuf/struct.proto @@ -0,0 +1,95 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +option cc_enable_arenas = true; +option go_package = "google.golang.org/protobuf/types/known/structpb"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "StructProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; + +// `Struct` represents a structured data value, consisting of fields +// which map to dynamically typed values. In some languages, `Struct` +// might be supported by a native representation. For example, in +// scripting languages like JS a struct is represented as an +// object. The details of that representation are described together +// with the proto support for the language. +// +// The JSON representation for `Struct` is JSON object. +message Struct { + // Unordered map of dynamically typed values. + map fields = 1; +} + +// `Value` represents a dynamically typed value which can be either +// null, a number, a string, a boolean, a recursive struct value, or a +// list of values. A producer of value is expected to set one of these +// variants. Absence of any variant indicates an error. +// +// The JSON representation for `Value` is JSON value. +message Value { + // The kind of value. + oneof kind { + // Represents a null value. + NullValue null_value = 1; + // Represents a double value. + double number_value = 2; + // Represents a string value. + string string_value = 3; + // Represents a boolean value. + bool bool_value = 4; + // Represents a structured value. + Struct struct_value = 5; + // Represents a repeated `Value`. + ListValue list_value = 6; + } +} + +// `NullValue` is a singleton enumeration to represent the null value for the +// `Value` type union. +// +// The JSON representation for `NullValue` is JSON `null`. +enum NullValue { + // Null value. + NULL_VALUE = 0; +} + +// `ListValue` is a wrapper around a repeated field of values. +// +// The JSON representation for `ListValue` is JSON array. +message ListValue { + // Repeated field of dynamically typed values. + repeated Value values = 1; +} diff --git a/LuBanConfig/Tools/protoc/include/google/protobuf/timestamp.proto b/LuBanConfig/Tools/protoc/include/google/protobuf/timestamp.proto new file mode 100644 index 000000000..fd0bc07dc --- /dev/null +++ b/LuBanConfig/Tools/protoc/include/google/protobuf/timestamp.proto @@ -0,0 +1,144 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +option cc_enable_arenas = true; +option go_package = "google.golang.org/protobuf/types/known/timestamppb"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "TimestampProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; + +// A Timestamp represents a point in time independent of any time zone or local +// calendar, encoded as a count of seconds and fractions of seconds at +// nanosecond resolution. The count is relative to an epoch at UTC midnight on +// January 1, 1970, in the proleptic Gregorian calendar which extends the +// Gregorian calendar backwards to year one. +// +// All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap +// second table is needed for interpretation, using a [24-hour linear +// smear](https://developers.google.com/time/smear). +// +// The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By +// restricting to that range, we ensure that we can convert to and from [RFC +// 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. +// +// # Examples +// +// Example 1: Compute Timestamp from POSIX `time()`. +// +// Timestamp timestamp; +// timestamp.set_seconds(time(NULL)); +// timestamp.set_nanos(0); +// +// Example 2: Compute Timestamp from POSIX `gettimeofday()`. +// +// struct timeval tv; +// gettimeofday(&tv, NULL); +// +// Timestamp timestamp; +// timestamp.set_seconds(tv.tv_sec); +// timestamp.set_nanos(tv.tv_usec * 1000); +// +// Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. +// +// FILETIME ft; +// GetSystemTimeAsFileTime(&ft); +// UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; +// +// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z +// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. +// Timestamp timestamp; +// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); +// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); +// +// Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. +// +// long millis = System.currentTimeMillis(); +// +// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) +// .setNanos((int) ((millis % 1000) * 1000000)).build(); +// +// Example 5: Compute Timestamp from Java `Instant.now()`. +// +// Instant now = Instant.now(); +// +// Timestamp timestamp = +// Timestamp.newBuilder().setSeconds(now.getEpochSecond()) +// .setNanos(now.getNano()).build(); +// +// Example 6: Compute Timestamp from current time in Python. +// +// timestamp = Timestamp() +// timestamp.GetCurrentTime() +// +// # JSON Mapping +// +// In JSON format, the Timestamp type is encoded as a string in the +// [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the +// format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" +// where {year} is always expressed using four digits while {month}, {day}, +// {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional +// seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), +// are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone +// is required. A proto3 JSON serializer should always use UTC (as indicated by +// "Z") when printing the Timestamp type and a proto3 JSON parser should be +// able to accept both UTC and other timezones (as indicated by an offset). +// +// For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past +// 01:30 UTC on January 15, 2017. +// +// In JavaScript, one can convert a Date object to this format using the +// standard +// [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) +// method. In Python, a standard `datetime.datetime` object can be converted +// to this format using +// [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with +// the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use +// the Joda Time's [`ISODateTimeFormat.dateTime()`]( +// http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime() +// ) to obtain a formatter capable of generating timestamps in this format. +// +message Timestamp { + // Represents seconds of UTC time since Unix epoch + // 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + // 9999-12-31T23:59:59Z inclusive. + int64 seconds = 1; + + // Non-negative fractions of a second at nanosecond resolution. Negative + // second values with fractions must still have non-negative nanos values + // that count forward in time. Must be from 0 to 999,999,999 + // inclusive. + int32 nanos = 2; +} diff --git a/LuBanConfig/Tools/protoc/include/google/protobuf/type.proto b/LuBanConfig/Tools/protoc/include/google/protobuf/type.proto new file mode 100644 index 000000000..48cb11e75 --- /dev/null +++ b/LuBanConfig/Tools/protoc/include/google/protobuf/type.proto @@ -0,0 +1,193 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +import "google/protobuf/any.proto"; +import "google/protobuf/source_context.proto"; + +option cc_enable_arenas = true; +option java_package = "com.google.protobuf"; +option java_outer_classname = "TypeProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option go_package = "google.golang.org/protobuf/types/known/typepb"; + +// A protocol buffer message type. +message Type { + // The fully qualified message name. + string name = 1; + // The list of fields. + repeated Field fields = 2; + // The list of types appearing in `oneof` definitions in this type. + repeated string oneofs = 3; + // The protocol buffer options. + repeated Option options = 4; + // The source context. + SourceContext source_context = 5; + // The source syntax. + Syntax syntax = 6; + // The source edition string, only valid when syntax is SYNTAX_EDITIONS. + string edition = 7; +} + +// A single field of a message type. +message Field { + // Basic field types. + enum Kind { + // Field type unknown. + TYPE_UNKNOWN = 0; + // Field type double. + TYPE_DOUBLE = 1; + // Field type float. + TYPE_FLOAT = 2; + // Field type int64. + TYPE_INT64 = 3; + // Field type uint64. + TYPE_UINT64 = 4; + // Field type int32. + TYPE_INT32 = 5; + // Field type fixed64. + TYPE_FIXED64 = 6; + // Field type fixed32. + TYPE_FIXED32 = 7; + // Field type bool. + TYPE_BOOL = 8; + // Field type string. + TYPE_STRING = 9; + // Field type group. Proto2 syntax only, and deprecated. + TYPE_GROUP = 10; + // Field type message. + TYPE_MESSAGE = 11; + // Field type bytes. + TYPE_BYTES = 12; + // Field type uint32. + TYPE_UINT32 = 13; + // Field type enum. + TYPE_ENUM = 14; + // Field type sfixed32. + TYPE_SFIXED32 = 15; + // Field type sfixed64. + TYPE_SFIXED64 = 16; + // Field type sint32. + TYPE_SINT32 = 17; + // Field type sint64. + TYPE_SINT64 = 18; + } + + // Whether a field is optional, required, or repeated. + enum Cardinality { + // For fields with unknown cardinality. + CARDINALITY_UNKNOWN = 0; + // For optional fields. + CARDINALITY_OPTIONAL = 1; + // For required fields. Proto2 syntax only. + CARDINALITY_REQUIRED = 2; + // For repeated fields. + CARDINALITY_REPEATED = 3; + } + + // The field type. + Kind kind = 1; + // The field cardinality. + Cardinality cardinality = 2; + // The field number. + int32 number = 3; + // The field name. + string name = 4; + // The field type URL, without the scheme, for message or enumeration + // types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`. + string type_url = 6; + // The index of the field type in `Type.oneofs`, for message or enumeration + // types. The first type has index 1; zero means the type is not in the list. + int32 oneof_index = 7; + // Whether to use alternative packed wire representation. + bool packed = 8; + // The protocol buffer options. + repeated Option options = 9; + // The field JSON name. + string json_name = 10; + // The string value of the default value of this field. Proto2 syntax only. + string default_value = 11; +} + +// Enum type definition. +message Enum { + // Enum type name. + string name = 1; + // Enum value definitions. + repeated EnumValue enumvalue = 2; + // Protocol buffer options. + repeated Option options = 3; + // The source context. + SourceContext source_context = 4; + // The source syntax. + Syntax syntax = 5; + // The source edition string, only valid when syntax is SYNTAX_EDITIONS. + string edition = 6; +} + +// Enum value definition. +message EnumValue { + // Enum value name. + string name = 1; + // Enum value number. + int32 number = 2; + // Protocol buffer options. + repeated Option options = 3; +} + +// A protocol buffer option, which can be attached to a message, field, +// enumeration, etc. +message Option { + // The option's name. For protobuf built-in options (options defined in + // descriptor.proto), this is the short name. For example, `"map_entry"`. + // For custom options, it should be the fully-qualified name. For example, + // `"google.api.http"`. + string name = 1; + // The option's value packed in an Any message. If the value is a primitive, + // the corresponding wrapper type defined in google/protobuf/wrappers.proto + // should be used. If the value is an enum, it should be stored as an int32 + // value using the google.protobuf.Int32Value type. + Any value = 2; +} + +// The syntax in which a protocol buffer element is defined. +enum Syntax { + // Syntax `proto2`. + SYNTAX_PROTO2 = 0; + // Syntax `proto3`. + SYNTAX_PROTO3 = 1; + // Syntax `editions`. + SYNTAX_EDITIONS = 2; +} diff --git a/LuBanConfig/Tools/protoc/include/google/protobuf/wrappers.proto b/LuBanConfig/Tools/protoc/include/google/protobuf/wrappers.proto new file mode 100644 index 000000000..1959fa55a --- /dev/null +++ b/LuBanConfig/Tools/protoc/include/google/protobuf/wrappers.proto @@ -0,0 +1,123 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Wrappers for primitive (non-message) types. These types are useful +// for embedding primitives in the `google.protobuf.Any` type and for places +// where we need to distinguish between the absence of a primitive +// typed field and its default value. +// +// These wrappers have no meaningful use within repeated fields as they lack +// the ability to detect presence on individual elements. +// These wrappers have no meaningful use within a map or a oneof since +// individual entries of a map or fields of a oneof can already detect presence. + +syntax = "proto3"; + +package google.protobuf; + +option cc_enable_arenas = true; +option go_package = "google.golang.org/protobuf/types/known/wrapperspb"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "WrappersProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; + +// Wrapper message for `double`. +// +// The JSON representation for `DoubleValue` is JSON number. +message DoubleValue { + // The double value. + double value = 1; +} + +// Wrapper message for `float`. +// +// The JSON representation for `FloatValue` is JSON number. +message FloatValue { + // The float value. + float value = 1; +} + +// Wrapper message for `int64`. +// +// The JSON representation for `Int64Value` is JSON string. +message Int64Value { + // The int64 value. + int64 value = 1; +} + +// Wrapper message for `uint64`. +// +// The JSON representation for `UInt64Value` is JSON string. +message UInt64Value { + // The uint64 value. + uint64 value = 1; +} + +// Wrapper message for `int32`. +// +// The JSON representation for `Int32Value` is JSON number. +message Int32Value { + // The int32 value. + int32 value = 1; +} + +// Wrapper message for `uint32`. +// +// The JSON representation for `UInt32Value` is JSON number. +message UInt32Value { + // The uint32 value. + uint32 value = 1; +} + +// Wrapper message for `bool`. +// +// The JSON representation for `BoolValue` is JSON `true` and `false`. +message BoolValue { + // The bool value. + bool value = 1; +} + +// Wrapper message for `string`. +// +// The JSON representation for `StringValue` is JSON string. +message StringValue { + // The string value. + string value = 1; +} + +// Wrapper message for `bytes`. +// +// The JSON representation for `BytesValue` is JSON string. +message BytesValue { + // The bytes value. + bytes value = 1; +}