From ed26623e17e8dfcc036f88cca6de10d5a35697ec Mon Sep 17 00:00:00 2001 From: uzvkl Date: Mon, 20 May 2019 00:54:14 +0200 Subject: Reorganize Code delete ZoBotanica --- DSACore/Controllers/CommandsController.cs | 4 +- DSACore/Controllers/LobbyController.cs | 4 +- DSACore/DSACore.csproj | 2 +- DSACore/Hubs/Login.cs | 28 +- DSACore/Program.cs | 4 +- DSACore/Startup.cs | 18 +- DSALib/Audio/Sound.cs | 18 - DSALib/Auxiliary/Calculator/Argument.cs | 2 +- DSALib/Auxiliary/Calculator/ISolvable.cs | 2 +- DSALib/Auxiliary/Calculator/Operator.cs | 4 +- DSALib/Auxiliary/Calculator/Ops.cs | 2 +- DSALib/Auxiliary/Calculator/StringSolver.cs | 4 +- DSALib/Auxiliary/CommandInfo.cs | 2 +- DSALib/Auxiliary/Dice.cs | 2 +- DSALib/Auxiliary/Extensions.cs | 2 +- DSALib/Auxiliary/IDataObjectEnumerableExtension.cs | 25 + DSALib/Auxiliary/RandomMisc.cs | 2 +- DSALib/Auxiliary/SpellCorrect.cs | 105 +- DSALib/Auxiliary/TalentEnumerableExtension.cs | 27 +- DSALib/Auxiliary/WeaponImporter.cs | 6 +- DSALib/Characters/Critter.cs | 1 + DSALib/Commands/CommandHandler.cs | 11 +- DSALib/Commands/CommandTypes.cs | 2 +- DSALib/Commands/FileHandler.cs | 7 +- DSALib/Commands/Gm.cs | 2 +- DSALib/Commands/HeldList.cs | 8 +- DSALib/Commands/Help.cs | 8 +- DSALib/Commands/LebenUndAstral.cs | 6 +- DSALib/Commands/List.cs | 11 +- DSALib/Commands/MiscCommands.cs | 4 +- DSALib/Commands/NpcCommands.cs | 18 +- DSALib/Commands/ProbenTest.cs | 2 +- DSALib/CritterAttack.cs | 21 - DSALib/DSALib.csproj | 8 +- DSALib/DSA_Game/Characters/Character.cs | 22 +- DSALib/DSA_Game/Characters/NPC.cs | 4 +- DSALib/DSA_Game/Characters/SaveChar.cs | 2 +- DSALib/DSA_Game/Dsa.cs | 11 +- DSALib/DSA_Game/Save/Properties.cs | 10 +- DSALib/DSA_Game/Save/SaveCommand.cs | 2 +- DSALib/DSA_Game/Save/Session.cs | 4 +- DSALib/FireBase/Database.cs | 94 +- DSALib/KampfTalent.cs | 18 - DSALib/Models/Database/DSA/Advantage.cs | 2 +- DSALib/Models/Database/DSA/CharSpell.cs | 2 +- DSALib/Models/Database/DSA/DatabaseChar.cs | 4 +- DSALib/Models/Database/DSA/Field.cs | 2 +- DSALib/Models/Database/DSA/GeneralSpell.cs | 2 +- DSALib/Models/Database/DSA/GroupChar.cs | 2 +- DSALib/Models/Database/DSA/Inventory.cs | 2 +- DSALib/Models/Database/DSA/Talent.cs | 6 +- DSALib/Models/Database/DSA/Weapon.cs | 2 +- DSALib/Models/Database/DSA/WeaponTalent.cs | 2 +- DSALib/Models/Database/DataObject.cs | 13 + DSALib/Models/Database/Groups/DSAGroup.cs | 4 +- DSALib/Models/Database/Groups/Group.cs | 3 +- DSALib/Models/Database/IDataObject.cs | 7 + DSALib/Models/Dsa/CritterAttack.cs | 19 + DSALib/Models/Dsa/KampfTalent.cs | 16 + DSALib/Models/Dsa/Talent.cs | 43 + DSALib/Models/Dsa/Vorteil.cs | 16 + DSALib/Models/Dsa/Zauber.cs | 16 + DSALib/Models/Network/Command.cs | 2 +- DSALib/Models/Network/CommandResponse.cs | 2 +- DSALib/Models/Network/Group.cs | 2 +- DSALib/Models/Network/Token.cs | 2 +- DSALib/Models/Network/User.cs | 2 +- .../PropertiesNewtonsoft-Json-Linq-JProperty.json | 2 +- DSALib/Talent.cs | 45 - DSALib/Vorteil.cs | 18 - DSALib/Zauber.cs | 16 - DSALib/helden/Felis.xml | 4 - DSALib/helden/Gardist.xml | 4 - DSALib/helden/HartmutReiher.xml | 4 - .../helden/Helga_vom_Drachenei_Tausendsasserin.xml | 4 - DSALib/helden/Krenko.xml | 4 - DSALib/helden/Ledur Torfinson.xml | 4 - DSALib/helden/Morla.xml | 4 - DSALib/helden/Numeri.xml | 4 - DSALib/helden/Potus.xml | 4 - DSALib/helden/PumpausderGosse.xml | 4 - DSALib/helden/Rhoktar4.xml | 4 - DSALib/helden/Volant.xml | 4 - DiscoBot.sln | 59 +- DiscoBot/App.config | 4 +- DiscoBot/Audio/AudioModule.cs | 65 - DiscoBot/Audio/AudioService.cs | 95 - DiscoBot/Audio/Sound.cs | 18 - DiscoBot/Audio/Voice.cs | 94 - DiscoBot/Commands/FileHandler.cs | 2 +- DiscoBot/Commands/MiscCommands.cs | 2 +- DiscoBot/DiscoBot.csproj | 71 +- DiscoBot/Program.cs | 4 +- DiscoBot/Properties/Settings.Designer.cs | 2 +- DiscoBot/Token | 1 + DiscoBot/packages.config | 50 +- DiscordBot/Auxiliary/CommandExtension.cs | 98 + DiscordBot/Auxiliary/Dice.cs | 31 + DiscordBot/Auxiliary/Permissions.cs | 32 + DiscordBot/Auxiliary/RandomMisc.cs | 36 + DiscordBot/Auxiliary/SpellCorrect.cs | 105 + DiscordBot/CommandHandler.cs | 112 + DiscordBot/Commands/CommandHelper.cs | 119 + DiscordBot/Commands/FileHandler.cs | 24 + DiscordBot/Commands/MiscCommands.cs | 190 + DiscordBot/DiscordBot.csproj | 12 + DiscordBot/Program.cs | 58 + DiscordBot/Rework/Permissions.cs | 38 + FireBase/FireBase.csproj | 4 +- ZooBOTanica/App.config | 6 - ZooBOTanica/CritCreate.Designer.cs | 428 --- ZooBOTanica/CritCreate.cs | 92 - ZooBOTanica/CritCreate.resx | 1122 ------ "ZooBOTanica/Critters/B\303\244r.json" | 25 - ZooBOTanica/Critters/Gegner.json | 18 - ZooBOTanica/Critters/Goblin.json | 37 - ZooBOTanica/Program.cs | 19 - ZooBOTanica/Properties/AssemblyInfo.cs | 35 - ZooBOTanica/Properties/Resources.Designer.cs | 63 - ZooBOTanica/Properties/Resources.resx | 117 - ZooBOTanica/Properties/Settings.Designer.cs | 26 - ZooBOTanica/Properties/Settings.settings | 7 - ZooBOTanica/ZooBOTanica.csproj | 91 - functions/index.js | 8 - functions/package-lock.json | 3896 -------------------- functions/package.json | 16 - 126 files changed, 1307 insertions(+), 6866 deletions(-) delete mode 100644 DSALib/Audio/Sound.cs create mode 100644 DSALib/Auxiliary/IDataObjectEnumerableExtension.cs delete mode 100644 DSALib/CritterAttack.cs delete mode 100644 DSALib/KampfTalent.cs create mode 100644 DSALib/Models/Database/DataObject.cs create mode 100644 DSALib/Models/Database/IDataObject.cs create mode 100644 DSALib/Models/Dsa/CritterAttack.cs create mode 100644 DSALib/Models/Dsa/KampfTalent.cs create mode 100644 DSALib/Models/Dsa/Talent.cs create mode 100644 DSALib/Models/Dsa/Vorteil.cs create mode 100644 DSALib/Models/Dsa/Zauber.cs delete mode 100644 DSALib/Talent.cs delete mode 100644 DSALib/Vorteil.cs delete mode 100644 DSALib/Zauber.cs delete mode 100644 DSALib/helden/Felis.xml delete mode 100644 DSALib/helden/Gardist.xml delete mode 100644 DSALib/helden/HartmutReiher.xml delete mode 100644 DSALib/helden/Helga_vom_Drachenei_Tausendsasserin.xml delete mode 100644 DSALib/helden/Krenko.xml delete mode 100644 DSALib/helden/Ledur Torfinson.xml delete mode 100644 DSALib/helden/Morla.xml delete mode 100644 DSALib/helden/Numeri.xml delete mode 100644 DSALib/helden/Potus.xml delete mode 100644 DSALib/helden/PumpausderGosse.xml delete mode 100644 DSALib/helden/Rhoktar4.xml delete mode 100644 DSALib/helden/Volant.xml delete mode 100644 DiscoBot/Audio/AudioModule.cs delete mode 100644 DiscoBot/Audio/AudioService.cs delete mode 100644 DiscoBot/Audio/Sound.cs delete mode 100644 DiscoBot/Audio/Voice.cs create mode 100644 DiscoBot/Token create mode 100644 DiscordBot/Auxiliary/CommandExtension.cs create mode 100644 DiscordBot/Auxiliary/Dice.cs create mode 100644 DiscordBot/Auxiliary/Permissions.cs create mode 100644 DiscordBot/Auxiliary/RandomMisc.cs create mode 100644 DiscordBot/Auxiliary/SpellCorrect.cs create mode 100644 DiscordBot/CommandHandler.cs create mode 100644 DiscordBot/Commands/CommandHelper.cs create mode 100644 DiscordBot/Commands/FileHandler.cs create mode 100644 DiscordBot/Commands/MiscCommands.cs create mode 100644 DiscordBot/DiscordBot.csproj create mode 100644 DiscordBot/Program.cs create mode 100644 DiscordBot/Rework/Permissions.cs delete mode 100644 ZooBOTanica/App.config delete mode 100644 ZooBOTanica/CritCreate.Designer.cs delete mode 100644 ZooBOTanica/CritCreate.cs delete mode 100644 ZooBOTanica/CritCreate.resx delete mode 100644 "ZooBOTanica/Critters/B\303\244r.json" delete mode 100644 ZooBOTanica/Critters/Gegner.json delete mode 100644 ZooBOTanica/Critters/Goblin.json delete mode 100644 ZooBOTanica/Program.cs delete mode 100644 ZooBOTanica/Properties/AssemblyInfo.cs delete mode 100644 ZooBOTanica/Properties/Resources.Designer.cs delete mode 100644 ZooBOTanica/Properties/Resources.resx delete mode 100644 ZooBOTanica/Properties/Settings.Designer.cs delete mode 100644 ZooBOTanica/Properties/Settings.settings delete mode 100644 ZooBOTanica/ZooBOTanica.csproj delete mode 100644 functions/index.js delete mode 100644 functions/package-lock.json delete mode 100644 functions/package.json diff --git a/DSACore/Controllers/CommandsController.cs b/DSACore/Controllers/CommandsController.cs index 5addf82..2ab9c96 100644 --- a/DSACore/Controllers/CommandsController.cs +++ b/DSACore/Controllers/CommandsController.cs @@ -1,6 +1,6 @@ using System; -using DSACore.Commands; -using DSACore.Models.Network; +using DSALib.Commands; +using DSALib.Models.Network; using Microsoft.AspNetCore.Mvc; // For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 diff --git a/DSACore/Controllers/LobbyController.cs b/DSACore/Controllers/LobbyController.cs index df22607..c861eac 100644 --- a/DSACore/Controllers/LobbyController.cs +++ b/DSACore/Controllers/LobbyController.cs @@ -1,6 +1,6 @@ using System; -using DSACore.Commands; -using DSACore.Models.Network; +using DSALib.Models.Network; +using DSALib.Commands; using Microsoft.AspNetCore.Mvc; namespace DSACore.Controllers diff --git a/DSACore/DSACore.csproj b/DSACore/DSACore.csproj index 3d928e1..d730ea4 100644 --- a/DSACore/DSACore.csproj +++ b/DSACore/DSACore.csproj @@ -1,7 +1,7 @@  - netcoreapp2.1 + netcoreapp2.2 DSACore.Program diff --git a/DSACore/Hubs/Login.cs b/DSACore/Hubs/Login.cs index 1f6ca39..ebe0bae 100644 --- a/DSACore/Hubs/Login.cs +++ b/DSACore/Hubs/Login.cs @@ -4,11 +4,12 @@ using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; -using DSACore.Commands; -using DSACore.DSA_Game.Characters; -using DSACore.FireBase; -using DSACore.Models.Network; +using DSALib.Commands; +using DSALib.DSA_Game.Characters; +using DSALib.Models.Network; +using DSALib.FireBase; using Microsoft.AspNetCore.SignalR; +using Group = DSALib.Models.Network.Group; namespace DSACore.Hubs { @@ -30,25 +31,16 @@ namespace DSACore.Hubs public static List Tokens { get; } = new List(); - [Obsolete] - private static async void AddGroups() - { - await Database.AddGroup(new Models.Database.Groups.Group {Name = "HalloWelt", Password = "valid"}); - await Database.AddGroup(new Models.Database.Groups.Group {Name = "Die Krassen Gamer", Password = "valid"}); - await Database.AddGroup(new Models.Database.Groups.Group {Name = "DSA", Password = "valid"}); - await Database.AddGroup(new Models.Database.Groups.Group {Name = "Die Überhelden", Password = "valid"}); - } - public async Task SendMessage(string user, string message) { try { var group = getGroup(Context.ConnectionId).Name; } - catch (InvalidOperationException e) + catch (InvalidOperationException) { - //await Clients.Caller.SendCoreAsync(receiveMethod, - // new object[] { "Nutzer ist in keiner Gruppe. Erst joinen!" }); + await Clients.Caller.SendCoreAsync(ReceiveMethod, + new object[] { "Nutzer ist in keiner Gruppe. Erst joinen!" }); } if (message[0] == '/') @@ -93,7 +85,7 @@ namespace DSACore.Hubs return Clients.Group(group).SendCoreAsync(ReceiveMethod, new object[] {getUser(Context.ConnectionId).Name, message}); } - catch (InvalidOperationException e) + catch (InvalidOperationException) { return Clients.Caller.SendCoreAsync(ReceiveMethod, new object[] {"Nutzer ist in keiner Gruppe. Erst joinen!"}); @@ -126,7 +118,7 @@ namespace DSACore.Hubs public async Task AddGroup(string group, string password) { DsaGroups.Add(new Group(group, password)); - var Dgroup = new Models.Database.Groups.Group {Name = group, Id = DsaGroups.Count - 1}; + var Dgroup = new DSALib.Models.Database.Groups.Group {Name = group, Id = DsaGroups.Count - 1}; //Database.AddGroup(Dgroup); await Clients.Caller.SendCoreAsync(ReceiveMethod, new[] {$"group {group} sucessfully added"}); //throw new NotImplementedException("add database call to add groups"); diff --git a/DSACore/Program.cs b/DSACore/Program.cs index 46baf2d..8af0a74 100644 --- a/DSACore/Program.cs +++ b/DSACore/Program.cs @@ -1,5 +1,5 @@ -using DSACore.DSA_Game; -using DSACore.FireBase; +using DSALib.DSA_Game; +using DSALib.FireBase; using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; diff --git a/DSACore/Startup.cs b/DSACore/Startup.cs index 372caca..ef22802 100644 --- a/DSACore/Startup.cs +++ b/DSACore/Startup.cs @@ -19,23 +19,7 @@ namespace DSACore // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { - /*services.AddCors(options => options.AddPolicy("CorsPolicy", - builder => - { - builder.AllowAnyOrigin()//.WithOrigins("https://dsa.truekuehli.de", "127.0.0.1") - .WithHeaders("Access-Control-Allow-Origin") - .AllowAnyHeader() - .AllowAnyMethod() - .AllowCredentials(); - })); - /* - services.AddCors(options => - { - options.AddPolicy("AllowSpecificOrigin", - builder => builder.AllowAnyMethod().AllowAnyHeader().AllowAnyOrigin().AllowCredentials()/*WithOrigins("https://dsa.truekuehli.de")#1#); - }); - -*/ + services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); services.AddSignalR(); diff --git a/DSALib/Audio/Sound.cs b/DSALib/Audio/Sound.cs deleted file mode 100644 index aee3060..0000000 --- a/DSALib/Audio/Sound.cs +++ /dev/null @@ -1,18 +0,0 @@ -namespace DSACore.Audio -{ - public class Sound - { - public Sound(string name, string url, int volume) - { - Name = name; - Url = url; - Volume = volume; - } - - public string Name { get; } - - public string Url { get; } - - public int Volume { get; } - } -} \ No newline at end of file diff --git a/DSALib/Auxiliary/Calculator/Argument.cs b/DSALib/Auxiliary/Calculator/Argument.cs index 5ed9ee3..e681377 100644 --- a/DSALib/Auxiliary/Calculator/Argument.cs +++ b/DSALib/Auxiliary/Calculator/Argument.cs @@ -1,6 +1,6 @@ using System; -namespace DSACore.Auxiliary.Calculator +namespace DSALib.Auxiliary.Calculator { /// /// Provides an ISolvable class to save numbers. The class handles Argument checking and conversion from string to int. diff --git a/DSALib/Auxiliary/Calculator/ISolvable.cs b/DSALib/Auxiliary/Calculator/ISolvable.cs index 7be4d19..844e9b3 100644 --- a/DSALib/Auxiliary/Calculator/ISolvable.cs +++ b/DSALib/Auxiliary/Calculator/ISolvable.cs @@ -1,4 +1,4 @@ -namespace DSACore.Auxiliary.Calculator +namespace DSALib.Auxiliary.Calculator { /// /// Object has to be able to return an integer as it's value diff --git a/DSALib/Auxiliary/Calculator/Operator.cs b/DSALib/Auxiliary/Calculator/Operator.cs index 31b2a9b..e6aeec6 100644 --- a/DSALib/Auxiliary/Calculator/Operator.cs +++ b/DSALib/Auxiliary/Calculator/Operator.cs @@ -1,7 +1,7 @@ using System; -using DSACorev.Auxiliary.Calculator; +using DSALibv.Auxiliary.Calculator; -namespace DSACore.Auxiliary.Calculator +namespace DSALib.Auxiliary.Calculator { /// /// The Operator Class represents a binary operator with tow Arguments and an Operation type diff --git a/DSALib/Auxiliary/Calculator/Ops.cs b/DSALib/Auxiliary/Calculator/Ops.cs index a5c9a2d..93046d0 100644 --- a/DSALib/Auxiliary/Calculator/Ops.cs +++ b/DSALib/Auxiliary/Calculator/Ops.cs @@ -1,4 +1,4 @@ -namespace DSACorev.Auxiliary.Calculator +namespace DSALibv.Auxiliary.Calculator { /// /// The Different Operations, witch can be performed in execution-order diff --git a/DSALib/Auxiliary/Calculator/StringSolver.cs b/DSALib/Auxiliary/Calculator/StringSolver.cs index b2a7d83..bf903da 100644 --- a/DSALib/Auxiliary/Calculator/StringSolver.cs +++ b/DSALib/Auxiliary/Calculator/StringSolver.cs @@ -1,9 +1,9 @@ using System; using System.Collections.Generic; using System.Linq; -using DSACorev.Auxiliary.Calculator; +using DSALibv.Auxiliary.Calculator; -namespace DSACore.Auxiliary.Calculator +namespace DSALib.Auxiliary.Calculator { /// /// The StringSolver divides the calculation string into operations and SubStringSolvers if the string contains diff --git a/DSALib/Auxiliary/CommandInfo.cs b/DSALib/Auxiliary/CommandInfo.cs index 1472587..d8e2188 100644 --- a/DSALib/Auxiliary/CommandInfo.cs +++ b/DSALib/Auxiliary/CommandInfo.cs @@ -1,6 +1,6 @@ using System.Linq; -namespace DSACore.Auxiliary +namespace DSALib.Auxiliary { public struct CommandInfo { diff --git a/DSALib/Auxiliary/Dice.cs b/DSALib/Auxiliary/Dice.cs index 3dd6562..b07d47f 100644 --- a/DSALib/Auxiliary/Dice.cs +++ b/DSALib/Auxiliary/Dice.cs @@ -1,7 +1,7 @@ using System; using System.Linq; -namespace DSACore.Auxiliary +namespace DSALib.Auxiliary { public static class Dice // roll it! { diff --git a/DSALib/Auxiliary/Extensions.cs b/DSALib/Auxiliary/Extensions.cs index f8e9d8e..7d367a5 100644 --- a/DSALib/Auxiliary/Extensions.cs +++ b/DSALib/Auxiliary/Extensions.cs @@ -1,4 +1,4 @@ -namespace DSACore.Auxiliary +namespace DSALib.Auxiliary { public static class StringExtension { diff --git a/DSALib/Auxiliary/IDataObjectEnumerableExtension.cs b/DSALib/Auxiliary/IDataObjectEnumerableExtension.cs new file mode 100644 index 0000000..b8a6067 --- /dev/null +++ b/DSALib/Auxiliary/IDataObjectEnumerableExtension.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text.RegularExpressions; +using System.Threading.Tasks; +using DSALib.Auxiliary; +using DSALib.Models.Database; + +namespace DSACore.Auxiliary +{ + public static class DataObjectEnumerableExtension + { + public static IDataObject Match(this IEnumerable dataObjects, string name) + { + return (dataObjects as IOrderedEnumerable ?? throw new InvalidOperationException()).OrderBy(x => SpellCorrect.Compare(name,x.Name)).Last(); + } + + public static bool TryMatch(this IEnumerable dataObjects,out IDataObject data, string name) + { + data = (dataObjects as IOrderedEnumerable ?? throw new InvalidOperationException()).OrderBy(x => SpellCorrect.Compare(name,x.Name)).Last(); + + return SpellCorrect.IsMatch(name, data.Name); + } + } +} diff --git a/DSALib/Auxiliary/RandomMisc.cs b/DSALib/Auxiliary/RandomMisc.cs index 72c2234..2723930 100644 --- a/DSALib/Auxiliary/RandomMisc.cs +++ b/DSALib/Auxiliary/RandomMisc.cs @@ -2,7 +2,7 @@ using System.Linq; using System.Text; -namespace DSACore.Auxiliary +namespace DSALib.Auxiliary { public static class RandomMisc { diff --git a/DSALib/Auxiliary/SpellCorrect.cs b/DSALib/Auxiliary/SpellCorrect.cs index 77d1cf3..79908c4 100644 --- a/DSALib/Auxiliary/SpellCorrect.cs +++ b/DSALib/Auxiliary/SpellCorrect.cs @@ -1,106 +1,61 @@ using System; -using System.Diagnostics; -using System.Linq; -namespace DSACore.Auxiliary +namespace DSALib.Auxiliary { - public class SpellCorrect : StringComparer + public class SpellCorrect { - public const int ErrorThreshold = 94100; + public const double ErrorThreshold = 1 / 3.0; + private const double Match = 3.0; + private const double Gap = -1.5; + private const double Mismatch = -2.0; - public override int Compare(string x, string y) - { - return CompareEasy(x, y); - } - - public static int CompareEasy(string x, string y) - { - if (string.IsNullOrEmpty(x)) throw new ArgumentException("message", nameof(x)); - - if (string.IsNullOrEmpty(y)) throw new ArgumentException("message", nameof(y)); - - if (x.Equals(y)) return 0; - - x = x.ToLower(); - y = y.ToLower(); - if (x.Equals(y)) return 1; - - var subs = y.Split(' ', '/'); - var score = subs.Count(); - foreach (var s in subs) - if (s.Equals(x)) - score--; - - if (score < subs.Count()) return score + 1; - - return 100000 - (int) (CompareExact(x, y) * 1000.0); - /*if (y.Contains(x)) - return 6;*/ - } - - public override bool Equals(string x, string y) - { - Debug.Assert(x != null, nameof(x) + " != null"); - return x.Equals(y); - } - - public override int GetHashCode(string obj) - { - throw new NotImplementedException(); - } - - public static double CompareExact(string s, string q) + public static double Compare(string s, string q) { s = s.ToLower(); q = q.ToLower(); int i, j; - const double Match = 3.0; - const double Gap = -2.0; - const double Mismatch = -2.0; - - double decay; - + var matrix = new double[s.Length + 1, q.Length + 1]; var max = 0.0; matrix[0, 0] = 0.0; for (i = 1; i < s.Length; i++) - // matrix[i, 0] = 0.0; matrix[i, 0] = i * Gap; for (i = 1; i < q.Length; i++) matrix[0, i] = 0.0; for (i = 1; i <= s.Length; i++) - for (j = 1; j <= q.Length; j++) - { - decay = j / (double) (s.Length * 1000); - var add = s[i - 1] == q[j - 1] ? Match - decay : Mismatch; - var score = matrix[i - 1, j - 1] + add; - - if (score < matrix[i - 1, j] + Gap) score = matrix[i - 1, j] + Gap; + for (j = 1; j <= q.Length; j++) + { + double decay = j / (s.Length * 1000.0); + var add = s[i - 1] == q[j - 1] ? Match - decay : Mismatch; + var score = matrix[i - 1, j - 1] + add; - if (score < matrix[i, j - 1] + Gap) score = matrix[i, j - 1] + Gap; + if (score < matrix[i - 1, j] + Gap) score = matrix[i - 1, j] + Gap; - if (i > 1 && j > 1) - if (s[i - 1] == q[j - 2] && s[i - 2] == q[j - 1]) - { - add = 3 / 2.0 * Match - decay; - if (score < matrix[i - 2, j - 2] + add) score = matrix[i - 2, j - 2] + add; - } + if (score < matrix[i, j - 1] + Gap) score = matrix[i, j - 1] + Gap; - // if (score < 0) - // { - // score = 0; - // } + if (i > 1 && j > 1) + if (s[i - 1] == q[j - 2] && s[i - 2] == q[j - 1]) + { + add = 3 / 2.0 * Match - decay; + if (score < matrix[i - 2, j - 2] + add) score = matrix[i - 2, j - 2] + add; + } - if (max < score && i == s.Length) max = score; + if (max < score && i == s.Length) max = score; - matrix[i, j] = score; - } + matrix[i, j] = score; + } return max; } + + public static bool IsMatch(string s1, string s2) + { + var score = Compare(s1, s2); + return score > ErrorThreshold * s1.Length; + } } } \ No newline at end of file diff --git a/DSALib/Auxiliary/TalentEnumerableExtension.cs b/DSALib/Auxiliary/TalentEnumerableExtension.cs index d83114c..6ec7fcc 100644 --- a/DSALib/Auxiliary/TalentEnumerableExtension.cs +++ b/DSALib/Auxiliary/TalentEnumerableExtension.cs @@ -1,33 +1,34 @@ using System.Collections.Generic; using System.Linq; using System.Text; -using DSACore.DSA_Game.Characters; -using DSALib; +using DSACore.Auxiliary; +using DSALib.DSA_Game.Characters; +using DSALib.Models.Dsa; -namespace DSACore.Auxiliary +namespace DSALib.Auxiliary { public static class TalentEnumerableExtension { - public static string ProbenTest(this IEnumerable List, Character c, string talent, int erschwernis = 0) + public static string ProbenTest(this IEnumerable List, Character c, string talentName, int erschwernis = 0) { var output = new StringBuilder(); var sc = new SpellCorrect(); - var tTalent = List.OrderBy(x => sc.Compare(talent, x.Name)).First(); - if (sc.Compare(talent, tTalent.Name) > SpellCorrect.ErrorThreshold) - return $"{c.Name} kann nicht {talent}..."; + if (!List.TryMatch(out var iTalent, talentName)) + return $"{c.Name} kann nicht {talentName}..."; - var props = tTalent.GetEigenschaften(); // get the required properties - var tap = tTalent.Value; // get taw - var werte = props.Select(p => c.Eigenschaften[c.PropTable[p]]).ToList(); + var talent = (Talent) iTalent; + var props = talent.GetEigenschaften(); // get the required properties + var tap = talent.Value; // get taw + var werte = props.Select(p => c.Eigenschaften[c.PropTable[p]]).ToArray(); output.AppendFormat( "{0} würfelt: {1} \n{2} - {3} taw:{4} {5} \n", c.Name, - tTalent.Name, - tTalent.Probe, + talent.Name, + talent.Probe, string.Join("/", werte), - tTalent.Value, + talent.Value, erschwernis.Equals(0) ? string.Empty : "Erschwernis: " + erschwernis); output.Append(" "); diff --git a/DSALib/Auxiliary/WeaponImporter.cs b/DSALib/Auxiliary/WeaponImporter.cs index 3375236..12d243f 100644 --- a/DSALib/Auxiliary/WeaponImporter.cs +++ b/DSALib/Auxiliary/WeaponImporter.cs @@ -4,10 +4,10 @@ using System.Linq; using System.Net.Http; using System.Text.RegularExpressions; using System.Threading.Tasks; -using DSACore.FireBase; -using DSACore.Models.Database.DSA; +using DSALib.Models.Database.DSA; +using DSALib.FireBase; -namespace DSACore.Auxiliary +namespace DSALib.Auxiliary { public class WeaponImporter { diff --git a/DSALib/Characters/Critter.cs b/DSALib/Characters/Critter.cs index d9f8b53..dcedccb 100644 --- a/DSALib/Characters/Critter.cs +++ b/DSALib/Characters/Critter.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.IO; using DiscoBot.DSA_Game.Characters; +using DSALib.Models.Dsa; using Newtonsoft.Json; namespace DSALib.Characters diff --git a/DSALib/Commands/CommandHandler.cs b/DSALib/Commands/CommandHandler.cs index f74f87f..e63d7b8 100644 --- a/DSALib/Commands/CommandHandler.cs +++ b/DSALib/Commands/CommandHandler.cs @@ -1,10 +1,11 @@ using System; -using DSACore.Auxiliary; -using DSACore.Auxiliary.Calculator; -using DSACore.DSA_Game; -using DSACore.Models.Network; +using DSALib.Auxiliary; +using DSALib.Auxiliary.Calculator; +using DSALib.Commands; +using DSALib.DSA_Game; +using DSALib.Models.Network; -namespace DSACore.Commands +namespace DSALib.Commands { public class CommandHandler { diff --git a/DSALib/Commands/CommandTypes.cs b/DSALib/Commands/CommandTypes.cs index 6838ac2..62b8b0f 100644 --- a/DSALib/Commands/CommandTypes.cs +++ b/DSALib/Commands/CommandTypes.cs @@ -1,4 +1,4 @@ -namespace DSACore.Commands +namespace DSALib.Commands { public enum CommandTypes { diff --git a/DSALib/Commands/FileHandler.cs b/DSALib/Commands/FileHandler.cs index bce7c54..d117040 100644 --- a/DSALib/Commands/FileHandler.cs +++ b/DSALib/Commands/FileHandler.cs @@ -1,11 +1,12 @@ using System; using System.Linq; using System.Net; -using DSACore.DSA_Game; -using DSACore.DSA_Game.Characters; +using DSALib.DSA_Game; +using DSALib.DSA_Game.Characters; using DSALib; +using DSALib.Models.Dsa; -namespace DSACore.Commands +namespace DSALib.Commands { public class FileHandler { diff --git a/DSALib/Commands/Gm.cs b/DSALib/Commands/Gm.cs index 98b62db..74fd673 100644 --- a/DSALib/Commands/Gm.cs +++ b/DSALib/Commands/Gm.cs @@ -1,4 +1,4 @@ -namespace DSACore.Commands +namespace DSALib.Commands { /*public class Iam { diff --git a/DSALib/Commands/HeldList.cs b/DSALib/Commands/HeldList.cs index 370af34..ef29a14 100644 --- a/DSALib/Commands/HeldList.cs +++ b/DSALib/Commands/HeldList.cs @@ -1,11 +1,11 @@ using System.Collections.Generic; using System.Linq; using System.Text; -using DSACore.Auxiliary; -using DSACore.DSA_Game; -using DSACore.DSA_Game.Characters; +using DSALib.Auxiliary; +using DSALib.DSA_Game; +using DSALib.DSA_Game.Characters; -namespace DSACore.Commands +namespace DSALib.Commands { public class HeldList { diff --git a/DSALib/Commands/Help.cs b/DSALib/Commands/Help.cs index 974c44c..4506821 100644 --- a/DSALib/Commands/Help.cs +++ b/DSALib/Commands/Help.cs @@ -1,8 +1,8 @@ using System.Linq; -using DSACore.Auxiliary; -using DSACore.DSA_Game.Save; +using DSALib.Auxiliary; +using DSALib.DSA_Game.Save; -namespace DSACore.Commands +namespace DSALib.Commands { public class Help { @@ -13,7 +13,7 @@ namespace DSACore.Commands { // return command specific help var com = Properties.CommandInfos - .OrderBy(x => SpellCorrect.CompareEasy(x.Name, command.ToLower())).First(); // get best fit command + .OrderBy(x => SpellCorrect.Compare(x.Name, command.ToLower())).Last(); // get best fit command return com.GetDescription(); } diff --git a/DSALib/Commands/LebenUndAstral.cs b/DSALib/Commands/LebenUndAstral.cs index a671296..ac11c91 100644 --- a/DSALib/Commands/LebenUndAstral.cs +++ b/DSALib/Commands/LebenUndAstral.cs @@ -1,9 +1,9 @@ using System; -using DSACore.Auxiliary; -using DSACore.DSA_Game; +using DSALib.Auxiliary; +using DSALib.DSA_Game; using DSALib.Characters; -namespace DSACore.Commands +namespace DSALib.Commands { public class LE { diff --git a/DSALib/Commands/List.cs b/DSALib/Commands/List.cs index 7fc682f..1213f85 100644 --- a/DSALib/Commands/List.cs +++ b/DSALib/Commands/List.cs @@ -1,10 +1,9 @@ using System; using System.Collections.Generic; using System.Linq; -using DSACore.Audio; -using DSACore.DSA_Game; +using DSALib.DSA_Game; -namespace DSACore.Commands +namespace DSALib.Commands { public class List { @@ -27,12 +26,6 @@ namespace DSACore.Commands // res.AddRange(Help.Commands.Select(x => x.Name)); res.Add(Help.Get_Generic_Help()); break; - case "play": - case "sound": - case "sounds": - res.AddRange( - Enum.GetNames(typeof(Sound))); - break; default: res.Add($"Kommando {prop} nicht gefunden"); diff --git a/DSALib/Commands/MiscCommands.cs b/DSALib/Commands/MiscCommands.cs index ebd1598..69b2ffe 100644 --- a/DSALib/Commands/MiscCommands.cs +++ b/DSALib/Commands/MiscCommands.cs @@ -1,4 +1,4 @@ -namespace DSACore.Commands +namespace DSALib.Commands { public class MiscCommands { @@ -13,7 +13,7 @@ [Command("rd"), Summary("Würfel Dennis ")] public Task RollDennisAsync([Remainder, Summary("Weapon")] string roll) { - return this.ReplyAsync("```xl\n" + new DSACore.Auxiliary.Calculator.StringSolver(roll).Solve() + "\n```"); + return this.ReplyAsync("```xl\n" + new DSALib.Auxiliary.Calculator.StringSolver(roll).Solve() + "\n```"); }*/ /* diff --git a/DSALib/Commands/NpcCommands.cs b/DSALib/Commands/NpcCommands.cs index 95243ca..510b78b 100644 --- a/DSALib/Commands/NpcCommands.cs +++ b/DSALib/Commands/NpcCommands.cs @@ -1,11 +1,11 @@ using System; using System.Collections.Generic; using System.Linq; -using DSACore.Characters; -using DSACore.DSA_Game; -using DSACore.DSA_Game.Characters; +using DSALib.Characters; +using DSALib.DSA_Game; +using DSALib.DSA_Game.Characters; -namespace DSACore.Commands +namespace DSALib.Commands { public class NpcCommands { @@ -19,17 +19,17 @@ namespace DSACore.Commands private static string Random(ulong id, string npcName, int mean = 9, int stDv = 1) { throw new NotImplementedException(); - Dsa.Chars.Add(new Npc(npcName, mean, stDv)); - return $"{npcName} wurde zufällig generiert"; + //Dsa.Chars.Add(new Npc(npcName, mean, stDv)); + //return $"{npcName} wurde zufällig generiert"; } private static string Copy(ulong id, string npcName, string source, int stDv = 1) { if (Dsa.Chars.Exists(x => x.Name.Equals(npcName))) throw new Exception("Char gibt es schon"); throw new NotImplementedException(); - var chr = Dsa.GetCharacter(id); - Dsa.Chars.Add(new Character(chr as Character, npcName, stDv)); - return $"{npcName} wurde als variierte Kopie von {source} erstellt"; + //var chr = Dsa.GetCharacter(id); + //Dsa.Chars.Add(new Character(chr as Character, npcName, stDv)); + //return $"{npcName} wurde als variierte Kopie von {source} erstellt"; } } } \ No newline at end of file diff --git a/DSALib/Commands/ProbenTest.cs b/DSALib/Commands/ProbenTest.cs index d0800d6..7c88480 100644 --- a/DSALib/Commands/ProbenTest.cs +++ b/DSALib/Commands/ProbenTest.cs @@ -1,4 +1,4 @@ -namespace DSACore.Commands +namespace DSALib.Commands { public class ProbenTest { diff --git a/DSALib/CritterAttack.cs b/DSALib/CritterAttack.cs deleted file mode 100644 index 3b0a11d..0000000 --- a/DSALib/CritterAttack.cs +++ /dev/null @@ -1,21 +0,0 @@ -namespace DSALib -{ - public class CritterAttack - { - public CritterAttack(string name, int at, string tp, string comment = "") - { - Name = name; - At = at; - Tp = tp; - Comment = comment; - } - - public string Name { get; set; } - - public int At { get; set; } - - public string Tp { get; set; } - - public string Comment { get; set; } - } -} \ No newline at end of file diff --git a/DSALib/DSALib.csproj b/DSALib/DSALib.csproj index afada82..2281bd6 100644 --- a/DSALib/DSALib.csproj +++ b/DSALib/DSALib.csproj @@ -1,11 +1,11 @@ - + - netstandard2.0 + netcoreapp2.2 - + - + diff --git a/DSALib/DSA_Game/Characters/Character.cs b/DSALib/DSA_Game/Characters/Character.cs index ac890cb..aea5671 100644 --- a/DSALib/DSA_Game/Characters/Character.cs +++ b/DSALib/DSA_Game/Characters/Character.cs @@ -5,10 +5,11 @@ using System.Linq; using System.Text; using System.Xml; using DSACore.Auxiliary; -using DSALib; +using DSALib.Auxiliary; using DSALib.Characters; +using DSALib.Models.Dsa; -namespace DSACore.DSA_Game.Characters +namespace DSALib.DSA_Game.Characters { public class Character : Being, ICharacter { @@ -99,11 +100,9 @@ namespace DSACore.DSA_Game.Characters public string Angriff(string talent, int erschwernis = 0) // pretty self explanatory { var output = new StringBuilder(); - var sc = new SpellCorrect(); - var attack = Kampftalente.OrderBy(x => sc.Compare(talent, x.Name)).First(); - if (sc.Compare(talent, attack.Name) > SpellCorrect.ErrorThreshold) + if (!Kampftalente.TryMatch(out var iattack, talent)) return $"{Name} kann nicht mit der Waffenart {talent} umgehen..."; - + var attack = (KampfTalent) iattack; var tap = attack.At; output.AppendFormat( "{0}-Angriff taw:{1} {2} \n", @@ -119,12 +118,12 @@ namespace DSACore.DSA_Game.Characters public string Parade(string talent, int erschwernis = 0) { var output = new StringBuilder(); - var sc = new SpellCorrect(); - var attack = Kampftalente.OrderBy(x => sc.Compare(talent, x.Name)).First(); - if (sc.Compare(talent, attack.Name) > SpellCorrect.ErrorThreshold) + if (Kampftalente.TryMatch(out var iAttack , talent)) return $"{Name} kann nicht mit der Waffenart {talent} umgehen..."; + + var attack = (KampfTalent) iAttack; var tap = attack.Pa; output.AppendFormat( "{0}-Parade taw:{1} {2}\n", @@ -140,12 +139,11 @@ namespace DSACore.DSA_Game.Characters public string Fernkampf(string talent, int erschwernis = 0) { var output = new StringBuilder(); - var sc = new SpellCorrect(); var fk = Eigenschaften["fk"]; - var attack = Talente.OrderBy(x => sc.Compare(talent, x.Name)).First(); - if (sc.Compare(talent, attack.Name) > SpellCorrect.ErrorThreshold) + if (! Talente.TryMatch(out var iAttack, talent)) return $"{Name} kann nicht mit der Waffenart {talent} umgehen..."; + var attack = (Talent) iAttack; var tap = attack.Value; output.AppendFormat( "{0} taw:{1} {2} \n", diff --git a/DSALib/DSA_Game/Characters/NPC.cs b/DSALib/DSA_Game/Characters/NPC.cs index 75c3fe9..105adda 100644 --- a/DSALib/DSA_Game/Characters/NPC.cs +++ b/DSALib/DSA_Game/Characters/NPC.cs @@ -1,8 +1,8 @@ using System; -using DSACore.Auxiliary; +using DSALib.Auxiliary; using DSALib.Characters; -namespace DSACore.Characters +namespace DSALib.Characters { public class Npc : Being, ICharacter { diff --git a/DSALib/DSA_Game/Characters/SaveChar.cs b/DSALib/DSA_Game/Characters/SaveChar.cs index 7b29b4e..00e2f86 100644 --- a/DSALib/DSA_Game/Characters/SaveChar.cs +++ b/DSALib/DSA_Game/Characters/SaveChar.cs @@ -1,6 +1,6 @@ using DSALib.Characters; -namespace DSACore.DSA_Game.Characters +namespace DSALib.DSA_Game.Characters { public class SaveChar { diff --git a/DSALib/DSA_Game/Dsa.cs b/DSALib/DSA_Game/Dsa.cs index 18d0b81..bcd8951 100644 --- a/DSALib/DSA_Game/Dsa.cs +++ b/DSALib/DSA_Game/Dsa.cs @@ -1,20 +1,21 @@ using System; using System.Collections.Generic; using System.Linq; -using DSACore.DSA_Game.Characters; -using DSACore.DSA_Game.Save; +using DSALib.DSA_Game.Characters; +using DSALib.DSA_Game.Save; using DSALib; using DSALib.Characters; +using DSALib.Models.Dsa; -namespace DSACore.DSA_Game +namespace DSALib.DSA_Game { public static class Dsa { #if DEBUG public const string - rootPath = ""; //"C:\\Users\\Dennis\\Source\\Repos\\DiscoBot\\DSACore\\";//"DiscoBot\\DSACore\\"; + rootPath = ""; //"C:\\Users\\Dennis\\Source\\Repos\\DiscoBot\\DSALib\\";//"DiscoBot\\DSALib\\"; #else - public const string rootPath = "";//"DiscoBot\\DSACore\\"; + public const string rootPath = "";//"DiscoBot\\DSALib\\"; #endif private static Session s_session; diff --git a/DSALib/DSA_Game/Save/Properties.cs b/DSALib/DSA_Game/Save/Properties.cs index 7eba911..2312af0 100644 --- a/DSALib/DSA_Game/Save/Properties.cs +++ b/DSALib/DSA_Game/Save/Properties.cs @@ -3,11 +3,10 @@ using System.Collections; using System.Collections.Generic; using System.IO; using System.Linq; -using DSACore.Audio; -using DSACore.Auxiliary; +using DSALib.Auxiliary; using Newtonsoft.Json; -namespace DSACore.DSA_Game.Save +namespace DSALib.DSA_Game.Save { public static class Properties { @@ -26,11 +25,6 @@ namespace DSACore.DSA_Game.Save set => objects["CommandInfo"] = value; } // use Properties.Commandinfos to access the abstract Object array - public static List Sounds - { - get => objects["Sound"] as List; - set => objects["Sound"] = value; - } public static void Deserialize(string path = @"Properties") { diff --git a/DSALib/DSA_Game/Save/SaveCommand.cs b/DSALib/DSA_Game/Save/SaveCommand.cs index f358047..c5a1bb4 100644 --- a/DSALib/DSA_Game/Save/SaveCommand.cs +++ b/DSALib/DSA_Game/Save/SaveCommand.cs @@ -2,7 +2,7 @@ using System.IO; using System.Linq; -namespace DSACore.DSA_Game.Save +namespace DSALib.DSA_Game.Save { public class SaveCommand { diff --git a/DSALib/DSA_Game/Save/Session.cs b/DSALib/DSA_Game/Save/Session.cs index 6944fb1..62aa8f6 100644 --- a/DSALib/DSA_Game/Save/Session.cs +++ b/DSALib/DSA_Game/Save/Session.cs @@ -1,10 +1,10 @@ using System; using System.Collections.Generic; using System.IO; -using DSACore.DSA_Game.Characters; +using DSALib.DSA_Game.Characters; using Newtonsoft.Json; -namespace DSACore.DSA_Game.Save +namespace DSALib.DSA_Game.Save { public class Session { diff --git a/DSALib/FireBase/Database.cs b/DSALib/FireBase/Database.cs index 8946cf0..2debd27 100644 --- a/DSALib/FireBase/Database.cs +++ b/DSALib/FireBase/Database.cs @@ -2,18 +2,18 @@ using System.IO; using System.Linq; using System.Threading.Tasks; -using DSACore.DSA_Game; -using DSACore.DSA_Game.Characters; -using DSACore.Models.Database.DSA; -using DSACore.Models.Network; +using DSALib.DSA_Game; +using DSALib.DSA_Game.Characters; +using DSALib.Models.Database.DSA; +using DSALib.Models.Network; using Firebase.Database; using Firebase.Database.Query; -namespace DSACore.FireBase +namespace DSALib.FireBase { public static class Database { - public static FirebaseClient firebase; + public static FirebaseClient Firebase; public static Dictionary Chars = new Dictionary(); @@ -21,7 +21,7 @@ namespace DSACore.FireBase public static Dictionary RangedWeapons = new Dictionary(); - public static Dictionary Talents = new Dictionary(); + public static Dictionary Talents = new Dictionary(); public static Dictionary Spells = new Dictionary(); @@ -29,7 +29,7 @@ namespace DSACore.FireBase { var auth = File.ReadAllText(Dsa.rootPath + "Token"); ; // your app secret - firebase = new FirebaseClient( + Firebase = new FirebaseClient( "https://heldenonline-4d828.firebaseio.com/", new FirebaseOptions { @@ -39,18 +39,18 @@ namespace DSACore.FireBase Initialize(); } - private static async Task Initialize() + private static void Initialize() { - IntializeCollection("Chars", Chars); - IntializeCollection("MeleeWeapons", MeleeList); - IntializeCollection("RangedWeapons", RangedWeapons); - IntializeCollection("Talents", Talents); - IntializeCollection("Spells", Spells); + IntializeCollection("Chars", Chars).Start(); + IntializeCollection("MeleeWeapons", MeleeList).Start(); + IntializeCollection("RangedWeapons", RangedWeapons).Start(); + IntializeCollection("Talents", Talents).Start(); + IntializeCollection("Spells", Spells).Start(); } private static async Task IntializeCollection(string path, Dictionary list) { - var temp = await firebase + var temp = await Firebase .Child(path) .OrderByKey() .OnceAsync(); @@ -62,26 +62,26 @@ namespace DSACore.FireBase { DatabaseChar.LoadChar(file, out var groupChar, out var data); - var lastChar = await firebase + var lastChar = await Firebase .Child("Chars") .OrderByKey() .LimitToLast(1) .OnceAsync(); var id = groupChar.Id = data.Id = lastChar.First().Object.Id + 1; - await firebase //TODO Reomve await Operators + await Firebase //TODO Reomve await Operators .Child("Groups") .Child("Char" + id) .PutAsync(groupChar); - await firebase + await Firebase .Child("Chars") .Child("Char" + id) .PutAsync(data); Chars["Char" + id] = data; - await firebase + await Firebase .Child("Inventories") .Child("Inventory" + id) .PutAsync(new Inventory()); @@ -91,25 +91,25 @@ namespace DSACore.FireBase public static async Task RemoveChar(int id) { - await firebase + await Firebase .Child("Groups") .Child("Char" + id) .DeleteAsync(); - await firebase + await Firebase .Child("Chars") .Child("Char" + id) .DeleteAsync(); Chars.Remove("Char" + id); - await firebase + await Firebase .Child("Inventories") .Child("Inventory" + id) .DeleteAsync(); } - public static async Task GetChar(int id) + public static DatabaseChar GetChar(int id) { /*var chr = await firebase .Child("Chars") @@ -121,7 +121,7 @@ namespace DSACore.FireBase public static async Task GetInventory(int id) { - var inv = await firebase + var inv = await Firebase .Child("Inventories") .Child("Inventory" + id) .OnceSingleAsync(); @@ -130,15 +130,15 @@ namespace DSACore.FireBase public static async Task SetInventory(int id, Inventory inv) { - await firebase + await Firebase .Child("Inventories") .Child("Inventory" + id) .PutAsync(inv); } - public static async Task AddTalent(Talent tal) + public static async Task AddTalent(DSALib.Models.Database.DSA.Talent tal) { - await firebase + await Firebase .Child("Talents") .Child(tal.Name) .PutAsync(tal); @@ -146,13 +146,13 @@ namespace DSACore.FireBase public static async Task RemoveTalent(string talent) { - await firebase + await Firebase .Child("Talents") .Child(talent) .DeleteAsync(); } - public static async Task GetTalent(string talent) + public static DSALib.Models.Database.DSA.Talent GetTalent(string talent) { /* return await firebase @@ -164,7 +164,7 @@ namespace DSACore.FireBase public static async Task AddSpell(GeneralSpell tal) { - await firebase + await Firebase .Child("Spells") .Child(tal.Name) .PutAsync(tal); @@ -172,13 +172,13 @@ namespace DSACore.FireBase public static async Task RemoveSpell(string spell) { - await firebase + await Firebase .Child("Spells") .Child(spell) .DeleteAsync(); } - public static async Task GetSpell(string spell) + public static GeneralSpell GetSpell(string spell) { /*return await firebase .Child("Spells") @@ -191,7 +191,7 @@ namespace DSACore.FireBase public static async Task AddWeapon(Weapon wep) { var collection = wep.GetType() == typeof(MeleeWeapon) ? "MeleeWeapons" : "RangedWeapons"; - await firebase + await Firebase .Child(collection) .Child(wep.Name) .PutAsync(wep); @@ -200,7 +200,7 @@ namespace DSACore.FireBase public static async Task RemoveWeapon(string weapon, bool ranged = false) { var collection = ranged ? "RangedWeapons" : "MeleeWeapons"; - await firebase + await Firebase .Child(collection) .Child(weapon) .DeleteAsync(); @@ -209,7 +209,7 @@ namespace DSACore.FireBase public static async Task GetWeapon(string weapon, bool ranged = false) { var collection = ranged ? "RangedWeapons" : "MeleeWeapons"; - return await firebase + return await Firebase .Child(collection) .Child(weapon) .OnceSingleAsync(); @@ -217,10 +217,10 @@ namespace DSACore.FireBase public static async Task> GetGroups() { - var groups = await firebase + var groups = await Firebase .Child("Groups") .OrderByKey() - .OnceAsync(); + .OnceAsync(); var ret = new List(); foreach (var firebaseObject in groups) @@ -229,33 +229,33 @@ namespace DSACore.FireBase return ret; } - public static async Task GetGroup(int id) + public static async Task GetGroup(int id) { - var group = await firebase + var group = await Firebase .Child("Groups") .Child("Group" + id) - .OnceSingleAsync(); + .OnceSingleAsync(); return group; } - public static async Task AddGroup(Models.Database.Groups.Group group) + public static async Task AddGroup(DSALib.Models.Database.Groups.Group group) { - var lastChar = await firebase + var lastChar = await Firebase .Child("Groups") .OrderByKey() .LimitToLast(1) - .OnceAsync(); + .OnceAsync(); var id = group.Id = lastChar.First().Object.Id + 1; - await firebase + await Firebase .Child("Groups") .Child("Group" + id) .PutAsync(group); } - public static async void SetGroup(Models.Database.Groups.Group group) + public static async void SetGroup(DSALib.Models.Database.Groups.Group group) { - await firebase + await Firebase .Child("Groups") .Child("Group" + group.Id) .PutAsync(group); @@ -263,7 +263,7 @@ namespace DSACore.FireBase public static async void DeleteGroup(int id) { - await firebase + await Firebase .Child("Groups") .Child("Group" + id) .DeleteAsync(); diff --git a/DSALib/KampfTalent.cs b/DSALib/KampfTalent.cs deleted file mode 100644 index 7c7eed4..0000000 --- a/DSALib/KampfTalent.cs +++ /dev/null @@ -1,18 +0,0 @@ -namespace DSALib -{ - public class KampfTalent - { - public KampfTalent(string name, int at, int pa) - { - Name = name; - At = at; - Pa = pa; - } - - public string Name { get; set; } - - public int At { get; set; } - - public int Pa { get; set; } - } -} \ No newline at end of file diff --git a/DSALib/Models/Database/DSA/Advantage.cs b/DSALib/Models/Database/DSA/Advantage.cs index cc8f5cc..500cf6d 100644 --- a/DSALib/Models/Database/DSA/Advantage.cs +++ b/DSALib/Models/Database/DSA/Advantage.cs @@ -1,6 +1,6 @@ using System; -namespace DSACore.Models.Database.DSA +namespace DSALib.Models.Database.DSA { public class Advantage { diff --git a/DSALib/Models/Database/DSA/CharSpell.cs b/DSALib/Models/Database/DSA/CharSpell.cs index fabd456..77a8dc8 100644 --- a/DSALib/Models/Database/DSA/CharSpell.cs +++ b/DSALib/Models/Database/DSA/CharSpell.cs @@ -1,6 +1,6 @@ using System; -namespace DSACore.Models.Database.DSA +namespace DSALib.Models.Database.DSA { public class CharSpell { diff --git a/DSALib/Models/Database/DSA/DatabaseChar.cs b/DSALib/Models/Database/DSA/DatabaseChar.cs index 872b82e..cfd7174 100644 --- a/DSALib/Models/Database/DSA/DatabaseChar.cs +++ b/DSALib/Models/Database/DSA/DatabaseChar.cs @@ -1,9 +1,9 @@ using System; using System.Collections.Generic; using System.Linq; -using DSACore.DSA_Game.Characters; +using DSALib.DSA_Game.Characters; -namespace DSACore.Models.Database.DSA +namespace DSALib.Models.Database.DSA { public class DatabaseChar { diff --git a/DSALib/Models/Database/DSA/Field.cs b/DSALib/Models/Database/DSA/Field.cs index e63aeb4..1b10232 100644 --- a/DSALib/Models/Database/DSA/Field.cs +++ b/DSALib/Models/Database/DSA/Field.cs @@ -1,6 +1,6 @@ using System; -namespace DSACore.Models.Database.DSA +namespace DSALib.Models.Database.DSA { public class Field { diff --git a/DSALib/Models/Database/DSA/GeneralSpell.cs b/DSALib/Models/Database/DSA/GeneralSpell.cs index b4dbc0b..6fe6a78 100644 --- a/DSALib/Models/Database/DSA/GeneralSpell.cs +++ b/DSALib/Models/Database/DSA/GeneralSpell.cs @@ -1,4 +1,4 @@ -namespace DSACore.Models.Database.DSA +namespace DSALib.Models.Database.DSA { public class GeneralSpell : Talent { diff --git a/DSALib/Models/Database/DSA/GroupChar.cs b/DSALib/Models/Database/DSA/GroupChar.cs index 31fc583..0c1ecf1 100644 --- a/DSALib/Models/Database/DSA/GroupChar.cs +++ b/DSALib/Models/Database/DSA/GroupChar.cs @@ -1,4 +1,4 @@ -namespace DSACore.Models.Database.DSA +namespace DSALib.Models.Database.DSA { public class GroupChar { diff --git a/DSALib/Models/Database/DSA/Inventory.cs b/DSALib/Models/Database/DSA/Inventory.cs index 9a025d4..086564c 100644 --- a/DSALib/Models/Database/DSA/Inventory.cs +++ b/DSALib/Models/Database/DSA/Inventory.cs @@ -1,6 +1,6 @@ using System.Collections.Generic; -namespace DSACore.Models.Database.DSA +namespace DSALib.Models.Database.DSA { public class Inventory { diff --git a/DSALib/Models/Database/DSA/Talent.cs b/DSALib/Models/Database/DSA/Talent.cs index 59ff4bc..578d93c 100644 --- a/DSALib/Models/Database/DSA/Talent.cs +++ b/DSALib/Models/Database/DSA/Talent.cs @@ -1,8 +1,8 @@ using System; -namespace DSACore.Models.Database.DSA +namespace DSALib.Models.Database.DSA { - public class Talent + public class Talent : DSALib.Models.Database.DataObject { public Talent() { @@ -19,8 +19,6 @@ namespace DSACore.Models.Database.DSA Roll = roll.Split('/'); } - public string Name { get; set; } - public string[] Roll { get; set; } = new string[3]; } } \ No newline at end of file diff --git a/DSALib/Models/Database/DSA/Weapon.cs b/DSALib/Models/Database/DSA/Weapon.cs index 58a44cd..8ed63d7 100644 --- a/DSALib/Models/Database/DSA/Weapon.cs +++ b/DSALib/Models/Database/DSA/Weapon.cs @@ -1,6 +1,6 @@ using System; -namespace DSACore.Models.Database.DSA +namespace DSALib.Models.Database.DSA { public class Weapon { diff --git a/DSALib/Models/Database/DSA/WeaponTalent.cs b/DSALib/Models/Database/DSA/WeaponTalent.cs index 98eb38d..f65fb3f 100644 --- a/DSALib/Models/Database/DSA/WeaponTalent.cs +++ b/DSALib/Models/Database/DSA/WeaponTalent.cs @@ -1,6 +1,6 @@ using System; -namespace DSACore.Models.Database.DSA +namespace DSALib.Models.Database.DSA { public class WeaponTalent { diff --git a/DSALib/Models/Database/DataObject.cs b/DSALib/Models/Database/DataObject.cs new file mode 100644 index 0000000..59cfdf2 --- /dev/null +++ b/DSALib/Models/Database/DataObject.cs @@ -0,0 +1,13 @@ +namespace DSALib.Models.Database +{ + public class DataObject : IDataObject + { + + public override string ToString() + { + return Name; + } + + public string Name { get; set; } + } +} diff --git a/DSALib/Models/Database/Groups/DSAGroup.cs b/DSALib/Models/Database/Groups/DSAGroup.cs index 89fac2f..377376e 100644 --- a/DSALib/Models/Database/Groups/DSAGroup.cs +++ b/DSALib/Models/Database/Groups/DSAGroup.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; -using DSACore.Models.Database.DSA; +using DSALib.Models.Database.DSA; -namespace DSACore.Models.Database.Groups +namespace DSALib.Models.Database.Groups { public class DSAGroup : Group { diff --git a/DSALib/Models/Database/Groups/Group.cs b/DSALib/Models/Database/Groups/Group.cs index 77d3a64..096f2be 100644 --- a/DSALib/Models/Database/Groups/Group.cs +++ b/DSALib/Models/Database/Groups/Group.cs @@ -1,9 +1,8 @@ -namespace DSACore.Models.Database.Groups +namespace DSALib.Models.Database.Groups { public class Group { public string Name { get; set; } - public string Discord { get; set; } public string Password { get; set; } public int Id { get; set; } } diff --git a/DSALib/Models/Database/IDataObject.cs b/DSALib/Models/Database/IDataObject.cs new file mode 100644 index 0000000..bdc88b7 --- /dev/null +++ b/DSALib/Models/Database/IDataObject.cs @@ -0,0 +1,7 @@ +namespace DSALib.Models.Database +{ + public interface IDataObject + { + string Name { get; set; } + } +} \ No newline at end of file diff --git a/DSALib/Models/Dsa/CritterAttack.cs b/DSALib/Models/Dsa/CritterAttack.cs new file mode 100644 index 0000000..8cd8b09 --- /dev/null +++ b/DSALib/Models/Dsa/CritterAttack.cs @@ -0,0 +1,19 @@ +namespace DSALib.Models.Dsa +{ + public class CritterAttack : Database.DataObject + { + public CritterAttack(string name, int at, string tp, string comment = "") + { + Name = name; + At = at; + Tp = tp; + Comment = comment; + } + + public int At { get; set; } + + public string Tp { get; set; } + + public string Comment { get; set; } + } +} \ No newline at end of file diff --git a/DSALib/Models/Dsa/KampfTalent.cs b/DSALib/Models/Dsa/KampfTalent.cs new file mode 100644 index 0000000..51ad255 --- /dev/null +++ b/DSALib/Models/Dsa/KampfTalent.cs @@ -0,0 +1,16 @@ +namespace DSALib.Models.Dsa +{ + public class KampfTalent : Database.DataObject + { + public KampfTalent(string name, int at, int pa) + { + Name = name; + At = at; + Pa = pa; + } + + public int At { get; set; } + + public int Pa { get; set; } + } +} \ No newline at end of file diff --git a/DSALib/Models/Dsa/Talent.cs b/DSALib/Models/Dsa/Talent.cs new file mode 100644 index 0000000..5771a74 --- /dev/null +++ b/DSALib/Models/Dsa/Talent.cs @@ -0,0 +1,43 @@ +namespace DSALib.Models.Dsa +{ + public class Talent : Database.DataObject // talent objekt + { + public Talent(string name, string probe, int value) + { + Name = name; + Probe = probe; + Value = value; + } + + public string Probe { get; set; } + + public int Value { get; set; } + + public string[] GetEigenschaften() // turn XX/XX/XX into string[]{XX,XX,XX} + { + var temp = Probe.Split('/'); + for (var index = 0; index < temp.Length; index++) temp[index] = temp[index].Replace("/", string.Empty); + + return temp; + } + + public bool IstFernkampftalent() + { + switch (Name) + { + case "Armbrust": + case "Belagerungswaffen": + case "Blasrohr": + case "Bogen": + case "Diskus": + case "Schleuder": + case "Wurfbeile": + case "Wurfmesser": + case "Wurfspeere": + return true; + default: + return false; + } + } + } +} \ No newline at end of file diff --git a/DSALib/Models/Dsa/Vorteil.cs b/DSALib/Models/Dsa/Vorteil.cs new file mode 100644 index 0000000..e37af20 --- /dev/null +++ b/DSALib/Models/Dsa/Vorteil.cs @@ -0,0 +1,16 @@ +namespace DSALib.Models.Dsa +{ + public class Vorteil : Database.DataObject // talent objekt + { + public Vorteil(string name, string value = "") + { + Name = name; + Value = value; + // this.Choice = choice; + } + + public string Value { get; set; } + + //public string Choice { get; set; } + } +} \ No newline at end of file diff --git a/DSALib/Models/Dsa/Zauber.cs b/DSALib/Models/Dsa/Zauber.cs new file mode 100644 index 0000000..e4387bf --- /dev/null +++ b/DSALib/Models/Dsa/Zauber.cs @@ -0,0 +1,16 @@ +namespace DSALib.Models.Dsa +{ + public class Zauber : Talent + { + public Zauber(string name, string probe, int value, char complexity = 'A', string representation = "Magier") + : base(name, probe, value) + { + Complexity = complexity; + Representation = Representation; + } + + public char Complexity { get; } + + public string Representation { get; } + } +} \ No newline at end of file diff --git a/DSALib/Models/Network/Command.cs b/DSALib/Models/Network/Command.cs index 00b00a6..5a97e88 100644 --- a/DSALib/Models/Network/Command.cs +++ b/DSALib/Models/Network/Command.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System.Linq; -namespace DSACore.Models.Network +namespace DSALib.Models.Network { public class Command { diff --git a/DSALib/Models/Network/CommandResponse.cs b/DSALib/Models/Network/CommandResponse.cs index c7a410a..0816e4a 100644 --- a/DSALib/Models/Network/CommandResponse.cs +++ b/DSALib/Models/Network/CommandResponse.cs @@ -1,6 +1,6 @@ using System; -namespace DSACore.Models.Network +namespace DSALib.Models.Network { public class CommandResponse { diff --git a/DSALib/Models/Network/Group.cs b/DSALib/Models/Network/Group.cs index efe12ee..608e5ea 100644 --- a/DSALib/Models/Network/Group.cs +++ b/DSALib/Models/Network/Group.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; -namespace DSACore.Models.Network +namespace DSALib.Models.Network { public class Group { diff --git a/DSALib/Models/Network/Token.cs b/DSALib/Models/Network/Token.cs index 451cafc..2310607 100644 --- a/DSALib/Models/Network/Token.cs +++ b/DSALib/Models/Network/Token.cs @@ -1,6 +1,6 @@ using System; -namespace DSACore.Models.Network +namespace DSALib.Models.Network { public class Token { diff --git a/DSALib/Models/Network/User.cs b/DSALib/Models/Network/User.cs index 8b8008c..314a0bf 100644 --- a/DSALib/Models/Network/User.cs +++ b/DSALib/Models/Network/User.cs @@ -1,4 +1,4 @@ -namespace DSACore.Models.Network +namespace DSALib.Models.Network { public class User { diff --git a/DSALib/PropertiesNewtonsoft-Json-Linq-JProperty.json b/DSALib/PropertiesNewtonsoft-Json-Linq-JProperty.json index 0ed0f48..2544397 100644 --- a/DSALib/PropertiesNewtonsoft-Json-Linq-JProperty.json +++ b/DSALib/PropertiesNewtonsoft-Json-Linq-JProperty.json @@ -17,7 +17,7 @@ "ASPNETCORE_ENVIRONMENT": "Development" } }, - "DSACore": { + "DSALib": { "commandName": "Project", "launchBrowser": true, "launchUrl": "api/commands", diff --git a/DSALib/Talent.cs b/DSALib/Talent.cs deleted file mode 100644 index a39709c..0000000 --- a/DSALib/Talent.cs +++ /dev/null @@ -1,45 +0,0 @@ -namespace DSALib -{ - public class Talent // talent objekt - { - public Talent(string name, string probe, int value) - { - Name = name; - Probe = probe; - Value = value; - } - - public string Name { get; set; } - - public string Probe { get; set; } - - public int Value { get; set; } - - public string[] GetEigenschaften() // turn XX/XX/XX into string[]{XX,XX,XX} - { - var temp = Probe.Split('/'); - for (var index = 0; index < temp.Length; index++) temp[index] = temp[index].Replace("/", string.Empty); - - return temp; - } - - public bool IstFernkampftalent() - { - switch (Name) - { - case "Armbrust": - case "Belagerungswaffen": - case "Blasrohr": - case "Bogen": - case "Diskus": - case "Schleuder": - case "Wurfbeile": - case "Wurfmesser": - case "Wurfspeere": - return true; - default: - return false; - } - } - } -} \ No newline at end of file diff --git a/DSALib/Vorteil.cs b/DSALib/Vorteil.cs deleted file mode 100644 index c239676..0000000 --- a/DSALib/Vorteil.cs +++ /dev/null @@ -1,18 +0,0 @@ -namespace DSALib -{ - public class Vorteil // talent objekt - { - public Vorteil(string name, string value = "") - { - Name = name; - Value = value; - // this.Choice = choice; - } - - public string Name { get; set; } - - public string Value { get; set; } - - //public string Choice { get; set; } - } -} \ No newline at end of file diff --git a/DSALib/Zauber.cs b/DSALib/Zauber.cs deleted file mode 100644 index 0f460a1..0000000 --- a/DSALib/Zauber.cs +++ /dev/null @@ -1,16 +0,0 @@ -namespace DSALib -{ - public class Zauber : Talent - { - public Zauber(string name, string probe, int value, char complexity = 'A', string representation = "Magier") - : base(name, probe, value) - { - Complexity = complexity; - Representation = Representation; - } - - public char Complexity { get; } - - public string Representation { get; } - } -} \ No newline at end of file diff --git a/DSALib/helden/Felis.xml b/DSALib/helden/Felis.xml deleted file mode 100644 index 7440aaf..0000000 --- a/DSALib/helden/Felis.xml +++ /dev/null @@ -1,4 +0,0 @@ -pA70izIxomtGcRb/16T9inwwXw8=VJwVRJxgJH4HZS+IjrA6Xwv5BHNXoEDLNFGY0OJX0t1jR6laSNhNsw==

/KaCzo4Syrom78z3EQ5SbbB4sF7ey80etKII864WF64B81uRpH5t9jQTxeEu0ImbzRMqzVDZkVG9 -xD7nN1kuFw==

li7dzDacuo67Jg7mtqEm2TRuOMU=Z4Rxsnqc9E7pGknFFH2xqaryRPBaQ01khpMdLRQnG541Awtx/XPaF5Bpsy4pNWMOHCBiNU0Nogps -QW5QvnlMpA==uVrvWkzIbUdL7E80AiD0PJDX3Ck0beY5StXp1wDAA1/ePpemd6rTBNd8YoCzOovNrX016YMcTSiO -iExM4RWtJA==
\ No newline at end of file diff --git a/DSALib/helden/Gardist.xml b/DSALib/helden/Gardist.xml deleted file mode 100644 index c97c607..0000000 --- a/DSALib/helden/Gardist.xml +++ /dev/null @@ -1,4 +0,0 @@ -1SsAf+YaDGZWDsYew0x45jON/J4=Qx8xnAFVnlqg5baXpuYlluB0/As90tox235IqoOR77xyQXeGUBC/og==

/KaCzo4Syrom78z3EQ5SbbB4sF7ey80etKII864WF64B81uRpH5t9jQTxeEu0ImbzRMqzVDZkVG9 -xD7nN1kuFw==

li7dzDacuo67Jg7mtqEm2TRuOMU=Z4Rxsnqc9E7pGknFFH2xqaryRPBaQ01khpMdLRQnG541Awtx/XPaF5Bpsy4pNWMOHCBiNU0Nogps -QW5QvnlMpA==uVrvWkzIbUdL7E80AiD0PJDX3Ck0beY5StXp1wDAA1/ePpemd6rTBNd8YoCzOovNrX016YMcTSiO -iExM4RWtJA==
\ No newline at end of file diff --git a/DSALib/helden/HartmutReiher.xml b/DSALib/helden/HartmutReiher.xml deleted file mode 100644 index 114a5c9..0000000 --- a/DSALib/helden/HartmutReiher.xml +++ /dev/null @@ -1,4 +0,0 @@ -aJ0llXd+H5R2PCWNIxq2nQGUcls=Brx39LfbpQRgCi75Yc6tx9hl8O5Jg4CPbwkaFBRunag4UXIjQv9sqQ==

/KaCzo4Syrom78z3EQ5SbbB4sF7ey80etKII864WF64B81uRpH5t9jQTxeEu0ImbzRMqzVDZkVG9 -xD7nN1kuFw==

li7dzDacuo67Jg7mtqEm2TRuOMU=Z4Rxsnqc9E7pGknFFH2xqaryRPBaQ01khpMdLRQnG541Awtx/XPaF5Bpsy4pNWMOHCBiNU0Nogps -QW5QvnlMpA==uVrvWkzIbUdL7E80AiD0PJDX3Ck0beY5StXp1wDAA1/ePpemd6rTBNd8YoCzOovNrX016YMcTSiO -iExM4RWtJA==
\ No newline at end of file diff --git a/DSALib/helden/Helga_vom_Drachenei_Tausendsasserin.xml b/DSALib/helden/Helga_vom_Drachenei_Tausendsasserin.xml deleted file mode 100644 index b0f3930..0000000 --- a/DSALib/helden/Helga_vom_Drachenei_Tausendsasserin.xml +++ /dev/null @@ -1,4 +0,0 @@ -vMcyanAncITxP9wTw9/1L9KzWWw=Enznpogl943QhgW3XnOs6Tc1RoeGaF4C/DHVS7+yB9fTdYhVvYge+Q==

/KaCzo4Syrom78z3EQ5SbbB4sF7ey80etKII864WF64B81uRpH5t9jQTxeEu0ImbzRMqzVDZkVG9 -xD7nN1kuFw==

li7dzDacuo67Jg7mtqEm2TRuOMU=Z4Rxsnqc9E7pGknFFH2xqaryRPBaQ01khpMdLRQnG541Awtx/XPaF5Bpsy4pNWMOHCBiNU0Nogps -QW5QvnlMpA==uVrvWkzIbUdL7E80AiD0PJDX3Ck0beY5StXp1wDAA1/ePpemd6rTBNd8YoCzOovNrX016YMcTSiO -iExM4RWtJA==
\ No newline at end of file diff --git a/DSALib/helden/Krenko.xml b/DSALib/helden/Krenko.xml deleted file mode 100644 index 620deae..0000000 --- a/DSALib/helden/Krenko.xml +++ /dev/null @@ -1,4 +0,0 @@ -9rk+qJMY4v0RmLNh88Itq6VXLIg=GlTXU1OtSEcmoziBrTxBe0f0XFCOmzsCcTBjMeqQfA8KvC84N1AYbQ==

/KaCzo4Syrom78z3EQ5SbbB4sF7ey80etKII864WF64B81uRpH5t9jQTxeEu0ImbzRMqzVDZkVG9 -xD7nN1kuFw==

li7dzDacuo67Jg7mtqEm2TRuOMU=Z4Rxsnqc9E7pGknFFH2xqaryRPBaQ01khpMdLRQnG541Awtx/XPaF5Bpsy4pNWMOHCBiNU0Nogps -QW5QvnlMpA==uVrvWkzIbUdL7E80AiD0PJDX3Ck0beY5StXp1wDAA1/ePpemd6rTBNd8YoCzOovNrX016YMcTSiO -iExM4RWtJA==
\ No newline at end of file diff --git a/DSALib/helden/Ledur Torfinson.xml b/DSALib/helden/Ledur Torfinson.xml deleted file mode 100644 index a2bf8cb..0000000 --- a/DSALib/helden/Ledur Torfinson.xml +++ /dev/null @@ -1,4 +0,0 @@ -kwjCKNgoekrV8U2sOc1tmHX96Zw=FNYdF3Pwx3vu+tV+1fIbeNMb6r0k5KYsSPOR0MmM8BevaZb0hPws4g==

/KaCzo4Syrom78z3EQ5SbbB4sF7ey80etKII864WF64B81uRpH5t9jQTxeEu0ImbzRMqzVDZkVG9 -xD7nN1kuFw==

li7dzDacuo67Jg7mtqEm2TRuOMU=Z4Rxsnqc9E7pGknFFH2xqaryRPBaQ01khpMdLRQnG541Awtx/XPaF5Bpsy4pNWMOHCBiNU0Nogps -QW5QvnlMpA==uVrvWkzIbUdL7E80AiD0PJDX3Ck0beY5StXp1wDAA1/ePpemd6rTBNd8YoCzOovNrX016YMcTSiO -iExM4RWtJA==
\ No newline at end of file diff --git a/DSALib/helden/Morla.xml b/DSALib/helden/Morla.xml deleted file mode 100644 index 5dd39d4..0000000 --- a/DSALib/helden/Morla.xml +++ /dev/null @@ -1,4 +0,0 @@ -J0Qxa803dVWpDpWef6bwYS1dkbA=JMNNANEdxh4uTF9dr5Trjm0oxW1WhII4n2udLqB7ULX4Pw6URbN0lA==

/KaCzo4Syrom78z3EQ5SbbB4sF7ey80etKII864WF64B81uRpH5t9jQTxeEu0ImbzRMqzVDZkVG9 -xD7nN1kuFw==

li7dzDacuo67Jg7mtqEm2TRuOMU=Z4Rxsnqc9E7pGknFFH2xqaryRPBaQ01khpMdLRQnG541Awtx/XPaF5Bpsy4pNWMOHCBiNU0Nogps -QW5QvnlMpA==uVrvWkzIbUdL7E80AiD0PJDX3Ck0beY5StXp1wDAA1/ePpemd6rTBNd8YoCzOovNrX016YMcTSiO -iExM4RWtJA==
\ No newline at end of file diff --git a/DSALib/helden/Numeri.xml b/DSALib/helden/Numeri.xml deleted file mode 100644 index b907d8d..0000000 --- a/DSALib/helden/Numeri.xml +++ /dev/null @@ -1,4 +0,0 @@ -AmaaAfieEHvF5Ub8YB+OQD2D+6s=Div+yr0UvnraVfHhejvu1NDe2NU4iaZ935d1Bv3KLmYktGZcKG/jVQ==

/KaCzo4Syrom78z3EQ5SbbB4sF7ey80etKII864WF64B81uRpH5t9jQTxeEu0ImbzRMqzVDZkVG9 -xD7nN1kuFw==

li7dzDacuo67Jg7mtqEm2TRuOMU=Z4Rxsnqc9E7pGknFFH2xqaryRPBaQ01khpMdLRQnG541Awtx/XPaF5Bpsy4pNWMOHCBiNU0Nogps -QW5QvnlMpA==uVrvWkzIbUdL7E80AiD0PJDX3Ck0beY5StXp1wDAA1/ePpemd6rTBNd8YoCzOovNrX016YMcTSiO -iExM4RWtJA==
\ No newline at end of file diff --git a/DSALib/helden/Potus.xml b/DSALib/helden/Potus.xml deleted file mode 100644 index c1c04fa..0000000 --- a/DSALib/helden/Potus.xml +++ /dev/null @@ -1,4 +0,0 @@ -F7OrYyirJlEv52YqskViItN47ms=FyqxL9I3EtXVrj/SY6NLFw6F7hdqzBdNiV8rgccdkWWtvZEAGfOPtQ==

/KaCzo4Syrom78z3EQ5SbbB4sF7ey80etKII864WF64B81uRpH5t9jQTxeEu0ImbzRMqzVDZkVG9 -xD7nN1kuFw==

li7dzDacuo67Jg7mtqEm2TRuOMU=Z4Rxsnqc9E7pGknFFH2xqaryRPBaQ01khpMdLRQnG541Awtx/XPaF5Bpsy4pNWMOHCBiNU0Nogps -QW5QvnlMpA==uVrvWkzIbUdL7E80AiD0PJDX3Ck0beY5StXp1wDAA1/ePpemd6rTBNd8YoCzOovNrX016YMcTSiO -iExM4RWtJA==
\ No newline at end of file diff --git a/DSALib/helden/PumpausderGosse.xml b/DSALib/helden/PumpausderGosse.xml deleted file mode 100644 index d67ddf8..0000000 --- a/DSALib/helden/PumpausderGosse.xml +++ /dev/null @@ -1,4 +0,0 @@ -oQXQFL8j6dy53bBPLAHJsrCvDFs=UY3KHtwStSmd2pFDgHIThNF3OfFY7iasQImMyHxa+9dRGlaTEDDNug==

/KaCzo4Syrom78z3EQ5SbbB4sF7ey80etKII864WF64B81uRpH5t9jQTxeEu0ImbzRMqzVDZkVG9 -xD7nN1kuFw==

li7dzDacuo67Jg7mtqEm2TRuOMU=Z4Rxsnqc9E7pGknFFH2xqaryRPBaQ01khpMdLRQnG541Awtx/XPaF5Bpsy4pNWMOHCBiNU0Nogps -QW5QvnlMpA==uVrvWkzIbUdL7E80AiD0PJDX3Ck0beY5StXp1wDAA1/ePpemd6rTBNd8YoCzOovNrX016YMcTSiO -iExM4RWtJA==
\ No newline at end of file diff --git a/DSALib/helden/Rhoktar4.xml b/DSALib/helden/Rhoktar4.xml deleted file mode 100644 index be9b2ae..0000000 --- a/DSALib/helden/Rhoktar4.xml +++ /dev/null @@ -1,4 +0,0 @@ -btq5PhE94OQZjxRHb7Hxq539JUM=Q3g3k/lQX2jsJCxyHpcATHs1TY0aPOlnruNdqJGMgIfucIgwsdmU6A==

/KaCzo4Syrom78z3EQ5SbbB4sF7ey80etKII864WF64B81uRpH5t9jQTxeEu0ImbzRMqzVDZkVG9 -xD7nN1kuFw==

li7dzDacuo67Jg7mtqEm2TRuOMU=Z4Rxsnqc9E7pGknFFH2xqaryRPBaQ01khpMdLRQnG541Awtx/XPaF5Bpsy4pNWMOHCBiNU0Nogps -QW5QvnlMpA==uVrvWkzIbUdL7E80AiD0PJDX3Ck0beY5StXp1wDAA1/ePpemd6rTBNd8YoCzOovNrX016YMcTSiO -iExM4RWtJA==
\ No newline at end of file diff --git a/DSALib/helden/Volant.xml b/DSALib/helden/Volant.xml deleted file mode 100644 index 4fd0c8c..0000000 --- a/DSALib/helden/Volant.xml +++ /dev/null @@ -1,4 +0,0 @@ -1SwyFEXG5zhwYMHNYtyeHv4ZgF0=B03LcgbDPOAkiu9tsiLkAXmTW9mVoZipUw/T1FZrQUfouAM2rtskIg==

/KaCzo4Syrom78z3EQ5SbbB4sF7ey80etKII864WF64B81uRpH5t9jQTxeEu0ImbzRMqzVDZkVG9 -xD7nN1kuFw==

li7dzDacuo67Jg7mtqEm2TRuOMU=Z4Rxsnqc9E7pGknFFH2xqaryRPBaQ01khpMdLRQnG541Awtx/XPaF5Bpsy4pNWMOHCBiNU0Nogps -QW5QvnlMpA==uVrvWkzIbUdL7E80AiD0PJDX3Ck0beY5StXp1wDAA1/ePpemd6rTBNd8YoCzOovNrX016YMcTSiO -iExM4RWtJA==
\ No newline at end of file diff --git a/DiscoBot.sln b/DiscoBot.sln index 93659a9..ffc5896 100644 --- a/DiscoBot.sln +++ b/DiscoBot.sln @@ -1,69 +1,38 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27130.2003 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.28803.452 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DiscoBot", "DiscoBot\DiscoBot.csproj", "{1186AF1C-BC46-4B3D-BEE0-CE478B8AEAC7}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ZooBOTanica", "ZooBOTanica\ZooBOTanica.csproj", "{58917D99-DC94-4CDD-AD2B-C6E0BAFFCF47}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DSALib", "DSALib\DSALib.csproj", "{388DD4ED-29C4-4127-AC8F-34DD3FE9F9B0}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DSACore", "DSACore\DSACore.csproj", "{35A5E2CC-0FD4-4BC0-ACBF-38599CAED1C4}" EndProject -Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "dist", "WebInterface\NodeJSServer\dist\", "{3FEC1233-072D-4031-BBEB-B9804C58BD15}" - ProjectSection(WebsiteProperties) = preProject - TargetFrameworkMoniker = ".NETFramework,Version%3Dv4.5" - Debug.AspNetCompiler.VirtualPath = "/localhost_1915" - Debug.AspNetCompiler.PhysicalPath = "WebInterface\NodeJSServer\dist\" - Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\localhost_1915\" - Debug.AspNetCompiler.Updateable = "true" - Debug.AspNetCompiler.ForceOverwrite = "true" - Debug.AspNetCompiler.FixedNames = "false" - Debug.AspNetCompiler.Debug = "True" - Release.AspNetCompiler.VirtualPath = "/localhost_1915" - Release.AspNetCompiler.PhysicalPath = "WebInterface\NodeJSServer\dist\" - Release.AspNetCompiler.TargetPath = "PrecompiledWeb\localhost_1915\" - Release.AspNetCompiler.Updateable = "true" - Release.AspNetCompiler.ForceOverwrite = "true" - Release.AspNetCompiler.FixedNames = "false" - Release.AspNetCompiler.Debug = "False" - VWDPort = "1915" - SlnRelativePath = "WebInterface\NodeJSServer\dist\" - EndProjectSection -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FireBase", "FireBase\FireBase.csproj", "{87CC30E6-CBEA-4282-A3CC-FD5119A1993B}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DSALib", "DSALib\DSALib.csproj", "{C5D9AFDF-70E2-4A47-96FF-1EC47C1DE38D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DiscordBot", "DiscordBot\DiscordBot.csproj", "{F1418B62-F043-4761-9BDD-AE078B6A99FB}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {1186AF1C-BC46-4B3D-BEE0-CE478B8AEAC7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1186AF1C-BC46-4B3D-BEE0-CE478B8AEAC7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1186AF1C-BC46-4B3D-BEE0-CE478B8AEAC7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1186AF1C-BC46-4B3D-BEE0-CE478B8AEAC7}.Release|Any CPU.Build.0 = Release|Any CPU - {58917D99-DC94-4CDD-AD2B-C6E0BAFFCF47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {58917D99-DC94-4CDD-AD2B-C6E0BAFFCF47}.Debug|Any CPU.Build.0 = Debug|Any CPU - {58917D99-DC94-4CDD-AD2B-C6E0BAFFCF47}.Release|Any CPU.ActiveCfg = Release|Any CPU - {58917D99-DC94-4CDD-AD2B-C6E0BAFFCF47}.Release|Any CPU.Build.0 = Release|Any CPU - {388DD4ED-29C4-4127-AC8F-34DD3FE9F9B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {388DD4ED-29C4-4127-AC8F-34DD3FE9F9B0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {388DD4ED-29C4-4127-AC8F-34DD3FE9F9B0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {388DD4ED-29C4-4127-AC8F-34DD3FE9F9B0}.Release|Any CPU.Build.0 = Release|Any CPU {35A5E2CC-0FD4-4BC0-ACBF-38599CAED1C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {35A5E2CC-0FD4-4BC0-ACBF-38599CAED1C4}.Debug|Any CPU.Build.0 = Debug|Any CPU {35A5E2CC-0FD4-4BC0-ACBF-38599CAED1C4}.Release|Any CPU.ActiveCfg = Release|Any CPU {35A5E2CC-0FD4-4BC0-ACBF-38599CAED1C4}.Release|Any CPU.Build.0 = Release|Any CPU - {3FEC1233-072D-4031-BBEB-B9804C58BD15}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3FEC1233-072D-4031-BBEB-B9804C58BD15}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3FEC1233-072D-4031-BBEB-B9804C58BD15}.Release|Any CPU.ActiveCfg = Debug|Any CPU - {3FEC1233-072D-4031-BBEB-B9804C58BD15}.Release|Any CPU.Build.0 = Debug|Any CPU {87CC30E6-CBEA-4282-A3CC-FD5119A1993B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {87CC30E6-CBEA-4282-A3CC-FD5119A1993B}.Debug|Any CPU.Build.0 = Debug|Any CPU {87CC30E6-CBEA-4282-A3CC-FD5119A1993B}.Release|Any CPU.ActiveCfg = Release|Any CPU {87CC30E6-CBEA-4282-A3CC-FD5119A1993B}.Release|Any CPU.Build.0 = Release|Any CPU + {C5D9AFDF-70E2-4A47-96FF-1EC47C1DE38D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C5D9AFDF-70E2-4A47-96FF-1EC47C1DE38D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C5D9AFDF-70E2-4A47-96FF-1EC47C1DE38D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C5D9AFDF-70E2-4A47-96FF-1EC47C1DE38D}.Release|Any CPU.Build.0 = Release|Any CPU + {F1418B62-F043-4761-9BDD-AE078B6A99FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F1418B62-F043-4761-9BDD-AE078B6A99FB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F1418B62-F043-4761-9BDD-AE078B6A99FB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F1418B62-F043-4761-9BDD-AE078B6A99FB}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/DiscoBot/App.config b/DiscoBot/App.config index e99cd82..c862b4e 100644 --- a/DiscoBot/App.config +++ b/DiscoBot/App.config @@ -6,7 +6,7 @@ - + @@ -28,7 +28,7 @@ - + diff --git a/DiscoBot/Audio/AudioModule.cs b/DiscoBot/Audio/AudioModule.cs deleted file mode 100644 index add4bf0..0000000 --- a/DiscoBot/Audio/AudioModule.cs +++ /dev/null @@ -1,65 +0,0 @@ -using System.Threading.Tasks; -using Discord; -using Discord.Commands; - -namespace DiscoBot.Audio -{ - public class AudioModule : ModuleBase - { - // Scroll down further for the AudioService. - // Like, way down - private readonly AudioService service; - - // Remember to add an instance of the AudioService - // to your IServiceCollection when you initialize your bot - public AudioModule(AudioService service) - { - this.service = service; - //Dsa.Service = service; - } - - // You *MUST* mark these commands with 'RunMode.Async' - // otherwise the bot will not respond until the Task times out. - [Command("_join", RunMode = RunMode.Async)] - public async Task JoinCmd() - { - await service.JoinAudio(Context.Guild, (Context.User as IVoiceState).VoiceChannel); - } - - // Remember to add preconditions to your commands, - // this is merely the minimal amount necessary. - // Adding more commands of your own is also encouraged. - [Command("_leave", RunMode = RunMode.Async)] - public async Task LeaveCmd() - { - await service.LeaveAudio(Context.Guild); - } - - [Command("_play", RunMode = RunMode.Async)] - public async Task PlayCmd([Remainder] string song) - { - /*if (Dsa.GeneralContext == null) - { - Dsa.GeneralContext = this.Context; - } - - var sounds = Enum.GetValues(typeof(Sound)); - var soundList = new List(); - foreach (var sound in sounds) - { - soundList.Add((Sound)sound); - } - - var sc = new SpellCorrect(); - - var tSound = soundList.OrderBy(x => sc.Compare(song, x.ToString())).First(); - - if (sc.Compare(song, tSound.ToString()) > SpellCorrect.ErrorThreshold) - { - await _service.SendAudioAsync(Context.Guild, Context.Channel, song); - } - - SoundEffects.Play(song);*/ - } - } -} \ No newline at end of file diff --git a/DiscoBot/Audio/AudioService.cs b/DiscoBot/Audio/AudioService.cs deleted file mode 100644 index a198eb2..0000000 --- a/DiscoBot/Audio/AudioService.cs +++ /dev/null @@ -1,95 +0,0 @@ -using System; -using System.Collections.Concurrent; -using System.Diagnostics; -using System.IO; -using System.Threading.Tasks; -using Discord; -using Discord.Audio; - -namespace DiscoBot.Audio -{ - public class AudioService - { - private readonly ConcurrentDictionary connectedChannels = - new ConcurrentDictionary(); - - public async Task JoinAudio(IGuild guild, IVoiceChannel target) - { - if (connectedChannels.TryGetValue(guild.Id, out var client)) return; - - if (target.Guild.Id != guild.Id) return; - - var audioClient = await target.ConnectAsync(); - - if (connectedChannels.TryAdd(guild.Id, audioClient)) - { - // If you add a method to log happenings from this service, - // you can uncomment these commented lines to make use of that. - //await Log(LogSeverity.Info, $"Connected to voice on {guild.Name}."); - } - } - - public async Task LeaveAudio(IGuild guild) - { - if (connectedChannels.TryRemove(guild.Id, out var client)) - await client.StopAsync(); - //await Log(LogSeverity.Info, $"Disconnected from voice on {guild.Name}."); - } - - public async Task SendAudioAsync(IGuild guild, IMessageChannel channel, string path) - { - // Your task: Get a full path to the file if the value of 'path' is only a filename. - if (!File.Exists(path) && false) - { - await channel.SendMessageAsync("File does not exist."); - return; - } - - if (connectedChannels.TryGetValue(guild.Id, out var client)) - //await Log(LogSeverity.Debug, $"Starting playback of {path} in {guild.Name}"); - using (var ffmpeg = CreateStream(path)) - using (var stream = client.CreatePCMStream(AudioApplication.Music)) - { - try - { - await ffmpeg.StandardOutput.BaseStream.CopyToAsync(stream); - } - finally - { - await stream.FlushAsync(); - } - } - } - - public async Task SendAudioAsync(string path, int volume) - { - // Your task: Get a full path to the file if the value of 'path' is only a filename. - if (!File.Exists(path) && false) - //await channel.SendMessageAsync("File does not exist."); - return; - - throw new NotImplementedException("get channel data from server"); - /*if (this.connectedChannels.TryGetValue()) - { - //await Log(LogSeverity.Debug, $"Starting playback of {path} in {guild.Name}"); - using (var ffmpeg = this.CreateStream(path)) - using (var stream = client.CreatePCMStream(AudioApplication.Voice)) - { - try { await ffmpeg.StandardOutput.BaseStream.CopyToAsync(stream); } - finally { await stream.FlushAsync(); } - } - }*/ - } - - private static Process CreateStream(string path) - { - return Process.Start(new ProcessStartInfo - { - FileName = "ffmpeg.exe", - Arguments = $"-hide_banner -loglevel panic -i \"{path}\" -ac 2 -f s16le -ar 48000 pipe:1", - UseShellExecute = false, - RedirectStandardOutput = true - }); - } - } -} \ No newline at end of file diff --git a/DiscoBot/Audio/Sound.cs b/DiscoBot/Audio/Sound.cs deleted file mode 100644 index 85023c8..0000000 --- a/DiscoBot/Audio/Sound.cs +++ /dev/null @@ -1,18 +0,0 @@ -namespace DiscoBot.Audio -{ - public class Sound - { - public Sound(string name, string url, int volume) - { - Name = name; - Url = url; - Volume = volume; - } - - public string Name { get; } - - public string Url { get; } - - public int Volume { get; } - } -} \ No newline at end of file diff --git a/DiscoBot/Audio/Voice.cs b/DiscoBot/Audio/Voice.cs deleted file mode 100644 index c2a3097..0000000 --- a/DiscoBot/Audio/Voice.cs +++ /dev/null @@ -1,94 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Diagnostics; -using System.Threading.Tasks; -using DiscoBot.Auxiliary; -using Discord; -using Discord.Audio; -using Discord.Commands; - -namespace DiscoBot.Audio -{ - public class Voice : ModuleBase - { - public static IAudioClient Client { get; set; } - - public static void Send(string path, int volume = 256) - { - if (Client == null) throw new NullReferenceException("Bot befindet sich nicht in einem Sprachchannel"); - - // Create FFmpeg using the previous example - var ffmpeg = CreateStream(path, volume); - var output = ffmpeg.StandardOutput.BaseStream; - var barInvoker = new BackgroundWorker(); - barInvoker.DoWork += delegate - { - var discord = Client.CreatePCMStream(AudioApplication.Music); - output.CopyToAsync(discord); - - discord.FlushAsync(); - }; - - barInvoker.RunWorkerAsync(); - } - - [Command("join", RunMode = RunMode.Async)] - public async Task JoinChannelAsync(IVoiceChannel channel = null) - { - var msg = Context.Message; - - // Get the audio channel - channel = channel ?? (msg.Author as IGuildUser)?.VoiceChannel; - if (channel == null) - { - await msg.Channel.SendMessageAsync( - "User must be in a voice channel, or a voice channel must be passed as an argument."); - return; - } - - // For the next step with transmitting audio, you would want to pass this Audio Client in to a service. - var audioClient = await channel.ConnectAsync(); - Client = audioClient; - } - - [Command("leave", RunMode = RunMode.Async)] - public async Task LeaveChannelAsync(IVoiceChannel channel = null) - { -// Permissions.Test(this.Context, "Meister"); - - if (Client != null) - { - await Client.StopAsync(); - Client = null; - } - } - - - [Command("play", RunMode = RunMode.Async)] - public async Task PlayAudioAsync(string path) - { - if (Client == null) await Context.Channel.SendMessageAsync("Erst Joinen!"); - - //SoundEffects.Play(path); - - var sounds = Enum.GetValues(typeof(Sound)); - var soundList = new List(); - foreach (var sound in sounds) soundList.Add((Sound) sound); - - var sc = new SpellCorrect(); - } - - private static Process CreateStream(string path, int vol = 256) - { - var ffmpeg = new ProcessStartInfo - { - FileName = "ffmpeg", - Arguments = $"-i {path} -ac 2 -f s16le -ar 48000 -ab 620000 -vol {vol} pipe:1", - UseShellExecute = false, - RedirectStandardOutput = true - }; - return Process.Start(ffmpeg); - } - } -} \ No newline at end of file diff --git a/DiscoBot/Commands/FileHandler.cs b/DiscoBot/Commands/FileHandler.cs index 17928c8..4f8a785 100644 --- a/DiscoBot/Commands/FileHandler.cs +++ b/DiscoBot/Commands/FileHandler.cs @@ -8,7 +8,7 @@ namespace DiscoBot.Commands public class FileHandler : ModuleBase { //[Command("send"), Summary("fügt Helden hinzu")] - public async Task AddChar() + public void AddChar() { var msg = Context.Message; if (msg.Attachments == null) throw new ArgumentException("Es wurde keine Datei angehängt"); diff --git a/DiscoBot/Commands/MiscCommands.cs b/DiscoBot/Commands/MiscCommands.cs index 2bc2fad..738796c 100644 --- a/DiscoBot/Commands/MiscCommands.cs +++ b/DiscoBot/Commands/MiscCommands.cs @@ -124,7 +124,7 @@ namespace DiscoBot.Commands [Command("clear")] [Summary("Cleans up messages.")] - public async Task DeleteAsync(int count) + public void DeleteAsync(int count) { var messagesAsync = Context.Channel.GetMessagesAsync(count); if (messagesAsync != null) diff --git a/DiscoBot/DiscoBot.csproj b/DiscoBot/DiscoBot.csproj index 28f81a8..09f4cfd 100644 --- a/DiscoBot/DiscoBot.csproj +++ b/DiscoBot/DiscoBot.csproj @@ -8,7 +8,7 @@ Exe DiscoBot DiscoBot - v4.6.1 + v4.7.2 512 true @@ -35,43 +35,44 @@ 4 - - ..\packages\Discord.Net.Commands.2.0.0-beta\lib\netstandard1.1\Discord.Net.Commands.dll + + ..\packages\Discord.Net.Commands.2.1.0\lib\net46\Discord.Net.Commands.dll - - ..\packages\Discord.Net.Core.2.0.0-beta\lib\net45\Discord.Net.Core.dll + + ..\packages\Discord.Net.Core.2.1.0\lib\net46\Discord.Net.Core.dll - - ..\packages\Discord.Net.Rest.2.0.0-beta\lib\net45\Discord.Net.Rest.dll + + ..\packages\Discord.Net.Rest.2.1.0\lib\net46\Discord.Net.Rest.dll ..\packages\Discord.Net.Rpc.1.0.2\lib\net45\Discord.Net.Rpc.dll - - ..\packages\Discord.Net.Webhook.2.0.0-beta\lib\netstandard1.1\Discord.Net.Webhook.dll + + ..\packages\Discord.Net.Webhook.2.1.0\lib\netstandard1.3\Discord.Net.Webhook.dll - - ..\packages\Discord.Net.WebSocket.2.0.0-beta\lib\net45\Discord.Net.WebSocket.dll + + ..\packages\Discord.Net.WebSocket.2.1.0\lib\net46\Discord.Net.WebSocket.dll - - ..\packages\FSharp.Core.4.5.2\lib\net45\FSharp.Core.dll + + ..\packages\FSharp.Core.4.6.2\lib\net45\FSharp.Core.dll - ..\packages\Microsoft.Extensions.DependencyInjection.2.2.0-preview2-35157\lib\net461\Microsoft.Extensions.DependencyInjection.dll + ..\packages\Microsoft.Extensions.DependencyInjection.2.2.0\lib\net461\Microsoft.Extensions.DependencyInjection.dll - ..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.2.2.0-preview2-35157\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + ..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.2.2.0\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll - - ..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll + + ..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll ..\packages\System.Collections.Immutable.1.5.0\lib\netstandard2.0\System.Collections.Immutable.dll + - - ..\packages\System.Diagnostics.DiagnosticSource.4.5.0\lib\net46\System.Diagnostics.DiagnosticSource.dll + + ..\packages\System.Diagnostics.DiagnosticSource.4.5.1\lib\net46\System.Diagnostics.DiagnosticSource.dll ..\packages\System.Interactive.Async.3.2.0\lib\net46\System.Interactive.Async.dll @@ -79,31 +80,43 @@ ..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll - - ..\packages\System.Net.Http.4.3.3\lib\net46\System.Net.Http.dll + + ..\packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll + True True ..\packages\System.Net.Sockets.4.3.0\lib\net46\System.Net.Sockets.dll + + ..\packages\System.Runtime.4.3.1\lib\net462\System.Runtime.dll + True + True + + + ..\packages\System.Runtime.Extensions.4.3.1\lib\net462\System.Runtime.Extensions.dll + True + True + False ..\packages\System.Security.Cryptography.Algorithms.4.3.1\lib\net461\System.Security.Cryptography.Algorithms.dll True + + ..\packages\System.Text.RegularExpressions.4.3.1\lib\net463\System.Text.RegularExpressions.dll + True + True + - - - - @@ -123,13 +136,7 @@ - - {388dd4ed-29c4-4127-ac8f-34dd3fe9f9b0} - DSALib - - - - + diff --git a/DiscoBot/Program.cs b/DiscoBot/Program.cs index 6ddac5d..4314a8d 100644 --- a/DiscoBot/Program.cs +++ b/DiscoBot/Program.cs @@ -4,7 +4,6 @@ using System.Linq; using System.Net; using System.Reflection; using System.Threading.Tasks; -using DiscoBot.Audio; using Discord; using Discord.Commands; using Discord.WebSocket; @@ -15,7 +14,7 @@ namespace DiscoBot { private DiscordSocketClient client; private CommandService commands; - private IServiceProvider services; + private IServiceProvider services = null; public static void Main(string[] args) { @@ -109,7 +108,6 @@ namespace DiscoBot private static void OnProcessExit(object sender, EventArgs e) { Console.WriteLine("I'm out of here"); - Voice.Client.StopAsync(); } } } \ No newline at end of file diff --git a/DiscoBot/Properties/Settings.Designer.cs b/DiscoBot/Properties/Settings.Designer.cs index 9813b8a..f80dfa5 100644 --- a/DiscoBot/Properties/Settings.Designer.cs +++ b/DiscoBot/Properties/Settings.Designer.cs @@ -12,7 +12,7 @@ namespace DiscoBot.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.6.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.0.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); diff --git a/DiscoBot/Token b/DiscoBot/Token new file mode 100644 index 0000000..4b78e50 --- /dev/null +++ b/DiscoBot/Token @@ -0,0 +1 @@ +Mjk0NTU0MDU4Nzg4NzAwMTYx.DgAvuw.amZ0Ep7-FKjToTf_wnY3h5Ep4Ow \ No newline at end of file diff --git a/DiscoBot/packages.config b/DiscoBot/packages.config index 4aa29aa..75a1f83 100644 --- a/DiscoBot/packages.config +++ b/DiscoBot/packages.config @@ -1,60 +1,60 @@  - - - - + + + + - - - - - - + + + + + + - - + + - + - + - + - - - - + + + + - + - - + + - + - + - + diff --git a/DiscordBot/Auxiliary/CommandExtension.cs b/DiscordBot/Auxiliary/CommandExtension.cs new file mode 100644 index 0000000..690f352 --- /dev/null +++ b/DiscordBot/Auxiliary/CommandExtension.cs @@ -0,0 +1,98 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Net; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using Discord; +using Discord.Commands; + +namespace DiscordBot.Auxiliary +{ + public static class CommandExtension + { + private static WebClient _client; + + public static async Task ReplyTimedAsync(this ModuleBase m, string message, TimeSpan time) + { + var token = message.GetHashCode(); + var send = m.Context.Channel.SendMessageAsync($"#{token}\n```xl\n{message}```"); + + var barInvoker = new BackgroundWorker(); + barInvoker.DoWork += delegate + { + Thread.Sleep(time); + Delete(token, m); + }; + + await send; + barInvoker.RunWorkerAsync(); + } + + private static void Delete(int token, ModuleBase m) + { + var messagesAsync = m.Context.Channel.GetMessagesAsync(); + Task.WaitAll(messagesAsync.ToArray()); + var list = messagesAsync.ToEnumerable().ToList(); + var messages = new List(); + foreach (var task in list) messages.AddRange(task.ToList()); + + var test = messages.Where(x => x.Content.StartsWith($"#{token}\n") && x.Author.IsBot).Select(c => c); + Task.WaitAll(test.Select(message => (message as IUserMessage)?.DeleteAsync()).ToArray()); + } + + public static async Task ReplyAsync(this ModuleBase m, IEnumerable message, bool directMessage = false) + { + var sb = new StringBuilder(); + foreach (var re in message) + { + if (sb.Length + re.Length > 1798) + { + if (directMessage) + await m.Context.User.SendMessageAsync("```xl\n" + sb + "\n```"); + else + await m.Context.Channel.SendMessageAsync("```xl\n" + sb + "\n```"); + + sb.Clear(); + } + + sb.AppendLine(re); + } + + if (directMessage) + await m.Context.User.SendMessageAsync("```xl\n" + sb + "\n```"); + else + await m.Context.Channel.SendMessageAsync("```xl\n" + sb + "\n```"); + } + + public static async Task ReplyAsync(this ModuleBase m, IEnumerable message, TimeSpan time) + { + var sb = new StringBuilder(); + foreach (var re in message) + { + if (sb.Length + re.Length > 1798) + { + await m.ReplyTimedAsync(sb.ToString(), time); + + + sb.Clear(); + } + + sb.AppendLine(re); + } + + await m.ReplyTimedAsync(sb.ToString(), TimeSpan.FromSeconds(90)); + } + + public static async Task SendWebFile(this IMessageChannel channel, + string url = "https://i.imgur.com/0iHEycJ.png") + { + if (_client == null) _client = new WebClient(); + + var stream = _client.OpenRead(url); + await channel.SendFileAsync(stream, url.Split('/').Last()); + } + } +} \ No newline at end of file diff --git a/DiscordBot/Auxiliary/Dice.cs b/DiscordBot/Auxiliary/Dice.cs new file mode 100644 index 0000000..c44e87e --- /dev/null +++ b/DiscordBot/Auxiliary/Dice.cs @@ -0,0 +1,31 @@ +using System; + +namespace DiscordBot.Auxiliary +{ + public static class Dice // roll it! + { + private static readonly Random Rnd = new Random(); + + public static int Roll(int d = 20) + { + return Rnd.Next(d) + 1; + } + + + public static int Roll(int count, int d) + { + if (d <= 0) return 0; + + var sum = 0; + for (var i = 0; i < Math.Abs(count); i++) + { + var roll = Roll(d); + sum += roll; + } + + sum *= Math.Abs(count) / count; + + return sum; + } + } +} \ No newline at end of file diff --git a/DiscordBot/Auxiliary/Permissions.cs b/DiscordBot/Auxiliary/Permissions.cs new file mode 100644 index 0000000..c2cb058 --- /dev/null +++ b/DiscordBot/Auxiliary/Permissions.cs @@ -0,0 +1,32 @@ +using System.Collections.Generic; +using System.Linq; +using Discord.Commands; +using Discord.WebSocket; + +namespace DiscordBot.Auxiliary +{ + public static class Permissions + { + public static bool Check(ICommandContext c, string role) + { + return ((SocketGuildUser) c.User).Roles.ToList().Exists(v => v.Name.Equals(role)); + } + + public static bool Check(ICommandContext c, IEnumerable roles) + { + return roles.Any(role => ((SocketGuildUser) c.User).Roles.ToList().Exists(v => v.Name.Equals(role))); + } + + public static bool Test(ICommandContext c, string role) + { + if (Check(c, role)) return true; + c.Channel.SendMessageAsync("```xl\n Keine ausreichenden Berechtigungen\n```").Wait(); + return false; + } + + public static void Test(ICommandContext c, string[] roles) + { + if (!Check(c, roles)) c.Channel.SendMessageAsync("```xl\n Keine ausreichenden Berechtigungen\n```").Wait(); + } + } +} \ No newline at end of file diff --git a/DiscordBot/Auxiliary/RandomMisc.cs b/DiscordBot/Auxiliary/RandomMisc.cs new file mode 100644 index 0000000..f7c5186 --- /dev/null +++ b/DiscordBot/Auxiliary/RandomMisc.cs @@ -0,0 +1,36 @@ +using System; +using System.Linq; +using System.Text; + +namespace DiscordBot.Auxiliary +{ + public static class RandomMisc + { + public static string Roll(string input) + { + var output = new StringBuilder(); + var strings = input.Split('w', 'd').ToList(); + var count = Convert.ToInt32(strings[0]); + strings = strings[1].Split(' ').ToList(); + var d = Convert.ToInt32(strings[0]); + + if (strings.Count > 0) + { + } + + var sum = 0; + for (var i = 0; i < count; i++) + { + var roll = Dice.Roll(d); + sum += roll; + output.Append("[" + roll + "] "); + } + + if (strings.Count <= 1) return output.ToString(); + sum += Convert.ToInt32(strings[1]); + output.Append("sum: " + sum); + + return output.ToString(); + } + } +} \ No newline at end of file diff --git a/DiscordBot/Auxiliary/SpellCorrect.cs b/DiscordBot/Auxiliary/SpellCorrect.cs new file mode 100644 index 0000000..a2ba91a --- /dev/null +++ b/DiscordBot/Auxiliary/SpellCorrect.cs @@ -0,0 +1,105 @@ +using System; +using System.Diagnostics; + +namespace DiscordBot.Auxiliary +{ + public class SpellCorrect : StringComparer + { + public const int ErrorThreshold = 94100; + + public override int Compare(string x, string y) + { + return CompareEasy(x, y); + } + + public static int CompareEasy(string x, string y) + { + if (string.IsNullOrEmpty(x)) throw new ArgumentException("message", nameof(x)); + + if (string.IsNullOrEmpty(y)) throw new ArgumentException("message", nameof(y)); + + if (x.Equals(y)) return 0; + + x = x.ToLower(); + y = y.ToLower(); + if (x.Equals(y)) return 1; + + var subs = y.Split(' ', '/'); + var score = subs.Length; + foreach (var s in subs) + if (s.Equals(x)) + score--; + + if (score < subs.Length) return score + 1; + + return 100000 - (int) (CompareExact(x, y) * 1000.0); + /*if (y.Contains(x)) + return 6;*/ + } + + public override bool Equals(string x, string y) + { + Debug.Assert(x != null, nameof(x) + " != null"); + return x.Equals(y); + } + + public override int GetHashCode(string obj) + { + throw new NotImplementedException(); + } + + public static double CompareExact(string s, string q) + { + s = s.ToLower(); + q = q.ToLower(); + + int i, j; + const double match = 3.0; + const double gap = -2.0; + const double mismatch = -2.0; + + double decay; + + var matrix = new double[s.Length + 1, q.Length + 1]; + var max = 0.0; + matrix[0, 0] = 0.0; + + for (i = 1; i < s.Length; i++) + // matrix[i, 0] = 0.0; + matrix[i, 0] = i * gap; + + for (i = 1; i < q.Length; i++) matrix[0, i] = 0.0; + + + for (i = 1; i <= s.Length; i++) + for (j = 1; j <= q.Length; j++) + { + decay = j / (double) (s.Length * 1000); + var add = s[i - 1] == q[j - 1] ? match - decay : mismatch; + var score = matrix[i - 1, j - 1] + add; + + if (score < matrix[i - 1, j] + gap) score = matrix[i - 1, j] + gap; + + if (score < matrix[i, j - 1] + gap) score = matrix[i, j - 1] + gap; + + if (i > 1 && j > 1) + if (s[i - 1] == q[j - 2] && s[i - 2] == q[j - 1]) + { + add = 3 / 2.0 * match - decay; + if (score < matrix[i - 2, j - 2] + add) score = matrix[i - 2, j - 2] + add; + } + + // if (score < 0) + // { + // score = 0; + // } + + if (max < score && i == s.Length) max = score; + + matrix[i, j] = score; + } + + return max; + } + } +} \ No newline at end of file diff --git a/DiscordBot/CommandHandler.cs b/DiscordBot/CommandHandler.cs new file mode 100644 index 0000000..0f6aa7e --- /dev/null +++ b/DiscordBot/CommandHandler.cs @@ -0,0 +1,112 @@ + +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Reflection; +using System.Threading.Tasks; +using Discord; +using Discord.Commands; +using Discord.WebSocket; + +namespace DiscordBot +{ + public class CommandHandler + { + private readonly DiscordSocketClient _client; + private readonly CommandService _commands; + private static readonly HttpClient _HttpClient = new HttpClient(); + + public CommandHandler(DiscordSocketClient client, CommandService commands) + { + _commands = commands; + _client = client; + } + + public async Task InstallCommandsAsync() + { + // Hook the MessageReceived event into our command handler + _client.MessageReceived += HandleCommandAsync; + + // Here we discover all of the command modules in the entry + // assembly and load them. Starting from Discord.NET 2.0, a + // service provider is required to be passed into the + // module registration method to inject the + // required dependencies. + // + // If you do not use Dependency Injection, pass null. + // See Dependency Injection guide for more information. + await _commands.AddModulesAsync(assembly: Assembly.GetEntryAssembly(), + services: null); + } + + private async Task HandleCommandAsync(SocketMessage messageParam) + { + // Don't process the command if it was a system message + var message = messageParam as SocketUserMessage; + if (message == null) return; + + // Create a number to track where the prefix ends and the command begins + int argPos = 0; + + // Determine if the message is a command based on the prefix and make sure no bots trigger commands + if (!(message.HasCharPrefix('!', ref argPos) || + message.HasMentionPrefix(_client.CurrentUser, ref argPos)) || + message.Author.IsBot) + return; + + // Create a WebSocket-based command context based on the message + var context = new SocketCommandContext(_client, message); + + // Execute the command with the command context we just + // created, along with the service provider for precondition checks. + + // Keep in mind that result does not indicate a return value + // rather an object stating if the command executed successfully. + var result = await _commands.ExecuteAsync( + context: context, + argPos: argPos, + services: null); + + // Optionally, we may inform the user if the command fails + // to be executed; however, this may not always be desired, + // as it may clog up the request queue should a user spam a + // command. + + if (result.Error == CommandError.UnknownCommand) + { + var response = await SendCommand(message.Author.Username, message.Content,"https://kobert.dev/api/dsa/commands"); + //var response = "invalid"; + await context.Channel.SendMessageAsync(response); + } + else if (!result.IsSuccess) await context.Channel.SendMessageAsync(result.ErrorReason); + } + + + + private static async Task SendCommand(string name, string command, string url) + { + command = command.Remove(0, 1); + var args = command.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); + + var cmdContent = string.Empty; + if (args.Length > 1) cmdContent = "\"" + args.Skip(1).Aggregate((s, n) => s + "\", \"" + n) + "\""; + + var values = new Dictionary + { + { "Name", name }, + { "CmdIdentifier", args.First()}, + { "CmdTexts", "[" + cmdContent + "]"} + }; + + var content = new FormUrlEncodedContent(values); + + var response = await _HttpClient.PostAsync(url, content); + + return await response.Content.ReadAsStringAsync(); + } + + } +} diff --git a/DiscordBot/Commands/CommandHelper.cs b/DiscordBot/Commands/CommandHelper.cs new file mode 100644 index 0000000..162c65d --- /dev/null +++ b/DiscordBot/Commands/CommandHelper.cs @@ -0,0 +1,119 @@ +namespace DiscoBot.Auxiliary +{ + using System; + using System.Collections.Generic; + using System.ComponentModel; + using System.IO; + using System.Linq; + using System.Net; + using System.Text; + using System.Threading; + using System.Threading.Tasks; + + using Discord; + using Discord.Commands; + + public static class CommandHelper + { + private static WebClient client; + + public static async Task ReplyTimedAsync(this ModuleBase m, string message, TimeSpan time) + { + var token = message.GetHashCode(); + var send = m.Context.Channel.SendMessageAsync($"#{token}\n```xl\n{message}```", false); + + var barInvoker = new BackgroundWorker(); + barInvoker.DoWork += delegate + { + Thread.Sleep(time); + Delete(token, m); + }; + + await send; + barInvoker.RunWorkerAsync(); + } + + private static void Delete(int token, ModuleBase m) + { + var messagesAsync = m.Context.Channel.GetMessagesAsync(); + Task.WaitAll(messagesAsync.ToArray()); + var list = messagesAsync.ToEnumerable().ToList(); + var messages = new List(); + foreach (var task in list) + { + messages.AddRange(task.ToList()); + } + + var test = messages.Where(x => x.Content.StartsWith($"#{token}\n") && x.Author.IsBot).Select(c=>c ); + var waiters = new List(); + foreach (var message in test) + { + waiters.Add((message as IUserMessage).DeleteAsync()); + } + Task.WaitAll(waiters.ToArray()); + } + + public static async Task ReplyAsync(this ModuleBase m, IEnumerable message, bool directMessage = false) + { + var sb = new StringBuilder(); + foreach (string re in message) + { + if (sb.Length + re.Length > 1798) + { + if (directMessage) + { + await m.Context.User.SendMessageAsync("```xl\n" + sb + "\n```"); + } + else + { + await m.Context.Channel.SendMessageAsync("```xl\n" + sb + "\n```"); + } + + sb.Clear(); + } + + sb.AppendLine(re); + } + + if (directMessage) + { + await m.Context.User.SendMessageAsync("```xl\n" + sb + "\n```"); + } + else + { + await m.Context.Channel.SendMessageAsync("```xl\n" + sb + "\n```"); + } + } + + public static async Task ReplyAsync(this ModuleBase m, IEnumerable message, TimeSpan time) + { + var sb = new StringBuilder(); + foreach (string re in message) + { + if (sb.Length + re.Length > 1798) + { + + await m.ReplyTimedAsync(sb.ToString(), time); + + + sb.Clear(); + } + + sb.AppendLine(re); + } + + await m.ReplyTimedAsync(sb.ToString(), TimeSpan.FromSeconds(90)); + } + + public static async Task SendWebFile(this IMessageChannel channel, string url = "https://i.imgur.com/0iHEycJ.png") + { + if (client == null) + { + client = new WebClient(); + } + + Stream stream = client.OpenRead(url); + await channel.SendFileAsync(stream, url.Split('/').Last()); + } + } +} diff --git a/DiscordBot/Commands/FileHandler.cs b/DiscordBot/Commands/FileHandler.cs new file mode 100644 index 0000000..e3cd82d --- /dev/null +++ b/DiscordBot/Commands/FileHandler.cs @@ -0,0 +1,24 @@ +using System; +using System.Linq; +using Discord.Commands; + +namespace DiscordBot.Commands +{ + public class FileHandler : ModuleBase + { + //[Command("send"), Summary("fügt Helden hinzu")] + public void AddChar() + { + var msg = Context.Message; + if (msg.Attachments == null) throw new ArgumentException("Es wurde keine Datei angehängt"); + + var attachments = msg.Attachments.ToList(); + + if (!attachments.Any(x => x.Filename.EndsWith(".xml"))) + throw new ArgumentException("Es wurde kein xml Held mitgeschickt"); + + foreach (var attachment in attachments.Where(x => x.Filename.EndsWith(".xml"))) + throw new NotImplementedException("send File to Server"); + } + } +} \ No newline at end of file diff --git a/DiscordBot/Commands/MiscCommands.cs b/DiscordBot/Commands/MiscCommands.cs new file mode 100644 index 0000000..5707de7 --- /dev/null +++ b/DiscordBot/Commands/MiscCommands.cs @@ -0,0 +1,190 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using DiscoBot.Auxiliary; +using Discord; +using Discord.Commands; +using DiscordBot.Auxiliary; + +namespace DiscordBot.Commands +{ + public class MiscCommands : ModuleBase + { + [Command("r")] + [Summary("Würfelt ")] + [Alias("R", "Roll", "roll", "Würfle")] + public Task RollAsync([Remainder] [Summary("Weapon")] string roll) + { + //return this.ReplyAsync("```xl\n" + new Auxiliary.Calculator.StringSolver(roll).Solve() + "\n```"); + return ReplyAsync("```xl\n" + RandomMisc.Roll(roll) + "\n```"); + } + + + [Command("say")] + [Summary("Echos a message.")] + [Alias("s")] + public Task SayAsync([Remainder] [Summary("The text to echo")] + string echo) + { + return ReplyAsync(echo); + } + + [Command("liebe")] + [Summary("Echos a message.")] + [Alias("Liebe", "<3", "love")] + public async Task LoveAsync() + { + var rand = new Random(); + var user = Context.Channel.GetUsersAsync().ToList().Result.ToList().First() + .Where(x => x.Status != UserStatus.Offline).OrderBy(x => rand.Next()).First(); + await ReplyAsync( + ":heart: :heart: :heart: Verteilt die Liebe! :heart: :heart: :heart: \n Besondere Liebe geht an " + + user.Username); + //await this.ReplyAsync("!liebe"); + } + + [Command("maul")] + [Summary("Echos a message.")] + public Task MaulAsync() + { + return ReplyAsync( + "Maul...? Du meintest doch sicher Maulwürfe oder? \n:heart: :heart: :heart: \nGanz viel Liebe für Maulwürfe !\n:heart: :heart: :heart:"); + } + + + [Command("match")] + [Summary("Tinder.")] + [Alias("mach", "pass", "passt")] + public Task TinderAsync(string s1, string s2) + { + var rand = new Random((s1 + s2).GetHashCode()); + + var wert = Math.Log10(Math.Floor(1000.0 * (SpellCorrect.CompareExact(s1, s2) + rand.NextDouble() * 10.0)) / + 1000.0); + wert = wert * 100.0 < 100.0 ? wert * 100.0 : 100.0 - wert; + wert = wert < 0 ? -wert : wert; + return ReplyAsync($"Ihr passt zu {Math.Floor(100.0 * wert) / 100.0}% zusammen"); + } + + [Command("reddit")] + [Summary("Reddit.")] + public Task RedditAsync() + { + return ReplyAsync( + "Ein Archiv der Vergangenen Aktionen findet man hier: https://www.reddit.com/r/ReconquistaInternet/"); + } + + [Command("compare")] + [Summary("Echos a message.")] + public async Task KickAsync() + { + //await this.Context.Guild.DownloadUsersAsync(); + var users = Context.Guild.GetUsersAsync(); + var test = File.ReadAllLines("RG.txt"); + await users; + var us = users.Result.Select(x => x.Username); + + var lines = test.Where(x => !x.Equals(string.Empty)).ToList(); + + + var sc = new SpellCorrect(); + + var res = new List(); + + foreach (var line in lines) + { + var best = us.OrderBy(user => sc.Compare(user, line)).First(); + + double fit = sc.Compare(best, line); + + if (!(fit < SpellCorrect.ErrorThreshold - 20000)) continue; + res.Add(fit.Equals(0) ? $"@\t{best} !!! => {line}" : $"-\t{best} hat Ähnlichkeit mit: {line}"); + } + + var sb = new StringBuilder(); + foreach (var re in res) + { + if (sb.Length + re.Length > 1798) + { + await CommandHelper.ReplyTimedAsync(this, sb.ToString(), TimeSpan.FromSeconds(90)); + sb.Clear(); + } + + sb.AppendLine(re); + } + + if (Permissions.Check(Context, new[] {"Admin", "Mod"})) + await CommandHelper.ReplyTimedAsync(this, sb.ToString(), TimeSpan.FromSeconds(90)); + + //await this.ReplyAsync($"{count} Duplikate gefunden"); + } + + + [Command("clear")] + [Summary("Cleans up messages.")] + public void DeleteAsync(int count) + { + var messagesAsync = Context.Channel.GetMessagesAsync(count); + if (messagesAsync != null) + { + Task.WaitAll(messagesAsync.ToArray()); + var list = messagesAsync.ToEnumerable().ToList(); + var messages = new List(); + foreach (var task in list) messages.AddRange(task.ToList()); + + if (Permissions.Check(Context, new[] {"Admin", "Mod", "Meister"})) + { + var waiters = new List(); + foreach (var message in messages) waiters.Add(((IUserMessage) message).DeleteAsync()); + + Task.WaitAll(waiters.ToArray()); + } + } + } + + [Command("check")] + [Summary("Echos a message.")] + [Alias("Check")] + public async Task CheckAsync(string quarry) + { + var perm = new List {"Admin", "Mod", "Privatpolizei"}; + + Permissions.Test(Context, perm.ToArray()); + + var test = File.ReadAllLines("RG.txt"); + + var lines = test.Where(x => !x.Equals(string.Empty)).ToList(); + + + var sc = new SpellCorrect(); + var count = lines.OrderBy(line => sc.Compare(quarry, line)).First(); + + var fit = sc.Compare(count, quarry); + + string antwort; + + antwort = fit < SpellCorrect.ErrorThreshold - 20000 + ? $"```xl\nAuf anderem Server Match gefunden: {count}" + : $"```xl\nAuf anderem Server Kein Match gefunden: {quarry}"; + + + var users = Context.Guild.GetUsersAsync(); + await users; + var us = users.Result.Select(x => x.Username); + + sc = new SpellCorrect(); + count = us.OrderBy(line => sc.Compare(quarry, line)).First(); + + fit = sc.Compare(count, quarry); + + antwort = fit < SpellCorrect.ErrorThreshold - 20000 + ? $"{antwort}\nAuf unserem Server Match gefunden: {count}\n```" + : $"{antwort}\nAuf unserem Server Kein Match gefunden: {quarry} \n```"; + + await ReplyAsync(antwort); + } + } +} \ No newline at end of file diff --git a/DiscordBot/DiscordBot.csproj b/DiscordBot/DiscordBot.csproj new file mode 100644 index 0000000..620a3a6 --- /dev/null +++ b/DiscordBot/DiscordBot.csproj @@ -0,0 +1,12 @@ + + + + Exe + netcoreapp2.2 + + + + + + + diff --git a/DiscordBot/Program.cs b/DiscordBot/Program.cs new file mode 100644 index 0000000..60febcd --- /dev/null +++ b/DiscordBot/Program.cs @@ -0,0 +1,58 @@ +using System; +using System.IO; +using System.Linq; +using System.Net; +using System.Threading.Tasks; +using Discord; +using Discord.Commands; +using Discord.WebSocket; + +namespace DiscordBot +{ + class Program + { + public static void Main(string[] args) + => new Program().MainAsync().GetAwaiter().GetResult(); + + private DiscordSocketClient _client; + private CommandHandler cHandler; + + public async Task MainAsync() + { + _client = new DiscordSocketClient(); + + _client.Log += Log; + + + cHandler = new CommandHandler(_client, new CommandService()); + // Remember to keep token private or to read it from an + // external source! In this case, we are reading the token + // from an environment variable. If you do not know how to set-up + // environment variables, you may find more information on the + // Internet or by using other methods such as reading from + // a configuration. + await cHandler.InstallCommandsAsync(); + + try + { + await _client.LoginAsync(TokenType.Bot, + Environment.GetEnvironmentVariable("DiscordToken")); + } + catch + { + await _client.LoginAsync(TokenType.Bot, File.ReadAllText("Token")); + } + + await _client.StartAsync(); + + // Block this task until the program is closed. + await Task.Delay(-1); + } + + private Task Log(LogMessage msg) + { + Console.WriteLine(msg.ToString()); + return Task.CompletedTask; + } + } +} diff --git a/DiscordBot/Rework/Permissions.cs b/DiscordBot/Rework/Permissions.cs new file mode 100644 index 0000000..119e628 --- /dev/null +++ b/DiscordBot/Rework/Permissions.cs @@ -0,0 +1,38 @@ +using System.Linq; +using Discord.Commands; +using Discord.WebSocket; + +namespace DiscordBot.Rework +{ + public static class Permissions + { + public static bool Check(ICommandContext c, string role) + { + return ((SocketGuildUser)c.User).Roles.ToList().Exists(v => v.Name.Equals(role)); + } + + public static bool Check(ICommandContext c, string[] roles) + { + return roles.Any(role => ((SocketGuildUser)c.User).Roles.ToList().Exists(v => v.Name.Equals(role))); + } + + public static bool Test(ICommandContext c, string role) + { + if (!Check(c, role)) + { + c.Channel.SendMessageAsync("```xl\n Keine ausreichenden Berechtigungen\n```").Wait(); + return false; + } + + return true; + } + + public static void Test(ICommandContext c, string[] roles) + { + if (!Check(c, roles)) + { + c.Channel.SendMessageAsync("```xl\n Keine ausreichenden Berechtigungen\n```").Wait(); + } + } + } +} diff --git a/FireBase/FireBase.csproj b/FireBase/FireBase.csproj index 889c32f..2a47b27 100644 --- a/FireBase/FireBase.csproj +++ b/FireBase/FireBase.csproj @@ -1,7 +1,7 @@ - + - netcoreapp2.1 + netcoreapp2.2 diff --git a/ZooBOTanica/App.config b/ZooBOTanica/App.config deleted file mode 100644 index ecdcf8a..0000000 --- a/ZooBOTanica/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/ZooBOTanica/CritCreate.Designer.cs b/ZooBOTanica/CritCreate.Designer.cs deleted file mode 100644 index d64aaa3..0000000 --- a/ZooBOTanica/CritCreate.Designer.cs +++ /dev/null @@ -1,428 +0,0 @@ -namespace ZooBOTanica -{ - partial class CritCreateForm - { - /// - /// Erforderliche Designervariable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Verwendete Ressourcen bereinigen. - /// - /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Vom Windows Form-Designer generierter Code - - /// - /// Erforderliche Methode für die Designerunterstützung. - /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. - /// - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(CritCreateForm)); - this.NameLabel = new System.Windows.Forms.Label(); - this.NameEdit = new System.Windows.Forms.TextBox(); - this.LeLabel = new System.Windows.Forms.Label(); - this.LeEdit = new System.Windows.Forms.NumericUpDown(); - this.GrundwerteGroup = new System.Windows.Forms.GroupBox(); - this.KoLabel = new System.Windows.Forms.Label(); - this.KoEdit = new System.Windows.Forms.NumericUpDown(); - this.AeLabel = new System.Windows.Forms.Label(); - this.AeEdit = new System.Windows.Forms.NumericUpDown(); - this.AuLabel = new System.Windows.Forms.Label(); - this.AuEdit = new System.Windows.Forms.NumericUpDown(); - this.VerteidugungGroup = new System.Windows.Forms.GroupBox(); - this.PaEdit = new System.Windows.Forms.NumericUpDown(); - this.PaLabel = new System.Windows.Forms.Label(); - this.MRLabel = new System.Windows.Forms.Label(); - this.MREdit = new System.Windows.Forms.NumericUpDown(); - this.RSLAbel = new System.Windows.Forms.Label(); - this.RSEdit = new System.Windows.Forms.NumericUpDown(); - this.SecondGroup = new System.Windows.Forms.GroupBox(); - this.INIEdit = new System.Windows.Forms.TextBox(); - this.GWLabel = new System.Windows.Forms.Label(); - this.GWEdit = new System.Windows.Forms.NumericUpDown(); - this.INILabel = new System.Windows.Forms.Label(); - this.GsLabel = new System.Windows.Forms.Label(); - this.GsEdit = new System.Windows.Forms.NumericUpDown(); - this.AttackGroup = new System.Windows.Forms.GroupBox(); - this.AttackList = new System.Windows.Forms.DataGridView(); - this.NameCollum = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.ATCollum = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.TPCollum = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.KommentarCollum = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.MeisterkommentarEdit = new System.Windows.Forms.TextBox(); - this.MeisterkommentarLabel = new System.Windows.Forms.Label(); - this.SaveButton = new System.Windows.Forms.Button(); - this.LoadButton = new System.Windows.Forms.Button(); - ((System.ComponentModel.ISupportInitialize)(this.LeEdit)).BeginInit(); - this.GrundwerteGroup.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.KoEdit)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.AeEdit)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.AuEdit)).BeginInit(); - this.VerteidugungGroup.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.PaEdit)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.MREdit)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.RSEdit)).BeginInit(); - this.SecondGroup.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.GWEdit)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.GsEdit)).BeginInit(); - this.AttackGroup.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.AttackList)).BeginInit(); - this.SuspendLayout(); - // - // NameLabel - // - resources.ApplyResources(this.NameLabel, "NameLabel"); - this.NameLabel.Name = "NameLabel"; - // - // NameEdit - // - this.NameEdit.ForeColor = System.Drawing.SystemColors.WindowText; - resources.ApplyResources(this.NameEdit, "NameEdit"); - this.NameEdit.Name = "NameEdit"; - // - // LeLabel - // - resources.ApplyResources(this.LeLabel, "LeLabel"); - this.LeLabel.Name = "LeLabel"; - // - // LeEdit - // - resources.ApplyResources(this.LeEdit, "LeEdit"); - this.LeEdit.Maximum = new decimal(new int[] { - 999, - 0, - 0, - 0}); - this.LeEdit.Name = "LeEdit"; - this.LeEdit.Value = new decimal(new int[] { - 30, - 0, - 0, - 0}); - // - // GrundwerteGroup - // - this.GrundwerteGroup.Controls.Add(this.KoLabel); - this.GrundwerteGroup.Controls.Add(this.KoEdit); - this.GrundwerteGroup.Controls.Add(this.AeLabel); - this.GrundwerteGroup.Controls.Add(this.AeEdit); - this.GrundwerteGroup.Controls.Add(this.AuLabel); - this.GrundwerteGroup.Controls.Add(this.AuEdit); - resources.ApplyResources(this.GrundwerteGroup, "GrundwerteGroup"); - this.GrundwerteGroup.Name = "GrundwerteGroup"; - this.GrundwerteGroup.TabStop = false; - // - // KoLabel - // - resources.ApplyResources(this.KoLabel, "KoLabel"); - this.KoLabel.Name = "KoLabel"; - // - // KoEdit - // - resources.ApplyResources(this.KoEdit, "KoEdit"); - this.KoEdit.Name = "KoEdit"; - this.KoEdit.Value = new decimal(new int[] { - 10, - 0, - 0, - 0}); - // - // AeLabel - // - resources.ApplyResources(this.AeLabel, "AeLabel"); - this.AeLabel.Name = "AeLabel"; - // - // AeEdit - // - resources.ApplyResources(this.AeEdit, "AeEdit"); - this.AeEdit.Name = "AeEdit"; - // - // AuLabel - // - resources.ApplyResources(this.AuLabel, "AuLabel"); - this.AuLabel.Name = "AuLabel"; - // - // AuEdit - // - resources.ApplyResources(this.AuEdit, "AuEdit"); - this.AuEdit.Name = "AuEdit"; - this.AuEdit.Value = new decimal(new int[] { - 30, - 0, - 0, - 0}); - // - // VerteidugungGroup - // - this.VerteidugungGroup.Controls.Add(this.PaEdit); - this.VerteidugungGroup.Controls.Add(this.PaLabel); - this.VerteidugungGroup.Controls.Add(this.MRLabel); - this.VerteidugungGroup.Controls.Add(this.MREdit); - this.VerteidugungGroup.Controls.Add(this.RSLAbel); - this.VerteidugungGroup.Controls.Add(this.RSEdit); - resources.ApplyResources(this.VerteidugungGroup, "VerteidugungGroup"); - this.VerteidugungGroup.Name = "VerteidugungGroup"; - this.VerteidugungGroup.TabStop = false; - // - // PaEdit - // - resources.ApplyResources(this.PaEdit, "PaEdit"); - this.PaEdit.Name = "PaEdit"; - this.PaEdit.Value = new decimal(new int[] { - 6, - 0, - 0, - 0}); - // - // PaLabel - // - resources.ApplyResources(this.PaLabel, "PaLabel"); - this.PaLabel.Name = "PaLabel"; - // - // MRLabel - // - resources.ApplyResources(this.MRLabel, "MRLabel"); - this.MRLabel.Name = "MRLabel"; - // - // MREdit - // - resources.ApplyResources(this.MREdit, "MREdit"); - this.MREdit.Minimum = new decimal(new int[] { - 100, - 0, - 0, - -2147483648}); - this.MREdit.Name = "MREdit"; - this.MREdit.Value = new decimal(new int[] { - 5, - 0, - 0, - 0}); - // - // RSLAbel - // - resources.ApplyResources(this.RSLAbel, "RSLAbel"); - this.RSLAbel.Name = "RSLAbel"; - // - // RSEdit - // - resources.ApplyResources(this.RSEdit, "RSEdit"); - this.RSEdit.Name = "RSEdit"; - // - // SecondGroup - // - this.SecondGroup.Controls.Add(this.INIEdit); - this.SecondGroup.Controls.Add(this.GWLabel); - this.SecondGroup.Controls.Add(this.GWEdit); - this.SecondGroup.Controls.Add(this.INILabel); - this.SecondGroup.Controls.Add(this.GsLabel); - this.SecondGroup.Controls.Add(this.GsEdit); - resources.ApplyResources(this.SecondGroup, "SecondGroup"); - this.SecondGroup.Name = "SecondGroup"; - this.SecondGroup.TabStop = false; - // - // INIEdit - // - this.INIEdit.CharacterCasing = System.Windows.Forms.CharacterCasing.Lower; - resources.ApplyResources(this.INIEdit, "INIEdit"); - this.INIEdit.Name = "INIEdit"; - // - // GWLabel - // - resources.ApplyResources(this.GWLabel, "GWLabel"); - this.GWLabel.Name = "GWLabel"; - // - // GWEdit - // - resources.ApplyResources(this.GWEdit, "GWEdit"); - this.GWEdit.Name = "GWEdit"; - this.GWEdit.Value = new decimal(new int[] { - 3, - 0, - 0, - 0}); - // - // INILabel - // - resources.ApplyResources(this.INILabel, "INILabel"); - this.INILabel.Name = "INILabel"; - // - // GsLabel - // - resources.ApplyResources(this.GsLabel, "GsLabel"); - this.GsLabel.Name = "GsLabel"; - // - // GsEdit - // - resources.ApplyResources(this.GsEdit, "GsEdit"); - this.GsEdit.Name = "GsEdit"; - this.GsEdit.Value = new decimal(new int[] { - 8, - 0, - 0, - 0}); - // - // AttackGroup - // - this.AttackGroup.Controls.Add(this.AttackList); - resources.ApplyResources(this.AttackGroup, "AttackGroup"); - this.AttackGroup.Name = "AttackGroup"; - this.AttackGroup.TabStop = false; - // - // AttackList - // - this.AttackList.AllowDrop = true; - this.AttackList.AllowUserToResizeRows = false; - this.AttackList.BackgroundColor = System.Drawing.Color.PeachPuff; - this.AttackList.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.AttackList.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.NameCollum, - this.ATCollum, - this.TPCollum, - this.KommentarCollum}); - resources.ApplyResources(this.AttackList, "AttackList"); - this.AttackList.Name = "AttackList"; - // - // NameCollum - // - resources.ApplyResources(this.NameCollum, "NameCollum"); - this.NameCollum.Name = "NameCollum"; - // - // ATCollum - // - this.ATCollum.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.ColumnHeader; - resources.ApplyResources(this.ATCollum, "ATCollum"); - this.ATCollum.Name = "ATCollum"; - // - // TPCollum - // - this.TPCollum.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.ColumnHeader; - resources.ApplyResources(this.TPCollum, "TPCollum"); - this.TPCollum.Name = "TPCollum"; - // - // KommentarCollum - // - resources.ApplyResources(this.KommentarCollum, "KommentarCollum"); - this.KommentarCollum.Name = "KommentarCollum"; - // - // MeisterkommentarEdit - // - resources.ApplyResources(this.MeisterkommentarEdit, "MeisterkommentarEdit"); - this.MeisterkommentarEdit.Name = "MeisterkommentarEdit"; - // - // MeisterkommentarLabel - // - resources.ApplyResources(this.MeisterkommentarLabel, "MeisterkommentarLabel"); - this.MeisterkommentarLabel.Name = "MeisterkommentarLabel"; - // - // SaveButton - // - resources.ApplyResources(this.SaveButton, "SaveButton"); - this.SaveButton.Name = "SaveButton"; - this.SaveButton.UseVisualStyleBackColor = true; - this.SaveButton.Click += new System.EventHandler(this.SaveButton_Click); - // - // LoadButton - // - resources.ApplyResources(this.LoadButton, "LoadButton"); - this.LoadButton.Name = "LoadButton"; - this.LoadButton.TabStop = false; - this.LoadButton.UseVisualStyleBackColor = true; - this.LoadButton.Click += new System.EventHandler(this.LoadButton_Click); - // - // CritCreateForm - // - this.AllowDrop = true; - resources.ApplyResources(this, "$this"); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.BackColor = System.Drawing.Color.SandyBrown; - this.Controls.Add(this.LoadButton); - this.Controls.Add(this.SaveButton); - this.Controls.Add(this.MeisterkommentarLabel); - this.Controls.Add(this.MeisterkommentarEdit); - this.Controls.Add(this.AttackGroup); - this.Controls.Add(this.LeLabel); - this.Controls.Add(this.LeEdit); - this.Controls.Add(this.SecondGroup); - this.Controls.Add(this.VerteidugungGroup); - this.Controls.Add(this.GrundwerteGroup); - this.Controls.Add(this.NameEdit); - this.Controls.Add(this.NameLabel); - this.MaximizeBox = false; - this.Name = "CritCreateForm"; - this.ShowIcon = false; - this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; - this.DragDrop += new System.Windows.Forms.DragEventHandler(this.CritCreateForm_DragDrop); - ((System.ComponentModel.ISupportInitialize)(this.LeEdit)).EndInit(); - this.GrundwerteGroup.ResumeLayout(false); - this.GrundwerteGroup.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.KoEdit)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.AeEdit)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.AuEdit)).EndInit(); - this.VerteidugungGroup.ResumeLayout(false); - this.VerteidugungGroup.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.PaEdit)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.MREdit)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.RSEdit)).EndInit(); - this.SecondGroup.ResumeLayout(false); - this.SecondGroup.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.GWEdit)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.GsEdit)).EndInit(); - this.AttackGroup.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.AttackList)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Label NameLabel; - private System.Windows.Forms.TextBox NameEdit; - private System.Windows.Forms.Label LeLabel; - private System.Windows.Forms.NumericUpDown LeEdit; - private System.Windows.Forms.GroupBox GrundwerteGroup; - private System.Windows.Forms.Label AeLabel; - private System.Windows.Forms.NumericUpDown AeEdit; - private System.Windows.Forms.Label AuLabel; - private System.Windows.Forms.NumericUpDown AuEdit; - private System.Windows.Forms.GroupBox VerteidugungGroup; - private System.Windows.Forms.Label MRLabel; - private System.Windows.Forms.NumericUpDown MREdit; - private System.Windows.Forms.Label RSLAbel; - private System.Windows.Forms.NumericUpDown RSEdit; - private System.Windows.Forms.Label KoLabel; - private System.Windows.Forms.NumericUpDown KoEdit; - private System.Windows.Forms.GroupBox SecondGroup; - private System.Windows.Forms.Label GWLabel; - private System.Windows.Forms.NumericUpDown GWEdit; - private System.Windows.Forms.Label INILabel; - private System.Windows.Forms.Label GsLabel; - private System.Windows.Forms.NumericUpDown GsEdit; - private System.Windows.Forms.TextBox INIEdit; - private System.Windows.Forms.GroupBox AttackGroup; - private System.Windows.Forms.DataGridView AttackList; - private System.Windows.Forms.DataGridViewTextBoxColumn NameCollum; - private System.Windows.Forms.DataGridViewTextBoxColumn ATCollum; - private System.Windows.Forms.DataGridViewTextBoxColumn TPCollum; - private System.Windows.Forms.DataGridViewTextBoxColumn KommentarCollum; - private System.Windows.Forms.TextBox MeisterkommentarEdit; - private System.Windows.Forms.Label MeisterkommentarLabel; - private System.Windows.Forms.Button SaveButton; - private System.Windows.Forms.Button LoadButton; - private System.Windows.Forms.Label PaLabel; - private System.Windows.Forms.NumericUpDown PaEdit; - } -} - diff --git a/ZooBOTanica/CritCreate.cs b/ZooBOTanica/CritCreate.cs deleted file mode 100644 index e79cff4..0000000 --- a/ZooBOTanica/CritCreate.cs +++ /dev/null @@ -1,92 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; -using DSALib; -using DSALib.Characters; - -namespace ZooBOTanica -{ - public partial class CritCreateForm : Form - { - public Critter critter; - - public CritCreateForm() - { - InitializeComponent(); - AllowDrop = true; - } - - public new void Load(string path) - { - critter = Critter.Load(path); - - AeEdit.Value = critter.Astralpunkte_Basis; - AuEdit.Value = critter.Ausdauer_Basis; - GWEdit.Value = critter.Gw; - GsEdit.Value = critter.Gs; - KoEdit.Value = critter.Ko; - LeEdit.Value = critter.Lebenspunkte_Basis; - MREdit.Value = critter.Mr; - NameEdit.Text = critter.Name; - //this.PAEdit.Value = this.critter.Pa; - RSEdit.Value = critter.Rs; - INIEdit.Text = critter.Ini; - MeisterkommentarEdit.Text = critter.Comment; - - AttackList.Rows.Clear(); - - foreach (var critterAttack in critter.CritterAttacks) - AttackList.Rows.Add(critterAttack.Name, critterAttack.At, critterAttack.Tp, critterAttack.Comment); - } - - public void CritCreateForm_DragDrop(object sender, DragEventArgs e) - { - Load(e.Data.GetData(DataFormats.Text).ToString()); - } - - public void LoadButton_Click(object sender, EventArgs e) - { - var dig = new OpenFileDialog - { - CheckFileExists = true, - Multiselect = false, - Title = "Gespeicherten Gegner laden", - Filter = "*Json Dateien (*.json)|*.json" - }; - - if (dig.ShowDialog() == DialogResult.OK) Load(dig.FileName); - } - - public void SaveButton_Click(object sender, EventArgs e) - { - critter = new Critter(); - critter.Astralpunkte_Basis = (int) AeEdit.Value; - critter.Ausdauer_Basis = (int) AuEdit.Value; - critter.Gw = (int) GWEdit.Value; - critter.Gs = (int) GsEdit.Value; - critter.Ko = (int) KoEdit.Value; - critter.Lebenspunkte_Basis = (int) LeEdit.Value; - critter.Mr = (int) MREdit.Value; - critter.Name = NameEdit.Text; - //this.critter.Pa = (int)this.PAEdit.Value; - critter.Rs = (int) RSEdit.Value; - critter.Ini = INIEdit.Text; - critter.Comment = MeisterkommentarEdit.Text; - - critter.CritterAttacks = new List(); - - for (var index = 0; index < AttackList.Rows.Count - 1; index++) - { - var Row = AttackList.Rows[index]; - critter.CritterAttacks.Add( - new CritterAttack( - (Row.Cells[0].Value ?? "").ToString(), - Convert.ToInt32(Row.Cells[1].Value ?? 0), - (Row.Cells[2].Value ?? "").ToString(), - (Row.Cells[3].Value ?? "").ToString())); - } - - critter.Save(); - } - } -} \ No newline at end of file diff --git a/ZooBOTanica/CritCreate.resx b/ZooBOTanica/CritCreate.resx deleted file mode 100644 index aac2d43..0000000 --- a/ZooBOTanica/CritCreate.resx +++ /dev/null @@ -1,1122 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - True - - - - 333, 31 - - - 38, 13 - - - 0 - - - Name: - - - NameLabel - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 11 - - - 391, 28 - - - 100, 20 - - - 1 - - - Gegner - - - NameEdit - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 10 - - - True - - - 510, 31 - - - 22, 13 - - - 2 - - - Le: - - - LeLabel - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 5 - - - 538, 29 - - - 45, 20 - - - 3 - - - LeEdit - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 6 - - - KoLabel - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - GrundwerteGroup - - - 0 - - - KoEdit - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - GrundwerteGroup - - - 1 - - - AeLabel - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - GrundwerteGroup - - - 2 - - - AeEdit - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - GrundwerteGroup - - - 3 - - - AuLabel - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - GrundwerteGroup - - - 4 - - - AuEdit - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - GrundwerteGroup - - - 5 - - - 325, 117 - - - 277, 53 - - - 5 - - - Grundwerte - - - GrundwerteGroup - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 9 - - - True - - - 189, 26 - - - 25, 13 - - - 4 - - - KO: - - - KoLabel - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - GrundwerteGroup - - - 0 - - - 217, 24 - - - 45, 20 - - - 5 - - - KoEdit - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - GrundwerteGroup - - - 1 - - - True - - - 93, 26 - - - 23, 13 - - - 2 - - - Ae: - - - AeLabel - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - GrundwerteGroup - - - 2 - - - 121, 24 - - - 45, 20 - - - 3 - - - AeEdit - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - GrundwerteGroup - - - 3 - - - True - - - 13, 26 - - - 23, 13 - - - 0 - - - Au: - - - AuLabel - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - GrundwerteGroup - - - 4 - - - 36, 24 - - - 45, 20 - - - 1 - - - AuEdit - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - GrundwerteGroup - - - 5 - - - 36, 23 - - - 45, 20 - - - 1 - - - PaEdit - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - VerteidugungGroup - - - 0 - - - True - - - - NoControl - - - 11, 29 - - - 24, 13 - - - 0 - - - PA: - - - PaLabel - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - VerteidugungGroup - - - 1 - - - True - - - 185, 25 - - - 27, 13 - - - 4 - - - MR: - - - MRLabel - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - VerteidugungGroup - - - 2 - - - 213, 23 - - - 45, 20 - - - 5 - - - MREdit - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - VerteidugungGroup - - - 3 - - - True - - - 93, 25 - - - 25, 13 - - - 2 - - - RS: - - - RSLAbel - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - VerteidugungGroup - - - 4 - - - 121, 23 - - - 45, 20 - - - 3 - - - RSEdit - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - VerteidugungGroup - - - 5 - - - 325, 58 - - - 277, 53 - - - 4 - - - Verteidigung - - - VerteidugungGroup - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 8 - - - INIEdit - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - SecondGroup - - - 0 - - - GWLabel - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - SecondGroup - - - 1 - - - GWEdit - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - SecondGroup - - - 2 - - - INILabel - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - SecondGroup - - - 3 - - - GsLabel - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - SecondGroup - - - 4 - - - GsEdit - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - SecondGroup - - - 5 - - - 325, 182 - - - 277, 53 - - - 6 - - - Sekundäre Werte - - - SecondGroup - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 7 - - - 121, 18 - - - 55, 20 - - - 3 - - - 1w6 - - - INIEdit - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - SecondGroup - - - 0 - - - True - - - 185, 21 - - - 29, 13 - - - 4 - - - GW: - - - GWLabel - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - SecondGroup - - - 1 - - - 213, 19 - - - 45, 20 - - - 5 - - - GWEdit - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - SecondGroup - - - 2 - - - True - - - 93, 21 - - - 24, 13 - - - 2 - - - INI: - - - INILabel - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - SecondGroup - - - 3 - - - True - - - 8, 21 - - - 25, 13 - - - 0 - - - GS: - - - GsLabel - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - SecondGroup - - - 4 - - - 36, 19 - - - 45, 20 - - - 1 - - - GsEdit - - - System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - SecondGroup - - - 5 - - - AttackList - - - System.Windows.Forms.DataGridView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - AttackGroup - - - 0 - - - 11, 21 - - - 296, 181 - - - 7 - - - Attacke(n) - - - AttackGroup - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 4 - - - True - - - True - - - True - - - True - - - 11, 19 - - - 279, 150 - - - 0 - - - AttackList - - - System.Windows.Forms.DataGridView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - AttackGroup - - - 0 - - - True - - - Name - - - True - - - At - - - 42 - - - True - - - TP - - - 46 - - - True - - - Kommentar - - - 22, 227 - - - True - - - 279, 60 - - - 9 - - - MeisterkommentarEdit - - - System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 3 - - - True - - - 22, 205 - - - 96, 13 - - - 8 - - - Meisterkommentar: - - - MeisterkommentarLabel - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 2 - - - 468, 251 - - - 119, 36 - - - 10 - - - Speichern - - - SaveButton - - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 1 - - - NoControl - - - 336, 251 - - - 119, 36 - - - 11 - - - Laden - - - LoadButton - - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 0 - - - True - - - True - - - 6, 13 - - - 606, 304 - - - CritCreate - - - NameCollum - - - System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ATCollum - - - System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - TPCollum - - - System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - KommentarCollum - - - System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - CritCreateForm - - - System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git "a/ZooBOTanica/Critters/B\303\244r.json" "b/ZooBOTanica/Critters/B\303\244r.json" deleted file mode 100644 index ffa5ce2..0000000 --- "a/ZooBOTanica/Critters/B\303\244r.json" +++ /dev/null @@ -1,25 +0,0 @@ -{ - "Rs": 0, - "Mr": 5, - "Ko": 10, - "Pa": 0, - "Gs": 8, - "Gw": 3, - "Ini": "2w6+5", - "Comment": "", - "CritterAttacks": [ - { - "Name": "Biss", - "At": 12, - "Tp": "12", - "Comment": "" - } - ], - "Lebenspunkte_Basis": 30, - "Lebenspunkte_Aktuell": 30, - "Ausdauer_Basis": 30, - "Ausdauer_Aktuell": 30, - "Astralpunkte_Basis": 0, - "Astralpunkte_Aktuell": 0, - "Name": "Bär" -} \ No newline at end of file diff --git a/ZooBOTanica/Critters/Gegner.json b/ZooBOTanica/Critters/Gegner.json deleted file mode 100644 index cdf8563..0000000 --- a/ZooBOTanica/Critters/Gegner.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "Rs": 0, - "Mr": 5, - "Ko": 10, - "Pa": 0, - "Gs": 8, - "Gw": 3, - "Ini": "2w6+5", - "Comment": "", - "CritterAttacks": [], - "Lebenspunkte_Basis": 30, - "Lebenspunkte_Aktuell": 30, - "Ausdauer_Basis": 30, - "Ausdauer_Aktuell": 30, - "Astralpunkte_Basis": 0, - "Astralpunkte_Aktuell": 0, - "Name": "Gegner" -} \ No newline at end of file diff --git a/ZooBOTanica/Critters/Goblin.json b/ZooBOTanica/Critters/Goblin.json deleted file mode 100644 index ad763f5..0000000 --- a/ZooBOTanica/Critters/Goblin.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "Rs": 1, - "Mr": 3, - "Ko": 8, - "Pa": 0, - "Gs": 8, - "Gw": 3, - "Ini": "2w6+5", - "Comment": "", - "CritterAttacks": [ - { - "Name": "Biss", - "At": 10, - "Tp": "1W+1", - "Comment": "" - }, - { - "Name": "Schwert", - "At": 10, - "Tp": "1W+4", - "Comment": "" - }, - { - "Name": "Schleuder", - "At": 6, - "Tp": "1W+2", - "Comment": "" - } - ], - "Lebenspunkte_Basis": 22, - "Lebenspunkte_Aktuell": 30, - "Ausdauer_Basis": 30, - "Ausdauer_Aktuell": 30, - "Astralpunkte_Basis": 0, - "Astralpunkte_Aktuell": 0, - "Name": "Goblin" -} \ No newline at end of file diff --git a/ZooBOTanica/Program.cs b/ZooBOTanica/Program.cs deleted file mode 100644 index 59c7434..0000000 --- a/ZooBOTanica/Program.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Windows.Forms; - -namespace ZooBOTanica -{ - internal static class Program - { - /// - /// Der Haupteinstiegspunkt für die Anwendung. - /// - [STAThread] - private static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new CritCreateForm()); - } - } -} \ No newline at end of file diff --git a/ZooBOTanica/Properties/AssemblyInfo.cs b/ZooBOTanica/Properties/AssemblyInfo.cs deleted file mode 100644 index b2b516e..0000000 --- a/ZooBOTanica/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; - -// Allgemeine Informationen über eine Assembly werden über die folgenden -// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, -// die einer Assembly zugeordnet sind. -[assembly: AssemblyTitle("ZooBOTanica")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("ZooBOTanica")] -[assembly: AssemblyCopyright("Copyright © 2018")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly -// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von -// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen. -[assembly: ComVisible(false)] - -// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird -[assembly: Guid("58917d99-dc94-4cdd-ad2b-c6e0baffcf47")] - -// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: -// -// Hauptversion -// Nebenversion -// Buildnummer -// Revision -// -// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, -// übernehmen, indem Sie "*" eingeben: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/ZooBOTanica/Properties/Resources.Designer.cs b/ZooBOTanica/Properties/Resources.Designer.cs deleted file mode 100644 index 806f71d..0000000 --- a/ZooBOTanica/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// Dieser Code wurde von einem Tool generiert. -// Laufzeitversion:4.0.30319.42000 -// -// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn -// der Code erneut generiert wird. -// -//------------------------------------------------------------------------------ - -namespace ZooBOTanica.Properties { - using System; - - - /// - /// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - /// - // Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert - // -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. - // Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen - // mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ZooBOTanica.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - /// Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/ZooBOTanica/Properties/Resources.resx b/ZooBOTanica/Properties/Resources.resx deleted file mode 100644 index af7dbeb..0000000 --- a/ZooBOTanica/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/ZooBOTanica/Properties/Settings.Designer.cs b/ZooBOTanica/Properties/Settings.Designer.cs deleted file mode 100644 index 9211d5f..0000000 --- a/ZooBOTanica/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// Dieser Code wurde von einem Tool generiert. -// Laufzeitversion:4.0.30319.42000 -// -// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn -// der Code erneut generiert wird. -// -//------------------------------------------------------------------------------ - -namespace ZooBOTanica.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.8.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} diff --git a/ZooBOTanica/Properties/Settings.settings b/ZooBOTanica/Properties/Settings.settings deleted file mode 100644 index 3964565..0000000 --- a/ZooBOTanica/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/ZooBOTanica/ZooBOTanica.csproj b/ZooBOTanica/ZooBOTanica.csproj deleted file mode 100644 index 086eb64..0000000 --- a/ZooBOTanica/ZooBOTanica.csproj +++ /dev/null @@ -1,91 +0,0 @@ - - - - - Debug - AnyCPU - {58917D99-DC94-4CDD-AD2B-C6E0BAFFCF47} - WinExe - ZooBOTanica - ZooBOTanica - v4.7.2 - 512 - true - - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - - Form - - - CritCreate.cs - - - - - CritCreate.cs - Designer - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - - - {388dd4ed-29c4-4127-ac8f-34dd3fe9f9b0} - DSALib - - - - \ No newline at end of file diff --git a/functions/index.js b/functions/index.js deleted file mode 100644 index bd698a2..0000000 --- a/functions/index.js +++ /dev/null @@ -1,8 +0,0 @@ -const functions = require('firebase-functions'); - -// // Create and Deploy Your First Cloud Functions -// // https://firebase.google.com/docs/functions/write-firebase-functions -// -// exports.helloWorld = functions.https.onRequest((request, response) => { -// response.send("Hello from Firebase!"); -// }); diff --git a/functions/package-lock.json b/functions/package-lock.json deleted file mode 100644 index 7d8f0dc..0000000 --- a/functions/package-lock.json +++ /dev/null @@ -1,3896 +0,0 @@ -{ - "name": "functions", - "requires": true, - "lockfileVersion": 1, - "dependencies": { - "@firebase/app": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.3.4.tgz", - "integrity": "sha512-Q6sNpWZ3x+FeuBkLCCRrsOraGJOKVLUCc9Amj8zu2vAC1v2uWifRR6kZ60TrpaIxtY4N6pcPTaG0YIUT5lgeSA==", - "requires": { - "@firebase/app-types": "0.3.2", - "@firebase/util": "0.2.2", - "dom-storage": "2.1.0", - "tslib": "1.9.0", - "xmlhttprequest": "1.8.0" - } - }, - "@firebase/app-types": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.3.2.tgz", - "integrity": "sha512-ZD8lTgW07NGgo75bTyBJA8Lt9+NweNzot7lrsBtIvfciwUzaFJLsv2EShqjBeuhF7RpG6YFucJ6m67w5buCtzw==" - }, - "@firebase/database": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.3.6.tgz", - "integrity": "sha512-r02JOqTLcd2/qn7QkkJvIAxMiMxmeyd5B76kl9hHAs+3cil5mUzHnI3svtb4h0VIJYDHFKJMlVl/bE3GfcTR3A==", - "requires": { - "@firebase/database-types": "0.3.2", - "@firebase/logger": "0.1.1", - "@firebase/util": "0.2.2", - "faye-websocket": "0.11.1", - "tslib": "1.9.0" - } - }, - "@firebase/database-types": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.3.2.tgz", - "integrity": "sha512-9ZYdvYQ6r3aaHJarhUM5Hf6lQWu3ZJme+RR0o8qfBb9L04TL3uNjt+AJFku1ysVPntTn+9GqJjiIB2/OC3JtwA==" - }, - "@firebase/logger": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.1.1.tgz", - "integrity": "sha512-5jn3HHbEfdOwychyIEIkP1cik+MW/vvoOavTOzwDkH+fv6Bx+HBUOzh09M7sCYzXFtKzjbUax9+g39mJNBLklQ==" - }, - "@firebase/util": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@firebase/util/-/util-0.2.2.tgz", - "integrity": "sha512-vfRjmCWuxtJx3txHocaNlDwCDwwv6KLL5YtlSNi73wBdvF3UfnpLGrth7G3X6gn5rDhOKamRg2+9L8cfsjSS1A==", - "requires": { - "tslib": "1.9.0" - } - }, - "@google-cloud/common": { - "version": "0.17.0", - "resolved": "http://registry.npmjs.org/@google-cloud/common/-/common-0.17.0.tgz", - "integrity": "sha512-HRZLSU762E6HaKoGfJGa8W95yRjb9rY7LePhjaHK9ILAnFacMuUGVamDbTHu1csZomm1g3tZTtXfX/aAhtie/Q==", - "optional": true, - "requires": { - "array-uniq": "1.0.3", - "arrify": "1.0.1", - "concat-stream": "1.6.2", - "create-error-class": "3.0.2", - "duplexify": "3.6.0", - "ent": "2.2.0", - "extend": "3.0.2", - "google-auto-auth": "0.10.1", - "is": "3.2.1", - "log-driver": "1.2.7", - "methmeth": "1.1.0", - "modelo": "4.2.3", - "request": "2.88.0", - "retry-request": "3.3.2", - "split-array-stream": "1.0.3", - "stream-events": "1.0.4", - "string-format-obj": "1.1.1", - "through2": "2.0.3" - }, - "dependencies": { - "retry-request": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-3.3.2.tgz", - "integrity": "sha512-WIiGp37XXDC6e7ku3LFoi7LCL/Gs9luGeeqvbPRb+Zl6OQMw4RCRfSaW+aLfE6lhz1R941UavE6Svl3Dm5xGIQ==", - "optional": true, - "requires": { - "request": "2.88.0", - "through2": "2.0.3" - } - } - } - }, - "@google-cloud/firestore": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-0.16.1.tgz", - "integrity": "sha512-xHb4OdRb0OP0x/8w58WJERtCi9Pr+CsloiUlVAq6fFjSyEcmxgL0V+swE8A/2rI5NGQGwtrN57xwDcis5UM/cQ==", - "optional": true, - "requires": { - "@google-cloud/projectify": "0.3.0", - "bun": "0.0.12", - "deep-equal": "1.0.1", - "extend": "3.0.2", - "functional-red-black-tree": "1.0.1", - "google-gax": "0.18.0", - "google-proto-files": "0.16.1", - "is": "3.2.1", - "lodash.merge": "4.6.1", - "protobufjs": "6.8.8", - "through2": "2.0.3" - } - }, - "@google-cloud/projectify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-0.3.0.tgz", - "integrity": "sha512-ic3vU+rBLlQ9rU6vyMcQ/GoYQX9hP0P56jdbnSkGvXrVnO1DtYrkPV3Qg/NUrpAfKnmNC4hb0O/v2hCj8uGnbQ==", - "optional": true - }, - "@google-cloud/storage": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-1.7.0.tgz", - "integrity": "sha512-QaAxzCkbhspwajoaEnT0GcnQcpjPRcBrHYuQsXtD05BtOJgVnHCLXSsfUiRdU0nVpK+Thp7+sTkQ0fvk5PanKg==", - "optional": true, - "requires": { - "@google-cloud/common": "0.17.0", - "arrify": "1.0.1", - "async": "2.6.1", - "compressible": "2.0.15", - "concat-stream": "1.6.2", - "create-error-class": "3.0.2", - "duplexify": "3.6.0", - "extend": "3.0.2", - "gcs-resumable-upload": "0.10.2", - "hash-stream-validation": "0.2.1", - "is": "3.2.1", - "mime": "2.3.1", - "mime-types": "2.1.20", - "once": "1.4.0", - "pumpify": "1.5.1", - "request": "2.88.0", - "safe-buffer": "5.1.2", - "snakeize": "0.1.0", - "stream-events": "1.0.4", - "through2": "2.0.3", - "xdg-basedir": "3.0.0" - } - }, - "@grpc/proto-loader": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.3.0.tgz", - "integrity": "sha512-9b8S/V+3W4Gv7G/JKSZ48zApgyYbfIR7mAC9XNnaSWme3zj57MIESu0ELzm9j5oxNIpFG8DgO00iJMIUZ5luqw==", - "optional": true, - "requires": { - "@types/lodash": "4.14.116", - "@types/node": "9.6.32", - "lodash": "4.17.11", - "protobufjs": "6.8.8" - }, - "dependencies": { - "@types/node": { - "version": "9.6.32", - "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.32.tgz", - "integrity": "sha512-5+L3wQ+FHoQ589EaH6rYICleuj8gnunq+1CJkM9fxklirErIOv+kxm3s/vecYnpJOYnFowE5uUizcb3hgjHUug==", - "optional": true - } - } - }, - "@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", - "requires": { - "call-me-maybe": "1.0.1", - "glob-to-regexp": "0.3.0" - } - }, - "@nodelib/fs.stat": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.2.tgz", - "integrity": "sha512-yprFYuno9FtNsSHVlSWd+nRlmGoAbqbeCwOryP6sC/zoCjhpArcRMYp19EvpSUSizJAlsXEwJv+wcWS9XaXdMw==" - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "requires": { - "@protobufjs/aspromise": "1.1.2", - "@protobufjs/inquire": "1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "@types/body-parser": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.17.0.tgz", - "integrity": "sha512-a2+YeUjPkztKJu5aIF2yArYFQQp8d51wZ7DavSHjFuY1mqVgidGyzEQ41JIVNy82fXj8yPgy2vJmfIywgESW6w==", - "requires": { - "@types/connect": "3.4.32", - "@types/node": "8.10.30" - } - }, - "@types/caseless": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.1.tgz", - "integrity": "sha512-FhlMa34NHp9K5MY1Uz8yb+ZvuX0pnvn3jScRSNAb75KHGB8d3rEU6hqMs3Z2vjuytcMfRg6c5CHMc3wtYyD2/A==", - "optional": true - }, - "@types/connect": { - "version": "3.4.32", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.32.tgz", - "integrity": "sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg==", - "requires": { - "@types/node": "8.10.30" - } - }, - "@types/cors": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.4.tgz", - "integrity": "sha512-ipZjBVsm2tF/n8qFGOuGBkUij9X9ZswVi9G3bx/6dz7POpVa6gVHcj1wsX/LVEn9MMF41fxK/PnZPPoTD1UFPw==", - "requires": { - "@types/express": "4.16.0" - } - }, - "@types/events": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", - "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==" - }, - "@types/express": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.16.0.tgz", - "integrity": "sha512-TtPEYumsmSTtTetAPXlJVf3kEqb6wZK0bZojpJQrnD/djV4q1oB6QQ8aKvKqwNPACoe02GNiy5zDzcYivR5Z2w==", - "requires": { - "@types/body-parser": "1.17.0", - "@types/express-serve-static-core": "4.16.0", - "@types/serve-static": "1.13.2" - } - }, - "@types/express-serve-static-core": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.16.0.tgz", - "integrity": "sha512-lTeoCu5NxJU4OD9moCgm0ESZzweAx0YqsAcab6OB0EB3+As1OaHtKnaGJvcngQxYsi9UNv0abn4/DRavrRxt4w==", - "requires": { - "@types/events": "1.2.0", - "@types/node": "8.10.30", - "@types/range-parser": "1.2.2" - } - }, - "@types/form-data": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.1.tgz", - "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==", - "optional": true, - "requires": { - "@types/node": "8.10.30" - } - }, - "@types/google-cloud__storage": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@types/google-cloud__storage/-/google-cloud__storage-1.7.2.tgz", - "integrity": "sha512-RaQJ7+Ht20MRYJu7mgKBpbVNZIPneztKIl/DUKacRC6A8mXRsJfgDdPA7indHmJGIgm+hzUTj44+A3RyuuYZhg==", - "optional": true, - "requires": { - "@types/node": "8.10.30", - "@types/request": "2.47.1" - } - }, - "@types/jsonwebtoken": { - "version": "7.2.8", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-7.2.8.tgz", - "integrity": "sha512-XENN3YzEB8D6TiUww0O8SRznzy1v+77lH7UmuN54xq/IHIsyWjWOzZuFFTtoiRuaE782uAoRwBe/wwow+vQXZw==", - "requires": { - "@types/node": "8.10.30" - } - }, - "@types/lodash": { - "version": "4.14.116", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.116.tgz", - "integrity": "sha512-lRnAtKnxMXcYYXqOiotTmJd74uawNWuPnsnPrrO7HiFuE3npE2iQhfABatbYDyxTNqZNuXzcKGhw37R7RjBFLg==" - }, - "@types/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.0.tgz", - "integrity": "sha512-1w52Nyx4Gq47uuu0EVcsHBxZFJgurQ+rTKS3qMHxR1GY2T8c2AJYd6vZoZ9q1rupaDjU0yT+Jc2XTyXkjeMA+Q==" - }, - "@types/mime": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.0.tgz", - "integrity": "sha512-A2TAGbTFdBw9azHbpVd+/FkdW2T6msN1uct1O9bH3vTerEHKZhTXJUQXy+hNq1B0RagfU8U+KBdqiZpxjhOUQA==" - }, - "@types/node": { - "version": "8.10.30", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.30.tgz", - "integrity": "sha512-Le8HGMI5gjFSBqcCuKP/wfHC19oURzkU2D+ERIescUoJd+CmNEMYBib9LQ4zj1HHEZOJQWhw2ZTnbD8weASh/Q==" - }, - "@types/range-parser": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.2.tgz", - "integrity": "sha512-HtKGu+qG1NPvYe1z7ezLsyIaXYyi8SoAVqWDZgDQ8dLrsZvSzUNCwZyfX33uhWxL/SU0ZDQZ3nwZ0nimt507Kw==" - }, - "@types/request": { - "version": "2.47.1", - "resolved": "https://registry.npmjs.org/@types/request/-/request-2.47.1.tgz", - "integrity": "sha512-TV3XLvDjQbIeVxJ1Z3oCTDk/KuYwwcNKVwz2YaT0F5u86Prgc4syDAp6P96rkTQQ4bIdh+VswQIC9zS6NjY7/g==", - "optional": true, - "requires": { - "@types/caseless": "0.12.1", - "@types/form-data": "2.2.1", - "@types/node": "8.10.30", - "@types/tough-cookie": "2.3.3" - } - }, - "@types/serve-static": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.2.tgz", - "integrity": "sha512-/BZ4QRLpH/bNYgZgwhKEh+5AsboDBcUdlBYgzoLX0fpj3Y2gp6EApyOlM3bK53wQS/OE1SrdSYBAbux2D1528Q==", - "requires": { - "@types/express-serve-static-core": "4.16.0", - "@types/mime": "2.0.0" - } - }, - "@types/tough-cookie": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.3.tgz", - "integrity": "sha512-MDQLxNFRLasqS4UlkWMSACMKeSm1x4Q3TxzUC7KQUsh6RK1ZrQ0VEyE3yzXcBu+K8ejVj4wuX32eUG02yNp+YQ==", - "optional": true - }, - "accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", - "requires": { - "mime-types": "2.1.20", - "negotiator": "0.6.1" - } - }, - "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==" - }, - "acorn-es7-plugin": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/acorn-es7-plugin/-/acorn-es7-plugin-1.1.7.tgz", - "integrity": "sha1-8u4fMiipDurRJF+asZIusucdM2s=" - }, - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" - } - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-filter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", - "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=" - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "requires": { - "array-uniq": "1.0.3" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" - }, - "ascli": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ascli/-/ascli-1.0.1.tgz", - "integrity": "sha1-vPpZdKYvGOgcq660lzKrSoj5Brw=", - "optional": true, - "requires": { - "colour": "0.7.1", - "optjs": "3.2.2" - } - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "requires": { - "safer-buffer": "2.1.2" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "requires": { - "lodash": "4.17.11" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" - }, - "axios": { - "version": "0.18.0", - "resolved": "http://registry.npmjs.org/axios/-/axios-0.18.0.tgz", - "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=", - "requires": { - "follow-redirects": "1.5.8", - "is-buffer": "1.1.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - } - } - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "body-parser": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", - "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", - "requires": { - "bytes": "3.0.0", - "content-type": "1.0.4", - "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.6.3", - "iconv-lite": "0.4.19", - "on-finished": "2.3.0", - "qs": "6.5.1", - "raw-body": "2.3.2", - "type-is": "1.6.16" - }, - "dependencies": { - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "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", - "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "bun": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/bun/-/bun-0.0.12.tgz", - "integrity": "sha512-Toms18J9DqnT+IfWkwxVTB2EaBprHvjlMWrTIsfX4xbu3ZBqVBwrERU0em1IgtRe04wT+wJxMlKHZok24hrcSQ==", - "optional": true, - "requires": { - "readable-stream": "1.0.34" - } - }, - "bytebuffer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/bytebuffer/-/bytebuffer-5.0.1.tgz", - "integrity": "sha1-WC7qSxqHO20CCkjVjfhfC7ps/d0=", - "optional": true, - "requires": { - "long": "3.2.0" - }, - "dependencies": { - "long": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz", - "integrity": "sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s=", - "optional": true - } - } - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.2.1", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.0", - "to-object-path": "0.3.0", - "union-value": "1.0.0", - "unset-value": "1.0.0" - } - }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" - }, - "call-signature": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/call-signature/-/call-signature-0.0.2.tgz", - "integrity": "sha1-qEq8glpV70yysCi9dOIFpluaSZY=" - }, - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "optional": true - }, - "capture-stack-trace": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", - "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==" - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "optional": true, - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" - } - }, - "colour": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/colour/-/colour-0.7.1.tgz", - "integrity": "sha1-nLFpkX7F0SwHNtPoaFdG3xyt93g=", - "optional": true - }, - "combined-stream": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", - "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", - "requires": { - "delayed-stream": "1.0.0" - } - }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" - }, - "compressible": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.15.tgz", - "integrity": "sha512-4aE67DL33dSW9gw4CI2H/yTxqHLNcxp0yS6jB+4h+wr3e43+1z7vm0HU9qXOH8j+qjKuL8+UtkOxYQSMq60Ylw==", - "optional": true, - "requires": { - "mime-db": "1.36.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "5.1.2" - } - } - } - }, - "configstore": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", - "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", - "optional": true, - "requires": { - "dot-prop": "4.2.0", - "graceful-fs": "4.1.11", - "make-dir": "1.3.0", - "unique-string": "1.0.0", - "write-file-atomic": "2.3.0", - "xdg-basedir": "3.0.0" - } - }, - "content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "core-js": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cors": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.4.tgz", - "integrity": "sha1-K9OB8usgECAQXNUOpZ2mMJBpRoY=", - "requires": { - "object-assign": "4.1.1", - "vary": "1.1.2" - } - }, - "create-error-class": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", - "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", - "requires": { - "capture-stack-trace": "1.0.1" - } - }, - "crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", - "optional": true - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "1.0.0" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "optional": true - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", - "optional": true - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "diff-match-patch": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.4.tgz", - "integrity": "sha512-Uv3SW8bmH9nAtHKaKSanOQmj2DnlH65fUpcrMdfdaOxUG02QQ4YGZ8AE7kKOMisF7UqvOlGKVYWRvezdncW9lg==" - }, - "dir-glob": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", - "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", - "requires": { - "arrify": "1.0.1", - "path-type": "3.0.0" - } - }, - "dom-storage": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/dom-storage/-/dom-storage-2.1.0.tgz", - "integrity": "sha512-g6RpyWXzl0RR6OTElHKBl7nwnK87GUyZMYC7JWsB/IA73vpqK2K6LT39x4VepLxlSsWBFrPVLnsSR5Jyty0+2Q==" - }, - "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", - "optional": true, - "requires": { - "is-obj": "1.0.1" - } - }, - "duplexify": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", - "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", - "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "5.1.2" - } - } - } - }, - "eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "optional": true, - "requires": { - "jsbn": "0.1.1", - "safer-buffer": "2.1.2" - } - }, - "ecdsa-sig-formatter": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz", - "integrity": "sha1-HFlQAPBKiJffuFAAiSoPTDOvhsM=", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "empower": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/empower/-/empower-1.3.1.tgz", - "integrity": "sha512-uB6/ViBaawOO/uujFADTK3SqdYlxYNn+N4usK9MRKZ4Hbn/1QSy8k2PezxCA2/+JGbF8vd/eOfghZ90oOSDZCA==", - "requires": { - "core-js": "2.5.7", - "empower-core": "1.2.0" - } - }, - "empower-core": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/empower-core/-/empower-core-1.2.0.tgz", - "integrity": "sha512-g6+K6Geyc1o6FdXs9HwrXleCFan7d66G5xSCfSF7x1mJDCes6t0om9lFQG3zOrzh3Bkb/45N0cZ5Gqsf7YrzGQ==", - "requires": { - "call-signature": "0.0.2", - "core-js": "2.5.7" - } - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "requires": { - "once": "1.4.0" - } - }, - "ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", - "optional": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "espurify": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/espurify/-/espurify-1.8.1.tgz", - "integrity": "sha512-ZDko6eY/o+D/gHCWyHTU85mKDgYcS4FJj7S+YD6WIInm7GQ6AnOjmcL4+buFV/JOztVLELi/7MmuGU5NHta0Mg==", - "requires": { - "core-js": "2.5.7" - } - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "express": { - "version": "4.16.3", - "resolved": "http://registry.npmjs.org/express/-/express-4.16.3.tgz", - "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", - "requires": { - "accepts": "1.3.5", - "array-flatten": "1.1.1", - "body-parser": "1.18.2", - "content-disposition": "0.5.2", - "content-type": "1.0.4", - "cookie": "0.3.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "1.1.2", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", - "finalhandler": "1.1.1", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.4", - "qs": "6.5.1", - "range-parser": "1.2.0", - "safe-buffer": "5.1.1", - "send": "0.16.2", - "serve-static": "1.13.2", - "setprototypeof": "1.1.0", - "statuses": "1.4.0", - "type-is": "1.6.16", - "utils-merge": "1.0.1", - "vary": "1.1.2" - }, - "dependencies": { - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" - }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" - }, - "fast-glob": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.2.tgz", - "integrity": "sha512-TR6zxCKftDQnUAPvkrCWdBgDq/gbqx8A3ApnBrR5rMvpp6+KMJI0Igw7fkWPgeVK0uhRXTXdvO3O+YP0CaUX2g==", - "requires": { - "@mrmlnc/readdir-enhanced": "2.2.1", - "@nodelib/fs.stat": "1.1.2", - "glob-parent": "3.1.0", - "is-glob": "4.0.0", - "merge2": "1.2.2", - "micromatch": "3.1.10" - } - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" - }, - "faye-websocket": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", - "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", - "requires": { - "websocket-driver": "0.7.0" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "finalhandler": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", - "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", - "requires": { - "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.4.0", - "unpipe": "1.0.0" - } - }, - "firebase-admin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-6.0.0.tgz", - "integrity": "sha512-ai7ensTAZx9iF6z/lMn7JzFJYSl6+uXYm53GGhWlph+npnQli10FF9YB97OjcVUghapDEWzmb6J0VMtB965nsw==", - "requires": { - "@firebase/app": "0.3.4", - "@firebase/database": "0.3.6", - "@google-cloud/firestore": "0.16.1", - "@google-cloud/storage": "1.7.0", - "@types/google-cloud__storage": "1.7.2", - "@types/node": "8.10.30", - "jsonwebtoken": "8.1.0", - "node-forge": "0.7.4" - } - }, - "firebase-functions": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/firebase-functions/-/firebase-functions-2.0.5.tgz", - "integrity": "sha512-XedOTdaej68I/AmJyeDIKL2Cw6MwI7Ugov5QoEsOU9bh25iAseZmFKFQeqimW5Wb9wKLAli2Wq8ld+FtdOwdvQ==", - "requires": { - "@types/cors": "2.8.4", - "@types/express": "4.16.0", - "@types/jsonwebtoken": "7.2.8", - "@types/lodash": "4.14.116", - "cors": "2.8.4", - "express": "4.16.3", - "jsonwebtoken": "8.3.0", - "lodash": "4.17.11" - }, - "dependencies": { - "jsonwebtoken": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.3.0.tgz", - "integrity": "sha512-oge/hvlmeJCH+iIz1DwcO7vKPkNGJHhgkspk8OH3VKlw+mbi42WtD4ig1+VXRln765vxptAv+xT26Fd3cteqag==", - "requires": { - "jws": "3.1.5", - "lodash.includes": "4.3.0", - "lodash.isboolean": "3.0.3", - "lodash.isinteger": "4.0.4", - "lodash.isnumber": "3.0.3", - "lodash.isplainobject": "4.0.6", - "lodash.isstring": "4.0.1", - "lodash.once": "4.1.1", - "ms": "2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } - } - }, - "follow-redirects": { - "version": "1.5.8", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.8.tgz", - "integrity": "sha512-sy1mXPmv7kLAMKW/8XofG7o9T+6gAjzdZK4AJF6ryqQYUa/hnzgiypoeUecZ53x7XiqKNEpNqLtS97MshW2nxg==", - "requires": { - "debug": "3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - } - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.6", - "mime-types": "2.1.20" - }, - "dependencies": { - "combined-stream": { - "version": "1.0.6", - "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "requires": { - "delayed-stream": "1.0.0" - } - } - } - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "optional": true - }, - "gcp-metadata": { - "version": "0.6.3", - "resolved": "http://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.6.3.tgz", - "integrity": "sha512-MSmczZctbz91AxCvqp9GHBoZOSbJKAICV7Ow/AIWSJZRrRchUd5NL1b2P4OfP+4m490BEUPhhARfpHdqCxuCvg==", - "requires": { - "axios": "0.18.0", - "extend": "3.0.2", - "retry-axios": "0.3.2" - } - }, - "gcs-resumable-upload": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/gcs-resumable-upload/-/gcs-resumable-upload-0.10.2.tgz", - "integrity": "sha1-fymz7iPc7EFwNnwHEUGCScZgVF8=", - "optional": true, - "requires": { - "configstore": "3.1.2", - "google-auto-auth": "0.10.1", - "pumpify": "1.5.1", - "request": "2.88.0", - "stream-events": "1.0.4" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "1.0.0" - } - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "requires": { - "is-extglob": "2.1.1" - } - } - } - }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" - }, - "globby": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.1.tgz", - "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", - "requires": { - "array-union": "1.0.2", - "dir-glob": "2.0.0", - "fast-glob": "2.2.2", - "glob": "7.1.3", - "ignore": "3.3.10", - "pify": "3.0.0", - "slash": "1.0.0" - } - }, - "google-auth-library": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-1.6.1.tgz", - "integrity": "sha512-jYiWC8NA9n9OtQM7ANn0Tk464do9yhKEtaJ72pKcaBiEwn4LwcGYIYOfwtfsSm3aur/ed3tlSxbmg24IAT6gAg==", - "requires": { - "axios": "0.18.0", - "gcp-metadata": "0.6.3", - "gtoken": "2.3.0", - "jws": "3.1.5", - "lodash.isstring": "4.0.1", - "lru-cache": "4.1.3", - "retry-axios": "0.3.2" - } - }, - "google-auto-auth": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/google-auto-auth/-/google-auto-auth-0.10.1.tgz", - "integrity": "sha512-iIqSbY7Ypd32mnHGbYctp80vZzXoDlvI9gEfvtl3kmyy5HzOcrZCIGCBdSlIzRsg7nHpQiHE3Zl6Ycur6TSodQ==", - "requires": { - "async": "2.6.1", - "gcp-metadata": "0.6.3", - "google-auth-library": "1.6.1", - "request": "2.88.0" - } - }, - "google-gax": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-0.18.0.tgz", - "integrity": "sha512-cF2s3aTw1cWDHsjaYfIizJZT0KJF0FSM3laiCX4O/K0ZcdmeE9PitG2bxRH+dY+Sz094//m+JoH1hBtSyOf67A==", - "optional": true, - "requires": { - "@grpc/proto-loader": "0.3.0", - "duplexify": "3.6.0", - "extend": "3.0.2", - "globby": "8.0.1", - "google-auth-library": "1.6.1", - "google-proto-files": "0.16.1", - "grpc": "1.15.1", - "is-stream-ended": "0.1.4", - "lodash": "4.17.11", - "protobufjs": "6.8.8", - "retry-request": "4.0.0", - "through2": "2.0.3" - } - }, - "google-p12-pem": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-1.0.2.tgz", - "integrity": "sha512-+EuKr4CLlGsnXx4XIJIVkcKYrsa2xkAmCvxRhX2HsazJzUBAJ35wARGeApHUn4nNfPD03Vl057FskNr20VaCyg==", - "requires": { - "node-forge": "0.7.4", - "pify": "3.0.0" - } - }, - "google-proto-files": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/google-proto-files/-/google-proto-files-0.16.1.tgz", - "integrity": "sha512-ykdhaYDiU/jlyrkzZDPemraKwVIgLT31XMHVNSJW//R9VED56hqSDRMx1Jlxbf0O4iDZnBWQ0JQLHbM2r5+wuA==", - "requires": { - "globby": "8.0.1", - "power-assert": "1.6.1", - "protobufjs": "6.8.8" - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" - }, - "grpc": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/grpc/-/grpc-1.15.1.tgz", - "integrity": "sha512-BfJ6BpFE93xQW69oYfgVQDxSb7LqdQbnddvhFq4tUsj7s0NAIRrrN3fmN2Bi3qpGFRemsKsWPIchw3YNNq2Xjg==", - "optional": true, - "requires": { - "lodash": "4.17.11", - "nan": "2.11.0", - "node-pre-gyp": "0.10.3", - "protobufjs": "5.0.3" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "optional": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.0.1", - "bundled": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "debug": { - "version": "2.6.9", - "bundled": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "optional": true, - "requires": { - "minipass": "2.3.3" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "optional": true, - "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.3" - } - }, - "glob": { - "version": "7.1.2", - "bundled": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.23", - "bundled": true, - "optional": true, - "requires": { - "safer-buffer": "2.1.2" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "optional": true, - "requires": { - "minimatch": "3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "1.2.0", - "bundled": true, - "optional": true - }, - "minipass": { - "version": "2.3.3", - "bundled": true, - "requires": { - "safe-buffer": "5.1.2", - "yallist": "3.0.2" - } - }, - "minizlib": { - "version": "1.1.0", - "bundled": true, - "optional": true, - "requires": { - "minipass": "2.3.3" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "bundled": true - } - } - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "needle": { - "version": "2.2.2", - "bundled": true, - "optional": true, - "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.23", - "sax": "1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.10.3", - "bundled": true, - "optional": true, - "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.2", - "nopt": "4.0.1", - "npm-packlist": "1.1.11", - "npmlog": "4.1.2", - "rc": "1.2.8", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.6" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "optional": true, - "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" - } - }, - "npm-bundled": { - "version": "1.0.3", - "bundled": true, - "optional": true - }, - "npm-packlist": { - "version": "1.1.11", - "bundled": true, - "optional": true, - "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "optional": true, - "requires": { - "are-we-there-yet": "1.1.5", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "optional": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "protobufjs": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-5.0.3.tgz", - "integrity": "sha512-55Kcx1MhPZX0zTbVosMQEO5R6/rikNXd9b6RQK4KSPcrSIIwoXTtebIczUrXlwaSrbz4x8XUVThGPob1n8I4QA==", - "optional": true, - "requires": { - "ascli": "1.0.1", - "bytebuffer": "5.0.1", - "glob": "7.1.2", - "yargs": "3.32.0" - } - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "optional": true, - "requires": { - "deep-extend": "0.6.0", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "optional": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "optional": true, - "requires": { - "glob": "7.1.2" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "optional": true - }, - "semver": { - "version": "5.5.0", - "bundled": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "optional": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "tar": { - "version": "4.4.6", - "bundled": true, - "optional": true, - "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.3.3", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.2", - "yallist": "3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "optional": true, - "requires": { - "string-width": "1.0.2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true - }, - "yallist": { - "version": "3.0.2", - "bundled": true - } - } - }, - "gtoken": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-2.3.0.tgz", - "integrity": "sha512-Jc9/8mV630cZE9FC5tIlJCZNdUjwunvlwOtCz6IDlaiB4Sz68ki29a1+q97sWTnTYroiuF9B135rod9zrQdHLw==", - "requires": { - "axios": "0.18.0", - "google-p12-pem": "1.0.2", - "jws": "3.1.5", - "mime": "2.3.1", - "pify": "3.0.0" - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", - "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", - "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" - } - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "hash-stream-validation": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/hash-stream-validation/-/hash-stream-validation-0.2.1.tgz", - "integrity": "sha1-7Mm5l7IYvluzEphii7gHhptz3NE=", - "optional": true, - "requires": { - "through2": "2.0.3" - } - }, - "http-errors": { - "version": "1.6.3", - "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "requires": { - "depd": "1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": "1.4.0" - } - }, - "http-parser-js": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz", - "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=" - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.14.2" - } - }, - "iconv-lite": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "optional": true - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "optional": true - }, - "ipaddr.js": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", - "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=" - }, - "is": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/is/-/is-3.2.1.tgz", - "integrity": "sha1-0Kwq1V63sL7JJqUmb2xmKqqD3KU=" - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", - "requires": { - "is-extglob": "2.1.1" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-obj": { - "version": "1.0.1", - "resolved": "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "optional": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "3.0.1" - } - }, - "is-stream-ended": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz", - "integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==", - "optional": true - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "optional": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "optional": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "jsonwebtoken": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.1.0.tgz", - "integrity": "sha1-xjl80uX9WD1lwAeoPce7eOaYK4M=", - "requires": { - "jws": "3.1.5", - "lodash.includes": "4.3.0", - "lodash.isboolean": "3.0.3", - "lodash.isinteger": "4.0.4", - "lodash.isnumber": "3.0.3", - "lodash.isplainobject": "4.0.6", - "lodash.isstring": "4.0.1", - "lodash.once": "4.1.1", - "ms": "2.0.0", - "xtend": "4.0.1" - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "jwa": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.1.6.tgz", - "integrity": "sha512-tBO/cf++BUsJkYql/kBbJroKOgHWEigTKBAjjBEmrMGYd1QMBC74Hr4Wo2zCZw6ZrVhlJPvoMrkcOnlWR/DJfw==", - "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.10", - "safe-buffer": "5.1.2" - } - }, - "jws": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.5.tgz", - "integrity": "sha512-GsCSexFADNQUr8T5HPJvayTjvPIfoyJPtLQBwn5a4WZQchcrPMPMAWcC1AzJVRDKyD6ZPROPAxgv6rfHViO4uQ==", - "requires": { - "jwa": "1.1.6", - "safe-buffer": "5.1.2" - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "optional": true, - "requires": { - "invert-kv": "1.0.0" - } - }, - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" - }, - "lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" - }, - "lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" - }, - "lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" - }, - "lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" - }, - "lodash.merge": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.1.tgz", - "integrity": "sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ==", - "optional": true - }, - "lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" - }, - "log-driver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", - "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", - "optional": true - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - } - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "optional": true, - "requires": { - "pify": "3.0.0" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "1.0.1" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "merge2": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.2.tgz", - "integrity": "sha512-bgM8twH86rWni21thii6WCMQMRMmwqqdW3sGWi9IipnVAszdLXRjwDwAnyrVXo6DuP3AjRMMttZKUB48QWIFGg==" - }, - "methmeth": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/methmeth/-/methmeth-1.1.0.tgz", - "integrity": "sha1-6AomYY5S9cQiKGG7dIUQvRDikIk=", - "optional": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "mime": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz", - "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==" - }, - "mime-db": { - "version": "1.36.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", - "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==" - }, - "mime-types": { - "version": "2.1.20", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", - "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", - "requires": { - "mime-db": "1.36.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "1.1.11" - } - }, - "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", - "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "modelo": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/modelo/-/modelo-4.2.3.tgz", - "integrity": "sha512-9DITV2YEMcw7XojdfvGl3gDD8J9QjZTJ7ZOUuSAkP+F3T6rDbzMJuPktxptsdHYEvZcmXrCD3LMOhdSAEq6zKA==", - "optional": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "nan": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.0.tgz", - "integrity": "sha512-F4miItu2rGnV2ySkXOQoA8FKz/SR2Q2sWP0sbTxNxz/tuokeC8WxOhPMcwi0qIyGtVn/rrSeLbvVkznqCdwYnw==", - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" - }, - "node-forge": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.4.tgz", - "integrity": "sha512-8Df0906+tq/omxuCZD6PqhPaQDYuyJ1d+VITgxoIA8zvQd1ru+nMJcDChHH324MWitIgbVkAkQoGEEVJNpn/PA==" - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "0.1.6" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "object-keys": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", - "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==" - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "3.0.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "3.0.1" - } - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1.0.2" - } - }, - "optjs": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/optjs/-/optjs-3.2.2.tgz", - "integrity": "sha1-aabOicRCpEQDFBrS+bNwvVu29O4=", - "optional": true - }, - "os-locale": { - "version": "1.4.0", - "resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "optional": true, - "requires": { - "lcid": "1.0.0" - } - }, - "parseurl": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "requires": { - "pify": "3.0.0" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, - "power-assert": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/power-assert/-/power-assert-1.6.1.tgz", - "integrity": "sha512-VWkkZV6Y+W8qLX/PtJu2Ur2jDPIs0a5vbP0TpKeybNcIXmT4vcKoVkyTp5lnQvTpY/DxacAZ4RZisHRHLJcAZQ==", - "requires": { - "define-properties": "1.1.3", - "empower": "1.3.1", - "power-assert-formatter": "1.4.1", - "universal-deep-strict-equal": "1.2.2", - "xtend": "4.0.1" - } - }, - "power-assert-context-formatter": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/power-assert-context-formatter/-/power-assert-context-formatter-1.2.0.tgz", - "integrity": "sha512-HLNEW8Bin+BFCpk/zbyKwkEu9W8/zThIStxGo7weYcFkKgMuGCHUJhvJeBGXDZf0Qm2xis4pbnnciGZiX0EpSg==", - "requires": { - "core-js": "2.5.7", - "power-assert-context-traversal": "1.2.0" - } - }, - "power-assert-context-reducer-ast": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/power-assert-context-reducer-ast/-/power-assert-context-reducer-ast-1.2.0.tgz", - "integrity": "sha512-EgOxmZ/Lb7tw4EwSKX7ZnfC0P/qRZFEG28dx/690qvhmOJ6hgThYFm5TUWANDLK5NiNKlPBi5WekVGd2+5wPrw==", - "requires": { - "acorn": "5.7.3", - "acorn-es7-plugin": "1.1.7", - "core-js": "2.5.7", - "espurify": "1.8.1", - "estraverse": "4.2.0" - } - }, - "power-assert-context-traversal": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/power-assert-context-traversal/-/power-assert-context-traversal-1.2.0.tgz", - "integrity": "sha512-NFoHU6g2umNajiP2l4qb0BRWD773Aw9uWdWYH9EQsVwIZnog5bd2YYLFCVvaxWpwNzWeEfZIon2xtyc63026pQ==", - "requires": { - "core-js": "2.5.7", - "estraverse": "4.2.0" - } - }, - "power-assert-formatter": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/power-assert-formatter/-/power-assert-formatter-1.4.1.tgz", - "integrity": "sha1-XcEl7VCj37HdomwZNH879Y7CiEo=", - "requires": { - "core-js": "2.5.7", - "power-assert-context-formatter": "1.2.0", - "power-assert-context-reducer-ast": "1.2.0", - "power-assert-renderer-assertion": "1.2.0", - "power-assert-renderer-comparison": "1.2.0", - "power-assert-renderer-diagram": "1.2.0", - "power-assert-renderer-file": "1.2.0" - } - }, - "power-assert-renderer-assertion": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/power-assert-renderer-assertion/-/power-assert-renderer-assertion-1.2.0.tgz", - "integrity": "sha512-3F7Q1ZLmV2ZCQv7aV7NJLNK9G7QsostrhOU7U0RhEQS/0vhEqrRg2jEJl1jtUL4ZyL2dXUlaaqrmPv5r9kRvIg==", - "requires": { - "power-assert-renderer-base": "1.1.1", - "power-assert-util-string-width": "1.2.0" - } - }, - "power-assert-renderer-base": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/power-assert-renderer-base/-/power-assert-renderer-base-1.1.1.tgz", - "integrity": "sha1-lqZQxv0F7hvB9mtUrWFELIs/Y+s=" - }, - "power-assert-renderer-comparison": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/power-assert-renderer-comparison/-/power-assert-renderer-comparison-1.2.0.tgz", - "integrity": "sha512-7c3RKPDBKK4E3JqdPtYRE9cM8AyX4LC4yfTvvTYyx8zSqmT5kJnXwzR0yWQLOavACllZfwrAGQzFiXPc5sWa+g==", - "requires": { - "core-js": "2.5.7", - "diff-match-patch": "1.0.4", - "power-assert-renderer-base": "1.1.1", - "stringifier": "1.4.0", - "type-name": "2.0.2" - } - }, - "power-assert-renderer-diagram": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/power-assert-renderer-diagram/-/power-assert-renderer-diagram-1.2.0.tgz", - "integrity": "sha512-JZ6PC+DJPQqfU6dwSmpcoD7gNnb/5U77bU5KgNwPPa+i1Pxiz6UuDeM3EUBlhZ1HvH9tMjI60anqVyi5l2oNdg==", - "requires": { - "core-js": "2.5.7", - "power-assert-renderer-base": "1.1.1", - "power-assert-util-string-width": "1.2.0", - "stringifier": "1.4.0" - } - }, - "power-assert-renderer-file": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/power-assert-renderer-file/-/power-assert-renderer-file-1.2.0.tgz", - "integrity": "sha512-/oaVrRbeOtGoyyd7e4IdLP/jIIUFJdqJtsYzP9/88R39CMnfF/S/rUc8ZQalENfUfQ/wQHu+XZYRMaCEZmEesg==", - "requires": { - "power-assert-renderer-base": "1.1.1" - } - }, - "power-assert-util-string-width": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/power-assert-util-string-width/-/power-assert-util-string-width-1.2.0.tgz", - "integrity": "sha512-lX90G0igAW0iyORTILZ/QjZWsa1MZ6VVY3L0K86e2eKun3S4LKPH4xZIl8fdeMYLfOjkaszbNSzf1uugLeAm2A==", - "requires": { - "eastasianwidth": "0.2.0" - } - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" - }, - "protobufjs": { - "version": "6.8.8", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.8.8.tgz", - "integrity": "sha512-AAmHtD5pXgZfi7GMpllpO3q1Xw1OYldr+dMUlAnffGTAhqkg72WdmSY71uKBF/JuyiKs8psYbtKrhi0ASCD8qw==", - "requires": { - "@protobufjs/aspromise": "1.1.2", - "@protobufjs/base64": "1.1.2", - "@protobufjs/codegen": "2.0.4", - "@protobufjs/eventemitter": "1.1.0", - "@protobufjs/fetch": "1.1.0", - "@protobufjs/float": "1.0.2", - "@protobufjs/inquire": "1.1.0", - "@protobufjs/path": "1.1.2", - "@protobufjs/pool": "1.1.0", - "@protobufjs/utf8": "1.1.0", - "@types/long": "4.0.0", - "@types/node": "10.11.0", - "long": "4.0.0" - }, - "dependencies": { - "@types/node": { - "version": "10.11.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.11.0.tgz", - "integrity": "sha512-R4Dvw6KjSYn/SpvjRchBOwXr14vVVcFXCtnM3f0aLvlJS8a599rrcEoihcP2/+Z/f75E5GNPd4aWM7j1yei9og==" - } - } - }, - "proxy-addr": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", - "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", - "requires": { - "forwarded": "0.1.2", - "ipaddr.js": "1.8.0" - } - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "psl": { - "version": "1.1.29", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", - "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==" - }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "requires": { - "duplexify": "3.6.0", - "inherits": "2.0.3", - "pump": "2.0.1" - } - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" - }, - "raw-body": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", - "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", - "requires": { - "bytes": "3.0.0", - "http-errors": "1.6.2", - "iconv-lite": "0.4.19", - "unpipe": "1.0.0" - }, - "dependencies": { - "depd": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" - }, - "http-errors": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", - "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", - "requires": { - "depd": "1.1.1", - "inherits": "2.0.3", - "setprototypeof": "1.0.3", - "statuses": "1.4.0" - } - }, - "setprototypeof": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" - } - } - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "optional": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" - } - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.8.0", - "caseless": "0.12.0", - "combined-stream": "1.0.7", - "extend": "3.0.2", - "forever-agent": "0.6.1", - "form-data": "2.3.2", - "har-validator": "5.1.0", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.20", - "oauth-sign": "0.9.0", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "tough-cookie": "2.4.3", - "tunnel-agent": "0.6.0", - "uuid": "3.3.2" - } - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, - "retry-axios": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/retry-axios/-/retry-axios-0.3.2.tgz", - "integrity": "sha512-jp4YlI0qyDFfXiXGhkCOliBN1G7fRH03Nqy8YdShzGqbY5/9S2x/IR6C88ls2DFkbWuL3ASkP7QD3pVrNpPgwQ==" - }, - "retry-request": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.0.0.tgz", - "integrity": "sha512-S4HNLaWcMP6r8E4TMH52Y7/pM8uNayOcTDDQNBwsCccL1uI+Ol2TljxRDPzaNfbhOB30+XWP5NnZkB3LiJxi1w==", - "optional": true, - "requires": { - "through2": "2.0.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "0.1.15" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "send": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", - "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", - "requires": { - "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", - "fresh": "0.5.2", - "http-errors": "1.6.3", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.4.0" - }, - "dependencies": { - "mime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" - } - } - }, - "serve-static": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", - "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", - "requires": { - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "parseurl": "1.3.2", - "send": "0.16.2" - } - }, - "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "optional": true - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" - }, - "snakeize": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/snakeize/-/snakeize-0.1.0.tgz", - "integrity": "sha1-EMCI2LWOsHazIpu1oE4jLOEmQi0=", - "optional": true - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "requires": { - "base": "0.11.2", - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "map-cache": "0.2.2", - "source-map": "0.5.7", - "source-map-resolve": "0.5.2", - "use": "3.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", - "requires": { - "atob": "2.1.2", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" - }, - "split-array-stream": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/split-array-stream/-/split-array-stream-1.0.3.tgz", - "integrity": "sha1-0rdajl4Ngk1S/eyLgiWDncLjXfo=", - "optional": true, - "requires": { - "async": "2.6.1", - "is-stream-ended": "0.1.4" - } - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "requires": { - "extend-shallow": "3.0.2" - } - }, - "sshpk": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", - "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", - "requires": { - "asn1": "0.2.4", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.2", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.2", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "tweetnacl": "0.14.5" - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" - }, - "stream-events": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.4.tgz", - "integrity": "sha512-D243NJaYs/xBN2QnoiMDY7IesJFIK7gEhnvAYqJa5JvDdnh2dC4qDBwlCf0ohPpX2QRlA/4gnbnPd3rs3KxVcA==", - "requires": { - "stubs": "3.0.0" - } - }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" - }, - "string-format-obj": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string-format-obj/-/string-format-obj-1.1.1.tgz", - "integrity": "sha512-Mm+sROy+pHJmx0P/0Bs1uxIX6UhGJGj6xDGQZ5zh9v/SZRmLGevp+p0VJxV7lirrkAmQ2mvva/gHKpnF/pTb+Q==", - "optional": true - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "optional": true - }, - "stringifier": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/stringifier/-/stringifier-1.4.0.tgz", - "integrity": "sha512-cNsMOqqrcbLcHTXEVmkw9y0fwDwkdgtZwlfyolzpQDoAE1xdNGhQhxBUfiDvvZIKl1hnUEgMv66nHwtMz3OjPw==", - "requires": { - "core-js": "2.5.7", - "traverse": "0.6.6", - "type-name": "2.0.2" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "2.1.1" - } - }, - "stubs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", - "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=" - }, - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "5.1.2" - } - } - } - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" - } - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "requires": { - "psl": "1.1.29", - "punycode": "1.4.1" - } - }, - "traverse": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", - "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=" - }, - "tslib": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", - "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==" - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "optional": true - }, - "type-is": { - "version": "1.6.16", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", - "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "2.1.20" - } - }, - "type-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/type-name/-/type-name-2.0.2.tgz", - "integrity": "sha1-7+fUEj2KxSr/9/QMfk3sUmYAj7Q=" - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", - "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" - } - } - } - }, - "unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", - "optional": true, - "requires": { - "crypto-random-string": "1.0.0" - } - }, - "universal-deep-strict-equal": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/universal-deep-strict-equal/-/universal-deep-strict-equal-1.2.2.tgz", - "integrity": "sha1-DaSsL3PP95JMgfpN4BjKViyisKc=", - "requires": { - "array-filter": "1.0.0", - "indexof": "0.0.1", - "object-keys": "1.0.12" - } - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - } - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "1.3.0" - } - }, - "websocket-driver": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", - "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", - "requires": { - "http-parser-js": "0.4.13", - "websocket-extensions": "0.1.3" - } - }, - "websocket-extensions": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", - "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==" - }, - "window-size": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", - "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=", - "optional": true - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "optional": true, - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write-file-atomic": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", - "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", - "optional": true, - "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "signal-exit": "3.0.2" - } - }, - "xdg-basedir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=" - }, - "xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=" - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "optional": true - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - }, - "yargs": { - "version": "3.32.0", - "resolved": "http://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", - "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", - "optional": true, - "requires": { - "camelcase": "2.1.1", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "os-locale": "1.4.0", - "string-width": "1.0.2", - "window-size": "0.1.4", - "y18n": "3.2.1" - } - } - } -} diff --git a/functions/package.json b/functions/package.json deleted file mode 100644 index 44f1fc7..0000000 --- a/functions/package.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "functions", - "description": "Cloud Functions for Firebase", - "scripts": { - "serve": "firebase serve --only functions", - "shell": "firebase functions:shell", - "start": "npm run shell", - "deploy": "firebase deploy --only functions", - "logs": "firebase functions:log" - }, - "dependencies": { - "firebase-admin": "~6.0.0", - "firebase-functions": "^2.0.3" - }, - "private": true -} -- cgit v1.2.3-54-g00ecf