diff --git a/OAuth.AspNet.AuthServer/OAuthConstants.cs b/OAuth.AspNet.AuthServer/OAuthConstants.cs index a7d2923e..c6d87e39 100644 --- a/OAuth.AspNet.AuthServer/OAuthConstants.cs +++ b/OAuth.AspNet.AuthServer/OAuthConstants.cs @@ -2,7 +2,7 @@ namespace OAuth.AspNet.AuthServer { - internal static class Constants + public static class Constants { public static class Parameters { diff --git a/cli/src/Authentication/OAuthenticator.cs b/Yavsc.Abstract/Authentication/OAuthenticator.cs similarity index 95% rename from cli/src/Authentication/OAuthenticator.cs rename to Yavsc.Abstract/Authentication/OAuthenticator.cs index 17655e44..78fcb0ff 100644 --- a/cli/src/Authentication/OAuthenticator.cs +++ b/Yavsc.Abstract/Authentication/OAuthenticator.cs @@ -8,17 +8,14 @@ using System.Net; using System.Text; using GetUsernameAsyncFunc=System.Func, System.Threading.Tasks.Task>; using System.IO; -using Microsoft.Extensions.WebEncoders; using Newtonsoft.Json; -namespace cli.Authentication +namespace Yavsc.Authentication { public class OAuthenticator { - UrlEncoder _urlEncoder; - public OAuthenticator(UrlEncoder urlEncoder) + public OAuthenticator() { - _urlEncoder = urlEncoder; } string clientId; @@ -378,12 +375,12 @@ namespace cli.Authentication /// /// The parameters to make the request with. /// The data provided in the response to the access token request. - protected async Task> RequestAccessTokenAsync(IDictionary queryValues) + public async Task> RequestAccessTokenAsync(IDictionary queryValues) { StringBuilder postData = new StringBuilder(); foreach (string key in queryValues.Keys) { - postData.Append(_urlEncoder.UrlEncode($"{key}={queryValues[key]}&")); + postData.Append($"{key}="+Uri.EscapeDataString($"{queryValues[key]}")+"&"); } var req = WebRequest.Create(accessTokenUrl); (req as HttpWebRequest).Accept = "application/json"; @@ -391,11 +388,8 @@ namespace cli.Authentication var body = Encoding.UTF8.GetBytes(postData.ToString()); req.ContentLength = body.Length; req.ContentType = "application/x-www-form-urlencoded"; - using (var s = req.GetRequestStream()) - { - s.Write(body, 0, body.Length); - s.Close(); - } + var s = req.GetRequestStream(); + s.Write(body, 0, body.Length); var auth = await req.GetResponseAsync(); var repstream = auth.GetResponseStream(); @@ -410,7 +404,7 @@ namespace cli.Authentication if (data.ContainsKey("error")) { - throw new AuthException("Error authenticating: " + data["error"]); + OnError("Error authenticating: " + data["error"]); } else if (data.ContainsKey("access_token")) { @@ -418,8 +412,9 @@ namespace cli.Authentication } else { - throw new AuthException("Expected access_token in access token response, but did not receive one."); + OnError("Expected access_token in access token response, but did not receive one."); } + return data; } private IDictionary FormDecode(string text) diff --git a/Yavsc/Helpers/Ansi2HtmlEncoder.cs b/Yavsc/Helpers/Ansi2HtmlEncoder.cs index 4f553950..06d7e434 100644 --- a/Yavsc/Helpers/Ansi2HtmlEncoder.cs +++ b/Yavsc/Helpers/Ansi2HtmlEncoder.cs @@ -18,7 +18,7 @@ namespace Yavsc.Helpers public static Stream GetStream(StreamReader reader) { - var procStart = new ProcessStartInfo("/usr/bin/nodejs", "node_modules/ansi-to-html/bin/ansi-to-html"); + var procStart = new ProcessStartInfo("node", "node_modules/ansi-to-html/bin/ansi-to-html"); procStart.UseShellExecute = false; procStart.RedirectStandardInput = true; procStart.RedirectStandardOutput = true; diff --git a/Yavsc/Startup/Startup.OAuthHelpers.cs b/Yavsc/Startup/Startup.OAuthHelpers.cs index 154cce8c..43a53412 100644 --- a/Yavsc/Startup/Startup.OAuthHelpers.cs +++ b/Yavsc/Startup/Startup.OAuthHelpers.cs @@ -18,9 +18,10 @@ namespace Yavsc { private Client GetApplication(string clientId) { - Client app=null; - using (var dbContext = new ApplicationDbContext()) { - app = dbContext.Applications.FirstOrDefault(x => x.Id == clientId); + Client app = null; + using (var dbContext = new ApplicationDbContext()) + { + app = dbContext.Applications.FirstOrDefault(x => x.Id == clientId); } return app; } @@ -39,7 +40,7 @@ namespace Yavsc private Task ValidateClientAuthentication(OAuthValidateClientAuthenticationContext context) { string clientId, clientSecret; - + if (context.TryGetBasicCredentials(out clientId, out clientSecret) || context.TryGetFormCredentials(out clientId, out clientSecret)) { @@ -54,9 +55,9 @@ namespace Yavsc } else { - // if (client.Secret != Helper.GetHash(clientSecret)) - // TODO store a hash in db, not the pass - if (client.Secret != clientSecret) + // if (client.Secret != Helper.GetHash(clientSecret)) + // TODO store a hash in db, not the pass + if (client.Secret != clientSecret) { context.SetError("invalid_clientId", "Client secret is invalid."); return Task.FromResult(null); @@ -80,38 +81,36 @@ namespace Yavsc else Startup.logger.LogWarning($"ValidateClientAuthentication: neither Basic nor Form credential were found"); return Task.FromResult(0); } - + UserManager _usermanager; + private async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) { logger.LogWarning($"GrantResourceOwnerCredentials task ... {context.UserName}"); ApplicationUser user = null; - using (var usermanager = context.HttpContext.ApplicationServices.GetRequiredService>()) - { - user = await usermanager.FindByNameAsync(context.UserName); - if (await usermanager.CheckPasswordAsync(user,context.Password)) - { + user = await _usermanager.FindByNameAsync(context.UserName); + if (await _usermanager.CheckPasswordAsync(user, context.Password)) + { - var claims = new List( - context.Scope.Select(x => new Claim("urn:oauth:scope", x)) - ); - claims.Add(new Claim(ClaimTypes.NameIdentifier,user.Id)); - claims.Add(new Claim(ClaimTypes.Email,user.Email)); - claims.AddRange((await usermanager.GetRolesAsync(user)).Select( - r => new Claim(ClaimTypes.Role,r) - ) ); - ClaimsPrincipal principal = new ClaimsPrincipal( - new ClaimsIdentity( - new GenericIdentity(context.UserName, OAuthDefaults.AuthenticationType), - claims) - ); - // TODO set a NameIdentifier, roles and scopes claims - context.HttpContext.User = principal; + var claims = new List( + context.Scope.Select(x => new Claim("urn:oauth:scope", x)) + ); + claims.Add(new Claim(ClaimTypes.NameIdentifier, user.Id)); + claims.Add(new Claim(ClaimTypes.Email, user.Email)); + claims.AddRange((await _usermanager.GetRolesAsync(user)).Select( + r => new Claim(ClaimTypes.Role, r) + )); + ClaimsPrincipal principal = new ClaimsPrincipal( + new ClaimsIdentity( + new GenericIdentity(context.UserName, OAuthDefaults.AuthenticationType), + claims) + ); + // TODO set a NameIdentifier, roles and scopes claims + context.HttpContext.User = principal; + + context.Validated(principal); + } - context.Validated(principal); - } - } - return Task.FromResult(0); } diff --git a/Yavsc/Startup/Startup.cs b/Yavsc/Startup/Startup.cs index f8f7f690..043e97d9 100755 --- a/Yavsc/Startup/Startup.cs +++ b/Yavsc/Startup/Startup.cs @@ -27,6 +27,7 @@ namespace Yavsc using System.Net; using Formatters; using Google.Apis.Util.Store; + using Microsoft.AspNet.Identity; using Microsoft.Extensions.Localization; using Models; using PayPal.Manager; @@ -263,9 +264,10 @@ namespace Yavsc IOptions payPalSettings, IOptions googleSettings, IStringLocalizer localizer, + UserManager usermanager, ILoggerFactory loggerFactory) { - + _usermanager = usermanager; GoogleSettings = googleSettings.Value; ResourcesHelpers.GlobalLocalizer = localizer; SiteSetup = siteSettings.Value; diff --git a/Yavsc/gulpfile.js b/Yavsc/gulpfile.js index 1633fb24..37baa256 100755 --- a/Yavsc/gulpfile.js +++ b/Yavsc/gulpfile.js @@ -31,10 +31,6 @@ gulp.task("clean:css", function(cb) { gulp.task("clean", ["clean:js", "clean:css"]); -gulp.task('watch', shell.task(['ASPNET_ENV=Development dnx-watch web --configuration=Debug'])); -gulp.task('watchlua', shell.task(['ASPNET_ENV=lua dnx-watch luatest --configuration=Debug'])); -gulp.task('watchpre', shell.task(['ASPNET_ENV=yavscpre dnx-watch web --configuration=Debug'])); - gulp.task("min:css", function() { gulp.src([paths.css, "!" + paths.minCss, '!site.css']) .pipe(cssmin()) @@ -56,4 +52,4 @@ gulp.task('run', shell.task(['ASPNET_ENV=Development dnx web --configuration=Deb gulp.task('buildrelease', shell.task(['dnu build --configuration=Release'])); -gulp.task("default", ["watch"]); \ No newline at end of file +gulp.task("default", ["min"]); diff --git a/Yavsc/package-lock.json b/Yavsc/package-lock.json index 7e268ccd..26de1152 100644 --- a/Yavsc/package-lock.json +++ b/Yavsc/package-lock.json @@ -80,7 +80,7 @@ "resolved": "https://registry.npmjs.org/ansi-to-html/-/ansi-to-html-0.6.4.tgz", "integrity": "sha512-XuUGfj3zOAg3/NCU7Oyf9PaCyFuDVj8dzMqezMycPxo5U52atXt+R4L/zW7ETNA2GTjyj/KGBVEFI8sgPWUu2w==", "requires": { - "entities": "^1.1.1" + "entities": "1.1.1" } }, "ansi-wrap": { @@ -101,7 +101,7 @@ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { - "sprintf-js": "~1.0.2" + "sprintf-js": "1.0.3" }, "dependencies": { "sprintf-js": { @@ -118,7 +118,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "arr-flatten": "^1.0.1" + "arr-flatten": "1.0.3" } }, "arr-flatten": { @@ -193,7 +193,7 @@ "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "dev": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -203,9 +203,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" } }, "braintree-web": { @@ -243,8 +243,8 @@ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" + "camelcase": "2.1.1", + "map-obj": "1.0.1" } }, "card-validator": { @@ -252,7 +252,7 @@ "resolved": "https://registry.npmjs.org/card-validator/-/card-validator-5.0.0.tgz", "integrity": "sha1-PLr27md7Vyf/5SNvgm3BOQ4Uhn0=", "requires": { - "credit-card-type": "^7.0.0" + "credit-card-type": "7.0.0" } }, "chalk": { @@ -261,11 +261,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" } }, "clean-css": { @@ -274,8 +274,8 @@ "integrity": "sha1-vxlF6C/ICPVWlebd6uwBQA79A/8=", "dev": true, "requires": { - "commander": "2.8.x", - "source-map": "0.4.x" + "commander": "2.8.1", + "source-map": "0.4.4" }, "dependencies": { "source-map": { @@ -284,7 +284,7 @@ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } @@ -313,9 +313,9 @@ "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==", "dev": true, "requires": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" + "inherits": "2.0.3", + "process-nextick-args": "2.0.0", + "readable-stream": "2.3.6" }, "dependencies": { "isarray": { @@ -336,13 +336,13 @@ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" } }, "string_decoder": { @@ -351,7 +351,7 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.1" } } } @@ -395,7 +395,7 @@ "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", "dev": true, "requires": { - "graceful-readlink": ">= 1.0.0" + "graceful-readlink": "1.0.1" } }, "concat-map": { @@ -410,7 +410,7 @@ "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", "dev": true, "requires": { - "source-map": "^0.6.1" + "source-map": "0.6.1" } }, "core-util-is": { @@ -430,7 +430,7 @@ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { - "array-find-index": "^1.0.1" + "array-find-index": "1.0.2" } }, "dateformat": { @@ -439,8 +439,8 @@ "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", "dev": true, "requires": { - "get-stdin": "^4.0.1", - "meow": "^3.3.0" + "get-stdin": "4.0.1", + "meow": "3.7.0" } }, "debug": { @@ -469,7 +469,7 @@ "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "dev": true, "requires": { - "clone": "^1.0.2" + "clone": "1.0.2" } }, "deprecated": { @@ -484,7 +484,7 @@ "integrity": "sha1-STXe39lIhkjgBrASlWbpOGcR6mM=", "dev": true, "requires": { - "fs-exists-sync": "^0.1.0" + "fs-exists-sync": "0.1.0" } }, "duplexer2": { @@ -493,7 +493,7 @@ "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", "dev": true, "requires": { - "readable-stream": "~1.1.9" + "readable-stream": "1.1.14" } }, "end-of-stream": { @@ -502,7 +502,7 @@ "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=", "dev": true, "requires": { - "once": "~1.3.0" + "once": "1.3.3" }, "dependencies": { "once": { @@ -511,7 +511,7 @@ "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", "dev": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } } } @@ -527,7 +527,7 @@ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "escape-string-regexp": { @@ -560,7 +560,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { - "is-posix-bracket": "^0.1.0" + "is-posix-bracket": "0.1.1" } }, "expand-range": { @@ -569,7 +569,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { - "fill-range": "^2.1.0" + "fill-range": "2.2.3" } }, "expand-tilde": { @@ -578,7 +578,7 @@ "integrity": "sha1-C4HrqJflo9MdHD0QL48BRB5VlEk=", "dev": true, "requires": { - "os-homedir": "^1.0.1" + "os-homedir": "1.0.2" } }, "extend": { @@ -593,7 +593,7 @@ "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", "dev": true, "requires": { - "kind-of": "^1.1.0" + "kind-of": "1.1.0" }, "dependencies": { "kind-of": { @@ -610,7 +610,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "fancy-log": { @@ -619,8 +619,8 @@ "integrity": "sha1-Rb4X0Cu5kX1gzP/UmVyZnmyMmUg=", "dev": true, "requires": { - "chalk": "^1.1.1", - "time-stamp": "^1.0.0" + "chalk": "1.1.3", + "time-stamp": "1.1.0" } }, "filename-regex": { @@ -641,11 +641,11 @@ "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", "dev": true, "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^1.1.3", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "1.1.7", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" } }, "find-index": { @@ -660,8 +660,8 @@ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } }, "findup-sync": { @@ -670,7 +670,7 @@ "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", "dev": true, "requires": { - "glob": "~5.0.0" + "glob": "5.0.15" }, "dependencies": { "glob": { @@ -679,11 +679,11 @@ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", "dev": true, "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^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" } } } @@ -694,11 +694,11 @@ "integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=", "dev": true, "requires": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" + "expand-tilde": "2.0.2", + "is-plain-object": "2.0.3", + "object.defaults": "1.1.0", + "object.pick": "1.2.0", + "parse-filepath": "1.0.1" }, "dependencies": { "expand-tilde": { @@ -707,7 +707,7 @@ "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", "dev": true, "requires": { - "homedir-polyfill": "^1.0.1" + "homedir-polyfill": "1.0.1" } } } @@ -729,7 +729,7 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.1.tgz", "integrity": "sha512-v9GI1hpaqq1ZZR6pBD1+kI7O24PhDvNGNodjS3MdcEqyrahCp8zbtpv+2B/krUnSmUH80lbAS7MrdeK5IylgKg==", "requires": { - "debug": "^3.1.0" + "debug": "3.1.0" }, "dependencies": { "debug": { @@ -759,7 +759,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { - "for-in": "^1.0.1" + "for-in": "1.0.2" } }, "framebus": { @@ -785,7 +785,7 @@ "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", "dev": true, "requires": { - "globule": "~0.1.0" + "globule": "0.1.0" } }, "get-stdin": { @@ -806,12 +806,12 @@ "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.2", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "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-base": { @@ -820,8 +820,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" + "glob-parent": "2.0.0", + "is-glob": "2.0.1" } }, "glob-parent": { @@ -830,7 +830,7 @@ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { - "is-glob": "^2.0.0" + "is-glob": "2.0.1" } }, "glob-stream": { @@ -839,12 +839,12 @@ "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=", "dev": true, "requires": { - "glob": "^4.3.1", - "glob2base": "^0.0.12", - "minimatch": "^2.0.1", - "ordered-read-streams": "^0.1.0", - "through2": "^0.6.1", - "unique-stream": "^1.0.0" + "glob": "4.5.3", + "glob2base": "0.0.12", + "minimatch": "2.0.10", + "ordered-read-streams": "0.1.0", + "through2": "0.6.5", + "unique-stream": "1.0.0" }, "dependencies": { "glob": { @@ -853,10 +853,10 @@ "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", "dev": true, "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^2.0.1", - "once": "^1.3.0" + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "2.0.10", + "once": "1.4.0" } }, "minimatch": { @@ -865,7 +865,7 @@ "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", "dev": true, "requires": { - "brace-expansion": "^1.0.0" + "brace-expansion": "1.1.8" } }, "readable-stream": { @@ -874,10 +874,10 @@ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", + "core-util-is": "1.0.2", + "inherits": "2.0.3", "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "string_decoder": "0.10.31" } }, "through2": { @@ -886,8 +886,8 @@ "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", "dev": true, "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" + "readable-stream": "1.0.34", + "xtend": "4.0.1" } } } @@ -898,7 +898,7 @@ "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=", "dev": true, "requires": { - "gaze": "^0.5.1" + "gaze": "0.5.2" } }, "glob2base": { @@ -907,7 +907,7 @@ "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", "dev": true, "requires": { - "find-index": "^0.1.1" + "find-index": "0.1.1" } }, "global-modules": { @@ -916,8 +916,8 @@ "integrity": "sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0=", "dev": true, "requires": { - "global-prefix": "^0.1.4", - "is-windows": "^0.2.0" + "global-prefix": "0.1.5", + "is-windows": "0.2.0" } }, "global-prefix": { @@ -926,10 +926,10 @@ "integrity": "sha1-jTvGuNo8qBEqFg2NSW/wRiv+948=", "dev": true, "requires": { - "homedir-polyfill": "^1.0.0", - "ini": "^1.3.4", - "is-windows": "^0.2.0", - "which": "^1.2.12" + "homedir-polyfill": "1.0.1", + "ini": "1.3.4", + "is-windows": "0.2.0", + "which": "1.2.14" } }, "globule": { @@ -938,9 +938,9 @@ "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", "dev": true, "requires": { - "glob": "~3.1.21", - "lodash": "~1.0.1", - "minimatch": "~0.2.11" + "glob": "3.1.21", + "lodash": "1.0.2", + "minimatch": "0.2.14" }, "dependencies": { "glob": { @@ -949,9 +949,9 @@ "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", "dev": true, "requires": { - "graceful-fs": "~1.2.0", - "inherits": "1", - "minimatch": "~0.2.11" + "graceful-fs": "1.2.3", + "inherits": "1.0.2", + "minimatch": "0.2.14" } }, "graceful-fs": { @@ -978,8 +978,8 @@ "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", "dev": true, "requires": { - "lru-cache": "2", - "sigmund": "~1.0.0" + "lru-cache": "2.7.3", + "sigmund": "1.0.1" } } } @@ -990,7 +990,7 @@ "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=", "dev": true, "requires": { - "sparkles": "^1.0.0" + "sparkles": "1.0.0" } }, "graceful-fs": { @@ -1011,23 +1011,23 @@ "integrity": "sha512-/JzmZNPfKorlCrrmxWqQO4JVodO+DVd5XX4DkocL/1WlLlKVLE9+SdEIempOAxDhWPysLle6afvn/hg7Ck2k9g==", "dev": true, "requires": { - "coffeescript": "~1.10.0", - "dateformat": "~1.0.12", - "eventemitter2": "~0.4.13", - "exit": "~0.1.1", - "findup-sync": "~0.3.0", - "glob": "~7.0.0", - "grunt-cli": "~1.2.0", - "grunt-known-options": "~1.1.0", - "grunt-legacy-log": "~2.0.0", - "grunt-legacy-util": "~1.1.1", - "iconv-lite": "~0.4.13", - "js-yaml": "~3.5.2", - "minimatch": "~3.0.2", - "mkdirp": "~0.5.1", - "nopt": "~3.0.6", - "path-is-absolute": "~1.0.0", - "rimraf": "~2.6.2" + "coffeescript": "1.10.0", + "dateformat": "1.0.12", + "eventemitter2": "0.4.14", + "exit": "0.1.2", + "findup-sync": "0.3.0", + "glob": "7.0.6", + "grunt-cli": "1.2.0", + "grunt-known-options": "1.1.0", + "grunt-legacy-log": "2.0.0", + "grunt-legacy-util": "1.1.1", + "iconv-lite": "0.4.23", + "js-yaml": "3.5.5", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "nopt": "3.0.6", + "path-is-absolute": "1.0.1", + "rimraf": "2.6.2" }, "dependencies": { "grunt-cli": { @@ -1036,10 +1036,10 @@ "integrity": "sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=", "dev": true, "requires": { - "findup-sync": "~0.3.0", - "grunt-known-options": "~1.1.0", - "nopt": "~3.0.6", - "resolve": "~1.1.0" + "findup-sync": "0.3.0", + "grunt-known-options": "1.1.0", + "nopt": "3.0.6", + "resolve": "1.1.7" } } } @@ -1056,10 +1056,10 @@ "integrity": "sha512-1m3+5QvDYfR1ltr8hjiaiNjddxGdQWcH0rw1iKKiQnF0+xtgTazirSTGu68RchPyh1OBng1bBUjLmX8q9NpoCw==", "dev": true, "requires": { - "colors": "~1.1.2", - "grunt-legacy-log-utils": "~2.0.0", - "hooker": "~0.2.3", - "lodash": "~4.17.5" + "colors": "1.1.2", + "grunt-legacy-log-utils": "2.0.1", + "hooker": "0.2.3", + "lodash": "4.17.10" }, "dependencies": { "lodash": { @@ -1076,8 +1076,8 @@ "integrity": "sha512-o7uHyO/J+i2tXG8r2bZNlVk20vlIFJ9IEYyHMCQGfWYru8Jv3wTqKZzvV30YW9rWEjq0eP3cflQ1qWojIe9VFA==", "dev": true, "requires": { - "chalk": "~2.4.1", - "lodash": "~4.17.10" + "chalk": "2.4.1", + "lodash": "4.17.10" }, "dependencies": { "ansi-styles": { @@ -1086,7 +1086,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "color-convert": "1.9.2" } }, "chalk": { @@ -1095,9 +1095,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.4.0" } }, "lodash": { @@ -1112,7 +1112,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -1123,13 +1123,13 @@ "integrity": "sha512-9zyA29w/fBe6BIfjGENndwoe1Uy31BIXxTH3s8mga0Z5Bz2Sp4UCjkeyv2tI449ymkx3x26B+46FV4fXEddl5A==", "dev": true, "requires": { - "async": "~1.5.2", - "exit": "~0.1.1", - "getobject": "~0.1.0", - "hooker": "~0.2.3", - "lodash": "~4.17.10", - "underscore.string": "~3.3.4", - "which": "~1.3.0" + "async": "1.5.2", + "exit": "0.1.2", + "getobject": "0.1.0", + "hooker": "0.2.3", + "lodash": "4.17.10", + "underscore.string": "3.3.4", + "which": "1.3.1" }, "dependencies": { "lodash": { @@ -1144,7 +1144,7 @@ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } } } @@ -1155,19 +1155,19 @@ "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=", "dev": true, "requires": { - "archy": "^1.0.0", - "chalk": "^1.0.0", - "deprecated": "^0.0.1", - "gulp-util": "^3.0.0", - "interpret": "^1.0.0", - "liftoff": "^2.1.0", - "minimist": "^1.1.0", - "orchestrator": "^0.3.0", - "pretty-hrtime": "^1.0.0", - "semver": "^4.1.0", - "tildify": "^1.0.0", - "v8flags": "^2.0.2", - "vinyl-fs": "^0.3.0" + "archy": "1.0.0", + "chalk": "1.1.3", + "deprecated": "0.0.1", + "gulp-util": "3.0.8", + "interpret": "1.0.3", + "liftoff": "2.3.0", + "minimist": "1.2.0", + "orchestrator": "0.3.8", + "pretty-hrtime": "1.0.3", + "semver": "4.3.6", + "tildify": "1.2.0", + "v8flags": "2.1.1", + "vinyl-fs": "0.3.14" }, "dependencies": { "semver": { @@ -1184,11 +1184,11 @@ "integrity": "sha512-DARK8rNMo4lHOFLGTiHEJdf19GuoBDHqGUaypz+fOhrvOs3iFO7ntdYtdpNxv+AzSJBx/JfypF0yEj9ks1IStQ==", "dev": true, "requires": { - "fancy-log": "^1.3.2", - "plugin-error": "^0.1.2", - "rimraf": "^2.6.2", - "through2": "^2.0.3", - "vinyl": "^2.1.0" + "fancy-log": "1.3.2", + "plugin-error": "0.1.2", + "rimraf": "2.6.2", + "through2": "2.0.3", + "vinyl": "2.2.0" }, "dependencies": { "clone": { @@ -1209,9 +1209,9 @@ "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=", "dev": true, "requires": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "time-stamp": "^1.0.0" + "ansi-gray": "0.1.1", + "color-support": "1.1.3", + "time-stamp": "1.1.0" } }, "replace-ext": { @@ -1226,12 +1226,12 @@ "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", "dev": true, "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" + "clone": "2.1.1", + "clone-buffer": "1.0.0", + "clone-stats": "1.0.0", + "cloneable-readable": "1.1.2", + "remove-trailing-separator": "1.0.2", + "replace-ext": "1.0.0" } } } @@ -1242,9 +1242,9 @@ "integrity": "sha1-Yz0WyV2IUEYorQJmVmPO5aR5M1M=", "dev": true, "requires": { - "concat-with-sourcemaps": "^1.0.0", - "through2": "^2.0.0", - "vinyl": "^2.0.0" + "concat-with-sourcemaps": "1.1.0", + "through2": "2.0.3", + "vinyl": "2.2.0" }, "dependencies": { "clone": { @@ -1271,12 +1271,12 @@ "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", "dev": true, "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" + "clone": "2.1.1", + "clone-buffer": "1.0.0", + "clone-stats": "1.0.0", + "cloneable-readable": "1.1.2", + "remove-trailing-separator": "1.0.2", + "replace-ext": "1.0.0" } } } @@ -1287,13 +1287,13 @@ "integrity": "sha1-h6s8ad05sg1dljVcZQStakR7HnI=", "dev": true, "requires": { - "clean-css": "^3.1.9", - "filesize": "~2.0.0", - "graceful-fs": "~4.1.4", - "gulp-rename": "~1.1.0", - "gulp-util": "~2.2.0", + "clean-css": "3.4.28", + "filesize": "2.0.4", + "graceful-fs": "4.1.11", + "gulp-rename": "1.1.0", + "gulp-util": "2.2.20", "map-stream": "0.0.4", - "temp-write": "~0.1.0" + "temp-write": "0.1.1" }, "dependencies": { "ansi-regex": { @@ -1314,11 +1314,11 @@ "integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=", "dev": true, "requires": { - "ansi-styles": "^1.1.0", - "escape-string-regexp": "^1.0.0", - "has-ansi": "^0.1.0", - "strip-ansi": "^0.3.0", - "supports-color": "^0.2.0" + "ansi-styles": "1.1.0", + "escape-string-regexp": "1.0.5", + "has-ansi": "0.1.0", + "strip-ansi": "0.3.0", + "supports-color": "0.2.0" } }, "gulp-util": { @@ -1327,14 +1327,14 @@ "integrity": "sha1-1xRuVyiRC9jwR6awseVJvCLb1kw=", "dev": true, "requires": { - "chalk": "^0.5.0", - "dateformat": "^1.0.7-1.2.3", - "lodash._reinterpolate": "^2.4.1", - "lodash.template": "^2.4.1", - "minimist": "^0.2.0", - "multipipe": "^0.1.0", - "through2": "^0.5.0", - "vinyl": "^0.2.1" + "chalk": "0.5.1", + "dateformat": "1.0.12", + "lodash._reinterpolate": "2.4.1", + "lodash.template": "2.4.1", + "minimist": "0.2.0", + "multipipe": "0.1.2", + "through2": "0.5.1", + "vinyl": "0.2.3" } }, "has-ansi": { @@ -1343,7 +1343,7 @@ "integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=", "dev": true, "requires": { - "ansi-regex": "^0.2.0" + "ansi-regex": "0.2.1" } }, "lodash._reinterpolate": { @@ -1358,9 +1358,9 @@ "integrity": "sha1-LOEsXghNsKV92l5dHu659dF1o7Q=", "dev": true, "requires": { - "lodash._escapehtmlchar": "~2.4.1", - "lodash._reunescapedhtml": "~2.4.1", - "lodash.keys": "~2.4.1" + "lodash._escapehtmlchar": "2.4.1", + "lodash._reunescapedhtml": "2.4.1", + "lodash.keys": "2.4.1" } }, "lodash.keys": { @@ -1369,9 +1369,9 @@ "integrity": "sha1-SN6kbfj/djKxDXBrissmWR4rNyc=", "dev": true, "requires": { - "lodash._isnative": "~2.4.1", - "lodash._shimkeys": "~2.4.1", - "lodash.isobject": "~2.4.1" + "lodash._isnative": "2.4.1", + "lodash._shimkeys": "2.4.1", + "lodash.isobject": "2.4.1" } }, "lodash.template": { @@ -1380,13 +1380,13 @@ "integrity": "sha1-nmEQB+32KRKal0qzxIuBez4c8g0=", "dev": true, "requires": { - "lodash._escapestringchar": "~2.4.1", - "lodash._reinterpolate": "~2.4.1", - "lodash.defaults": "~2.4.1", - "lodash.escape": "~2.4.1", - "lodash.keys": "~2.4.1", - "lodash.templatesettings": "~2.4.1", - "lodash.values": "~2.4.1" + "lodash._escapestringchar": "2.4.1", + "lodash._reinterpolate": "2.4.1", + "lodash.defaults": "2.4.1", + "lodash.escape": "2.4.1", + "lodash.keys": "2.4.1", + "lodash.templatesettings": "2.4.1", + "lodash.values": "2.4.1" } }, "lodash.templatesettings": { @@ -1395,8 +1395,8 @@ "integrity": "sha1-6nbHXRHrhtTb6JqDiTu4YZKaxpk=", "dev": true, "requires": { - "lodash._reinterpolate": "~2.4.1", - "lodash.escape": "~2.4.1" + "lodash._reinterpolate": "2.4.1", + "lodash.escape": "2.4.1" } }, "minimist": { @@ -1411,10 +1411,10 @@ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", + "core-util-is": "1.0.2", + "inherits": "2.0.3", "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "string_decoder": "0.10.31" } }, "strip-ansi": { @@ -1423,7 +1423,7 @@ "integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=", "dev": true, "requires": { - "ansi-regex": "^0.2.1" + "ansi-regex": "0.2.1" } }, "supports-color": { @@ -1438,8 +1438,8 @@ "integrity": "sha1-390BLrnHAOIyP9M084rGIqs3Lac=", "dev": true, "requires": { - "readable-stream": "~1.0.17", - "xtend": "~3.0.0" + "readable-stream": "1.0.34", + "xtend": "3.0.0" } }, "vinyl": { @@ -1448,7 +1448,7 @@ "integrity": "sha1-vKk4IJWC7FpJrVOKAPofEl5RMlI=", "dev": true, "requires": { - "clone-stats": "~0.0.1" + "clone-stats": "0.0.1" } }, "xtend": { @@ -1465,10 +1465,10 @@ "integrity": "sha1-1x/zHT2Kt8cP2UPnaAfyt2NEFb0=", "dev": true, "requires": { - "deep-extend": "^0.4.0", - "glob": "^5.0.12", - "gulp-shell": "^0.4.2", - "gulp-util": "^3.0.6" + "deep-extend": "0.4.2", + "glob": "5.0.15", + "gulp-shell": "0.4.3", + "gulp-util": "3.0.8" }, "dependencies": { "async": { @@ -1483,11 +1483,11 @@ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", "dev": true, "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^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" } }, "gulp-shell": { @@ -1496,10 +1496,10 @@ "integrity": "sha1-2Q8Y7KspTDyppvrh93borakKydg=", "dev": true, "requires": { - "async": "~1.4.2", - "gulp-util": "~3.0.5", - "lodash": "~3.10.1", - "through2": "~2.0.0" + "async": "1.4.2", + "gulp-util": "3.0.8", + "lodash": "3.10.1", + "through2": "2.0.3" } }, "lodash": { @@ -1516,7 +1516,7 @@ "integrity": "sha1-kwkKqvTThsB/IFOKaIjxXvunJ6E=", "dev": true, "requires": { - "map-stream": ">=0.0.4" + "map-stream": "0.0.4" } }, "gulp-shell": { @@ -1525,13 +1525,13 @@ "integrity": "sha512-f3m1WcS0o2B72/PGj1Jbv9zYR9rynBh/EQJv64n01xQUo7j7anols0eww9GG/WtDTzGVQLrupVDYkifRFnj5Zg==", "dev": true, "requires": { - "async": "^2.1.5", - "chalk": "^2.3.0", - "fancy-log": "^1.3.2", - "lodash": "^4.17.4", - "lodash.template": "^4.4.0", - "plugin-error": "^0.1.2", - "through2": "^2.0.3" + "async": "2.6.1", + "chalk": "2.4.1", + "fancy-log": "1.3.2", + "lodash": "4.17.4", + "lodash.template": "4.4.0", + "plugin-error": "0.1.2", + "through2": "2.0.3" }, "dependencies": { "ansi-styles": { @@ -1540,7 +1540,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "color-convert": "1.9.2" } }, "async": { @@ -1549,7 +1549,7 @@ "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", "dev": true, "requires": { - "lodash": "^4.17.10" + "lodash": "4.17.10" }, "dependencies": { "lodash": { @@ -1566,9 +1566,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.4.0" } }, "fancy-log": { @@ -1577,9 +1577,9 @@ "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=", "dev": true, "requires": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "time-stamp": "^1.0.0" + "ansi-gray": "0.1.1", + "color-support": "1.1.3", + "time-stamp": "1.1.0" } }, "lodash.template": { @@ -1588,8 +1588,8 @@ "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=", "dev": true, "requires": { - "lodash._reinterpolate": "~3.0.0", - "lodash.templatesettings": "^4.0.0" + "lodash._reinterpolate": "3.0.0", + "lodash.templatesettings": "4.1.0" } }, "lodash.templatesettings": { @@ -1598,7 +1598,7 @@ "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", "dev": true, "requires": { - "lodash._reinterpolate": "~3.0.0" + "lodash._reinterpolate": "3.0.0" } }, "supports-color": { @@ -1607,7 +1607,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -1618,13 +1618,13 @@ "integrity": "sha1-DfAzHXKg0wLj434QlIXd3zPG0co=", "dev": true, "requires": { - "gulplog": "^1.0.0", - "has-gulplog": "^0.1.0", - "lodash": "^4.13.1", - "make-error-cause": "^1.1.1", - "through2": "^2.0.0", - "uglify-js": "^3.0.5", - "vinyl-sourcemaps-apply": "^0.2.0" + "gulplog": "1.0.0", + "has-gulplog": "0.1.0", + "lodash": "4.17.4", + "make-error-cause": "1.2.2", + "through2": "2.0.3", + "uglify-js": "3.3.14", + "vinyl-sourcemaps-apply": "0.2.1" }, "dependencies": { "commander": { @@ -1645,8 +1645,8 @@ "integrity": "sha512-OY8VPQU25q09gQRbC+Ekk3xgEVBmYFEfVcgS47ksjTiNht2LmLlUkWutyi38ZsDSToJHwbe76kDGwmD226Z2Fg==", "dev": true, "requires": { - "commander": "~2.14.1", - "source-map": "~0.6.1" + "commander": "2.14.1", + "source-map": "0.6.1" } }, "vinyl-sourcemaps-apply": { @@ -1655,7 +1655,7 @@ "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", "dev": true, "requires": { - "source-map": "^0.5.1" + "source-map": "0.5.7" }, "dependencies": { "source-map": { @@ -1674,24 +1674,24 @@ "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", "dev": true, "requires": { - "array-differ": "^1.0.0", - "array-uniq": "^1.0.2", - "beeper": "^1.0.0", - "chalk": "^1.0.0", - "dateformat": "^2.0.0", - "fancy-log": "^1.1.0", - "gulplog": "^1.0.0", - "has-gulplog": "^0.1.0", - "lodash._reescape": "^3.0.0", - "lodash._reevaluate": "^3.0.0", - "lodash._reinterpolate": "^3.0.0", - "lodash.template": "^3.0.0", - "minimist": "^1.1.0", - "multipipe": "^0.1.2", - "object-assign": "^3.0.0", + "array-differ": "1.0.0", + "array-uniq": "1.0.3", + "beeper": "1.1.1", + "chalk": "1.1.3", + "dateformat": "2.0.0", + "fancy-log": "1.3.0", + "gulplog": "1.0.0", + "has-gulplog": "0.1.0", + "lodash._reescape": "3.0.0", + "lodash._reevaluate": "3.0.0", + "lodash._reinterpolate": "3.0.0", + "lodash.template": "3.6.2", + "minimist": "1.2.0", + "multipipe": "0.1.2", + "object-assign": "3.0.0", "replace-ext": "0.0.1", - "through2": "^2.0.0", - "vinyl": "^0.5.0" + "through2": "2.0.3", + "vinyl": "0.5.3" }, "dependencies": { "dateformat": { @@ -1714,7 +1714,7 @@ "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", "dev": true, "requires": { - "glogg": "^1.0.0" + "glogg": "1.0.0" } }, "has-ansi": { @@ -1723,7 +1723,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "has-flag": { @@ -1738,7 +1738,7 @@ "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", "dev": true, "requires": { - "sparkles": "^1.0.0" + "sparkles": "1.0.0" } }, "homedir-polyfill": { @@ -1747,7 +1747,7 @@ "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", "dev": true, "requires": { - "parse-passwd": "^1.0.0" + "parse-passwd": "1.0.0" } }, "hooker": { @@ -1768,7 +1768,7 @@ "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "dev": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": "2.1.2" } }, "indent-string": { @@ -1777,7 +1777,7 @@ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "dev": true, "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } }, "inflight": { @@ -1786,8 +1786,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -1819,8 +1819,8 @@ "integrity": "sha1-IN5p89uULvLYe5wto28XIjWxtes=", "dev": true, "requires": { - "is-relative": "^0.2.1", - "is-windows": "^0.2.0" + "is-relative": "0.2.1", + "is-windows": "0.2.0" } }, "is-arrayish": { @@ -1841,7 +1841,7 @@ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-dotfile": { @@ -1856,7 +1856,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "requires": { - "is-primitive": "^2.0.0" + "is-primitive": "2.0.0" } }, "is-extendable": { @@ -1877,7 +1877,7 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-glob": { @@ -1886,7 +1886,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "is-number": { @@ -1895,7 +1895,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-plain-object": { @@ -1904,7 +1904,7 @@ "integrity": "sha1-wVvz5LZrYtcu+vKSWEhmPsvGGbY=", "dev": true, "requires": { - "isobject": "^3.0.0" + "isobject": "3.0.0" }, "dependencies": { "isobject": { @@ -1933,7 +1933,7 @@ "integrity": "sha1-0n9MfVFtF1+2ENuEu+7yPDvJeqU=", "dev": true, "requires": { - "is-unc-path": "^0.1.1" + "is-unc-path": "0.1.2" } }, "is-unc-path": { @@ -1942,7 +1942,7 @@ "integrity": "sha1-arBTpyVzwQJQ/0FqOBTDUXivObk=", "dev": true, "requires": { - "unc-path-regex": "^0.1.0" + "unc-path-regex": "0.1.2" } }, "is-utf8": { @@ -1992,8 +1992,8 @@ "integrity": "sha1-A3fDgBfKvHMisNH7zSWkkWQfL74=", "dev": true, "requires": { - "argparse": "^1.0.2", - "esprima": "^2.6.0" + "argparse": "1.0.10", + "esprima": "2.7.3" } }, "kind-of": { @@ -2002,7 +2002,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.5" } }, "liftoff": { @@ -2011,15 +2011,15 @@ "integrity": "sha1-qY8v9nGD2Lp8+soQVIvX/wVQs4U=", "dev": true, "requires": { - "extend": "^3.0.0", - "findup-sync": "^0.4.2", - "fined": "^1.0.1", - "flagged-respawn": "^0.3.2", - "lodash.isplainobject": "^4.0.4", - "lodash.isstring": "^4.0.1", - "lodash.mapvalues": "^4.4.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" + "extend": "3.0.1", + "findup-sync": "0.4.3", + "fined": "1.1.0", + "flagged-respawn": "0.3.2", + "lodash.isplainobject": "4.0.6", + "lodash.isstring": "4.0.1", + "lodash.mapvalues": "4.6.0", + "rechoir": "0.6.2", + "resolve": "1.1.7" }, "dependencies": { "findup-sync": { @@ -2028,10 +2028,10 @@ "integrity": "sha1-QAQ5Kee8YK3wt/SCfExudaDeyhI=", "dev": true, "requires": { - "detect-file": "^0.1.0", - "is-glob": "^2.0.1", - "micromatch": "^2.3.7", - "resolve-dir": "^0.1.0" + "detect-file": "0.1.0", + "is-glob": "2.0.1", + "micromatch": "2.3.11", + "resolve-dir": "0.1.1" } } } @@ -2042,11 +2042,11 @@ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" } }, "lodash": { @@ -2079,7 +2079,7 @@ "integrity": "sha1-32fDu2t+jh6DGrSL+geVuSr+iZ0=", "dev": true, "requires": { - "lodash._htmlescapes": "~2.4.1" + "lodash._htmlescapes": "2.4.1" } }, "lodash._escapestringchar": { @@ -2142,8 +2142,8 @@ "integrity": "sha1-dHxPxAED6zu4oJduVx96JlnpO6c=", "dev": true, "requires": { - "lodash._htmlescapes": "~2.4.1", - "lodash.keys": "~2.4.1" + "lodash._htmlescapes": "2.4.1", + "lodash.keys": "2.4.1" }, "dependencies": { "lodash.keys": { @@ -2152,9 +2152,9 @@ "integrity": "sha1-SN6kbfj/djKxDXBrissmWR4rNyc=", "dev": true, "requires": { - "lodash._isnative": "~2.4.1", - "lodash._shimkeys": "~2.4.1", - "lodash.isobject": "~2.4.1" + "lodash._isnative": "2.4.1", + "lodash._shimkeys": "2.4.1", + "lodash.isobject": "2.4.1" } } } @@ -2171,7 +2171,7 @@ "integrity": "sha1-bpzJZm/wgfC1psl4uD4kLmlJ0gM=", "dev": true, "requires": { - "lodash._objecttypes": "~2.4.1" + "lodash._objecttypes": "2.4.1" } }, "lodash.defaults": { @@ -2180,8 +2180,8 @@ "integrity": "sha1-p+iIXwXmiFEUS24SqPNngCa8TFQ=", "dev": true, "requires": { - "lodash._objecttypes": "~2.4.1", - "lodash.keys": "~2.4.1" + "lodash._objecttypes": "2.4.1", + "lodash.keys": "2.4.1" }, "dependencies": { "lodash.keys": { @@ -2190,9 +2190,9 @@ "integrity": "sha1-SN6kbfj/djKxDXBrissmWR4rNyc=", "dev": true, "requires": { - "lodash._isnative": "~2.4.1", - "lodash._shimkeys": "~2.4.1", - "lodash.isobject": "~2.4.1" + "lodash._isnative": "2.4.1", + "lodash._shimkeys": "2.4.1", + "lodash.isobject": "2.4.1" } } } @@ -2203,7 +2203,7 @@ "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", "dev": true, "requires": { - "lodash._root": "^3.0.0" + "lodash._root": "3.0.1" } }, "lodash.isarguments": { @@ -2224,7 +2224,7 @@ "integrity": "sha1-Wi5H/mmVPx7mMafrof5k0tBlWPU=", "dev": true, "requires": { - "lodash._objecttypes": "~2.4.1" + "lodash._objecttypes": "2.4.1" } }, "lodash.isplainobject": { @@ -2245,9 +2245,9 @@ "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", "dev": true, "requires": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" + "lodash._getnative": "3.9.1", + "lodash.isarguments": "3.1.0", + "lodash.isarray": "3.0.4" } }, "lodash.mapvalues": { @@ -2268,15 +2268,15 @@ "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", "dev": true, "requires": { - "lodash._basecopy": "^3.0.0", - "lodash._basetostring": "^3.0.0", - "lodash._basevalues": "^3.0.0", - "lodash._isiterateecall": "^3.0.0", - "lodash._reinterpolate": "^3.0.0", - "lodash.escape": "^3.0.0", - "lodash.keys": "^3.0.0", - "lodash.restparam": "^3.0.0", - "lodash.templatesettings": "^3.0.0" + "lodash._basecopy": "3.0.1", + "lodash._basetostring": "3.0.1", + "lodash._basevalues": "3.0.0", + "lodash._isiterateecall": "3.0.9", + "lodash._reinterpolate": "3.0.0", + "lodash.escape": "3.2.0", + "lodash.keys": "3.1.2", + "lodash.restparam": "3.6.1", + "lodash.templatesettings": "3.1.1" } }, "lodash.templatesettings": { @@ -2285,8 +2285,8 @@ "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", "dev": true, "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.escape": "^3.0.0" + "lodash._reinterpolate": "3.0.0", + "lodash.escape": "3.2.0" } }, "lodash.values": { @@ -2295,7 +2295,7 @@ "integrity": "sha1-q/UUQ2s8twUAFieXjLzzCxKA7qQ=", "dev": true, "requires": { - "lodash.keys": "~2.4.1" + "lodash.keys": "2.4.1" }, "dependencies": { "lodash.keys": { @@ -2304,9 +2304,9 @@ "integrity": "sha1-SN6kbfj/djKxDXBrissmWR4rNyc=", "dev": true, "requires": { - "lodash._isnative": "~2.4.1", - "lodash._shimkeys": "~2.4.1", - "lodash.isobject": "~2.4.1" + "lodash._isnative": "2.4.1", + "lodash._shimkeys": "2.4.1", + "lodash.isobject": "2.4.1" } } } @@ -2317,8 +2317,8 @@ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" + "currently-unhandled": "0.4.1", + "signal-exit": "3.0.2" } }, "lru-cache": { @@ -2339,7 +2339,7 @@ "integrity": "sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0=", "dev": true, "requires": { - "make-error": "^1.2.0" + "make-error": "1.3.4" } }, "map-cache": { @@ -2366,16 +2366,16 @@ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" + "camelcase-keys": "2.1.0", + "decamelize": "1.2.0", + "loud-rejection": "1.6.0", + "map-obj": "1.0.1", + "minimist": "1.2.0", + "normalize-package-data": "2.4.0", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "redent": "1.0.0", + "trim-newlines": "1.0.0" } }, "micromatch": { @@ -2384,19 +2384,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.3" } }, "minimatch": { @@ -2405,7 +2405,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.8" } }, "minimist": { @@ -2456,9 +2456,9 @@ "resolved": "https://registry.npmjs.org/node-rest-client/-/node-rest-client-2.5.0.tgz", "integrity": "sha1-PFPq26Kyw7Ok3yui9kaswj2KBwE=", "requires": { - "debug": "~2.2.0", - "follow-redirects": ">=1.2.0", - "xml2js": ">=0.2.4" + "debug": "2.2.0", + "follow-redirects": "1.5.1", + "xml2js": "0.4.19" } }, "nopt": { @@ -2467,7 +2467,7 @@ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "dev": true, "requires": { - "abbrev": "1" + "abbrev": "1.1.1" } }, "normalize-package-data": { @@ -2476,10 +2476,10 @@ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.7.1", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" } }, "normalize-path": { @@ -2488,7 +2488,7 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "^1.0.1" + "remove-trailing-separator": "1.0.2" } }, "number-is-nan": { @@ -2509,10 +2509,10 @@ "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", "dev": true, "requires": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" + "array-each": "1.0.1", + "array-slice": "1.0.0", + "for-own": "1.0.0", + "isobject": "3.0.0" }, "dependencies": { "for-own": { @@ -2521,7 +2521,7 @@ "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", "dev": true, "requires": { - "for-in": "^1.0.1" + "for-in": "1.0.2" } }, "isobject": { @@ -2538,8 +2538,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" + "for-own": "0.1.5", + "is-extendable": "0.1.1" } }, "object.pick": { @@ -2548,7 +2548,7 @@ "integrity": "sha1-tTkr7peC2m2ft9avr1OXefEjTCs=", "dev": true, "requires": { - "isobject": "^2.1.0" + "isobject": "2.1.0" } }, "once": { @@ -2557,7 +2557,7 @@ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "orchestrator": { @@ -2566,9 +2566,9 @@ "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", "dev": true, "requires": { - "end-of-stream": "~0.1.5", - "sequencify": "~0.0.7", - "stream-consume": "~0.1.0" + "end-of-stream": "0.1.5", + "sequencify": "0.0.7", + "stream-consume": "0.1.0" } }, "ordered-read-streams": { @@ -2589,9 +2589,9 @@ "integrity": "sha1-FZ1hVdQ5BNFsEO9piRHaHpGWm3M=", "dev": true, "requires": { - "is-absolute": "^0.2.3", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" + "is-absolute": "0.2.6", + "map-cache": "0.2.2", + "path-root": "0.1.1" } }, "parse-glob": { @@ -2600,10 +2600,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true, "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" } }, "parse-json": { @@ -2612,7 +2612,7 @@ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.2" } }, "parse-passwd": { @@ -2627,7 +2627,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "^2.0.0" + "pinkie-promise": "2.0.1" } }, "path-is-absolute": { @@ -2642,7 +2642,7 @@ "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", "dev": true, "requires": { - "path-root-regex": "^0.1.0" + "path-root-regex": "0.1.2" } }, "path-root-regex": { @@ -2657,9 +2657,9 @@ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "paypal-permissions-sdk": { @@ -2667,7 +2667,7 @@ "resolved": "https://registry.npmjs.org/paypal-permissions-sdk/-/paypal-permissions-sdk-1.0.10.tgz", "integrity": "sha512-cNiQnDsrvWMuEwigR1lh+Ty4Y5J3ducRmbIQXH2K9oP8CjW3Tkf7cVk0IOBPH2a6N4D4tjGM4WDhMl68of1Z0A==", "requires": { - "node-rest-client": "^2.0.1" + "node-rest-client": "2.5.0" } }, "pify": { @@ -2688,7 +2688,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "plugin-error": { @@ -2697,11 +2697,11 @@ "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", "dev": true, "requires": { - "ansi-cyan": "^0.1.1", - "ansi-red": "^0.1.1", - "arr-diff": "^1.0.1", - "arr-union": "^2.0.1", - "extend-shallow": "^1.1.2" + "ansi-cyan": "0.1.1", + "ansi-red": "0.1.1", + "arr-diff": "1.1.0", + "arr-union": "2.1.0", + "extend-shallow": "1.1.4" }, "dependencies": { "arr-diff": { @@ -2710,8 +2710,8 @@ "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", "dev": true, "requires": { - "arr-flatten": "^1.0.1", - "array-slice": "^0.2.3" + "arr-flatten": "1.0.3", + "array-slice": "0.2.3" } }, "array-slice": { @@ -2751,8 +2751,8 @@ "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", "dev": true, "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "is-number": "3.0.0", + "kind-of": "4.0.0" }, "dependencies": { "is-number": { @@ -2761,7 +2761,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -2770,7 +2770,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.5" } } } @@ -2781,7 +2781,7 @@ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.5" } } } @@ -2792,9 +2792,9 @@ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" } }, "read-pkg-up": { @@ -2803,8 +2803,8 @@ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "find-up": "1.1.2", + "read-pkg": "1.1.0" } }, "readable-stream": { @@ -2813,10 +2813,10 @@ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "dev": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", + "core-util-is": "1.0.2", + "inherits": "2.0.3", "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "string_decoder": "0.10.31" } }, "rechoir": { @@ -2825,7 +2825,7 @@ "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "dev": true, "requires": { - "resolve": "^1.1.6" + "resolve": "1.1.7" } }, "redent": { @@ -2834,8 +2834,8 @@ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "dev": true, "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" + "indent-string": "2.1.0", + "strip-indent": "1.0.1" } }, "regex-cache": { @@ -2844,8 +2844,8 @@ "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", "dev": true, "requires": { - "is-equal-shallow": "^0.1.3", - "is-primitive": "^2.0.0" + "is-equal-shallow": "0.1.3", + "is-primitive": "2.0.0" } }, "remove-trailing-separator": { @@ -2872,7 +2872,7 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "^1.0.0" + "is-finite": "1.0.2" } }, "replace-ext": { @@ -2893,8 +2893,8 @@ "integrity": "sha1-shklmlYC+sXFxJatiUpujMQwJh4=", "dev": true, "requires": { - "expand-tilde": "^1.2.2", - "global-modules": "^0.2.3" + "expand-tilde": "1.2.2", + "global-modules": "0.2.3" } }, "restricted-input": { @@ -2902,7 +2902,7 @@ "resolved": "https://registry.npmjs.org/restricted-input/-/restricted-input-1.2.7.tgz", "integrity": "sha1-4SmPX9jEMMwtjmuxF1UkAjIFyzQ=", "requires": { - "@braintree/browser-detection": "^1.5.0" + "@braintree/browser-detection": "1.7.0" } }, "rimraf": { @@ -2911,7 +2911,7 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "^7.0.5" + "glob": "7.0.6" } }, "safe-buffer": { @@ -2973,8 +2973,8 @@ "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "dev": true, "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, "spdx-exceptions": { @@ -2989,8 +2989,8 @@ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" } }, "spdx-license-ids": { @@ -3023,7 +3023,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-bom": { @@ -3032,7 +3032,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "^0.2.0" + "is-utf8": "0.2.1" } }, "strip-indent": { @@ -3041,7 +3041,7 @@ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "dev": true, "requires": { - "get-stdin": "^4.0.1" + "get-stdin": "4.0.1" } }, "supports-color": { @@ -3056,8 +3056,8 @@ "integrity": "sha1-C2Rng43Xf79/YqDJPah5cy/9qTI=", "dev": true, "requires": { - "graceful-fs": "~2.0.0", - "tempfile": "~0.1.2" + "graceful-fs": "2.0.3", + "tempfile": "0.1.3" }, "dependencies": { "graceful-fs": { @@ -3074,7 +3074,7 @@ "integrity": "sha1-fWtxAEcznTn4RzJ6BW2t8YMQMBA=", "dev": true, "requires": { - "uuid": "~1.4.0" + "uuid": "1.4.2" } }, "through2": { @@ -3083,8 +3083,8 @@ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "dev": true, "requires": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" + "readable-stream": "2.3.2", + "xtend": "4.0.1" }, "dependencies": { "isarray": { @@ -3099,13 +3099,13 @@ "integrity": "sha1-WgTfBeT1f+Pw3Gj90R3FyXx+b00=", "dev": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "safe-buffer": "~5.1.0", - "string_decoder": "~1.0.0", - "util-deprecate": "~1.0.1" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" } }, "string_decoder": { @@ -3114,7 +3114,7 @@ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "dev": true, "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.1" } } } @@ -3125,7 +3125,7 @@ "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", "dev": true, "requires": { - "os-homedir": "^1.0.0" + "os-homedir": "1.0.2" } }, "time-stamp": { @@ -3152,8 +3152,8 @@ "integrity": "sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s=", "dev": true, "requires": { - "sprintf-js": "^1.0.3", - "util-deprecate": "^1.0.2" + "sprintf-js": "1.1.1", + "util-deprecate": "1.0.2" } }, "unique-stream": { @@ -3186,7 +3186,7 @@ "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "dev": true, "requires": { - "user-home": "^1.1.1" + "user-home": "1.1.1" } }, "validate-npm-package-license": { @@ -3195,8 +3195,8 @@ "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "dev": true, "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "vinyl": { @@ -3205,8 +3205,8 @@ "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", "dev": true, "requires": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", + "clone": "1.0.2", + "clone-stats": "0.0.1", "replace-ext": "0.0.1" } }, @@ -3216,14 +3216,14 @@ "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=", "dev": true, "requires": { - "defaults": "^1.0.0", - "glob-stream": "^3.1.5", - "glob-watcher": "^0.0.6", - "graceful-fs": "^3.0.0", - "mkdirp": "^0.5.0", - "strip-bom": "^1.0.0", - "through2": "^0.6.1", - "vinyl": "^0.4.0" + "defaults": "1.0.3", + "glob-stream": "3.1.18", + "glob-watcher": "0.0.6", + "graceful-fs": "3.0.11", + "mkdirp": "0.5.1", + "strip-bom": "1.0.0", + "through2": "0.6.5", + "vinyl": "0.4.6" }, "dependencies": { "clone": { @@ -3238,7 +3238,7 @@ "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", "dev": true, "requires": { - "natives": "^1.1.0" + "natives": "1.1.0" } }, "readable-stream": { @@ -3247,10 +3247,10 @@ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", + "core-util-is": "1.0.2", + "inherits": "2.0.3", "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "string_decoder": "0.10.31" } }, "strip-bom": { @@ -3259,8 +3259,8 @@ "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", "dev": true, "requires": { - "first-chunk-stream": "^1.0.0", - "is-utf8": "^0.2.0" + "first-chunk-stream": "1.0.0", + "is-utf8": "0.2.1" } }, "through2": { @@ -3269,8 +3269,8 @@ "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", "dev": true, "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" + "readable-stream": "1.0.34", + "xtend": "4.0.1" } }, "vinyl": { @@ -3279,8 +3279,8 @@ "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", "dev": true, "requires": { - "clone": "^0.2.0", - "clone-stats": "^0.0.1" + "clone": "0.2.0", + "clone-stats": "0.0.1" } } } @@ -3291,7 +3291,7 @@ "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", "dev": true, "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "wrappy": { @@ -3305,8 +3305,8 @@ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~9.0.1" + "sax": "1.2.4", + "xmlbuilder": "9.0.7" } }, "xmlbuilder": { diff --git a/Yavsc/package.json b/Yavsc/package.json index d2db545f..02ccb616 100644 --- a/Yavsc/package.json +++ b/Yavsc/package.json @@ -1,26 +1,26 @@ { - "name": "yavsc", - "version": "1.0.1", - "description": "Yet Another Very Small Company", - "repository": { - "type": "Git", - "url": "https://github.com/pazof/yavsc" - }, - "license": "GPL-3.0", - "devDependencies": { - "grunt": "^1.0.2", - "gulp": "^3.9.1", - "gulp-clean": "^0.4.0", - "gulp-concat": "2.6.1", - "gulp-cssmin": "^0.2.0", - "gulp-dnx-tasks": "^1.0.0-beta7", - "gulp-shell": "^0.6.5", - "gulp-uglify": "^3.0.0", - "rimraf": "^2.6.2" - }, - "dependencies": { - "ansi-to-html": "^0.6.4", - "braintree-web": "^3.31.0", - "paypal-permissions-sdk": "^1.0.10" - } + "name": "yavsc", + "version": "1.0.1", + "description": "Yet Another Very Small Company", + "repository": { + "type": "Git", + "url": "https://github.com/pazof/yavsc" + }, + "license": "GPL-3.0", + "devDependencies": { + "grunt": "^1.0.2", + "gulp": "^3.9.1", + "gulp-clean": "^0.4.0", + "gulp-concat": "2.6.1", + "gulp-cssmin": "^0.2.0", + "gulp-dnx-tasks": "^1.0.0-beta7", + "gulp-shell": "^0.6.5", + "gulp-uglify": "^3.0.0", + "rimraf": "^2.6.2" + }, + "dependencies": { + "ansi-to-html": "^0.6.4", + "braintree-web": "^3.31.0", + "paypal-permissions-sdk": "^1.0.10" + } } diff --git a/cli/project.json b/cli/project.json index e97893be..45f1d013 100644 --- a/cli/project.json +++ b/cli/project.json @@ -29,6 +29,7 @@ "Microsoft.Extensions.Configuration.Abstractions": "1.0.0-rc1-final", "Microsoft.Extensions.Configuration.FileProviderExtensions": "1.0.0-rc1-final", "Microsoft.Extensions.Configuration.UserSecrets": "1.0.0-rc1-final", + "Microsoft.Extensions.CommandLineUtils": "1.1.1", "Microsoft.Extensions.DependencyInjection": "1.0.0-rc1-final", "Microsoft.Extensions.DependencyInjection.Abstractions": "1.0.0-rc1-final", "Microsoft.Extensions.Globalization.CultureInfoCache": "1.0.0-rc1-final", diff --git a/cli/src/Authentication/AuthException.cs b/cli/src/Authentication/AuthException.cs deleted file mode 100644 index 167f754a..00000000 --- a/cli/src/Authentication/AuthException.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System; -using System.Runtime.Serialization; - -namespace cli.Authentication -{ - [Serializable] - internal class AuthException : Exception - { - private object p; - - public AuthException() - { - } - - public AuthException(object p) - { - this.p = p; - } - - public AuthException(string message) : base(message) - { - } - - public AuthException(string message, Exception innerException) : base(message, innerException) - { - } - - protected AuthException(SerializationInfo info, StreamingContext context) : base(info, context) - { - } - } -} \ No newline at end of file diff --git a/cli/src/Startup.cs b/cli/src/Startup.cs index 676a50ae..afb67e10 100644 --- a/cli/src/Startup.cs +++ b/cli/src/Startup.cs @@ -61,6 +61,7 @@ namespace cli services.AddTransient(typeof(RazorEngineHost), typeof(YaRazorEngineHost)); services.AddEntityFramework().AddNpgsql().AddDbContext(); services.AddTransient((s) => new RazorTemplateEngine(s.GetService())); + // services.AddTransient<,>() services.AddLogging(); services.AddTransient(); services.AddLocalization(options => diff --git a/test/Makefile b/test/Makefile index 8a1f7913..5da264b7 100644 --- a/test/Makefile +++ b/test/Makefile @@ -6,16 +6,24 @@ all: test project.lock.json: project.json dnu restore -$(BINTARGET): project.lock.json +../Yavsc/bin/$(CONFIGURATION)/dnx451/Yavsc.dll: + make -C ../Yavsc + +../Yavsc.Abstract/bin/$(CONFIGURATION)/dnx451/Yavsc.Abstract.dll: + make -C ../Yavsc.Abstract + +../Yavsc.Server/bin/$(CONFIGURATION)/dnx451/Yavsc.Server.dll: + make -C ../Yavsc.Server + +$(BINTARGET): project.lock.json ../Yavsc/bin/$(CONFIGURATION)/dnx451/Yavsc.dll ../Yavsc.Abstract/bin/$(CONFIGURATION)/dnx451/Yavsc.Abstract.dll ../Yavsc.Server/bin/$(CONFIGURATION)/dnx451/Yavsc.Server.dll dnu build --configuration $(CONFIGURATION) - breaking: - dnx test -class test.YavscWorkInProgress.GitClone + dnx test -trait noregres=no test: $(BINTARGET) - ASPNET_ENV=Development dnx test -maxthreads 1 + ASPNET_ENV=Development dnx test -maxthreads 1 -trait noregres=yes .PHONY: test diff --git a/test/appsettings.json b/test/appsettings.json index 3f7a58b9..9810ac0a 100644 --- a/test/appsettings.json +++ b/test/appsettings.json @@ -7,7 +7,28 @@ "HomeViewName": "Home", "FavIcon": "/favicon.ico", "Icon": "/images/yavsc.png", - "GitRepository": "testingrepo" + "GitRepository": "testingrepo", + "Owner": { + "Name": "Paul", + "EMail": "paul@pschneider.fr", + "PostalAddress": { + "Street1": "2 Blv A. Briand", + "Street2": "Apt 284 - Bat V", + "PostalCode": "92150", + "City": "Suresnes", + "State": "France", + "Province": null + } + }, + "Admin": { + "Name": "Paul", + "EMail": "contact@pschneider.fr" + } + }, + "Smtp": { + "Host": "localhost", + "Port": 25, + "EnableSSL": false }, "Logging": { "IncludeScopes": true, diff --git a/test/npm-debug.log b/test/npm-debug.log new file mode 100644 index 00000000..eb708d12 --- /dev/null +++ b/test/npm-debug.log @@ -0,0 +1,20 @@ +0 info it worked if it ends with ok +1 verbose cli [ 'C:\\Programs\\nodejs\\node.exe', +1 verbose cli 'C:\\Programs\\nodejs\\node_modules\\npm\\bin\\npm-cli.js', +1 verbose cli 'install' ] +2 info using npm@1.4.9 +3 info using node@v8.11.3 +4 error install Couldn't read dependencies +5 error package.json ENOENT: no such file or directory, open 'C:\Users\paul\Documents\GitHub\yavsc\test\package.json' +5 error package.json This is most likely not a problem with npm itself. +5 error package.json npm can't find a package.json file in your current directory. +6 error System Windows_NT 6.1.7601 +7 error command "C:\\Programs\\nodejs\\node.exe" "C:\\Programs\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" +8 error cwd C:\Users\paul\Documents\GitHub\yavsc\test +9 error node -v v8.11.3 +10 error npm -v 1.4.9 +11 error path C:\Users\paul\Documents\GitHub\yavsc\test\package.json +12 error syscall open +13 error code ENOPACKAGEJSON +14 error errno -4058 +15 verbose exit [ -4058, true ] diff --git a/test/src/YavscDnxUnitTests.cs b/test/src/YavscDnxUnitTests.cs index e39d71bb..071560db 100755 --- a/test/src/YavscDnxUnitTests.cs +++ b/test/src/YavscDnxUnitTests.cs @@ -7,6 +7,8 @@ using Yavsc.Helpers; namespace test { + + [Trait("noregres", "yes")] public class YavscDnxUnitTests { [Fact] @@ -43,7 +45,7 @@ namespace test public static Stream GetStream(StreamReader reader) { - var procStart = new ProcessStartInfo("/usr/bin/nodejs", "node_modules/ansi-to-html/bin/ansi-to-html"); + var procStart = new ProcessStartInfo("node", "node_modules/ansi-to-html/bin/ansi-to-html"); procStart.UseShellExecute = false; procStart.RedirectStandardInput = true; procStart.RedirectStandardOutput = true; diff --git a/test/src/YavscMandatory.cs b/test/src/YavscMandatory.cs index d141f4b5..d6f24f0c 100755 --- a/test/src/YavscMandatory.cs +++ b/test/src/YavscMandatory.cs @@ -20,6 +20,8 @@ using Yavsc.Helpers; using Microsoft.Data.Entity; using Xunit.Abstractions; using System.IO; +using Yavsc.Lib; +using System.Linq; namespace test { @@ -35,33 +37,30 @@ namespace test } [Collection("Yavsc mandatory success story")] - public class YavscMandatory: BaseTestContext + [Trait("noregres", "yes")] + public class YavscMandatory: BaseTestContext, IClassFixture { - private readonly ITestOutputHelper output; - public YavscMandatory(ITestOutputHelper output) + private readonly ITestOutputHelper _output; + ServerSideFixture _serverFixture; + public YavscMandatory(ITestOutputHelper output, ServerSideFixture serverFixture) { - this.output = output; + this._output = output; + this._serverFixture = serverFixture; } [Fact] - void TestStartNodeJsansitohtml() + public void GitClone() { - var procStart = new ProcessStartInfo("env", "/usr/bin/nodejs node_modules/ansi-to-html/bin/ansi-to-html"); - procStart.UseShellExecute = false; - procStart.RedirectStandardInput = true; - procStart.RedirectStandardOutput = true; - procStart.RedirectStandardError = true; - var proc = Process.Start(procStart); + + var dbc = _serverFixture._app.Services.GetService(typeof(ApplicationDbContext)) as ApplicationDbContext; - proc.StandardInput.WriteLine("\x001b[30mblack\x1b[37mwhite"); - proc.StandardInput.Close(); - while (!proc.StandardOutput.EndOfStream) - { - output.WriteLine(proc.StandardOutput.ReadLine()); - } + var firstProject = dbc.Projects.Include(p=>p.Repository).FirstOrDefault(); + Assert.NotNull (firstProject); + + var clone = new GitClone(_serverFixture._siteSetup.GitRepository); + clone.Launch(firstProject); } - // actually uses node's ansi-to-html [Fact] void AnsiToHtml() { @@ -74,7 +73,7 @@ namespace test using (var reader = new StreamReader(encoded)) { var txt = reader.ReadToEnd(); - output.WriteLine(txt); + _output.WriteLine(txt); } } @@ -109,8 +108,8 @@ namespace test public void AConfigurationRoot() { var builder = new ConfigurationBuilder(); - builder.AddJsonFile(Path.Combine(testprojectAssetPath, "appsettings.json"), false); - builder.AddJsonFile(Path.Combine(testprojectAssetPath, "appsettings.Development.json"), true); + builder.AddJsonFile( "appsettings.json", false); + builder.AddJsonFile( "appsettings.Development.json", true); configurationRoot = builder.Build(); } diff --git a/test/src/YavscWorkInProgress.cs b/test/src/YavscWorkInProgress.cs index d1511d38..f003e613 100644 --- a/test/src/YavscWorkInProgress.cs +++ b/test/src/YavscWorkInProgress.cs @@ -3,7 +3,10 @@ // paul 21/06/2018 10:11 20182018 6 21 // */ using System; +using System.Collections.Generic; using System.Linq; +using System.Net; +using System.Threading.Tasks; using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder.Internal; using Microsoft.Data.Entity; @@ -14,15 +17,19 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Localization; using Microsoft.Extensions.OptionsModel; using Microsoft.Extensions.PlatformAbstractions; +using Newtonsoft.Json; using Xunit; using Xunit.Abstractions; using Yavsc; +using Yavsc.Authentication; using Yavsc.Lib; using Yavsc.Models; +using static OAuth.AspNet.AuthServer.Constants; namespace test { [Collection("Yavsc Work In Progress")] + [Trait("noregres", "no")] public class YavscWorkInProgress : BaseTestContext, IClassFixture { @@ -34,17 +41,59 @@ namespace test _serverFixture = serverFixture; } - [Fact] - public void GitClone() + + + [Theory] + [InlineData("d9be5e97-c19d-42e4-b444-0e65863b19e1","blouh","profile", + "http://localhost:5000/authorize", + "http://localhost:5000/oauth/success", + "http://localhost:5000/token", + "joe", + "badpass" + )] + public async Task TestUserMayLogin + ( + string clientId, + string clientSecret, + string scope, + string authorizeUrl, + string redirectUrl, + string accessTokenUrl, + string login, + string pass + ) { - - var dbc = _serverFixture._app.Services.GetService(typeof(ApplicationDbContext)) as ApplicationDbContext; + try { + var r = new Uri(redirectUrl); + var oauthor =new OAuthenticator( clientId, clientSecret, scope, + new Uri( authorizeUrl) , new Uri(redirectUrl) , new Uri(accessTokenUrl)); + var query = new Dictionary(); + query[Parameters.Username]=login; + query[Parameters.Password]=pass; + query[Parameters.ClientId]=clientId; + query[Parameters.ClientSecret]=clientSecret; + query[Parameters.Scope]=scope; + query[Parameters.GrantType]=GrantTypes.Password; + var result = await oauthor.RequestAccessTokenAsync(query); + Console.WriteLine(">> Got an output"); + Console.WriteLine(Parameters.AccessToken+": "+result[Parameters.AccessToken]); + Console.WriteLine(Parameters.TokenType+": "+result[Parameters.TokenType]); + Console.WriteLine(Parameters.ExpiresIn+": "+result[Parameters.ExpiresIn]); + Console.WriteLine(Parameters.RefreshToken+": "+result[Parameters.RefreshToken]); - var firstProject = dbc.Projects.Include(p=>p.Repository).FirstOrDefault(); - Assert.NotNull (firstProject); - - var clone = new GitClone(_serverFixture._siteSetup.GitRepository); - clone.Launch(firstProject); + } + catch (Exception ex) + { + var webex = ex as WebException; + if (webex!=null && webex.Status == (WebExceptionStatus)400) + { + if (login == "joe") { + Console.WriteLine("Bad pass joe!"); + return; + } + } + throw; + } } } } diff --git a/versioning.mk b/versioning.mk index eb1840f4..803f3700 100644 --- a/versioning.mk +++ b/versioning.mk @@ -8,4 +8,4 @@ DESTDIR=$(SOLUTIONDIR)/build MAKE=make NUGETSOURCE=$(HOME)/Nupkgs VERSION=1.0.5-rc$(rc_num) -CONFIGURATION=Release +CONFIGURATION=Debug