diff --git a/DataTables/Datas/#demo.item.xlsx b/DataTables/Datas/#demo.item.xlsx new file mode 100644 index 00000000..974ed8bd Binary files /dev/null and b/DataTables/Datas/#demo.item.xlsx differ diff --git a/DataTables/Datas/__beans__.xlsx b/DataTables/Datas/__beans__.xlsx new file mode 100644 index 00000000..6fc990b4 Binary files /dev/null and b/DataTables/Datas/__beans__.xlsx differ diff --git a/DataTables/Datas/__enums__.xlsx b/DataTables/Datas/__enums__.xlsx new file mode 100644 index 00000000..a0056988 Binary files /dev/null and b/DataTables/Datas/__enums__.xlsx differ diff --git a/DataTables/Datas/__tables__.xlsx b/DataTables/Datas/__tables__.xlsx new file mode 100644 index 00000000..e2d7a261 Binary files /dev/null and b/DataTables/Datas/__tables__.xlsx differ diff --git a/DataTables/Datas/l10n/Demo.xlsx b/DataTables/Datas/l10n/Demo.xlsx new file mode 100644 index 00000000..c9032390 Binary files /dev/null and b/DataTables/Datas/l10n/Demo.xlsx differ diff --git a/DataTables/Datas/l10n/Patch.xlsx b/DataTables/Datas/l10n/Patch.xlsx new file mode 100644 index 00000000..77428df8 Binary files /dev/null and b/DataTables/Datas/l10n/Patch.xlsx differ diff --git a/DataTables/Datas/l10n/texts.json b/DataTables/Datas/l10n/texts.json new file mode 100644 index 00000000..0b59e3fa --- /dev/null +++ b/DataTables/Datas/l10n/texts.json @@ -0,0 +1,9 @@ +[ + {"key":"/apple", "en":"apple", "zh":"苹果"}, + {"key":"/abc", "en":"apple", "zh":"苹果"}, + {"key":"/def", "en":"apple", "zh":"苹果"}, + {"key":"key_name", "en":"apple", "zh":"苹果"}, + {"key":"test/a", "en":"apple", "zh":"苹果"}, + {"key":"name", "en":"apple", "zh":"苹果"}, + {"key":"/banana", "en":"banana", "zh":"香蕉"} +] \ No newline at end of file diff --git a/DataTables/Datas/reward.xlsx b/DataTables/Datas/reward.xlsx new file mode 100644 index 00000000..cb37235c Binary files /dev/null and b/DataTables/Datas/reward.xlsx differ diff --git a/DataTables/Defines/builtin.xml b/DataTables/Defines/builtin.xml new file mode 100644 index 00000000..e535ff48 --- /dev/null +++ b/DataTables/Defines/builtin.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/DataTables/gen.bat b/DataTables/gen.bat new file mode 100644 index 00000000..3eef6241 --- /dev/null +++ b/DataTables/gen.bat @@ -0,0 +1,11 @@ +set WORKSPACE=.. +set LUBAN_DLL=%WORKSPACE%\Tools\Luban\Luban.dll +set CONF_ROOT=. + +dotnet %LUBAN_DLL% ^ + -t all ^ + -d json ^ + --conf %CONF_ROOT%\luban.conf ^ + -x outputDataDir=output + +pause \ No newline at end of file diff --git a/DataTables/gen.sh b/DataTables/gen.sh new file mode 100644 index 00000000..5f48c8e8 --- /dev/null +++ b/DataTables/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/DataTables/luban.conf b/DataTables/luban.conf new file mode 100644 index 00000000..716d6fb4 --- /dev/null +++ b/DataTables/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/DataTables/output/demo_tbitem.json b/DataTables/output/demo_tbitem.json new file mode 100644 index 00000000..06e888f8 --- /dev/null +++ b/DataTables/output/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/DataTables/output/demo_tbreward.json b/DataTables/output/demo_tbreward.json new file mode 100644 index 00000000..329a3ca7 --- /dev/null +++ b/DataTables/output/demo_tbreward.json @@ -0,0 +1,14 @@ +[ + { + "id": 1001, + "name": "道具1", + "desc": "碎片", + "count": 10 + }, + { + "id": 1002, + "name": "道具2", + "desc": "金币", + "count": 100 + } +] \ No newline at end of file diff --git a/Tools/Luban/CommandLine.dll b/Tools/Luban/CommandLine.dll new file mode 100644 index 00000000..3eab2be2 Binary files /dev/null and b/Tools/Luban/CommandLine.dll differ diff --git a/Tools/Luban/ExcelDataReader.dll b/Tools/Luban/ExcelDataReader.dll new file mode 100644 index 00000000..c730b00d Binary files /dev/null and b/Tools/Luban/ExcelDataReader.dll differ diff --git a/Tools/Luban/Google.Protobuf.dll b/Tools/Luban/Google.Protobuf.dll new file mode 100644 index 00000000..3cd09501 Binary files /dev/null and b/Tools/Luban/Google.Protobuf.dll differ diff --git a/Tools/Luban/Luban.Bson.deps.json b/Tools/Luban/Luban.Bson.deps.json new file mode 100644 index 00000000..e2df5d08 --- /dev/null +++ b/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/Tools/Luban/Luban.Bson.dll b/Tools/Luban/Luban.Bson.dll new file mode 100644 index 00000000..1b396a72 Binary files /dev/null and b/Tools/Luban/Luban.Bson.dll differ diff --git a/Tools/Luban/Luban.CSharp.deps.json b/Tools/Luban/Luban.CSharp.deps.json new file mode 100644 index 00000000..fdab8291 --- /dev/null +++ b/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/Tools/Luban/Luban.CSharp.dll b/Tools/Luban/Luban.CSharp.dll new file mode 100644 index 00000000..388a69a6 Binary files /dev/null and b/Tools/Luban/Luban.CSharp.dll differ diff --git a/Tools/Luban/Luban.Core.deps.json b/Tools/Luban/Luban.Core.deps.json new file mode 100644 index 00000000..03f04879 --- /dev/null +++ b/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/Tools/Luban/Luban.Core.dll b/Tools/Luban/Luban.Core.dll new file mode 100644 index 00000000..6deb2c3e Binary files /dev/null and b/Tools/Luban/Luban.Core.dll differ diff --git a/Tools/Luban/Luban.Cpp.deps.json b/Tools/Luban/Luban.Cpp.deps.json new file mode 100644 index 00000000..f01523e4 --- /dev/null +++ b/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/Tools/Luban/Luban.Cpp.dll b/Tools/Luban/Luban.Cpp.dll new file mode 100644 index 00000000..f0629b76 Binary files /dev/null and b/Tools/Luban/Luban.Cpp.dll differ diff --git a/Tools/Luban/Luban.Dart.deps.json b/Tools/Luban/Luban.Dart.deps.json new file mode 100644 index 00000000..a9857b1d --- /dev/null +++ b/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/Tools/Luban/Luban.Dart.dll b/Tools/Luban/Luban.Dart.dll new file mode 100644 index 00000000..52022a2d Binary files /dev/null and b/Tools/Luban/Luban.Dart.dll differ diff --git a/Tools/Luban/Luban.DataLoader.Builtin.deps.json b/Tools/Luban/Luban.DataLoader.Builtin.deps.json new file mode 100644 index 00000000..62beda5e --- /dev/null +++ b/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/Tools/Luban/Luban.DataLoader.Builtin.dll b/Tools/Luban/Luban.DataLoader.Builtin.dll new file mode 100644 index 00000000..1fc1e816 Binary files /dev/null and b/Tools/Luban/Luban.DataLoader.Builtin.dll differ diff --git a/Tools/Luban/Luban.DataTarget.Builtin.deps.json b/Tools/Luban/Luban.DataTarget.Builtin.deps.json new file mode 100644 index 00000000..45659dd2 --- /dev/null +++ b/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/Tools/Luban/Luban.DataTarget.Builtin.dll b/Tools/Luban/Luban.DataTarget.Builtin.dll new file mode 100644 index 00000000..81ab140c Binary files /dev/null and b/Tools/Luban/Luban.DataTarget.Builtin.dll differ diff --git a/Tools/Luban/Luban.DataValidator.Builtin.deps.json b/Tools/Luban/Luban.DataValidator.Builtin.deps.json new file mode 100644 index 00000000..0616312b --- /dev/null +++ b/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/Tools/Luban/Luban.DataValidator.Builtin.dll b/Tools/Luban/Luban.DataValidator.Builtin.dll new file mode 100644 index 00000000..92459a43 Binary files /dev/null and b/Tools/Luban/Luban.DataValidator.Builtin.dll differ diff --git a/Tools/Luban/Luban.FlatBuffers.deps.json b/Tools/Luban/Luban.FlatBuffers.deps.json new file mode 100644 index 00000000..d7e57c1c --- /dev/null +++ b/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/Tools/Luban/Luban.FlatBuffers.dll b/Tools/Luban/Luban.FlatBuffers.dll new file mode 100644 index 00000000..b29289e5 Binary files /dev/null and b/Tools/Luban/Luban.FlatBuffers.dll differ diff --git a/Tools/Luban/Luban.Gdscript.deps.json b/Tools/Luban/Luban.Gdscript.deps.json new file mode 100644 index 00000000..eec881e9 --- /dev/null +++ b/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/Tools/Luban/Luban.Gdscript.dll b/Tools/Luban/Luban.Gdscript.dll new file mode 100644 index 00000000..fbaee2b7 Binary files /dev/null and b/Tools/Luban/Luban.Gdscript.dll differ diff --git a/Tools/Luban/Luban.Golang.deps.json b/Tools/Luban/Luban.Golang.deps.json new file mode 100644 index 00000000..eb357886 --- /dev/null +++ b/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/Tools/Luban/Luban.Golang.dll b/Tools/Luban/Luban.Golang.dll new file mode 100644 index 00000000..9b27eb1e Binary files /dev/null and b/Tools/Luban/Luban.Golang.dll differ diff --git a/Tools/Luban/Luban.Java.deps.json b/Tools/Luban/Luban.Java.deps.json new file mode 100644 index 00000000..83a9ec06 --- /dev/null +++ b/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/Tools/Luban/Luban.Java.dll b/Tools/Luban/Luban.Java.dll new file mode 100644 index 00000000..c3f20931 Binary files /dev/null and b/Tools/Luban/Luban.Java.dll differ diff --git a/Tools/Luban/Luban.Javascript.deps.json b/Tools/Luban/Luban.Javascript.deps.json new file mode 100644 index 00000000..56a53f12 --- /dev/null +++ b/Tools/Luban/Luban.Javascript.deps.json @@ -0,0 +1,615 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Luban.Javascript/1.0.0": { + "dependencies": { + "Luban.CSharp": "1.0.0", + "Luban.Core": "1.0.0", + "Luban.DataTarget.Builtin": "1.0.0" + }, + "runtime": { + "Luban.Javascript.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.Javascript/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/Tools/Luban/Luban.Javascript.dll b/Tools/Luban/Luban.Javascript.dll new file mode 100644 index 00000000..e1fda019 Binary files /dev/null and b/Tools/Luban/Luban.Javascript.dll differ diff --git a/Tools/Luban/Luban.L10N.deps.json b/Tools/Luban/Luban.L10N.deps.json new file mode 100644 index 00000000..605a6037 --- /dev/null +++ b/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/Tools/Luban/Luban.L10N.dll b/Tools/Luban/Luban.L10N.dll new file mode 100644 index 00000000..247d32ea Binary files /dev/null and b/Tools/Luban/Luban.L10N.dll differ diff --git a/Tools/Luban/Luban.Lua.deps.json b/Tools/Luban/Luban.Lua.deps.json new file mode 100644 index 00000000..dd9127d7 --- /dev/null +++ b/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/Tools/Luban/Luban.Lua.dll b/Tools/Luban/Luban.Lua.dll new file mode 100644 index 00000000..4aa9dbcb Binary files /dev/null and b/Tools/Luban/Luban.Lua.dll differ diff --git a/Tools/Luban/Luban.MsgPack.deps.json b/Tools/Luban/Luban.MsgPack.deps.json new file mode 100644 index 00000000..8d9d9fd6 --- /dev/null +++ b/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/Tools/Luban/Luban.MsgPack.dll b/Tools/Luban/Luban.MsgPack.dll new file mode 100644 index 00000000..7fdf878c Binary files /dev/null and b/Tools/Luban/Luban.MsgPack.dll differ diff --git a/Tools/Luban/Luban.PHP.deps.json b/Tools/Luban/Luban.PHP.deps.json new file mode 100644 index 00000000..6447dd88 --- /dev/null +++ b/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/Tools/Luban/Luban.PHP.dll b/Tools/Luban/Luban.PHP.dll new file mode 100644 index 00000000..39d2340d Binary files /dev/null and b/Tools/Luban/Luban.PHP.dll differ diff --git a/Tools/Luban/Luban.Protobuf.deps.json b/Tools/Luban/Luban.Protobuf.deps.json new file mode 100644 index 00000000..a791bf76 --- /dev/null +++ b/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/Tools/Luban/Luban.Protobuf.dll b/Tools/Luban/Luban.Protobuf.dll new file mode 100644 index 00000000..878808c3 Binary files /dev/null and b/Tools/Luban/Luban.Protobuf.dll differ diff --git a/Tools/Luban/Luban.Python.deps.json b/Tools/Luban/Luban.Python.deps.json new file mode 100644 index 00000000..9afffa95 --- /dev/null +++ b/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/Tools/Luban/Luban.Python.dll b/Tools/Luban/Luban.Python.dll new file mode 100644 index 00000000..2ad8a080 Binary files /dev/null and b/Tools/Luban/Luban.Python.dll differ diff --git a/Tools/Luban/Luban.Rust.deps.json b/Tools/Luban/Luban.Rust.deps.json new file mode 100644 index 00000000..63c7d1a1 --- /dev/null +++ b/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/Tools/Luban/Luban.Rust.dll b/Tools/Luban/Luban.Rust.dll new file mode 100644 index 00000000..89d0184c Binary files /dev/null and b/Tools/Luban/Luban.Rust.dll differ diff --git a/Tools/Luban/Luban.Schema.Builtin.deps.json b/Tools/Luban/Luban.Schema.Builtin.deps.json new file mode 100644 index 00000000..0f78b600 --- /dev/null +++ b/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/Tools/Luban/Luban.Schema.Builtin.dll b/Tools/Luban/Luban.Schema.Builtin.dll new file mode 100644 index 00000000..2aa234c9 Binary files /dev/null and b/Tools/Luban/Luban.Schema.Builtin.dll differ diff --git a/Tools/Luban/Luban.Schema.Builtin.runtimeconfig.json b/Tools/Luban/Luban.Schema.Builtin.runtimeconfig.json new file mode 100644 index 00000000..44665024 --- /dev/null +++ b/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/Tools/Luban/Luban.Typescript.deps.json b/Tools/Luban/Luban.Typescript.deps.json new file mode 100644 index 00000000..e5855b06 --- /dev/null +++ b/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/Tools/Luban/Luban.Typescript.dll b/Tools/Luban/Luban.Typescript.dll new file mode 100644 index 00000000..40e96e93 Binary files /dev/null and b/Tools/Luban/Luban.Typescript.dll differ diff --git a/Tools/Luban/Luban.deps.json b/Tools/Luban/Luban.deps.json new file mode 100644 index 00000000..2173ba0e --- /dev/null +++ b/Tools/Luban/Luban.deps.json @@ -0,0 +1,1034 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Luban/4.4.0": { + "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.Javascript": "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.Javascript/1.0.0": { + "dependencies": { + "Luban.CSharp": "1.0.0", + "Luban.Core": "1.0.0", + "Luban.DataTarget.Builtin": "1.0.0" + }, + "runtime": { + "Luban.Javascript.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.4.0": { + "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.Javascript/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/Tools/Luban/Luban.dll b/Tools/Luban/Luban.dll new file mode 100644 index 00000000..0398f25e Binary files /dev/null and b/Tools/Luban/Luban.dll differ diff --git a/Tools/Luban/Luban.exe b/Tools/Luban/Luban.exe new file mode 100644 index 00000000..1b79a050 Binary files /dev/null and b/Tools/Luban/Luban.exe differ diff --git a/Tools/Luban/Luban.runtimeconfig.json b/Tools/Luban/Luban.runtimeconfig.json new file mode 100644 index 00000000..d7845156 --- /dev/null +++ b/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/Tools/Luban/MessagePack.Annotations.dll b/Tools/Luban/MessagePack.Annotations.dll new file mode 100644 index 00000000..b3a3f489 Binary files /dev/null and b/Tools/Luban/MessagePack.Annotations.dll differ diff --git a/Tools/Luban/MessagePack.dll b/Tools/Luban/MessagePack.dll new file mode 100644 index 00000000..ed883d08 Binary files /dev/null and b/Tools/Luban/MessagePack.dll differ diff --git a/Tools/Luban/Microsoft.NET.StringTools.dll b/Tools/Luban/Microsoft.NET.StringTools.dll new file mode 100644 index 00000000..7d304399 Binary files /dev/null and b/Tools/Luban/Microsoft.NET.StringTools.dll differ diff --git a/Tools/Luban/NLog.dll b/Tools/Luban/NLog.dll new file mode 100644 index 00000000..49604e19 Binary files /dev/null and b/Tools/Luban/NLog.dll differ diff --git a/Tools/Luban/Neo.Lua.dll b/Tools/Luban/Neo.Lua.dll new file mode 100644 index 00000000..406f580c Binary files /dev/null and b/Tools/Luban/Neo.Lua.dll differ diff --git a/Tools/Luban/Newtonsoft.Json.Bson.dll b/Tools/Luban/Newtonsoft.Json.Bson.dll new file mode 100644 index 00000000..159d2edc Binary files /dev/null and b/Tools/Luban/Newtonsoft.Json.Bson.dll differ diff --git a/Tools/Luban/Newtonsoft.Json.dll b/Tools/Luban/Newtonsoft.Json.dll new file mode 100644 index 00000000..1ffeabe6 Binary files /dev/null and b/Tools/Luban/Newtonsoft.Json.dll differ diff --git a/Tools/Luban/Scriban.dll b/Tools/Luban/Scriban.dll new file mode 100644 index 00000000..c8131e2e Binary files /dev/null and b/Tools/Luban/Scriban.dll differ diff --git a/Tools/Luban/Templates/common/cpp/enum.sbn b/Tools/Luban/Templates/common/cpp/enum.sbn new file mode 100644 index 00000000..b9f3b0a5 --- /dev/null +++ b/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/Tools/Luban/Templates/common/cs/enum.sbn b/Tools/Luban/Templates/common/cs/enum.sbn new file mode 100644 index 00000000..4dcd9b67 --- /dev/null +++ b/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/Tools/Luban/Templates/common/dart/enum.sbn b/Tools/Luban/Templates/common/dart/enum.sbn new file mode 100644 index 00000000..97417f01 --- /dev/null +++ b/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/Tools/Luban/Templates/common/go/enum.sbn b/Tools/Luban/Templates/common/go/enum.sbn new file mode 100644 index 00000000..7dd70a6b --- /dev/null +++ b/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/Tools/Luban/Templates/common/java/enum.sbn b/Tools/Luban/Templates/common/java/enum.sbn new file mode 100644 index 00000000..142d8a13 --- /dev/null +++ b/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/Tools/Luban/Templates/common/js/enum.sbn b/Tools/Luban/Templates/common/js/enum.sbn new file mode 100644 index 00000000..139597f9 --- /dev/null +++ b/Tools/Luban/Templates/common/js/enum.sbn @@ -0,0 +1,2 @@ + + diff --git a/Tools/Luban/Templates/common/php/enum.sbn b/Tools/Luban/Templates/common/php/enum.sbn new file mode 100644 index 00000000..139597f9 --- /dev/null +++ b/Tools/Luban/Templates/common/php/enum.sbn @@ -0,0 +1,2 @@ + + diff --git a/Tools/Luban/Templates/common/rs/macros/Cargo.toml.sbn b/Tools/Luban/Templates/common/rs/macros/Cargo.toml.sbn new file mode 100644 index 00000000..ae3a110d --- /dev/null +++ b/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/Tools/Luban/Templates/common/rs/macros/src/lib.rs.sbn b/Tools/Luban/Templates/common/rs/macros/src/lib.rs.sbn new file mode 100644 index 00000000..7e93f74b --- /dev/null +++ b/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/Tools/Luban/Templates/common/ts/enum.sbn b/Tools/Luban/Templates/common/ts/enum.sbn new file mode 100644 index 00000000..139597f9 --- /dev/null +++ b/Tools/Luban/Templates/common/ts/enum.sbn @@ -0,0 +1,2 @@ + + diff --git a/Tools/Luban/Templates/cpp-rawptr-bin/bean.sbn b/Tools/Luban/Templates/cpp-rawptr-bin/bean.sbn new file mode 100644 index 00000000..2b856b0a --- /dev/null +++ b/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/Tools/Luban/Templates/cpp-rawptr-bin/schema_cpp.sbn b/Tools/Luban/Templates/cpp-rawptr-bin/schema_cpp.sbn new file mode 100644 index 00000000..18c15312 --- /dev/null +++ b/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/Tools/Luban/Templates/cpp-rawptr-bin/schema_h.sbn b/Tools/Luban/Templates/cpp-rawptr-bin/schema_h.sbn new file mode 100644 index 00000000..90ba84cb --- /dev/null +++ b/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/Tools/Luban/Templates/cpp-rawptr-bin/table.sbn b/Tools/Luban/Templates/cpp-rawptr-bin/table.sbn new file mode 100644 index 00000000..511a5463 --- /dev/null +++ b/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/Tools/Luban/Templates/cpp-rawptr-bin/tables.sbn b/Tools/Luban/Templates/cpp-rawptr-bin/tables.sbn new file mode 100644 index 00000000..76354d59 --- /dev/null +++ b/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/Tools/Luban/Templates/cpp-sharedptr-bin/bean.sbn b/Tools/Luban/Templates/cpp-sharedptr-bin/bean.sbn new file mode 100644 index 00000000..f55cd315 --- /dev/null +++ b/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/Tools/Luban/Templates/cpp-sharedptr-bin/schema_cpp.sbn b/Tools/Luban/Templates/cpp-sharedptr-bin/schema_cpp.sbn new file mode 100644 index 00000000..1d1a92c1 --- /dev/null +++ b/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/Tools/Luban/Templates/cpp-sharedptr-bin/schema_h.sbn b/Tools/Luban/Templates/cpp-sharedptr-bin/schema_h.sbn new file mode 100644 index 00000000..90ba84cb --- /dev/null +++ b/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/Tools/Luban/Templates/cpp-sharedptr-bin/table.sbn b/Tools/Luban/Templates/cpp-sharedptr-bin/table.sbn new file mode 100644 index 00000000..f8838472 --- /dev/null +++ b/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/Tools/Luban/Templates/cpp-sharedptr-bin/tables.sbn b/Tools/Luban/Templates/cpp-sharedptr-bin/tables.sbn new file mode 100644 index 00000000..76354d59 --- /dev/null +++ b/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/Tools/Luban/Templates/cs-bin/bean.sbn b/Tools/Luban/Templates/cs-bin/bean.sbn new file mode 100644 index 00000000..47062266 --- /dev/null +++ b/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/Tools/Luban/Templates/cs-bin/table.sbn b/Tools/Luban/Templates/cs-bin/table.sbn new file mode 100644 index 00000000..d2afc6a9 --- /dev/null +++ b/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) + { + int n = _buf.ReadSize(); + _dataMap = new System.Collections.Generic.Dictionary<{{declaring_type_name key_type}}, {{declaring_type_name value_type}}>(n); + _dataList = new System.Collections.Generic.List<{{declaring_type_name value_type}}>(n); + for(int i = n ; i > 0 ; --i) + { + {{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 : default; + 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 : default; + 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) + { + int n = _buf.ReadSize(); + _dataList = new System.Collections.Generic.List<{{declaring_type_name value_type}}>(n); + for(int i = n ; i > 0 ; --i) + { + {{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}}(n); + 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}}>(n); + {{~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 : default; + {{~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 : default; + {{~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/Tools/Luban/Templates/cs-bin/tables.sbn b/Tools/Luban/Templates/cs-bin/tables.sbn new file mode 100644 index 00000000..be907ad7 --- /dev/null +++ b/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/Tools/Luban/Templates/cs-dotnet-json/bean.sbn b/Tools/Luban/Templates/cs-dotnet-json/bean.sbn new file mode 100644 index 00000000..d661e085 --- /dev/null +++ b/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/Tools/Luban/Templates/cs-dotnet-json/table.sbn b/Tools/Luban/Templates/cs-dotnet-json/table.sbn new file mode 100644 index 00000000..76b04fdb --- /dev/null +++ b/Tools/Luban/Templates/cs-dotnet-json/table.sbn @@ -0,0 +1,172 @@ +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) + { + int count = _buf.GetArrayLength(); + _dataMap = new System.Collections.Generic.Dictionary<{{declaring_type_name __key_type}}, {{declaring_type_name __value_type}}>(count); + _dataList = new System.Collections.Generic.List<{{declaring_type_name __value_type}}>(count); + + 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 : default; + 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 : default; + 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) + { + int count = _buf.GetArrayLength(); + _dataList = new System.Collections.Generic.List<{{declaring_type_name __value_type}}>(count); + + 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}}>(count); + {{~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 : default; + {{~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 : default; + {{~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/Tools/Luban/Templates/cs-dotnet-json/tables.sbn b/Tools/Luban/Templates/cs-dotnet-json/tables.sbn new file mode 100644 index 00000000..fcb18326 --- /dev/null +++ b/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/Tools/Luban/Templates/cs-editor-json/bean.sbn b/Tools/Luban/Templates/cs-editor-json/bean.sbn new file mode 100644 index 00000000..0ed8c8cd --- /dev/null +++ b/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/Tools/Luban/Templates/cs-editor-json/enum.sbn b/Tools/Luban/Templates/cs-editor-json/enum.sbn new file mode 100644 index 00000000..fb36236f --- /dev/null +++ b/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/Tools/Luban/Templates/cs-newtonsoft-json/bean.sbn b/Tools/Luban/Templates/cs-newtonsoft-json/bean.sbn new file mode 100644 index 00000000..f8ae9bd2 --- /dev/null +++ b/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/Tools/Luban/Templates/cs-newtonsoft-json/table.sbn b/Tools/Luban/Templates/cs-newtonsoft-json/table.sbn new file mode 100644 index 00000000..8ba801ab --- /dev/null +++ b/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}}>(_buf.Count); + _dataList = new System.Collections.Generic.List<{{declaring_type_name __value_type}}>(_buf.Count); + + 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 : default; + 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 : default; + 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}}>(_buf.Count); + + 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}}(_buf.Count); + 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}}>(_buf.Count); + {{~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 : default; + {{~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 : default; + {{~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/Tools/Luban/Templates/cs-newtonsoft-json/tables.sbn b/Tools/Luban/Templates/cs-newtonsoft-json/tables.sbn new file mode 100644 index 00000000..5f10e0a6 --- /dev/null +++ b/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/Tools/Luban/Templates/cs-simple-json/bean.sbn b/Tools/Luban/Templates/cs-simple-json/bean.sbn new file mode 100644 index 00000000..1d7a4d93 --- /dev/null +++ b/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/Tools/Luban/Templates/cs-simple-json/table.sbn b/Tools/Luban/Templates/cs-simple-json/table.sbn new file mode 100644 index 00000000..612341cd --- /dev/null +++ b/Tools/Luban/Templates/cs-simple-json/table.sbn @@ -0,0 +1,172 @@ +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) + { + int count = _buf.Count; + _dataMap = new System.Collections.Generic.Dictionary<{{declaring_type_name __key_type}}, {{declaring_type_name __value_type}}>(count); + _dataList = new System.Collections.Generic.List<{{declaring_type_name __value_type}}>(count); + + 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 : default; + 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 : default; + 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) + { + int count = _buf.Count; + _dataList = new System.Collections.Generic.List<{{declaring_type_name __value_type}}>(count); + + 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}}>(count); + {{~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 : default; + {{~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 : default; + {{~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/Tools/Luban/Templates/cs-simple-json/tables.sbn b/Tools/Luban/Templates/cs-simple-json/tables.sbn new file mode 100644 index 00000000..66770e93 --- /dev/null +++ b/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/Tools/Luban/Templates/cs_pb/tables.sbn b/Tools/Luban/Templates/cs_pb/tables.sbn new file mode 100644 index 00000000..837061f5 --- /dev/null +++ b/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/Tools/Luban/Templates/dart-json/bean.sbn b/Tools/Luban/Templates/dart-json/bean.sbn new file mode 100644 index 00000000..c26884f6 --- /dev/null +++ b/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/Tools/Luban/Templates/dart-json/table.sbn b/Tools/Luban/Templates/dart-json/table.sbn new file mode 100644 index 00000000..57b66c71 --- /dev/null +++ b/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/Tools/Luban/Templates/dart-json/tables.sbn b/Tools/Luban/Templates/dart-json/tables.sbn new file mode 100644 index 00000000..760be581 --- /dev/null +++ b/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/Tools/Luban/Templates/flatbuffers/schema.sbn b/Tools/Luban/Templates/flatbuffers/schema.sbn new file mode 100644 index 00000000..ca8099c1 --- /dev/null +++ b/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/Tools/Luban/Templates/gdscript-json/schema.sbn b/Tools/Luban/Templates/gdscript-json/schema.sbn new file mode 100644 index 00000000..dca95335 --- /dev/null +++ b/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/Tools/Luban/Templates/go-bin/bean.sbn b/Tools/Luban/Templates/go-bin/bean.sbn new file mode 100644 index 00000000..0ff01a03 --- /dev/null +++ b/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/Tools/Luban/Templates/go-bin/table.sbn b/Tools/Luban/Templates/go-bin/table.sbn new file mode 100644 index 00000000..e511405b --- /dev/null +++ b/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/Tools/Luban/Templates/go-bin/tables.sbn b/Tools/Luban/Templates/go-bin/tables.sbn new file mode 100644 index 00000000..4b0e7d12 --- /dev/null +++ b/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/Tools/Luban/Templates/go-json/bean.sbn b/Tools/Luban/Templates/go-json/bean.sbn new file mode 100644 index 00000000..1da3b0e4 --- /dev/null +++ b/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/Tools/Luban/Templates/go-json/table.sbn b/Tools/Luban/Templates/go-json/table.sbn new file mode 100644 index 00000000..3fd5f9e4 --- /dev/null +++ b/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/Tools/Luban/Templates/go-json/tables.sbn b/Tools/Luban/Templates/go-json/tables.sbn new file mode 100644 index 00000000..6f174821 --- /dev/null +++ b/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/Tools/Luban/Templates/java-bin/bean.sbn b/Tools/Luban/Templates/java-bin/bean.sbn new file mode 100644 index 00000000..39f90f0a --- /dev/null +++ b/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/Tools/Luban/Templates/java-bin/table.sbn b/Tools/Luban/Templates/java-bin/table.sbn new file mode 100644 index 00000000..8f3c2225 --- /dev/null +++ b/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/Tools/Luban/Templates/java-bin/tables.sbn b/Tools/Luban/Templates/java-bin/tables.sbn new file mode 100644 index 00000000..7ab77d85 --- /dev/null +++ b/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/Tools/Luban/Templates/java-json/bean.sbn b/Tools/Luban/Templates/java-json/bean.sbn new file mode 100644 index 00000000..34fe4158 --- /dev/null +++ b/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/Tools/Luban/Templates/java-json/table.sbn b/Tools/Luban/Templates/java-json/table.sbn new file mode 100644 index 00000000..d4a5ebd6 --- /dev/null +++ b/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/Tools/Luban/Templates/java-json/tables.sbn b/Tools/Luban/Templates/java-json/tables.sbn new file mode 100644 index 00000000..dbb624b0 --- /dev/null +++ b/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/Tools/Luban/Templates/javascript-bin/schema.sbn b/Tools/Luban/Templates/javascript-bin/schema.sbn new file mode 100644 index 00000000..5c790639 --- /dev/null +++ b/Tools/Luban/Templates/javascript-bin/schema.sbn @@ -0,0 +1,195 @@ + +{{~for enum in __enums~}}{{~if enum.comment != '' ~}} +/** + * {{enum.comment | html.escape}} + */ +{{~end~}} +export const {{full_name enum}} = Object.freeze({ + {{~for item in enum.items ~}} +{{~if item.comment != '' ~}} + /** + * {{escape_comment item.comment}} + */ +{{~end~}} + {{item.name}}: {{item.int_value}}, + {{~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_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~}} + +{{~if bean.comment != '' ~}} +/** + * {{escape_comment bean.comment}} + */ +{{~end~}} +export class {{full_name bean}}{{if bean.parent_def_type}} extends {{full_name bean.parent_def_type}}{{end}} { +{{~if bean.is_abstract_type~}} + static constructorFrom(_buf_) { + switch (_buf_.readInt()) { + {{~ for child in bean.hierarchy_not_abstract_children~}} + case {{child.id}}: return new {{full_name child}}(_buf_); + {{~end~}} + default: throw new Error(); + } + } +{{~end~}} + + constructor(_buf_) { + {{~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~}} + } + + resolve(tables) { + {{~if bean.parent_def_type~}} + super.resolve(tables); + {{~end~}} + {{~ for field in bean.export_fields ~}} + {{generate_resolve_field_ref field}} + {{~end~}} + } +} + + +{{~end~}} + +{{~for table in __tables + key_type = table.key_ttype + value_type = table.value_ttype +~}} + +{{~if table.comment != '' ~}} +/** + * {{escape_comment table.comment}} + */ +{{~end~}} +export class {{full_name table}} { + {{~if table.is_map_table ~}} + + constructor(_buf_) { + this._dataMap = new Map(); + this._dataList = []; + for(let n = _buf_.readInt(); n > 0; n--) { + let _v; + {{deserialize '_v' '_buf_' value_type}}; + this._dataList.push(_v); + this._dataMap.set(_v.{{format_field_name __code_style table.index_field.name}}, _v); + } + } + + getDataMap() { return this._dataMap; } + getDataList() { return this._dataList; } + + get(key) { return this._dataMap.get(key); } + + resolve(tables) { + for(let data of this._dataList) { + data.resolve(tables); + } + } + {{~else if table.is_list_table ~}} + + constructor(_buf_) { + this._dataList = []; + for(let n = _buf_.readInt(); n > 0; n--) { + let _v; + {{deserialize '_v' '_buf_' value_type}}; + this._dataList.push(_v); + } + } + + getDataList() { return this._dataList } + + get(index) { return this._dataList[index] } + + resolve(tables) { + for(let data of this._dataList) { + data.resolve(tables); + } + } + {{~else~}} + + constructor(_buf_) { + if (_buf_.readInt() != 1) throw new Error('table mode=one, but size != 1') + {{deserialize 'this._data' '_buf_' value_type}} + } + + getData() { 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}}() { return this._data.{{format_field_name __code_style field.name}}; } + {{~if can_generate_ref field~}} + get {{format_field_name __code_style field.name}}_ref(): { return this._data.{{format_field_name __code_style field.name}}_ref; } + {{~end~}} + {{~end~}} + + resolve(tables) { + this._data.resolve(tables); + } + {{end}} +} + +{{~end~}} + +export class {{__name}} { + {{~ for table in __tables ~}} +{{~if table.comment != '' ~}} + /** + * {{escape_comment table.comment}} + */ +{{~end~}} + get {{table.name}}() { return this._{{table.name}};} + {{~end~}} + + constructor(loader) { + {{~for table in __tables ~}} + this._{{table.name}} = new {{full_name table}}(loader('{{table.output_data_file}}')); + {{~end~}} + + {{~for table in __tables ~}} + this._{{table.name}}.resolve(this); + {{~end~}} + } +} diff --git a/Tools/Luban/Templates/javascript-json/schema.sbn b/Tools/Luban/Templates/javascript-json/schema.sbn new file mode 100644 index 00000000..5529bd27 --- /dev/null +++ b/Tools/Luban/Templates/javascript-json/schema.sbn @@ -0,0 +1,196 @@ + +{{~for enum in __enums~}}{{~if enum.comment != '' ~}} +/** + * {{enum.comment | html.escape}} + */ +{{~end~}} +export const {{full_name enum}} = Object.freeze({ + {{~for item in enum.items ~}} +{{~if item.comment != '' ~}} + /** + * {{escape_comment item.comment}} + */ +{{~end~}} + {{item.name}}: {{item.int_value}}, + {{~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_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~}} + +{{~if bean.comment != '' ~}} +/** + * {{escape_comment bean.comment}} + */ +{{~end~}} +export class {{full_name bean}}{{if bean.parent_def_type}} extends {{full_name bean.parent_def_type}}{{end}} { +{{~if bean.is_abstract_type~}} + static constructorFrom(_json_) { + switch (_json_["$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 Error(); + } + } +{{~end~}} + + constructor(_json_) { + {{~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~}} + } + + resolve(tables) { + {{~if bean.parent_def_type~}} + super.resolve(tables); + {{~end~}} + {{~ for field in bean.export_fields ~}} + {{generate_resolve_field_ref field}} + {{~end~}} + } +} + +{{~end~}} + +{{~for table in __tables + key_type = table.key_ttype + value_type = table.value_ttype +~}} + +{{~if table.comment != '' ~}} +/** + * {{escape_comment table.comment}} + */ +{{~end~}} +export class {{full_name table}} { + {{~if table.is_map_table ~}} + + constructor(_json_) { + this._dataMap = new Map(); + this._dataList = []; + for(var _json2_ of _json_) { + let _v; + {{deserialize '_v' '_json2_' value_type}}; + this._dataList.push(_v); + this._dataMap.set(_v.{{format_field_name __code_style table.index_field.name}}, _v); + } + } + + getDataMap() { return this._dataMap; } + getDataList() { return this._dataList; } + + get(key) { return this._dataMap.get(key); } + + resolve(tables) { + for(let data of this._dataList) { + data.resolve(tables); + } + } + {{~else if table.is_list_table ~}} + + constructor(_json_) { + this._dataList = []; + for(var _json2_ of _json_) { + let _v; + {{deserialize '_v' '_json2_' value_type}}; + this._dataList.push(_v); + } + } + + getDataList() { return this._dataList } + + get(index) { return this._dataList[index] } + + resolve(tables) { + for(let data of this._dataList) { + data.resolve(tables); + } + } + {{~else~}} + + constructor(_json_) { + if (_json_.length != 1) throw new Error('table mode=one, but size != 1'); + {{deserialize 'this._data' '_json_[0]' value_type}}; + } + + getData() { 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}}() { return this._data.{{format_field_name __code_style field.name}}; } + {{~if can_generate_ref field~}} + get {{format_field_name __code_style field.name}}_ref(): { return this._data.{{format_field_name __code_style field.name}}_ref; } + {{~end~}} + {{~end~}} + + resolve(tables) { + this._data.resolve(tables); + } + {{end}} +} + +{{~end~}} + +export class {{__name}} { + {{~ for table in __tables ~}} +{{~if table.comment != '' ~}} + /** + * {{escape_comment table.comment}} + */ +{{~end~}} + get {{table.name}}() { return this._{{table.name}};} + {{~end~}} + + constructor(loader) { + {{~for table in __tables ~}} + this._{{table.name}} = new {{full_name table}}(loader('{{table.output_data_file}}')); + {{~end~}} + + {{~for table in __tables ~}} + this._{{table.name}}.resolve(this); + {{~end~}} + } +} diff --git a/Tools/Luban/Templates/lua-bin/schema.sbn b/Tools/Luban/Templates/lua-bin/schema.sbn new file mode 100644 index 00000000..5a492a7f --- /dev/null +++ b/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/Tools/Luban/Templates/lua-lua/schema.sbn b/Tools/Luban/Templates/lua-lua/schema.sbn new file mode 100644 index 00000000..3a75e1a3 --- /dev/null +++ b/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/Tools/Luban/Templates/pb/schema.sbn b/Tools/Luban/Templates/pb/schema.sbn new file mode 100644 index 00000000..fce80354 --- /dev/null +++ b/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/Tools/Luban/Templates/php-json/schema.sbn b/Tools/Luban/Templates/php-json/schema.sbn new file mode 100644 index 00000000..478c850f --- /dev/null +++ b/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/Tools/Luban/Templates/python-json/schema.sbn b/Tools/Luban/Templates/python-json/schema.sbn new file mode 100644 index 00000000..dfa6e4bb --- /dev/null +++ b/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/Tools/Luban/Templates/rust-bin/lib.sbn b/Tools/Luban/Templates/rust-bin/lib.sbn new file mode 100644 index 00000000..254110e7 --- /dev/null +++ b/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/Tools/Luban/Templates/rust-bin/mod.sbn b/Tools/Luban/Templates/rust-bin/mod.sbn new file mode 100644 index 00000000..a844024b --- /dev/null +++ b/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/Tools/Luban/Templates/rust-bin/toml.sbn b/Tools/Luban/Templates/rust-bin/toml.sbn new file mode 100644 index 00000000..6345181f --- /dev/null +++ b/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/Tools/Luban/Templates/rust-json/lib.sbn b/Tools/Luban/Templates/rust-json/lib.sbn new file mode 100644 index 00000000..8f906cc1 --- /dev/null +++ b/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/Tools/Luban/Templates/rust-json/mod.sbn b/Tools/Luban/Templates/rust-json/mod.sbn new file mode 100644 index 00000000..fc2f0be4 --- /dev/null +++ b/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/Tools/Luban/Templates/rust-json/toml.sbn b/Tools/Luban/Templates/rust-json/toml.sbn new file mode 100644 index 00000000..40870c70 --- /dev/null +++ b/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/Tools/Luban/Templates/typescript-bin/schema.sbn b/Tools/Luban/Templates/typescript-bin/schema.sbn new file mode 100644 index 00000000..254a33fc --- /dev/null +++ b/Tools/Luban/Templates/typescript-bin/schema.sbn @@ -0,0 +1,234 @@ + +import ByteBuf from '../luban/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/Tools/Luban/Templates/typescript-json/schema.sbn b/Tools/Luban/Templates/typescript-json/schema.sbn new file mode 100644 index 00000000..ed794223 --- /dev/null +++ b/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/Tools/Luban/Templates/typescript-protobuf/schema.sbn b/Tools/Luban/Templates/typescript-protobuf/schema.sbn new file mode 100644 index 00000000..0538d7b5 --- /dev/null +++ b/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/Tools/Luban/Ude.NetStandard.dll b/Tools/Luban/Ude.NetStandard.dll new file mode 100644 index 00000000..2cb9b2f5 Binary files /dev/null and b/Tools/Luban/Ude.NetStandard.dll differ diff --git a/Tools/Luban/YamlDotNet.NetCore.dll b/Tools/Luban/YamlDotNet.NetCore.dll new file mode 100644 index 00000000..1c598d78 Binary files /dev/null and b/Tools/Luban/YamlDotNet.NetCore.dll differ diff --git a/Tools/Luban/de/Neo.Lua.resources.dll b/Tools/Luban/de/Neo.Lua.resources.dll new file mode 100644 index 00000000..69bb3852 Binary files /dev/null and b/Tools/Luban/de/Neo.Lua.resources.dll differ diff --git a/Tools/Luban/nlog.xml b/Tools/Luban/nlog.xml new file mode 100644 index 00000000..8c390bc0 --- /dev/null +++ b/Tools/Luban/nlog.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + diff --git a/Tools/build-luban.bat b/Tools/build-luban.bat new file mode 100644 index 00000000..3b26f43c --- /dev/null +++ b/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/assets/Scripts/chat18x/luban_code.meta b/assets/Scripts/chat18x/luban_code.meta new file mode 100644 index 00000000..2e68b343 --- /dev/null +++ b/assets/Scripts/chat18x/luban_code.meta @@ -0,0 +1,9 @@ +{ + "ver": "1.2.0", + "importer": "directory", + "imported": true, + "uuid": "2bce8fa5-2ca5-44eb-89aa-d46f7e26d71b", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/Scripts/chat18x/manager/ConfigManager.ts b/assets/Scripts/chat18x/manager/ConfigManager.ts new file mode 100644 index 00000000..6f3c5082 --- /dev/null +++ b/assets/Scripts/chat18x/manager/ConfigManager.ts @@ -0,0 +1,55 @@ +import { _decorator, resources, BufferAsset, Component } from "cc"; +import * as cfg from "../../schema/schema"; +import ByteBuf from "db://assets/Scripts/luban/ByteBuf"; + +const { ccclass, property } = _decorator; +@ccclass("ConfigManager") +export default class ConfigManager extends Component { + public static tables: cfg.Tables = null; + private static dataMap = new Map(); + public static jsonFileNames: string[] = []; + + onLoad() { + this.loadAllConfig(); + } + + public loadConfigName(): void { + ConfigManager.jsonFileNames = cfg.Tables.getTableNames(); + } + + public loadAllConfig() { + this.loadConfigName(); + let promises: Promise[] = []; + for (let curFileName of ConfigManager.jsonFileNames) { + let promise = new Promise((resolve, reject) => { + resources.load("test/" + curFileName, BufferAsset, (err, data) => { + resolve(data); + }); + }); + promise.then((data: BufferAsset) => { + if (data) { + ConfigManager.dataMap.set( + curFileName, + new Uint8Array(data.buffer().slice(0, data.buffer().byteLength)) + ); + } else { + console.error("静态配置加载失败" + curFileName); + } + }); + promises.push(promise); + } + Promise.all(promises).then((values) => { + console.log("静态配置加载完成"); + ConfigManager.tables = new cfg.Tables(this.getFileData); + for (let item of ConfigManager.tables.Tbitem.getDataList()) { + console.log(item); + } + }); + } + private getFileData(fileName: string): ByteBuf { + if (ConfigManager.dataMap.has(fileName)) { + return new ByteBuf(ConfigManager.dataMap.get(fileName)); + } + return null; + } +} diff --git a/assets/Scripts/chat18x/manager/ConfigManager.ts.meta b/assets/Scripts/chat18x/manager/ConfigManager.ts.meta new file mode 100644 index 00000000..02a0f40a --- /dev/null +++ b/assets/Scripts/chat18x/manager/ConfigManager.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.24", + "importer": "typescript", + "imported": true, + "uuid": "fbd435ab-238b-4ae8-a5ee-1823eec61491", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/Scripts/chat18x/ui/panels/ChatPanel.ts b/assets/Scripts/chat18x/ui/panels/ChatPanel.ts index ac79fb4f..fc7f7832 100644 --- a/assets/Scripts/chat18x/ui/panels/ChatPanel.ts +++ b/assets/Scripts/chat18x/ui/panels/ChatPanel.ts @@ -1,18 +1,29 @@ -import { _decorator, Component, EditBox, Node,Label,Sprite,UITransform } from "cc"; +import { + _decorator, + Component, + EditBox, + Node, + Label, + Sprite, + UITransform, +} from "cc"; // 首先加载 polyfills 以确保兼容性 import "../../utils/polyfills"; import { DialogManager } from "../../manager/DialogManager"; import { ChatAIService } from "../../core/ChatAIService"; import li_BaseView from "db://assets/Scripts/Main/Common/li_BaseView"; import Utils from "db://assets/Scripts/Main/Common/Utils"; -import {InnerMsgCode} from "db://assets/Scripts/Main/Config/InnerMsgCode"; -import {ChatContentsLayout} from "../components/ChatContentsLayout"; -import {ViewManager} from "db://assets/Scripts/Main/Manager/ViewManager"; +import { InnerMsgCode } from "db://assets/Scripts/Main/Config/InnerMsgCode"; +import { ChatContentsLayout } from "../components/ChatContentsLayout"; +import { ViewManager } from "db://assets/Scripts/Main/Manager/ViewManager"; import GameRootUI from "db://assets/Scripts/Main/Common/GameRootUI"; -import {ImagePopup} from "../components/ImagePopup"; -import {girlDetailInfo, GirlsData} from "db://assets/Scripts/Main/Config/cfg/characters"; +import { ImagePopup } from "../components/ImagePopup"; +import { + girlDetailInfo, + GirlsData, +} from "db://assets/Scripts/Main/Config/cfg/characters"; import ResManager from "db://assets/Scripts/Main/Manager/ResManager"; -import {VideoRoleType} from "db://assets/Scripts/Main/Common/GlobalValue"; +import { VideoRoleType } from "db://assets/Scripts/Main/Common/GlobalValue"; const { ccclass, property } = _decorator; @ccclass("ChatPanel") @@ -34,44 +45,56 @@ export class ChatPanel extends li_BaseView { @property(ImagePopup) popUpImage: ImagePopup = null; - id:number + id: number; private _nodeTab: any = {}; - openUIDataCT(data) - { + openUIDataCT(data) { this.id = data; // 设置当前聊天的角色ID ChatAIService.Instance.setCurrentRole(this.id); } - onLoadCT() - { - Utils.parseNode(this.node,this._nodeTab); + onLoadCT() { + Utils.parseNode(this.node, this._nodeTab); this.register(); this.refresh(this.id); } - register() - { - Utils.addInnerEL(InnerMsgCode.Chat_DialogRefresh,this,this.onDialogUpdate); + register() { + Utils.addInnerEL( + InnerMsgCode.Chat_DialogRefresh, + this, + this.onDialogUpdate + ); } - refresh(id:number) { + refresh(id: number) { this.id = id; - const data = girlDetailInfo.filter(value=>value.baseInfo.id == id)[0]; - if(!data) return; + const data = girlDetailInfo.filter((value) => value.baseInfo.id == id)[0]; + if (!data) return; this.girlName.string = data.baseInfo.name; - ResManager.I.changeBundleSpriteFrame(this.girlImg,data.baseInfo.pic.url,"Chat18x",()=>{ - let sizeTran = this.girlImg.node.parent.getComponent(UITransform); - Utils.adjustBgPixelRatioToSize(sizeTran.contentSize,this.girlImg.node,2); + ResManager.I.changeBundleSpriteFrame( + this.girlImg, + data.baseInfo.pic.url, + "Chat18x", + () => { + let sizeTran = this.girlImg.node.parent.getComponent(UITransform); + Utils.adjustBgPixelRatioToSize( + sizeTran.contentSize, + this.girlImg.node, + 2 + ); + } + ); + let uiTransform: UITransform = + this._nodeTab.BgFrame.getComponent(UITransform); + + Utils.sendInnerMsg(InnerMsgCode.SimplePlayVide, { + path: data.pics[0].url, + size: uiTransform.contentSize, }); - let uiTransform:UITransform = this._nodeTab.BgFrame.getComponent(UITransform); - - Utils.sendInnerMsg(InnerMsgCode.SimplePlayVide,{path:data.pics[0].url,size:uiTransform.contentSize} ) - } - onDialogUpdate() - { - this.layout.UpdateDialog(DialogManager.getInstance().getDialogs()) + onDialogUpdate() { + this.layout.UpdateDialog(DialogManager.getInstance().getDialogs()); } protected onEnable(): void { if (!this.manager) this.manager = DialogManager.getInstance(); @@ -86,15 +109,11 @@ export class ChatPanel extends li_BaseView { this.editBox.string = ""; - DialogManager.getInstance().updateDialog(true, str,true); + DialogManager.getInstance().updateDialog(true, str, true); // 使用新的sendMessage方法,传入角色ID const ret = await ChatAIService.Instance.sendMessage(this.id, str); - console.log(ret); - if (ret == null) { - console.warn("rep null"); - } if (this.manager) { this.manager.updateDialog(false, ret); } @@ -104,11 +123,7 @@ export class ChatPanel extends li_BaseView { //this.popUpImage.refresh("Image/1/blur_naked_1"); } - - - - returnBtn() - { + returnBtn() { this.onClose(); GameRootUI.I.showDefaultView(); diff --git a/assets/Scripts/luban.meta b/assets/Scripts/luban.meta new file mode 100644 index 00000000..262bdd24 --- /dev/null +++ b/assets/Scripts/luban.meta @@ -0,0 +1,9 @@ +{ + "ver": "1.2.0", + "importer": "directory", + "imported": true, + "uuid": "61e402ea-effd-46e7-96e3-aa97fd4e36b1", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/Scripts/luban/ByteBuf.ts b/assets/Scripts/luban/ByteBuf.ts new file mode 100644 index 00000000..6c195a41 --- /dev/null +++ b/assets/Scripts/luban/ByteBuf.ts @@ -0,0 +1,411 @@ +import b from "buffer/index.js"; +const { Buffer } = b; + +export enum EDeserializeError { + OK, + NOT_ENOUGH, + EXCEED_SIZE, +} + + +const MIN_CAPACITY: number = 16 + +const f_2power32 = Math.pow(2, 32) +const f_2power56 = Math.pow(2, 56) + +export default class ByteBuf { + private static emptyBuff: Buffer = Buffer.allocUnsafe(0) + + constructor(bytes?: Uint8Array) { + this._bytes = bytes != null ? Buffer.from(bytes) : ByteBuf.emptyBuff + this._readerIndex = 0 + this._writerIndex = bytes != null ? bytes.length : 0 + } + + + Replace(bytes: Uint8Array) { + this._bytes = Buffer.from(bytes) + this._readerIndex = 0 + this._writerIndex = bytes.length + } + + Replace2(bytes: Uint8Array, beginPos: number, endPos: number) { + this._bytes = Buffer.from(bytes, beginPos, endPos - beginPos) + this._readerIndex = beginPos + this._writerIndex = endPos + } + + private _bytes: Buffer + + // get Bytes(): Buffer { return this._bytes } + + private _readerIndex: number + // get this._readerIndex(): number { return this._readerIndex } + // set this._readerIndex(value: number) { this._readerIndex = value } + + private _writerIndex: number + // get this._writerIndex(): number { return this._writerIndex } + // set this._writerIndex(value: number) { this._writerIndex = value } + + get capacity(): number { return this._bytes.length } + get size(): number { return this._writerIndex - this._readerIndex } + get empty(): boolean { return this._writerIndex <= this._readerIndex } + get notEmpty(): boolean { return this._writerIndex > this._readerIndex } + + getBytesNotSafe(): Buffer { return this._bytes } + + addReadIndex(add: number) { + this._readerIndex += add + } + + private static emptyBytes: Uint8Array = new Uint8Array() + + copyData(): Uint8Array { + const n = this.remaining + if (n > 0) { + return new Uint8Array(this._bytes.buffer.slice(this._readerIndex, this._writerIndex)) + } else { + return ByteBuf.emptyBytes + } + } + + get remaining(): number { return this._writerIndex - this._readerIndex } + + discardReadBytes() { + this._bytes.copyWithin(0, this._readerIndex, this._writerIndex) + this._writerIndex -= this._readerIndex + this._readerIndex = 0 + } + + + clear() { + this._readerIndex = this._writerIndex = 0 + } + + + private static propSize(initSize: number, needSize: number): number { + for (let i = Math.max(initSize, MIN_CAPACITY); i <<= 1;) { + if (i >= needSize) { + return i + } + } + } + + private ensureRead(size: number) { + if (this._readerIndex + size > this._writerIndex) { + throw new Error() + } + } + + + private canRead(size: number): boolean { + return (this._readerIndex + size <= this._writerIndex) + } + + readBool(): boolean { + this.ensureRead(1) + return this._bytes[this._readerIndex++] != 0 + } + + readByte(): number { + this.ensureRead(1) + return this._bytes[this._readerIndex++] + } + + readShort(): number { + this.ensureRead(1) + const buf = this._bytes + const h = buf.readUInt8(this._readerIndex) + if (h < 0x80) { + this._readerIndex++ + return h + } + else if (h < 0xc0) { + this.ensureRead(2) + const x = buf.readUInt16BE(this._readerIndex) & 0x3fff + this._readerIndex += 2 + return x + } + else if ((h == 0xff)) { + this.ensureRead(3) + const x = buf.readInt16BE(this._readerIndex + 1) + this._readerIndex += 3 + return x + } + else { + throw new Error() + } + } + + readInt(): number { + const buf = this._bytes + + this.ensureRead(1) + const h = buf.readUInt8(this._readerIndex) + if (h < 0x80) { + this._readerIndex++ + return h + } + else if (h < 0xc0) { + this.ensureRead(2) + const x = buf.readUInt16BE(this._readerIndex) & 0x3fff + this._readerIndex += 2 + return x + } + else if (h < 0xe0) { + // console.log(`== read ${buf.readInt32BE(this._readerIndex)}`) + this.ensureRead(3) + const x = ((h & 0x1f) << 16) | (buf.readUInt16BE(this._readerIndex + 1)) + this._readerIndex += 3 + return x + } + else if (h < 0xf0) { + this.ensureRead(4) + // console.log(`== read ${buf.readInt32BE(this._readerIndex)}`) + const x = buf.readInt32BE(this._readerIndex) & 0x0fffffff + this._readerIndex += 4 + return x + } + else { + this.ensureRead(5) + const x = buf.readInt32BE(this._readerIndex + 1) + this._readerIndex += 5 + return x + } + } + + readFint(): number { + this.ensureRead(4) + const x = this._bytes.readInt32LE() + this._readerIndex += 4 + return x + } + + readLongAsNumber(): number { + const buf = this._bytes + /// + /// 警告! 如有修改,记得调整 TryDeserializeInplaceOctets + this.ensureRead(1) + const h = buf.readUInt8(this._readerIndex) + if (h < 0x80) { + this._readerIndex++ + return h + } + else if (h < 0xc0) { + this.ensureRead(2) + const x = buf.readUInt16BE(this._readerIndex) & 0x3fff + // console.log(`== read long :${x} index:${this._readerIndex}`) + this._readerIndex += 2 + return x + } + else if (h < 0xe0) { + // console.log(`== read ${buf.readInt32BE(this._readerIndex)}`) + this.ensureRead(3) + const x = ((h & 0x1f) << 16) | (buf.readUInt16BE(this._readerIndex + 1)) + this._readerIndex += 3 + return x + } + else if (h < 0xf0) { + this.ensureRead(4) + // console.log(`== read ${buf.readInt32BE(this._readerIndex)}`) + const x = buf.readInt32BE(this._readerIndex) & 0x0fffffff + this._readerIndex += 4 + return x + } + else if (h < 0xf8) { + this.ensureRead(5) + const xl = buf.readUInt32BE(this._readerIndex + 1) + const xh = h & 0x07 + this._readerIndex += 5 + return xh * 0x100000000 + xl + } + else if (h < 0xfc) { // 1111 10xx - - - - - + this.ensureRead(6) + const xl = buf.readUInt32BE(this._readerIndex + 2) + const xh = buf.readUInt16BE(this._readerIndex) & 0x3ff + this._readerIndex += 6 + return xh * 0x100000000 + xl + } + else if (h < 0xfe) { + this.ensureRead(7) + const xl = buf.readUInt32BE(this._readerIndex + 3) + const xh = (buf.readUInt32BE(this._readerIndex) >> 8) & 0x1ffff + this._readerIndex += 7 + return xh * 0x100000000 + xl + } + else if (h < 0xff) { // 1111 1110, - - - - - - - + this.ensureRead(8) + // TODO 是否要对 < Number.MAX_SAFE_INTEGER 优化处理? + const xl = buf.readUInt32BE(this._readerIndex + 4) + const xh = buf.readUInt32BE(this._readerIndex) & 0xffffff + this._readerIndex += 8 + return xh * f_2power32 + xl + } + else { + this.ensureRead(9) + const x = buf.readBigInt64BE(this._readerIndex + 1) + // const xl = buf.readUInt32BE(this._readerIndex + 5) + // const xh = buf.readInt32BE(this._readerIndex + 1) + this._readerIndex += 9 + return Number(x) + } + } + + readLong(): bigint { + const buf = this._bytes + /// + this.ensureRead(1) + const h = buf.readUInt8(this._readerIndex) + if (h < 0x80) { + this._readerIndex++ + return BigInt(h) + } + else if (h < 0xc0) { + this.ensureRead(2) + const x = buf.readUInt16BE(this._readerIndex) & 0x3fff + this._readerIndex += 2 + return BigInt(x) + } + else if (h < 0xe0) { + this.ensureRead(3) + const x = ((h & 0x1f) << 16) | (buf.readUInt16BE(this._readerIndex + 1)) + this._readerIndex += 3 + return BigInt(x) + } + else if (h < 0xf0) { + this.ensureRead(4) + const x = buf.readInt32BE(this._readerIndex) & 0x0fffffff + this._readerIndex += 4 + return BigInt(x) + } + else if (h < 0xf8) { + this.ensureRead(5) + const xl = buf.readUInt32BE(this._readerIndex + 1) + const xh = h & 0x07 + this._readerIndex += 5 + return BigInt(xh * 0x100000000 + xl) + } + else if (h < 0xfc) { // 1111 10xx - - - - - + this.ensureRead(6) + const xl = buf.readUInt32BE(this._readerIndex + 2) + const xh = buf.readUInt16BE(this._readerIndex) & 0x3ff + this._readerIndex += 6 + return BigInt(xh * 0x100000000 + xl) + } + else if (h < 0xfe) { + this.ensureRead(7) + const xl = buf.readUInt32BE(this._readerIndex + 3) + const xh = (buf.readUInt32BE(this._readerIndex) >> 8) & 0x1ffff + this._readerIndex += 7 + return BigInt(xh * 0x100000000 + xl) + } + else if (h < 0xff) { // 1111 1110, - - - - - - - + this.ensureRead(8) + // TODO 是否要对 < Number.MAX_SAFE_INTEGER 优化处理? + const xl = buf.readUInt32BE(this._readerIndex + 4) + const xh = buf.readUInt32BE(this._readerIndex) & 0xffffff + // console.log(`== read8 ${xl} ${xh}`) + this._readerIndex += 8 + return (BigInt(xh) << BigInt(32)) | BigInt(xl) + } + else { + this.ensureRead(9) + const x = buf.readBigInt64BE(this._readerIndex + 1) + // const xl = buf.readUInt32BE(this._readerIndex + 5) + // const xh = buf.readInt32BE(this._readerIndex + 1) + this._readerIndex += 9 + return x + } + } + + readFloat(): number { + this.ensureRead(4) + const x = this._bytes.readFloatLE(this._readerIndex) + this._readerIndex += 4 + return x + } + + readDouble(): number { + this.ensureRead(8) + const x = this._bytes.readDoubleLE(this._readerIndex) + this._readerIndex += 8 + return x + } + + readSize(): number { + return this.readInt() + } + + // marshal int + // n -> (n << 1) ^ (n >> 31) + // read + // (x >>> 1) ^ ((x << 31) >> 31) + // (x >>> 1) ^ -(n&1) + // WriteSint(x: number) + // { + // WriteUint(((uint)x << 1) ^ ((uint)x >> 31)) + // } + + // readSint: number() + // { + // x: number = readUint() + // return (int)((x >> 1) ^ ((x & 1) << 31)) + // } + + + // marshal long + // n -> (n << 1) ^ (n >> 63) + // read + // (x >>> 1) ^((x << 63) >> 63) + // (x >>> 1) ^ -(n&1L) + // WriteSlong(long x) + // { + // WriteUlong(((ulong)x << 1) ^ ((ulong)x >> 63)) + // } + + // long readSlong() + // { + // long x = readLong() + // return ((long)((ulong)x >> 1) ^ ((x & 1) << 63)) + // } + + // // Uint8Array, [start, end) + // static Func < Uint8Array, int, int, string > StringCacheFinder { get set } + + readString(): string { + const n = this.readSize() + if (n > 0) { + this.ensureRead(n) + const s = this._bytes.toString("utf-8", this._readerIndex, this._readerIndex + n) + this._readerIndex += n + return s + } + else { + return "" + } + } + + readBytes(): Uint8Array { + const n = this.readSize() + if (n > 0) { + this.ensureRead(n) + const x = Buffer.from(this._bytes.slice(this._readerIndex, this._readerIndex + n)) + this._readerIndex += n + return x + } + else { + return ByteBuf.emptyBuff + } + } + + readArrayBuffer(): ArrayBuffer { + return this.readBytes().buffer + } + + SkipBytes() { + const n = this.readSize() + this.ensureRead(n) + this._readerIndex += n + } + +} diff --git a/assets/Scripts/luban/ByteBuf.ts.meta b/assets/Scripts/luban/ByteBuf.ts.meta new file mode 100644 index 00000000..d86c7aae --- /dev/null +++ b/assets/Scripts/luban/ByteBuf.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.24", + "importer": "typescript", + "imported": true, + "uuid": "547c38d1-76a2-4bee-9000-29c96b2a7958", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/Scripts/schema.meta b/assets/Scripts/schema.meta new file mode 100644 index 00000000..3f006e66 --- /dev/null +++ b/assets/Scripts/schema.meta @@ -0,0 +1,9 @@ +{ + "ver": "1.2.0", + "importer": "directory", + "imported": true, + "uuid": "d847d059-a5e7-46b6-b224-253ed497f46c", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/Scripts/schema/schema.ts b/assets/Scripts/schema/schema.ts new file mode 100644 index 00000000..33bcdef9 --- /dev/null +++ b/assets/Scripts/schema/schema.ts @@ -0,0 +1,253 @@ + +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + + +import ByteBuf from '../luban/ByteBuf' + + + + + +export namespace demo { +export class item { + + constructor(_buf_: ByteBuf) { + this.id = _buf_.readInt() + this.name = _buf_.readString() + this.desc = _buf_.readString() + this.count = _buf_.readInt() + } + + /** + * id + */ + readonly id: number + /** + * 名称 + */ + readonly name: string + /** + * 描述 + */ + readonly desc: string + /** + * 个数 + */ + readonly count: number + + resolve(tables:Tables) { + + + + + } +} + +} + + +export namespace demo { +export class Reward { + + constructor(_buf_: ByteBuf) { + this.id = _buf_.readInt() + this.name = _buf_.readString() + this.desc = _buf_.readString() + this.count = _buf_.readInt() + } + + /** + * id + */ + readonly id: number + /** + * 名称 + */ + readonly name: string + /** + * 描述 + */ + readonly desc: string + /** + * 个数 + */ + readonly count: number + + resolve(tables:Tables) { + + + + + } +} + +} + + + +export class vector2 { + + constructor(_buf_: ByteBuf) { + this.x = _buf_.readFloat() + this.y = _buf_.readFloat() + } + + readonly x: number + readonly y: number + + resolve(tables:Tables) { + + + } +} + + + + + +export class vector3 { + + constructor(_buf_: ByteBuf) { + this.x = _buf_.readFloat() + this.y = _buf_.readFloat() + this.z = _buf_.readFloat() + } + + readonly x: number + readonly y: number + readonly z: number + + resolve(tables:Tables) { + + + + } +} + + + + + +export class vector4 { + + constructor(_buf_: ByteBuf) { + this.x = _buf_.readFloat() + this.y = _buf_.readFloat() + this.z = _buf_.readFloat() + this.w = _buf_.readFloat() + } + + readonly x: number + readonly y: number + readonly z: number + readonly w: number + + resolve(tables:Tables) { + + + + + } +} + + + + + +export namespace demo { +export class TbReward { + private _dataMap: Map + private _dataList: demo.Reward[] + constructor(_buf_: ByteBuf) { + this._dataMap = new Map() + this._dataList = [] + for(let n = _buf_.readInt(); n > 0; n--) { + let _v: demo.Reward + _v = new demo.Reward(_buf_) + this._dataList.push(_v) + this._dataMap.set(_v.id, _v) + } + } + + getDataMap(): Map { return this._dataMap; } + getDataList(): demo.Reward[] { return this._dataList; } + + get(key: number): demo.Reward | undefined { + return this._dataMap.get(key); + } + + resolve(tables:Tables) { + for(let data of this._dataList) + { + data.resolve(tables) + } + } + +} +} + + +export namespace demo { +export class Tbitem { + private _dataMap: Map + private _dataList: demo.item[] + constructor(_buf_: ByteBuf) { + this._dataMap = new Map() + this._dataList = [] + for(let n = _buf_.readInt(); n > 0; n--) { + let _v: demo.item + _v = new demo.item(_buf_) + this._dataList.push(_v) + this._dataMap.set(_v.id, _v) + } + } + + getDataMap(): Map { return this._dataMap; } + getDataList(): demo.item[] { return this._dataList; } + + get(key: number): demo.item | undefined { + return this._dataMap.get(key); + } + + resolve(tables:Tables) { + for(let data of this._dataList) + { + data.resolve(tables) + } + } + +} +} + + + +type ByteBufLoader = (file: string) => ByteBuf + +export class Tables { + private _TbReward: demo.TbReward + get TbReward(): demo.TbReward { return this._TbReward;} + private _Tbitem: demo.Tbitem + get Tbitem(): demo.Tbitem { return this._Tbitem;} + + static getTableNames(): string[] { + let names: string[] = []; + names.push('demo_tbreward'); + names.push('demo_tbitem'); + return names; + } + + constructor(loader: ByteBufLoader) { + this._TbReward = new demo.TbReward(loader('demo_tbreward')) + this._Tbitem = new demo.Tbitem(loader('demo_tbitem')) + + this._TbReward.resolve(this) + this._Tbitem.resolve(this) + } +} + diff --git a/assets/Scripts/schema/schema.ts.meta b/assets/Scripts/schema/schema.ts.meta new file mode 100644 index 00000000..cf1c96de --- /dev/null +++ b/assets/Scripts/schema/schema.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.24", + "importer": "typescript", + "imported": true, + "uuid": "330f072d-4952-424b-acb9-1511e42cdfb0", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/bundles/Chat18x/LubanCfg.meta b/assets/bundles/Chat18x/LubanCfg.meta new file mode 100644 index 00000000..02828a1c --- /dev/null +++ b/assets/bundles/Chat18x/LubanCfg.meta @@ -0,0 +1,9 @@ +{ + "ver": "1.2.0", + "importer": "directory", + "imported": true, + "uuid": "47f49576-c2c9-44fd-a97b-757a0bde9e65", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/resources/test.meta b/assets/resources/test.meta new file mode 100644 index 00000000..72ba2a29 --- /dev/null +++ b/assets/resources/test.meta @@ -0,0 +1,9 @@ +{ + "ver": "1.2.0", + "importer": "directory", + "imported": true, + "uuid": "9af205c7-55bf-4df1-9349-5916a429f4fe", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/resources/test/demo_tbitem.bin b/assets/resources/test/demo_tbitem.bin new file mode 100644 index 00000000..6db22b43 --- /dev/null +++ b/assets/resources/test/demo_tbitem.bin @@ -0,0 +1,2 @@ +道具1描述1 +道具2描述2d \ No newline at end of file diff --git a/assets/resources/test/demo_tbitem.bin.meta b/assets/resources/test/demo_tbitem.bin.meta new file mode 100644 index 00000000..f0a35562 --- /dev/null +++ b/assets/resources/test/demo_tbitem.bin.meta @@ -0,0 +1,12 @@ +{ + "ver": "1.0.3", + "importer": "buffer", + "imported": true, + "uuid": "b6344d4c-c476-4680-baab-fc0ad7e822c3", + "files": [ + ".bin", + ".json" + ], + "subMetas": {}, + "userData": {} +} diff --git a/assets/resources/test/demo_tbreward.bin b/assets/resources/test/demo_tbreward.bin new file mode 100644 index 00000000..98dbcc02 --- /dev/null +++ b/assets/resources/test/demo_tbreward.bin @@ -0,0 +1,2 @@ +道具1碎片 +道具2金币d \ No newline at end of file diff --git a/assets/resources/test/demo_tbreward.bin.meta b/assets/resources/test/demo_tbreward.bin.meta new file mode 100644 index 00000000..aad7c97f --- /dev/null +++ b/assets/resources/test/demo_tbreward.bin.meta @@ -0,0 +1,12 @@ +{ + "ver": "1.0.3", + "importer": "buffer", + "imported": true, + "uuid": "f4e901c8-045b-48b6-9dbd-a8e66e836316", + "files": [ + ".bin", + ".json" + ], + "subMetas": {}, + "userData": {} +} diff --git a/gen_client.bat b/gen_client.bat new file mode 100644 index 00000000..cb03b6b4 --- /dev/null +++ b/gen_client.bat @@ -0,0 +1,15 @@ +set WORKSPACE=..\.. + +set LUBAN_DLL=Tools\Luban\Luban.dll +set CONF_ROOT=DataTables + +dotnet %LUBAN_DLL% ^ + -t all ^ + -c typescript-bin ^ + -d bin ^ + --conf %CONF_ROOT%\luban.conf ^ + -x outputCodeDir=assets\scripts\schema ^ + -x outputDataDir=assets\resources\test ^ + -x bin.fileExt=bin + +pause \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 5ab677b7..d31e2636 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,7 +6,8 @@ "": { "name": "XiangQin", "dependencies": { - "@google/genai": "^1.13.0" + "@google/genai": "^1.13.0", + "buffer": "^6.0.3" } }, "node_modules/@google/genai": { @@ -68,6 +69,30 @@ "node": "*" } }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, "node_modules/buffer-equal-constant-time": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", @@ -188,6 +213,26 @@ "node": ">= 14" } }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", diff --git a/package.json b/package.json index c18125a3..63a3c014 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ } }, "dependencies": { - "@google/genai": "^1.13.0" + "@google/genai": "^1.13.0", + "buffer": "^6.0.3" } }