From 98340c25b0db10cca778c5afa73461d8d454af18 Mon Sep 17 00:00:00 2001 From: ankit kumar Date: Wed, 13 Feb 2019 18:31:49 +0530 Subject: [PATCH 1/2] back end --- ankit/.gitignore | 7 + ankit/Login.css | 69 + ankit/ankitdetail page.html | 89 + ankit/ankitdetail.css | 100 + ankit/game.png | Bin 0 -> 65097 bytes ankit/index.html | 63 + ankit/ticTac1/ticTac1.sln | 22 + .../ticTac1/ticTac1/App_Start/WebApiConfig.cs | 24 + .../ticTac1/ApplicationInsights.config | 84 + ankit/ticTac1/ticTac1/Global.asax | 1 + ankit/ticTac1/ticTac1/Global.asax.cs | 17 + .../ticTac1/Properties/AssemblyInfo.cs | 35 + ankit/ticTac1/ticTac1/Web.Debug.config | 30 + ankit/ticTac1/ticTac1/Web.Release.config | 31 + ankit/ticTac1/ticTac1/Web.config | 61 + .../ticTac1/controllers/TicgamesController.cs | 133 + ankit/ticTac1/ticTac1/model/Ticgame.cs | 22 + .../ticTac1/ticTac1/model/ticTac1.Context.cs | 30 + .../ticTac1/ticTac1/model/ticTac1.Context.tt | 636 +++ .../ticTac1/ticTac1/model/ticTac1.Designer.cs | 10 + ankit/ticTac1/ticTac1/model/ticTac1.cs | 9 + ankit/ticTac1/ticTac1/model/ticTac1.edmx | 76 + .../ticTac1/model/ticTac1.edmx.diagram | 12 + ankit/ticTac1/ticTac1/model/ticTac1.tt | 733 ++++ ankit/ticTac1/ticTac1/packages.config | 21 + .../ticTac1/scripts/ai.0.22.9-build00167.js | 3524 +++++++++++++++++ .../scripts/ai.0.22.9-build00167.min.js | 1 + ankit/ticTac1/ticTac1/ticTac1.csproj | 237 ++ ankit/ticTac1/ticTac1/ticTac1.csproj.user | 38 + ankit/toc.css | 29 + ankit/toc.html | 25 + ankit/toc.js | 44 + ankit/webs.jpg | Bin 0 -> 287502 bytes 33 files changed, 6213 insertions(+) create mode 100644 ankit/.gitignore create mode 100644 ankit/Login.css create mode 100644 ankit/ankitdetail page.html create mode 100644 ankit/ankitdetail.css create mode 100644 ankit/game.png create mode 100644 ankit/index.html create mode 100644 ankit/ticTac1/ticTac1.sln create mode 100644 ankit/ticTac1/ticTac1/App_Start/WebApiConfig.cs create mode 100644 ankit/ticTac1/ticTac1/ApplicationInsights.config create mode 100644 ankit/ticTac1/ticTac1/Global.asax create mode 100644 ankit/ticTac1/ticTac1/Global.asax.cs create mode 100644 ankit/ticTac1/ticTac1/Properties/AssemblyInfo.cs create mode 100644 ankit/ticTac1/ticTac1/Web.Debug.config create mode 100644 ankit/ticTac1/ticTac1/Web.Release.config create mode 100644 ankit/ticTac1/ticTac1/Web.config create mode 100644 ankit/ticTac1/ticTac1/controllers/TicgamesController.cs create mode 100644 ankit/ticTac1/ticTac1/model/Ticgame.cs create mode 100644 ankit/ticTac1/ticTac1/model/ticTac1.Context.cs create mode 100644 ankit/ticTac1/ticTac1/model/ticTac1.Context.tt create mode 100644 ankit/ticTac1/ticTac1/model/ticTac1.Designer.cs create mode 100644 ankit/ticTac1/ticTac1/model/ticTac1.cs create mode 100644 ankit/ticTac1/ticTac1/model/ticTac1.edmx create mode 100644 ankit/ticTac1/ticTac1/model/ticTac1.edmx.diagram create mode 100644 ankit/ticTac1/ticTac1/model/ticTac1.tt create mode 100644 ankit/ticTac1/ticTac1/packages.config create mode 100644 ankit/ticTac1/ticTac1/scripts/ai.0.22.9-build00167.js create mode 100644 ankit/ticTac1/ticTac1/scripts/ai.0.22.9-build00167.min.js create mode 100644 ankit/ticTac1/ticTac1/ticTac1.csproj create mode 100644 ankit/ticTac1/ticTac1/ticTac1.csproj.user create mode 100644 ankit/toc.css create mode 100644 ankit/toc.html create mode 100644 ankit/toc.js create mode 100644 ankit/webs.jpg diff --git a/ankit/.gitignore b/ankit/.gitignore new file mode 100644 index 0000000..b3f7b1d --- /dev/null +++ b/ankit/.gitignore @@ -0,0 +1,7 @@ +/ticTac1/.vs + +/ticTac1/packages + +/ticTac1/ticTac1/bin + +/ticTac1/ticTac1/obj \ No newline at end of file diff --git a/ankit/Login.css b/ankit/Login.css new file mode 100644 index 0000000..f34a2d3 --- /dev/null +++ b/ankit/Login.css @@ -0,0 +1,69 @@ + + + + + + + + + + + + +
+
+ +
+
+ +
+ +

Sign up

+

Please fill this form to create an account.

+
+ Name :          
+ User_Name :
+ Password :  
+ Re-Password :
+ + Remember me
+

By creating an account you agree to our Terms & Privacy.

+
+
+ +
+ +
+ +
+
+ +
+ + + diff --git a/ankit/ankitdetail.css b/ankit/ankitdetail.css new file mode 100644 index 0000000..ae221dc --- /dev/null +++ b/ankit/ankitdetail.css @@ -0,0 +1,100 @@ + + + + + + + + + + +
+

TIC TOC

+

Sign in

+
+Email :        
+Password :  
+ + Remember me
+

By creating an account you agree to our Terms & Privacy.

+ + + + diff --git a/ankit/ticTac1/ticTac1.sln b/ankit/ticTac1/ticTac1.sln new file mode 100644 index 0000000..02b1914 --- /dev/null +++ b/ankit/ticTac1/ticTac1.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Express 14 for Web +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ticTac1", "ticTac1\ticTac1.csproj", "{3BE5777B-38FA-4FCB-8BC1-53D363008CBB}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3BE5777B-38FA-4FCB-8BC1-53D363008CBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3BE5777B-38FA-4FCB-8BC1-53D363008CBB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3BE5777B-38FA-4FCB-8BC1-53D363008CBB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3BE5777B-38FA-4FCB-8BC1-53D363008CBB}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/ankit/ticTac1/ticTac1/App_Start/WebApiConfig.cs b/ankit/ticTac1/ticTac1/App_Start/WebApiConfig.cs new file mode 100644 index 0000000..740fd20 --- /dev/null +++ b/ankit/ticTac1/ticTac1/App_Start/WebApiConfig.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web.Http; +using System.Web.Http.Cors; + +namespace ticTac1 +{ + public static class WebApiConfig + { + public static void Register(HttpConfiguration config) + { + var cors = new EnableCorsAttribute("*", "*", "*"); + config.EnableCors(cors); + config.MapHttpAttributeRoutes(); + + config.Routes.MapHttpRoute( + name: "DefaultApi", + routeTemplate: "api/{controller}/{id}", + defaults: new { id = RouteParameter.Optional } + ); + } + } +} diff --git a/ankit/ticTac1/ticTac1/ApplicationInsights.config b/ankit/ticTac1/ticTac1/ApplicationInsights.config new file mode 100644 index 0000000..ee9ea3c --- /dev/null +++ b/ankit/ticTac1/ticTac1/ApplicationInsights.config @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + System.Web.Handlers.TransferRequestHandler + Microsoft.VisualStudio.Web.PageInspector.Runtime.Tracing.RequestDataHttpHandler + System.Web.StaticFileHandler + System.Web.Handlers.AssemblyResourceLoader + System.Web.Optimization.BundleHandler + System.Web.Script.Services.ScriptHandlerFactory + System.Web.Handlers.TraceHandler + System.Web.Services.Discovery.DiscoveryRequestHandler + System.Web.HttpDebugHandler + + + + + + + + 5 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ankit/ticTac1/ticTac1/Global.asax b/ankit/ticTac1/ticTac1/Global.asax new file mode 100644 index 0000000..7f44320 --- /dev/null +++ b/ankit/ticTac1/ticTac1/Global.asax @@ -0,0 +1 @@ +<%@ Application Codebehind="Global.asax.cs" Inherits="ticTac1.WebApiApplication" Language="C#" %> diff --git a/ankit/ticTac1/ticTac1/Global.asax.cs b/ankit/ticTac1/ticTac1/Global.asax.cs new file mode 100644 index 0000000..a52dd10 --- /dev/null +++ b/ankit/ticTac1/ticTac1/Global.asax.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.Http; +using System.Web.Routing; + +namespace ticTac1 +{ + public class WebApiApplication : System.Web.HttpApplication + { + protected void Application_Start() + { + GlobalConfiguration.Configure(WebApiConfig.Register); + } + } +} \ No newline at end of file diff --git a/ankit/ticTac1/ticTac1/Properties/AssemblyInfo.cs b/ankit/ticTac1/ticTac1/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..d40bb7f --- /dev/null +++ b/ankit/ticTac1/ticTac1/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ticTac1")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("ticTac1")] +[assembly: AssemblyCopyright("Copyright © 2019")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("3be5777b-38fa-4fcb-8bc1-53d363008cbb")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/ankit/ticTac1/ticTac1/Web.Debug.config b/ankit/ticTac1/ticTac1/Web.Debug.config new file mode 100644 index 0000000..2e302f9 --- /dev/null +++ b/ankit/ticTac1/ticTac1/Web.Debug.config @@ -0,0 +1,30 @@ + + + + + + + + + + \ No newline at end of file diff --git a/ankit/ticTac1/ticTac1/Web.Release.config b/ankit/ticTac1/ticTac1/Web.Release.config new file mode 100644 index 0000000..c358444 --- /dev/null +++ b/ankit/ticTac1/ticTac1/Web.Release.config @@ -0,0 +1,31 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/ankit/ticTac1/ticTac1/Web.config b/ankit/ticTac1/ticTac1/Web.config new file mode 100644 index 0000000..ed41ad8 --- /dev/null +++ b/ankit/ticTac1/ticTac1/Web.config @@ -0,0 +1,61 @@ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ankit/ticTac1/ticTac1/controllers/TicgamesController.cs b/ankit/ticTac1/ticTac1/controllers/TicgamesController.cs new file mode 100644 index 0000000..6c4b53d --- /dev/null +++ b/ankit/ticTac1/ticTac1/controllers/TicgamesController.cs @@ -0,0 +1,133 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.Entity; +using System.Data.Entity.Infrastructure; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Web.Http; +using System.Web.Http.Description; +using ticTac1.model; + +namespace ticTac1.controllers +{ + public class TicgamesController : ApiController + { + private gameEntities db = new gameEntities(); + + // GET: api/Ticgames + public IQueryable GetTicgames() + { + return db.Ticgames; + } + + // GET: api/Ticgames/5 + [ResponseType(typeof(Ticgame))] + public IHttpActionResult GetTicgame(string id) + { + Ticgame ticgame = db.Ticgames.Find(id); + if (ticgame == null) + { + return NotFound(); + } + + return Ok(ticgame); + } + + // PUT: api/Ticgames/5 + [ResponseType(typeof(void))] + public IHttpActionResult PutTicgame(string id, Ticgame ticgame) + { + if (!ModelState.IsValid) + { + return BadRequest(ModelState); + } + + if (id != ticgame.Email) + { + return BadRequest(); + } + + db.Entry(ticgame).State = EntityState.Modified; + + try + { + db.SaveChanges(); + } + catch (DbUpdateConcurrencyException) + { + if (!TicgameExists(id)) + { + return NotFound(); + } + else + { + throw; + } + } + + return StatusCode(HttpStatusCode.NoContent); + } + + // POST: api/Ticgames + [ResponseType(typeof(Ticgame))] + public IHttpActionResult PostTicgame(Ticgame ticgame) + { + if (!ModelState.IsValid) + { + return BadRequest(ModelState); + } + + db.Ticgames.Add(ticgame); + + try + { + db.SaveChanges(); + } + catch (DbUpdateException) + { + if (TicgameExists(ticgame.Email)) + { + return Conflict(); + } + else + { + throw; + } + } + + return CreatedAtRoute("DefaultApi", new { id = ticgame.Email }, ticgame); + } + + // DELETE: api/Ticgames/5 + [ResponseType(typeof(Ticgame))] + public IHttpActionResult DeleteTicgame(string id) + { + Ticgame ticgame = db.Ticgames.Find(id); + if (ticgame == null) + { + return NotFound(); + } + + db.Ticgames.Remove(ticgame); + db.SaveChanges(); + + return Ok(ticgame); + } + + protected override void Dispose(bool disposing) + { + if (disposing) + { + db.Dispose(); + } + base.Dispose(disposing); + } + + private bool TicgameExists(string id) + { + return db.Ticgames.Count(e => e.Email == id) > 0; + } + } +} \ No newline at end of file diff --git a/ankit/ticTac1/ticTac1/model/Ticgame.cs b/ankit/ticTac1/ticTac1/model/Ticgame.cs new file mode 100644 index 0000000..bed2dd2 --- /dev/null +++ b/ankit/ticTac1/ticTac1/model/Ticgame.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// This code was generated from a template. +// +// Manual changes to this file may cause unexpected behavior in your application. +// Manual changes to this file will be overwritten if the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace ticTac1.model +{ + using System; + using System.Collections.Generic; + + public partial class Ticgame + { + public int S_No { get; set; } + public string Email { get; set; } + public string Pass { get; set; } + public Nullable Score { get; set; } + } +} diff --git a/ankit/ticTac1/ticTac1/model/ticTac1.Context.cs b/ankit/ticTac1/ticTac1/model/ticTac1.Context.cs new file mode 100644 index 0000000..686e30b --- /dev/null +++ b/ankit/ticTac1/ticTac1/model/ticTac1.Context.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated from a template. +// +// Manual changes to this file may cause unexpected behavior in your application. +// Manual changes to this file will be overwritten if the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace ticTac1.model +{ + using System; + using System.Data.Entity; + using System.Data.Entity.Infrastructure; + + public partial class gameEntities : DbContext + { + public gameEntities() + : base("name=gameEntities") + { + } + + protected override void OnModelCreating(DbModelBuilder modelBuilder) + { + throw new UnintentionalCodeFirstException(); + } + + public virtual DbSet Ticgames { get; set; } + } +} diff --git a/ankit/ticTac1/ticTac1/model/ticTac1.Context.tt b/ankit/ticTac1/ticTac1/model/ticTac1.Context.tt new file mode 100644 index 0000000..a01a262 --- /dev/null +++ b/ankit/ticTac1/ticTac1/model/ticTac1.Context.tt @@ -0,0 +1,636 @@ +<#@ template language="C#" debug="false" hostspecific="true"#> +<#@ include file="EF6.Utility.CS.ttinclude"#><#@ + output extension=".cs"#><# + +const string inputFile = @"ticTac1.edmx"; +var textTransform = DynamicTextTransformation.Create(this); +var code = new CodeGenerationTools(this); +var ef = new MetadataTools(this); +var typeMapper = new TypeMapper(code, ef, textTransform.Errors); +var loader = new EdmMetadataLoader(textTransform.Host, textTransform.Errors); +var itemCollection = loader.CreateEdmItemCollection(inputFile); +var modelNamespace = loader.GetModelNamespace(inputFile); +var codeStringGenerator = new CodeStringGenerator(code, typeMapper, ef); + +var container = itemCollection.OfType().FirstOrDefault(); +if (container == null) +{ + return string.Empty; +} +#> +//------------------------------------------------------------------------------ +// +// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine1")#> +// +// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine2")#> +// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine3")#> +// +//------------------------------------------------------------------------------ + +<# + +var codeNamespace = code.VsNamespaceSuggestion(); +if (!String.IsNullOrEmpty(codeNamespace)) +{ +#> +namespace <#=code.EscapeNamespace(codeNamespace)#> +{ +<# + PushIndent(" "); +} + +#> +using System; +using System.Data.Entity; +using System.Data.Entity.Infrastructure; +<# +if (container.FunctionImports.Any()) +{ +#> +using System.Data.Entity.Core.Objects; +using System.Linq; +<# +} +#> + +<#=Accessibility.ForType(container)#> partial class <#=code.Escape(container)#> : DbContext +{ + public <#=code.Escape(container)#>() + : base("name=<#=container.Name#>") + { +<# +if (!loader.IsLazyLoadingEnabled(container)) +{ +#> + this.Configuration.LazyLoadingEnabled = false; +<# +} + +foreach (var entitySet in container.BaseEntitySets.OfType()) +{ + // Note: the DbSet members are defined below such that the getter and + // setter always have the same accessibility as the DbSet definition + if (Accessibility.ForReadOnlyProperty(entitySet) != "public") + { +#> + <#=codeStringGenerator.DbSetInitializer(entitySet)#> +<# + } +} +#> + } + + protected override void OnModelCreating(DbModelBuilder modelBuilder) + { + throw new UnintentionalCodeFirstException(); + } + +<# + foreach (var entitySet in container.BaseEntitySets.OfType()) + { +#> + <#=codeStringGenerator.DbSet(entitySet)#> +<# + } + + foreach (var edmFunction in container.FunctionImports) + { + WriteFunctionImport(typeMapper, codeStringGenerator, edmFunction, modelNamespace, includeMergeOption: false); + } +#> +} +<# + +if (!String.IsNullOrEmpty(codeNamespace)) +{ + PopIndent(); +#> +} +<# +} +#> +<#+ + +private void WriteFunctionImport(TypeMapper typeMapper, CodeStringGenerator codeStringGenerator, EdmFunction edmFunction, string modelNamespace, bool includeMergeOption) +{ + if (typeMapper.IsComposable(edmFunction)) + { +#> + + [DbFunction("<#=edmFunction.NamespaceName#>", "<#=edmFunction.Name#>")] + <#=codeStringGenerator.ComposableFunctionMethod(edmFunction, modelNamespace)#> + { +<#+ + codeStringGenerator.WriteFunctionParameters(edmFunction, WriteFunctionParameter); +#> + <#=codeStringGenerator.ComposableCreateQuery(edmFunction, modelNamespace)#> + } +<#+ + } + else + { +#> + + <#=codeStringGenerator.FunctionMethod(edmFunction, modelNamespace, includeMergeOption)#> + { +<#+ + codeStringGenerator.WriteFunctionParameters(edmFunction, WriteFunctionParameter); +#> + <#=codeStringGenerator.ExecuteFunction(edmFunction, modelNamespace, includeMergeOption)#> + } +<#+ + if (typeMapper.GenerateMergeOptionFunction(edmFunction, includeMergeOption)) + { + WriteFunctionImport(typeMapper, codeStringGenerator, edmFunction, modelNamespace, includeMergeOption: true); + } + } +} + +public void WriteFunctionParameter(string name, string isNotNull, string notNullInit, string nullInit) +{ +#> + var <#=name#> = <#=isNotNull#> ? + <#=notNullInit#> : + <#=nullInit#>; + +<#+ +} + +public const string TemplateId = "CSharp_DbContext_Context_EF6"; + +public class CodeStringGenerator +{ + private readonly CodeGenerationTools _code; + private readonly TypeMapper _typeMapper; + private readonly MetadataTools _ef; + + public CodeStringGenerator(CodeGenerationTools code, TypeMapper typeMapper, MetadataTools ef) + { + ArgumentNotNull(code, "code"); + ArgumentNotNull(typeMapper, "typeMapper"); + ArgumentNotNull(ef, "ef"); + + _code = code; + _typeMapper = typeMapper; + _ef = ef; + } + + public string Property(EdmProperty edmProperty) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2} {{ {3}get; {4}set; }}", + Accessibility.ForProperty(edmProperty), + _typeMapper.GetTypeName(edmProperty.TypeUsage), + _code.Escape(edmProperty), + _code.SpaceAfter(Accessibility.ForGetter(edmProperty)), + _code.SpaceAfter(Accessibility.ForSetter(edmProperty))); + } + + public string NavigationProperty(NavigationProperty navProp) + { + var endType = _typeMapper.GetTypeName(navProp.ToEndMember.GetEntityType()); + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2} {{ {3}get; {4}set; }}", + AccessibilityAndVirtual(Accessibility.ForNavigationProperty(navProp)), + navProp.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many ? ("ICollection<" + endType + ">") : endType, + _code.Escape(navProp), + _code.SpaceAfter(Accessibility.ForGetter(navProp)), + _code.SpaceAfter(Accessibility.ForSetter(navProp))); + } + + public string AccessibilityAndVirtual(string accessibility) + { + return accessibility + (accessibility != "private" ? " virtual" : ""); + } + + public string EntityClassOpening(EntityType entity) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1}partial class {2}{3}", + Accessibility.ForType(entity), + _code.SpaceAfter(_code.AbstractOption(entity)), + _code.Escape(entity), + _code.StringBefore(" : ", _typeMapper.GetTypeName(entity.BaseType))); + } + + public string EnumOpening(SimpleType enumType) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} enum {1} : {2}", + Accessibility.ForType(enumType), + _code.Escape(enumType), + _code.Escape(_typeMapper.UnderlyingClrType(enumType))); + } + + public void WriteFunctionParameters(EdmFunction edmFunction, Action writeParameter) + { + var parameters = FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef); + foreach (var parameter in parameters.Where(p => p.NeedsLocalVariable)) + { + var isNotNull = parameter.IsNullableOfT ? parameter.FunctionParameterName + ".HasValue" : parameter.FunctionParameterName + " != null"; + var notNullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", " + parameter.FunctionParameterName + ")"; + var nullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", typeof(" + TypeMapper.FixNamespaces(parameter.RawClrTypeName) + "))"; + writeParameter(parameter.LocalVariableName, isNotNull, notNullInit, nullInit); + } + } + + public string ComposableFunctionMethod(EdmFunction edmFunction, string modelNamespace) + { + var parameters = _typeMapper.GetParameters(edmFunction); + + return string.Format( + CultureInfo.InvariantCulture, + "{0} IQueryable<{1}> {2}({3})", + AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)), + _typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace), + _code.Escape(edmFunction), + string.Join(", ", parameters.Select(p => TypeMapper.FixNamespaces(p.FunctionParameterType) + " " + p.FunctionParameterName).ToArray())); + } + + public string ComposableCreateQuery(EdmFunction edmFunction, string modelNamespace) + { + var parameters = _typeMapper.GetParameters(edmFunction); + + return string.Format( + CultureInfo.InvariantCulture, + "return ((IObjectContextAdapter)this).ObjectContext.CreateQuery<{0}>(\"[{1}].[{2}]({3})\"{4});", + _typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace), + edmFunction.NamespaceName, + edmFunction.Name, + string.Join(", ", parameters.Select(p => "@" + p.EsqlParameterName).ToArray()), + _code.StringBefore(", ", string.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray()))); + } + + public string FunctionMethod(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption) + { + var parameters = _typeMapper.GetParameters(edmFunction); + var returnType = _typeMapper.GetReturnType(edmFunction); + + var paramList = String.Join(", ", parameters.Select(p => TypeMapper.FixNamespaces(p.FunctionParameterType) + " " + p.FunctionParameterName).ToArray()); + if (includeMergeOption) + { + paramList = _code.StringAfter(paramList, ", ") + "MergeOption mergeOption"; + } + + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2}({3})", + AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)), + returnType == null ? "int" : "ObjectResult<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">", + _code.Escape(edmFunction), + paramList); + } + + public string ExecuteFunction(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption) + { + var parameters = _typeMapper.GetParameters(edmFunction); + var returnType = _typeMapper.GetReturnType(edmFunction); + + var callParams = _code.StringBefore(", ", String.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray())); + if (includeMergeOption) + { + callParams = ", mergeOption" + callParams; + } + + return string.Format( + CultureInfo.InvariantCulture, + "return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction{0}(\"{1}\"{2});", + returnType == null ? "" : "<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">", + edmFunction.Name, + callParams); + } + + public string DbSet(EntitySet entitySet) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} virtual DbSet<{1}> {2} {{ get; set; }}", + Accessibility.ForReadOnlyProperty(entitySet), + _typeMapper.GetTypeName(entitySet.ElementType), + _code.Escape(entitySet)); + } + + public string DbSetInitializer(EntitySet entitySet) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} = Set<{1}>();", + _code.Escape(entitySet), + _typeMapper.GetTypeName(entitySet.ElementType)); + } + + public string UsingDirectives(bool inHeader, bool includeCollections = true) + { + return inHeader == string.IsNullOrEmpty(_code.VsNamespaceSuggestion()) + ? string.Format( + CultureInfo.InvariantCulture, + "{0}using System;{1}" + + "{2}", + inHeader ? Environment.NewLine : "", + includeCollections ? (Environment.NewLine + "using System.Collections.Generic;") : "", + inHeader ? "" : Environment.NewLine) + : ""; + } +} + +public class TypeMapper +{ + private const string ExternalTypeNameAttributeName = @"http://schemas.microsoft.com/ado/2006/04/codegeneration:ExternalTypeName"; + + private readonly System.Collections.IList _errors; + private readonly CodeGenerationTools _code; + private readonly MetadataTools _ef; + + public static string FixNamespaces(string typeName) + { + return typeName.Replace("System.Data.Spatial.", "System.Data.Entity.Spatial."); + } + + public TypeMapper(CodeGenerationTools code, MetadataTools ef, System.Collections.IList errors) + { + ArgumentNotNull(code, "code"); + ArgumentNotNull(ef, "ef"); + ArgumentNotNull(errors, "errors"); + + _code = code; + _ef = ef; + _errors = errors; + } + + public string GetTypeName(TypeUsage typeUsage) + { + return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace: null); + } + + public string GetTypeName(EdmType edmType) + { + return GetTypeName(edmType, isNullable: null, modelNamespace: null); + } + + public string GetTypeName(TypeUsage typeUsage, string modelNamespace) + { + return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace); + } + + public string GetTypeName(EdmType edmType, string modelNamespace) + { + return GetTypeName(edmType, isNullable: null, modelNamespace: modelNamespace); + } + + public string GetTypeName(EdmType edmType, bool? isNullable, string modelNamespace) + { + if (edmType == null) + { + return null; + } + + var collectionType = edmType as CollectionType; + if (collectionType != null) + { + return String.Format(CultureInfo.InvariantCulture, "ICollection<{0}>", GetTypeName(collectionType.TypeUsage, modelNamespace)); + } + + var typeName = _code.Escape(edmType.MetadataProperties + .Where(p => p.Name == ExternalTypeNameAttributeName) + .Select(p => (string)p.Value) + .FirstOrDefault()) + ?? (modelNamespace != null && edmType.NamespaceName != modelNamespace ? + _code.CreateFullName(_code.EscapeNamespace(edmType.NamespaceName), _code.Escape(edmType)) : + _code.Escape(edmType)); + + if (edmType is StructuralType) + { + return typeName; + } + + if (edmType is SimpleType) + { + var clrType = UnderlyingClrType(edmType); + if (!IsEnumType(edmType)) + { + typeName = _code.Escape(clrType); + } + + typeName = FixNamespaces(typeName); + + return clrType.IsValueType && isNullable == true ? + String.Format(CultureInfo.InvariantCulture, "Nullable<{0}>", typeName) : + typeName; + } + + throw new ArgumentException("edmType"); + } + + public Type UnderlyingClrType(EdmType edmType) + { + ArgumentNotNull(edmType, "edmType"); + + var primitiveType = edmType as PrimitiveType; + if (primitiveType != null) + { + return primitiveType.ClrEquivalentType; + } + + if (IsEnumType(edmType)) + { + return GetEnumUnderlyingType(edmType).ClrEquivalentType; + } + + return typeof(object); + } + + public object GetEnumMemberValue(MetadataItem enumMember) + { + ArgumentNotNull(enumMember, "enumMember"); + + var valueProperty = enumMember.GetType().GetProperty("Value"); + return valueProperty == null ? null : valueProperty.GetValue(enumMember, null); + } + + public string GetEnumMemberName(MetadataItem enumMember) + { + ArgumentNotNull(enumMember, "enumMember"); + + var nameProperty = enumMember.GetType().GetProperty("Name"); + return nameProperty == null ? null : (string)nameProperty.GetValue(enumMember, null); + } + + public System.Collections.IEnumerable GetEnumMembers(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + var membersProperty = enumType.GetType().GetProperty("Members"); + return membersProperty != null + ? (System.Collections.IEnumerable)membersProperty.GetValue(enumType, null) + : Enumerable.Empty(); + } + + public bool EnumIsFlags(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + var isFlagsProperty = enumType.GetType().GetProperty("IsFlags"); + return isFlagsProperty != null && (bool)isFlagsProperty.GetValue(enumType, null); + } + + public bool IsEnumType(GlobalItem edmType) + { + ArgumentNotNull(edmType, "edmType"); + + return edmType.GetType().Name == "EnumType"; + } + + public PrimitiveType GetEnumUnderlyingType(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + return (PrimitiveType)enumType.GetType().GetProperty("UnderlyingType").GetValue(enumType, null); + } + + public string CreateLiteral(object value) + { + if (value == null || value.GetType() != typeof(TimeSpan)) + { + return _code.CreateLiteral(value); + } + + return string.Format(CultureInfo.InvariantCulture, "new TimeSpan({0})", ((TimeSpan)value).Ticks); + } + + public bool VerifyCaseInsensitiveTypeUniqueness(IEnumerable types, string sourceFile) + { + ArgumentNotNull(types, "types"); + ArgumentNotNull(sourceFile, "sourceFile"); + + var hash = new HashSet(StringComparer.InvariantCultureIgnoreCase); + if (types.Any(item => !hash.Add(item))) + { + _errors.Add( + new CompilerError(sourceFile, -1, -1, "6023", + String.Format(CultureInfo.CurrentCulture, CodeGenerationTools.GetResourceString("Template_CaseInsensitiveTypeConflict")))); + return false; + } + return true; + } + + public IEnumerable GetEnumItemsToGenerate(IEnumerable itemCollection) + { + return GetItemsToGenerate(itemCollection) + .Where(e => IsEnumType(e)); + } + + public IEnumerable GetItemsToGenerate(IEnumerable itemCollection) where T: EdmType + { + return itemCollection + .OfType() + .Where(i => !i.MetadataProperties.Any(p => p.Name == ExternalTypeNameAttributeName)) + .OrderBy(i => i.Name); + } + + public IEnumerable GetAllGlobalItems(IEnumerable itemCollection) + { + return itemCollection + .Where(i => i is EntityType || i is ComplexType || i is EntityContainer || IsEnumType(i)) + .Select(g => GetGlobalItemName(g)); + } + + public string GetGlobalItemName(GlobalItem item) + { + if (item is EdmType) + { + return ((EdmType)item).Name; + } + else + { + return ((EntityContainer)item).Name; + } + } + + public IEnumerable GetSimpleProperties(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type); + } + + public IEnumerable GetSimpleProperties(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type); + } + + public IEnumerable GetComplexProperties(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type); + } + + public IEnumerable GetComplexProperties(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type); + } + + public IEnumerable GetPropertiesWithDefaultValues(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null); + } + + public IEnumerable GetPropertiesWithDefaultValues(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null); + } + + public IEnumerable GetNavigationProperties(EntityType type) + { + return type.NavigationProperties.Where(np => np.DeclaringType == type); + } + + public IEnumerable GetCollectionNavigationProperties(EntityType type) + { + return type.NavigationProperties.Where(np => np.DeclaringType == type && np.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many); + } + + public FunctionParameter GetReturnParameter(EdmFunction edmFunction) + { + ArgumentNotNull(edmFunction, "edmFunction"); + + var returnParamsProperty = edmFunction.GetType().GetProperty("ReturnParameters"); + return returnParamsProperty == null + ? edmFunction.ReturnParameter + : ((IEnumerable)returnParamsProperty.GetValue(edmFunction, null)).FirstOrDefault(); + } + + public bool IsComposable(EdmFunction edmFunction) + { + ArgumentNotNull(edmFunction, "edmFunction"); + + var isComposableProperty = edmFunction.GetType().GetProperty("IsComposableAttribute"); + return isComposableProperty != null && (bool)isComposableProperty.GetValue(edmFunction, null); + } + + public IEnumerable GetParameters(EdmFunction edmFunction) + { + return FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef); + } + + public TypeUsage GetReturnType(EdmFunction edmFunction) + { + var returnParam = GetReturnParameter(edmFunction); + return returnParam == null ? null : _ef.GetElementType(returnParam.TypeUsage); + } + + public bool GenerateMergeOptionFunction(EdmFunction edmFunction, bool includeMergeOption) + { + var returnType = GetReturnType(edmFunction); + return !includeMergeOption && returnType != null && returnType.EdmType.BuiltInTypeKind == BuiltInTypeKind.EntityType; + } +} + +public static void ArgumentNotNull(T arg, string name) where T : class +{ + if (arg == null) + { + throw new ArgumentNullException(name); + } +} +#> \ No newline at end of file diff --git a/ankit/ticTac1/ticTac1/model/ticTac1.Designer.cs b/ankit/ticTac1/ticTac1/model/ticTac1.Designer.cs new file mode 100644 index 0000000..06a8bee --- /dev/null +++ b/ankit/ticTac1/ticTac1/model/ticTac1.Designer.cs @@ -0,0 +1,10 @@ +// T4 code generation is enabled for model 'c:\users\ankit.kumar\documents\visual studio 2015\Projects\ticTac1\ticTac1\model\ticTac1.edmx'. +// To enable legacy code generation, change the value of the 'Code Generation Strategy' designer +// property to 'Legacy ObjectContext'. This property is available in the Properties Window when the model +// is open in the designer. + +// If no context and entity classes have been generated, it may be because you created an empty model but +// have not yet chosen which version of Entity Framework to use. To generate a context class and entity +// classes for your model, open the model in the designer, right-click on the designer surface, and +// select 'Update Model from Database...', 'Generate Database from Model...', or 'Add Code Generation +// Item...'. \ No newline at end of file diff --git a/ankit/ticTac1/ticTac1/model/ticTac1.cs b/ankit/ticTac1/ticTac1/model/ticTac1.cs new file mode 100644 index 0000000..7cc0662 --- /dev/null +++ b/ankit/ticTac1/ticTac1/model/ticTac1.cs @@ -0,0 +1,9 @@ +//------------------------------------------------------------------------------ +// +// This code was generated from a template. +// +// Manual changes to this file may cause unexpected behavior in your application. +// Manual changes to this file will be overwritten if the code is regenerated. +// +//------------------------------------------------------------------------------ + diff --git a/ankit/ticTac1/ticTac1/model/ticTac1.edmx b/ankit/ticTac1/ticTac1/model/ticTac1.edmx new file mode 100644 index 0000000..b9a23cc --- /dev/null +++ b/ankit/ticTac1/ticTac1/model/ticTac1.edmx @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ankit/ticTac1/ticTac1/model/ticTac1.edmx.diagram b/ankit/ticTac1/ticTac1/model/ticTac1.edmx.diagram new file mode 100644 index 0000000..089a705 --- /dev/null +++ b/ankit/ticTac1/ticTac1/model/ticTac1.edmx.diagram @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/ankit/ticTac1/ticTac1/model/ticTac1.tt b/ankit/ticTac1/ticTac1/model/ticTac1.tt new file mode 100644 index 0000000..8bfbab8 --- /dev/null +++ b/ankit/ticTac1/ticTac1/model/ticTac1.tt @@ -0,0 +1,733 @@ +<#@ template language="C#" debug="false" hostspecific="true"#> +<#@ include file="EF6.Utility.CS.ttinclude"#><#@ + output extension=".cs"#><# + +const string inputFile = @"ticTac1.edmx"; +var textTransform = DynamicTextTransformation.Create(this); +var code = new CodeGenerationTools(this); +var ef = new MetadataTools(this); +var typeMapper = new TypeMapper(code, ef, textTransform.Errors); +var fileManager = EntityFrameworkTemplateFileManager.Create(this); +var itemCollection = new EdmMetadataLoader(textTransform.Host, textTransform.Errors).CreateEdmItemCollection(inputFile); +var codeStringGenerator = new CodeStringGenerator(code, typeMapper, ef); + +if (!typeMapper.VerifyCaseInsensitiveTypeUniqueness(typeMapper.GetAllGlobalItems(itemCollection), inputFile)) +{ + return string.Empty; +} + +WriteHeader(codeStringGenerator, fileManager); + +foreach (var entity in typeMapper.GetItemsToGenerate(itemCollection)) +{ + fileManager.StartNewFile(entity.Name + ".cs"); + BeginNamespace(code); +#> +<#=codeStringGenerator.UsingDirectives(inHeader: false)#> +<#=codeStringGenerator.EntityClassOpening(entity)#> +{ +<# + var propertiesWithDefaultValues = typeMapper.GetPropertiesWithDefaultValues(entity); + var collectionNavigationProperties = typeMapper.GetCollectionNavigationProperties(entity); + var complexProperties = typeMapper.GetComplexProperties(entity); + + if (propertiesWithDefaultValues.Any() || collectionNavigationProperties.Any() || complexProperties.Any()) + { +#> + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] + public <#=code.Escape(entity)#>() + { +<# + foreach (var edmProperty in propertiesWithDefaultValues) + { +#> + this.<#=code.Escape(edmProperty)#> = <#=typeMapper.CreateLiteral(edmProperty.DefaultValue)#>; +<# + } + + foreach (var navigationProperty in collectionNavigationProperties) + { +#> + this.<#=code.Escape(navigationProperty)#> = new HashSet<<#=typeMapper.GetTypeName(navigationProperty.ToEndMember.GetEntityType())#>>(); +<# + } + + foreach (var complexProperty in complexProperties) + { +#> + this.<#=code.Escape(complexProperty)#> = new <#=typeMapper.GetTypeName(complexProperty.TypeUsage)#>(); +<# + } +#> + } + +<# + } + + var simpleProperties = typeMapper.GetSimpleProperties(entity); + if (simpleProperties.Any()) + { + foreach (var edmProperty in simpleProperties) + { +#> + <#=codeStringGenerator.Property(edmProperty)#> +<# + } + } + + if (complexProperties.Any()) + { +#> + +<# + foreach(var complexProperty in complexProperties) + { +#> + <#=codeStringGenerator.Property(complexProperty)#> +<# + } + } + + var navigationProperties = typeMapper.GetNavigationProperties(entity); + if (navigationProperties.Any()) + { +#> + +<# + foreach (var navigationProperty in navigationProperties) + { + if (navigationProperty.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many) + { +#> + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] +<# + } +#> + <#=codeStringGenerator.NavigationProperty(navigationProperty)#> +<# + } + } +#> +} +<# + EndNamespace(code); +} + +foreach (var complex in typeMapper.GetItemsToGenerate(itemCollection)) +{ + fileManager.StartNewFile(complex.Name + ".cs"); + BeginNamespace(code); +#> +<#=codeStringGenerator.UsingDirectives(inHeader: false, includeCollections: false)#> +<#=Accessibility.ForType(complex)#> partial class <#=code.Escape(complex)#> +{ +<# + var complexProperties = typeMapper.GetComplexProperties(complex); + var propertiesWithDefaultValues = typeMapper.GetPropertiesWithDefaultValues(complex); + + if (propertiesWithDefaultValues.Any() || complexProperties.Any()) + { +#> + public <#=code.Escape(complex)#>() + { +<# + foreach (var edmProperty in propertiesWithDefaultValues) + { +#> + this.<#=code.Escape(edmProperty)#> = <#=typeMapper.CreateLiteral(edmProperty.DefaultValue)#>; +<# + } + + foreach (var complexProperty in complexProperties) + { +#> + this.<#=code.Escape(complexProperty)#> = new <#=typeMapper.GetTypeName(complexProperty.TypeUsage)#>(); +<# + } +#> + } + +<# + } + + var simpleProperties = typeMapper.GetSimpleProperties(complex); + if (simpleProperties.Any()) + { + foreach(var edmProperty in simpleProperties) + { +#> + <#=codeStringGenerator.Property(edmProperty)#> +<# + } + } + + if (complexProperties.Any()) + { +#> + +<# + foreach(var edmProperty in complexProperties) + { +#> + <#=codeStringGenerator.Property(edmProperty)#> +<# + } + } +#> +} +<# + EndNamespace(code); +} + +foreach (var enumType in typeMapper.GetEnumItemsToGenerate(itemCollection)) +{ + fileManager.StartNewFile(enumType.Name + ".cs"); + BeginNamespace(code); +#> +<#=codeStringGenerator.UsingDirectives(inHeader: false, includeCollections: false)#> +<# + if (typeMapper.EnumIsFlags(enumType)) + { +#> +[Flags] +<# + } +#> +<#=codeStringGenerator.EnumOpening(enumType)#> +{ +<# + var foundOne = false; + + foreach (MetadataItem member in typeMapper.GetEnumMembers(enumType)) + { + foundOne = true; +#> + <#=code.Escape(typeMapper.GetEnumMemberName(member))#> = <#=typeMapper.GetEnumMemberValue(member)#>, +<# + } + + if (foundOne) + { + this.GenerationEnvironment.Remove(this.GenerationEnvironment.Length - 3, 1); + } +#> +} +<# + EndNamespace(code); +} + +fileManager.Process(); + +#> +<#+ + +public void WriteHeader(CodeStringGenerator codeStringGenerator, EntityFrameworkTemplateFileManager fileManager) +{ + fileManager.StartHeader(); +#> +//------------------------------------------------------------------------------ +// +// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine1")#> +// +// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine2")#> +// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine3")#> +// +//------------------------------------------------------------------------------ +<#=codeStringGenerator.UsingDirectives(inHeader: true)#> +<#+ + fileManager.EndBlock(); +} + +public void BeginNamespace(CodeGenerationTools code) +{ + var codeNamespace = code.VsNamespaceSuggestion(); + if (!String.IsNullOrEmpty(codeNamespace)) + { +#> +namespace <#=code.EscapeNamespace(codeNamespace)#> +{ +<#+ + PushIndent(" "); + } +} + +public void EndNamespace(CodeGenerationTools code) +{ + if (!String.IsNullOrEmpty(code.VsNamespaceSuggestion())) + { + PopIndent(); +#> +} +<#+ + } +} + +public const string TemplateId = "CSharp_DbContext_Types_EF6"; + +public class CodeStringGenerator +{ + private readonly CodeGenerationTools _code; + private readonly TypeMapper _typeMapper; + private readonly MetadataTools _ef; + + public CodeStringGenerator(CodeGenerationTools code, TypeMapper typeMapper, MetadataTools ef) + { + ArgumentNotNull(code, "code"); + ArgumentNotNull(typeMapper, "typeMapper"); + ArgumentNotNull(ef, "ef"); + + _code = code; + _typeMapper = typeMapper; + _ef = ef; + } + + public string Property(EdmProperty edmProperty) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2} {{ {3}get; {4}set; }}", + Accessibility.ForProperty(edmProperty), + _typeMapper.GetTypeName(edmProperty.TypeUsage), + _code.Escape(edmProperty), + _code.SpaceAfter(Accessibility.ForGetter(edmProperty)), + _code.SpaceAfter(Accessibility.ForSetter(edmProperty))); + } + + public string NavigationProperty(NavigationProperty navProp) + { + var endType = _typeMapper.GetTypeName(navProp.ToEndMember.GetEntityType()); + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2} {{ {3}get; {4}set; }}", + AccessibilityAndVirtual(Accessibility.ForNavigationProperty(navProp)), + navProp.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many ? ("ICollection<" + endType + ">") : endType, + _code.Escape(navProp), + _code.SpaceAfter(Accessibility.ForGetter(navProp)), + _code.SpaceAfter(Accessibility.ForSetter(navProp))); + } + + public string AccessibilityAndVirtual(string accessibility) + { + return accessibility + (accessibility != "private" ? " virtual" : ""); + } + + public string EntityClassOpening(EntityType entity) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1}partial class {2}{3}", + Accessibility.ForType(entity), + _code.SpaceAfter(_code.AbstractOption(entity)), + _code.Escape(entity), + _code.StringBefore(" : ", _typeMapper.GetTypeName(entity.BaseType))); + } + + public string EnumOpening(SimpleType enumType) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} enum {1} : {2}", + Accessibility.ForType(enumType), + _code.Escape(enumType), + _code.Escape(_typeMapper.UnderlyingClrType(enumType))); + } + + public void WriteFunctionParameters(EdmFunction edmFunction, Action writeParameter) + { + var parameters = FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef); + foreach (var parameter in parameters.Where(p => p.NeedsLocalVariable)) + { + var isNotNull = parameter.IsNullableOfT ? parameter.FunctionParameterName + ".HasValue" : parameter.FunctionParameterName + " != null"; + var notNullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", " + parameter.FunctionParameterName + ")"; + var nullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", typeof(" + TypeMapper.FixNamespaces(parameter.RawClrTypeName) + "))"; + writeParameter(parameter.LocalVariableName, isNotNull, notNullInit, nullInit); + } + } + + public string ComposableFunctionMethod(EdmFunction edmFunction, string modelNamespace) + { + var parameters = _typeMapper.GetParameters(edmFunction); + + return string.Format( + CultureInfo.InvariantCulture, + "{0} IQueryable<{1}> {2}({3})", + AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)), + _typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace), + _code.Escape(edmFunction), + string.Join(", ", parameters.Select(p => TypeMapper.FixNamespaces(p.FunctionParameterType) + " " + p.FunctionParameterName).ToArray())); + } + + public string ComposableCreateQuery(EdmFunction edmFunction, string modelNamespace) + { + var parameters = _typeMapper.GetParameters(edmFunction); + + return string.Format( + CultureInfo.InvariantCulture, + "return ((IObjectContextAdapter)this).ObjectContext.CreateQuery<{0}>(\"[{1}].[{2}]({3})\"{4});", + _typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace), + edmFunction.NamespaceName, + edmFunction.Name, + string.Join(", ", parameters.Select(p => "@" + p.EsqlParameterName).ToArray()), + _code.StringBefore(", ", string.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray()))); + } + + public string FunctionMethod(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption) + { + var parameters = _typeMapper.GetParameters(edmFunction); + var returnType = _typeMapper.GetReturnType(edmFunction); + + var paramList = String.Join(", ", parameters.Select(p => TypeMapper.FixNamespaces(p.FunctionParameterType) + " " + p.FunctionParameterName).ToArray()); + if (includeMergeOption) + { + paramList = _code.StringAfter(paramList, ", ") + "MergeOption mergeOption"; + } + + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2}({3})", + AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)), + returnType == null ? "int" : "ObjectResult<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">", + _code.Escape(edmFunction), + paramList); + } + + public string ExecuteFunction(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption) + { + var parameters = _typeMapper.GetParameters(edmFunction); + var returnType = _typeMapper.GetReturnType(edmFunction); + + var callParams = _code.StringBefore(", ", String.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray())); + if (includeMergeOption) + { + callParams = ", mergeOption" + callParams; + } + + return string.Format( + CultureInfo.InvariantCulture, + "return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction{0}(\"{1}\"{2});", + returnType == null ? "" : "<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">", + edmFunction.Name, + callParams); + } + + public string DbSet(EntitySet entitySet) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} virtual DbSet<{1}> {2} {{ get; set; }}", + Accessibility.ForReadOnlyProperty(entitySet), + _typeMapper.GetTypeName(entitySet.ElementType), + _code.Escape(entitySet)); + } + + public string UsingDirectives(bool inHeader, bool includeCollections = true) + { + return inHeader == string.IsNullOrEmpty(_code.VsNamespaceSuggestion()) + ? string.Format( + CultureInfo.InvariantCulture, + "{0}using System;{1}" + + "{2}", + inHeader ? Environment.NewLine : "", + includeCollections ? (Environment.NewLine + "using System.Collections.Generic;") : "", + inHeader ? "" : Environment.NewLine) + : ""; + } +} + +public class TypeMapper +{ + private const string ExternalTypeNameAttributeName = @"http://schemas.microsoft.com/ado/2006/04/codegeneration:ExternalTypeName"; + + private readonly System.Collections.IList _errors; + private readonly CodeGenerationTools _code; + private readonly MetadataTools _ef; + + public TypeMapper(CodeGenerationTools code, MetadataTools ef, System.Collections.IList errors) + { + ArgumentNotNull(code, "code"); + ArgumentNotNull(ef, "ef"); + ArgumentNotNull(errors, "errors"); + + _code = code; + _ef = ef; + _errors = errors; + } + + public static string FixNamespaces(string typeName) + { + return typeName.Replace("System.Data.Spatial.", "System.Data.Entity.Spatial."); + } + + public string GetTypeName(TypeUsage typeUsage) + { + return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace: null); + } + + public string GetTypeName(EdmType edmType) + { + return GetTypeName(edmType, isNullable: null, modelNamespace: null); + } + + public string GetTypeName(TypeUsage typeUsage, string modelNamespace) + { + return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace); + } + + public string GetTypeName(EdmType edmType, string modelNamespace) + { + return GetTypeName(edmType, isNullable: null, modelNamespace: modelNamespace); + } + + public string GetTypeName(EdmType edmType, bool? isNullable, string modelNamespace) + { + if (edmType == null) + { + return null; + } + + var collectionType = edmType as CollectionType; + if (collectionType != null) + { + return String.Format(CultureInfo.InvariantCulture, "ICollection<{0}>", GetTypeName(collectionType.TypeUsage, modelNamespace)); + } + + var typeName = _code.Escape(edmType.MetadataProperties + .Where(p => p.Name == ExternalTypeNameAttributeName) + .Select(p => (string)p.Value) + .FirstOrDefault()) + ?? (modelNamespace != null && edmType.NamespaceName != modelNamespace ? + _code.CreateFullName(_code.EscapeNamespace(edmType.NamespaceName), _code.Escape(edmType)) : + _code.Escape(edmType)); + + if (edmType is StructuralType) + { + return typeName; + } + + if (edmType is SimpleType) + { + var clrType = UnderlyingClrType(edmType); + if (!IsEnumType(edmType)) + { + typeName = _code.Escape(clrType); + } + + typeName = FixNamespaces(typeName); + + return clrType.IsValueType && isNullable == true ? + String.Format(CultureInfo.InvariantCulture, "Nullable<{0}>", typeName) : + typeName; + } + + throw new ArgumentException("edmType"); + } + + public Type UnderlyingClrType(EdmType edmType) + { + ArgumentNotNull(edmType, "edmType"); + + var primitiveType = edmType as PrimitiveType; + if (primitiveType != null) + { + return primitiveType.ClrEquivalentType; + } + + if (IsEnumType(edmType)) + { + return GetEnumUnderlyingType(edmType).ClrEquivalentType; + } + + return typeof(object); + } + + public object GetEnumMemberValue(MetadataItem enumMember) + { + ArgumentNotNull(enumMember, "enumMember"); + + var valueProperty = enumMember.GetType().GetProperty("Value"); + return valueProperty == null ? null : valueProperty.GetValue(enumMember, null); + } + + public string GetEnumMemberName(MetadataItem enumMember) + { + ArgumentNotNull(enumMember, "enumMember"); + + var nameProperty = enumMember.GetType().GetProperty("Name"); + return nameProperty == null ? null : (string)nameProperty.GetValue(enumMember, null); + } + + public System.Collections.IEnumerable GetEnumMembers(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + var membersProperty = enumType.GetType().GetProperty("Members"); + return membersProperty != null + ? (System.Collections.IEnumerable)membersProperty.GetValue(enumType, null) + : Enumerable.Empty(); + } + + public bool EnumIsFlags(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + var isFlagsProperty = enumType.GetType().GetProperty("IsFlags"); + return isFlagsProperty != null && (bool)isFlagsProperty.GetValue(enumType, null); + } + + public bool IsEnumType(GlobalItem edmType) + { + ArgumentNotNull(edmType, "edmType"); + + return edmType.GetType().Name == "EnumType"; + } + + public PrimitiveType GetEnumUnderlyingType(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + return (PrimitiveType)enumType.GetType().GetProperty("UnderlyingType").GetValue(enumType, null); + } + + public string CreateLiteral(object value) + { + if (value == null || value.GetType() != typeof(TimeSpan)) + { + return _code.CreateLiteral(value); + } + + return string.Format(CultureInfo.InvariantCulture, "new TimeSpan({0})", ((TimeSpan)value).Ticks); + } + + public bool VerifyCaseInsensitiveTypeUniqueness(IEnumerable types, string sourceFile) + { + ArgumentNotNull(types, "types"); + ArgumentNotNull(sourceFile, "sourceFile"); + + var hash = new HashSet(StringComparer.InvariantCultureIgnoreCase); + if (types.Any(item => !hash.Add(item))) + { + _errors.Add( + new CompilerError(sourceFile, -1, -1, "6023", + String.Format(CultureInfo.CurrentCulture, CodeGenerationTools.GetResourceString("Template_CaseInsensitiveTypeConflict")))); + return false; + } + return true; + } + + public IEnumerable GetEnumItemsToGenerate(IEnumerable itemCollection) + { + return GetItemsToGenerate(itemCollection) + .Where(e => IsEnumType(e)); + } + + public IEnumerable GetItemsToGenerate(IEnumerable itemCollection) where T: EdmType + { + return itemCollection + .OfType() + .Where(i => !i.MetadataProperties.Any(p => p.Name == ExternalTypeNameAttributeName)) + .OrderBy(i => i.Name); + } + + public IEnumerable GetAllGlobalItems(IEnumerable itemCollection) + { + return itemCollection + .Where(i => i is EntityType || i is ComplexType || i is EntityContainer || IsEnumType(i)) + .Select(g => GetGlobalItemName(g)); + } + + public string GetGlobalItemName(GlobalItem item) + { + if (item is EdmType) + { + return ((EdmType)item).Name; + } + else + { + return ((EntityContainer)item).Name; + } + } + + public IEnumerable GetSimpleProperties(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type); + } + + public IEnumerable GetSimpleProperties(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type); + } + + public IEnumerable GetComplexProperties(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type); + } + + public IEnumerable GetComplexProperties(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type); + } + + public IEnumerable GetPropertiesWithDefaultValues(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null); + } + + public IEnumerable GetPropertiesWithDefaultValues(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null); + } + + public IEnumerable GetNavigationProperties(EntityType type) + { + return type.NavigationProperties.Where(np => np.DeclaringType == type); + } + + public IEnumerable GetCollectionNavigationProperties(EntityType type) + { + return type.NavigationProperties.Where(np => np.DeclaringType == type && np.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many); + } + + public FunctionParameter GetReturnParameter(EdmFunction edmFunction) + { + ArgumentNotNull(edmFunction, "edmFunction"); + + var returnParamsProperty = edmFunction.GetType().GetProperty("ReturnParameters"); + return returnParamsProperty == null + ? edmFunction.ReturnParameter + : ((IEnumerable)returnParamsProperty.GetValue(edmFunction, null)).FirstOrDefault(); + } + + public bool IsComposable(EdmFunction edmFunction) + { + ArgumentNotNull(edmFunction, "edmFunction"); + + var isComposableProperty = edmFunction.GetType().GetProperty("IsComposableAttribute"); + return isComposableProperty != null && (bool)isComposableProperty.GetValue(edmFunction, null); + } + + public IEnumerable GetParameters(EdmFunction edmFunction) + { + return FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef); + } + + public TypeUsage GetReturnType(EdmFunction edmFunction) + { + var returnParam = GetReturnParameter(edmFunction); + return returnParam == null ? null : _ef.GetElementType(returnParam.TypeUsage); + } + + public bool GenerateMergeOptionFunction(EdmFunction edmFunction, bool includeMergeOption) + { + var returnType = GetReturnType(edmFunction); + return !includeMergeOption && returnType != null && returnType.EdmType.BuiltInTypeKind == BuiltInTypeKind.EntityType; + } +} + +public static void ArgumentNotNull(T arg, string name) where T : class +{ + if (arg == null) + { + throw new ArgumentNullException(name); + } +} +#> \ No newline at end of file diff --git a/ankit/ticTac1/ticTac1/packages.config b/ankit/ticTac1/ticTac1/packages.config new file mode 100644 index 0000000..ef15ee6 --- /dev/null +++ b/ankit/ticTac1/ticTac1/packages.config @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ankit/ticTac1/ticTac1/scripts/ai.0.22.9-build00167.js b/ankit/ticTac1/ticTac1/scripts/ai.0.22.9-build00167.js new file mode 100644 index 0000000..6a79fef --- /dev/null +++ b/ankit/ticTac1/ticTac1/scripts/ai.0.22.9-build00167.js @@ -0,0 +1,3524 @@ +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + (function (LoggingSeverity) { + LoggingSeverity[LoggingSeverity["CRITICAL"] = 0] = "CRITICAL"; + LoggingSeverity[LoggingSeverity["WARNING"] = 1] = "WARNING"; + })(ApplicationInsights.LoggingSeverity || (ApplicationInsights.LoggingSeverity = {})); + var LoggingSeverity = ApplicationInsights.LoggingSeverity; + (function (_InternalMessageId) { + _InternalMessageId[_InternalMessageId["NONUSRACT_BrowserDoesNotSupportLocalStorage"] = 0] = "NONUSRACT_BrowserDoesNotSupportLocalStorage"; + _InternalMessageId[_InternalMessageId["NONUSRACT_BrowserCannotReadLocalStorage"] = 1] = "NONUSRACT_BrowserCannotReadLocalStorage"; + _InternalMessageId[_InternalMessageId["NONUSRACT_BrowserCannotReadSessionStorage"] = 2] = "NONUSRACT_BrowserCannotReadSessionStorage"; + _InternalMessageId[_InternalMessageId["NONUSRACT_BrowserCannotWriteLocalStorage"] = 3] = "NONUSRACT_BrowserCannotWriteLocalStorage"; + _InternalMessageId[_InternalMessageId["NONUSRACT_BrowserCannotWriteSessionStorage"] = 4] = "NONUSRACT_BrowserCannotWriteSessionStorage"; + _InternalMessageId[_InternalMessageId["NONUSRACT_BrowserFailedRemovalFromLocalStorage"] = 5] = "NONUSRACT_BrowserFailedRemovalFromLocalStorage"; + _InternalMessageId[_InternalMessageId["NONUSRACT_BrowserFailedRemovalFromSessionStorage"] = 6] = "NONUSRACT_BrowserFailedRemovalFromSessionStorage"; + _InternalMessageId[_InternalMessageId["NONUSRACT_CannotSendEmptyTelemetry"] = 7] = "NONUSRACT_CannotSendEmptyTelemetry"; + _InternalMessageId[_InternalMessageId["NONUSRACT_ClientPerformanceMathError"] = 8] = "NONUSRACT_ClientPerformanceMathError"; + _InternalMessageId[_InternalMessageId["NONUSRACT_ErrorParsingAISessionCookie"] = 9] = "NONUSRACT_ErrorParsingAISessionCookie"; + _InternalMessageId[_InternalMessageId["NONUSRACT_ErrorPVCalc"] = 10] = "NONUSRACT_ErrorPVCalc"; + _InternalMessageId[_InternalMessageId["NONUSRACT_ExceptionWhileLoggingError"] = 11] = "NONUSRACT_ExceptionWhileLoggingError"; + _InternalMessageId[_InternalMessageId["NONUSRACT_FailedAddingTelemetryToBuffer"] = 12] = "NONUSRACT_FailedAddingTelemetryToBuffer"; + _InternalMessageId[_InternalMessageId["NONUSRACT_FailedMonitorAjaxAbort"] = 13] = "NONUSRACT_FailedMonitorAjaxAbort"; + _InternalMessageId[_InternalMessageId["NONUSRACT_FailedMonitorAjaxDur"] = 14] = "NONUSRACT_FailedMonitorAjaxDur"; + _InternalMessageId[_InternalMessageId["NONUSRACT_FailedMonitorAjaxOpen"] = 15] = "NONUSRACT_FailedMonitorAjaxOpen"; + _InternalMessageId[_InternalMessageId["NONUSRACT_FailedMonitorAjaxRSC"] = 16] = "NONUSRACT_FailedMonitorAjaxRSC"; + _InternalMessageId[_InternalMessageId["NONUSRACT_FailedMonitorAjaxSend"] = 17] = "NONUSRACT_FailedMonitorAjaxSend"; + _InternalMessageId[_InternalMessageId["NONUSRACT_FailedToAddHandlerForOnBeforeUnload"] = 18] = "NONUSRACT_FailedToAddHandlerForOnBeforeUnload"; + _InternalMessageId[_InternalMessageId["NONUSRACT_FailedToSendQueuedTelemetry"] = 19] = "NONUSRACT_FailedToSendQueuedTelemetry"; + _InternalMessageId[_InternalMessageId["NONUSRACT_FailedToReportDataLoss"] = 20] = "NONUSRACT_FailedToReportDataLoss"; + _InternalMessageId[_InternalMessageId["NONUSRACT_FlushFailed"] = 21] = "NONUSRACT_FlushFailed"; + _InternalMessageId[_InternalMessageId["NONUSRACT_MessageLimitPerPVExceeded"] = 22] = "NONUSRACT_MessageLimitPerPVExceeded"; + _InternalMessageId[_InternalMessageId["NONUSRACT_MissingRequiredFieldSpecification"] = 23] = "NONUSRACT_MissingRequiredFieldSpecification"; + _InternalMessageId[_InternalMessageId["NONUSRACT_NavigationTimingNotSupported"] = 24] = "NONUSRACT_NavigationTimingNotSupported"; + _InternalMessageId[_InternalMessageId["NONUSRACT_OnError"] = 25] = "NONUSRACT_OnError"; + _InternalMessageId[_InternalMessageId["NONUSRACT_SessionRenewalDateIsZero"] = 26] = "NONUSRACT_SessionRenewalDateIsZero"; + _InternalMessageId[_InternalMessageId["NONUSRACT_SenderNotInitialized"] = 27] = "NONUSRACT_SenderNotInitialized"; + _InternalMessageId[_InternalMessageId["NONUSRACT_StartTrackEventFailed"] = 28] = "NONUSRACT_StartTrackEventFailed"; + _InternalMessageId[_InternalMessageId["NONUSRACT_StopTrackEventFailed"] = 29] = "NONUSRACT_StopTrackEventFailed"; + _InternalMessageId[_InternalMessageId["NONUSRACT_StartTrackFailed"] = 30] = "NONUSRACT_StartTrackFailed"; + _InternalMessageId[_InternalMessageId["NONUSRACT_StopTrackFailed"] = 31] = "NONUSRACT_StopTrackFailed"; + _InternalMessageId[_InternalMessageId["NONUSRACT_TelemetrySampledAndNotSent"] = 32] = "NONUSRACT_TelemetrySampledAndNotSent"; + _InternalMessageId[_InternalMessageId["NONUSRACT_TrackEventFailed"] = 33] = "NONUSRACT_TrackEventFailed"; + _InternalMessageId[_InternalMessageId["NONUSRACT_TrackExceptionFailed"] = 34] = "NONUSRACT_TrackExceptionFailed"; + _InternalMessageId[_InternalMessageId["NONUSRACT_TrackMetricFailed"] = 35] = "NONUSRACT_TrackMetricFailed"; + _InternalMessageId[_InternalMessageId["NONUSRACT_TrackPVFailed"] = 36] = "NONUSRACT_TrackPVFailed"; + _InternalMessageId[_InternalMessageId["NONUSRACT_TrackPVFailedCalc"] = 37] = "NONUSRACT_TrackPVFailedCalc"; + _InternalMessageId[_InternalMessageId["NONUSRACT_TrackTraceFailed"] = 38] = "NONUSRACT_TrackTraceFailed"; + _InternalMessageId[_InternalMessageId["NONUSRACT_TransmissionFailed"] = 39] = "NONUSRACT_TransmissionFailed"; + _InternalMessageId[_InternalMessageId["USRACT_CannotSerializeObject"] = 40] = "USRACT_CannotSerializeObject"; + _InternalMessageId[_InternalMessageId["USRACT_CannotSerializeObjectNonSerializable"] = 41] = "USRACT_CannotSerializeObjectNonSerializable"; + _InternalMessageId[_InternalMessageId["USRACT_CircularReferenceDetected"] = 42] = "USRACT_CircularReferenceDetected"; + _InternalMessageId[_InternalMessageId["USRACT_ClearAuthContextFailed"] = 43] = "USRACT_ClearAuthContextFailed"; + _InternalMessageId[_InternalMessageId["USRACT_ExceptionTruncated"] = 44] = "USRACT_ExceptionTruncated"; + _InternalMessageId[_InternalMessageId["USRACT_IllegalCharsInName"] = 45] = "USRACT_IllegalCharsInName"; + _InternalMessageId[_InternalMessageId["USRACT_ItemNotInArray"] = 46] = "USRACT_ItemNotInArray"; + _InternalMessageId[_InternalMessageId["USRACT_MaxAjaxPerPVExceeded"] = 47] = "USRACT_MaxAjaxPerPVExceeded"; + _InternalMessageId[_InternalMessageId["USRACT_MessageTruncated"] = 48] = "USRACT_MessageTruncated"; + _InternalMessageId[_InternalMessageId["USRACT_NameTooLong"] = 49] = "USRACT_NameTooLong"; + _InternalMessageId[_InternalMessageId["USRACT_SampleRateOutOfRange"] = 50] = "USRACT_SampleRateOutOfRange"; + _InternalMessageId[_InternalMessageId["USRACT_SetAuthContextFailed"] = 51] = "USRACT_SetAuthContextFailed"; + _InternalMessageId[_InternalMessageId["USRACT_SetAuthContextFailedAccountName"] = 52] = "USRACT_SetAuthContextFailedAccountName"; + _InternalMessageId[_InternalMessageId["USRACT_StringValueTooLong"] = 53] = "USRACT_StringValueTooLong"; + _InternalMessageId[_InternalMessageId["USRACT_StartCalledMoreThanOnce"] = 54] = "USRACT_StartCalledMoreThanOnce"; + _InternalMessageId[_InternalMessageId["USRACT_StopCalledWithoutStart"] = 55] = "USRACT_StopCalledWithoutStart"; + _InternalMessageId[_InternalMessageId["USRACT_TelemetryInitializerFailed"] = 56] = "USRACT_TelemetryInitializerFailed"; + _InternalMessageId[_InternalMessageId["USRACT_TrackArgumentsNotSpecified"] = 57] = "USRACT_TrackArgumentsNotSpecified"; + _InternalMessageId[_InternalMessageId["USRACT_UrlTooLong"] = 58] = "USRACT_UrlTooLong"; + })(ApplicationInsights._InternalMessageId || (ApplicationInsights._InternalMessageId = {})); + var _InternalMessageId = ApplicationInsights._InternalMessageId; + var _InternalLogMessage = (function () { + function _InternalLogMessage(msgId, msg, properties) { + this.message = _InternalMessageId[msgId].toString(); + this.messageId = msgId; + var diagnosticText = (msg ? " message:" + _InternalLogMessage.sanitizeDiagnosticText(msg) : "") + + (properties ? " props:" + _InternalLogMessage.sanitizeDiagnosticText(JSON.stringify(properties)) : ""); + this.message += diagnosticText; + } + _InternalLogMessage.sanitizeDiagnosticText = function (text) { + return "\"" + text.replace(/\"/g, "") + "\""; + }; + return _InternalLogMessage; + })(); + ApplicationInsights._InternalLogMessage = _InternalLogMessage; + var _InternalLogging = (function () { + function _InternalLogging() { + } + _InternalLogging.throwInternalNonUserActionable = function (severity, message) { + if (this.enableDebugExceptions()) { + throw message; + } + else { + if (typeof (message) !== "undefined" && !!message) { + if (typeof (message.message) !== "undefined") { + message.message = this.AiNonUserActionablePrefix + message.message; + this.warnToConsole(message.message); + this.logInternalMessage(severity, message); + } + } + } + }; + _InternalLogging.throwInternalUserActionable = function (severity, message) { + if (this.enableDebugExceptions()) { + throw message; + } + else { + if (typeof (message) !== "undefined" && !!message) { + if (typeof (message.message) !== "undefined") { + message.message = this.AiUserActionablePrefix + message.message; + this.warnToConsole(message.message); + this.logInternalMessage(severity, message); + } + } + } + }; + _InternalLogging.warnToConsole = function (message) { + if (typeof console !== "undefined" && !!console) { + if (typeof console.warn === "function") { + console.warn(message); + } + else if (typeof console.log === "function") { + console.log(message); + } + } + }; + _InternalLogging.resetInternalMessageCount = function () { + this._messageCount = 0; + }; + _InternalLogging.clearInternalMessageLoggedTypes = function () { + if (ApplicationInsights.Util.canUseSessionStorage()) { + var sessionStorageKeys = ApplicationInsights.Util.getSessionStorageKeys(); + for (var i = 0; i < sessionStorageKeys.length; i++) { + if (sessionStorageKeys[i].indexOf(_InternalLogging.AIInternalMessagePrefix) === 0) { + ApplicationInsights.Util.removeSessionStorage(sessionStorageKeys[i]); + } + } + } + }; + _InternalLogging.setMaxInternalMessageLimit = function (limit) { + if (!limit) { + throw new Error('limit cannot be undefined.'); + } + this.MAX_INTERNAL_MESSAGE_LIMIT = limit; + }; + _InternalLogging.logInternalMessage = function (severity, message) { + if (this._areInternalMessagesThrottled()) { + return; + } + var logMessage = true; + if (ApplicationInsights.Util.canUseSessionStorage()) { + var storageMessageKey = _InternalLogging.AIInternalMessagePrefix + _InternalMessageId[message.messageId]; + var internalMessageTypeLogRecord = ApplicationInsights.Util.getSessionStorage(storageMessageKey); + if (internalMessageTypeLogRecord) { + logMessage = false; + } + else { + ApplicationInsights.Util.setSessionStorage(storageMessageKey, "1"); + } + } + if (logMessage) { + if (this.verboseLogging() || severity === LoggingSeverity.CRITICAL) { + this.queue.push(message); + this._messageCount++; + } + if (this._messageCount == this.MAX_INTERNAL_MESSAGE_LIMIT) { + var throttleLimitMessage = "Internal events throttle limit per PageView reached for this app."; + var throttleMessage = new _InternalLogMessage(_InternalMessageId.NONUSRACT_MessageLimitPerPVExceeded, throttleLimitMessage); + this.queue.push(throttleMessage); + this.warnToConsole(throttleLimitMessage); + } + } + }; + _InternalLogging._areInternalMessagesThrottled = function () { + return this._messageCount >= this.MAX_INTERNAL_MESSAGE_LIMIT; + }; + _InternalLogging.AiUserActionablePrefix = "AI: "; + _InternalLogging.AIInternalMessagePrefix = "AITR_"; + _InternalLogging.AiNonUserActionablePrefix = "AI (Internal): "; + _InternalLogging.enableDebugExceptions = function () { return false; }; + _InternalLogging.verboseLogging = function () { return false; }; + _InternalLogging.queue = []; + _InternalLogging.MAX_INTERNAL_MESSAGE_LIMIT = 25; + _InternalLogging._messageCount = 0; + return _InternalLogging; + })(); + ApplicationInsights._InternalLogging = _InternalLogging; + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +/// +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + var StorageType; + (function (StorageType) { + StorageType[StorageType["LocalStorage"] = 0] = "LocalStorage"; + StorageType[StorageType["SessionStorage"] = 1] = "SessionStorage"; + })(StorageType || (StorageType = {})); + var Util = (function () { + function Util() { + } + Util._getLocalStorageObject = function () { + return Util._getVerifiedStorageObject(StorageType.LocalStorage); + }; + Util._getVerifiedStorageObject = function (storageType) { + var storage = null; + var fail; + var uid; + try { + uid = new Date; + storage = storageType === StorageType.LocalStorage ? window.localStorage : window.sessionStorage; + storage.setItem(uid, uid); + fail = storage.getItem(uid) != uid; + storage.removeItem(uid); + if (fail) { + storage = null; + } + } + catch (exception) { + storage = null; + } + return storage; + }; + Util.canUseLocalStorage = function () { + return !!Util._getLocalStorageObject(); + }; + Util.getStorage = function (name) { + var storage = Util._getLocalStorageObject(); + if (storage !== null) { + try { + return storage.getItem(name); + } + catch (e) { + var message = new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_BrowserCannotReadLocalStorage, "Browser failed read of local storage. " + Util.getExceptionName(e), { exception: Util.dump(e) }); + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, message); + } + } + return null; + }; + Util.setStorage = function (name, data) { + var storage = Util._getLocalStorageObject(); + if (storage !== null) { + try { + storage.setItem(name, data); + return true; + } + catch (e) { + var message = new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_BrowserCannotWriteLocalStorage, "Browser failed write to local storage. " + Util.getExceptionName(e), { exception: Util.dump(e) }); + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, message); + } + } + return false; + }; + Util.removeStorage = function (name) { + var storage = Util._getLocalStorageObject(); + if (storage !== null) { + try { + storage.removeItem(name); + return true; + } + catch (e) { + var message = new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_BrowserFailedRemovalFromLocalStorage, "Browser failed removal of local storage item. " + Util.getExceptionName(e), { exception: Util.dump(e) }); + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, message); + } + } + return false; + }; + Util._getSessionStorageObject = function () { + return Util._getVerifiedStorageObject(StorageType.SessionStorage); + }; + Util.canUseSessionStorage = function () { + return !!Util._getSessionStorageObject(); + }; + Util.getSessionStorageKeys = function () { + var keys = []; + if (Util.canUseSessionStorage()) { + for (var key in window.sessionStorage) { + keys.push(key); + } + } + return keys; + }; + Util.getSessionStorage = function (name) { + var storage = Util._getSessionStorageObject(); + if (storage !== null) { + try { + return storage.getItem(name); + } + catch (e) { + var message = new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_BrowserCannotReadSessionStorage, "Browser failed read of session storage. " + Util.getExceptionName(e), { exception: Util.dump(e) }); + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, message); + } + } + return null; + }; + Util.setSessionStorage = function (name, data) { + var storage = Util._getSessionStorageObject(); + if (storage !== null) { + try { + storage.setItem(name, data); + return true; + } + catch (e) { + var message = new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_BrowserCannotWriteSessionStorage, "Browser failed write to session storage. " + Util.getExceptionName(e), { exception: Util.dump(e) }); + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, message); + } + } + return false; + }; + Util.removeSessionStorage = function (name) { + var storage = Util._getSessionStorageObject(); + if (storage !== null) { + try { + storage.removeItem(name); + return true; + } + catch (e) { + var message = new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_BrowserFailedRemovalFromSessionStorage, "Browser failed removal of session storage item. " + Util.getExceptionName(e), { exception: Util.dump(e) }); + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, message); + } + } + return false; + }; + Util.setCookie = function (name, value, domain) { + var domainAttrib = ""; + if (domain) { + domainAttrib = ";domain=" + domain; + } + Util.document.cookie = name + "=" + value + domainAttrib + ";path=/"; + }; + Util.stringToBoolOrDefault = function (str) { + if (!str) { + return false; + } + return str.toString().toLowerCase() === "true"; + }; + Util.getCookie = function (name) { + var value = ""; + if (name && name.length) { + var cookieName = name + "="; + var cookies = Util.document.cookie.split(";"); + for (var i = 0; i < cookies.length; i++) { + var cookie = cookies[i]; + cookie = Util.trim(cookie); + if (cookie && cookie.indexOf(cookieName) === 0) { + value = cookie.substring(cookieName.length, cookies[i].length); + break; + } + } + } + return value; + }; + Util.deleteCookie = function (name) { + Util.document.cookie = name + "=;path=/;expires=Thu, 01 Jan 1970 00:00:01 GMT;"; + }; + Util.trim = function (str) { + if (typeof str !== "string") + return str; + return str.replace(/^\s+|\s+$/g, ""); + }; + Util.newId = function () { + var base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; + var result = ""; + var random = Math.random() * 1073741824; + while (random > 0) { + var char = base64chars.charAt(random % 64); + result += char; + random = Math.floor(random / 64); + } + return result; + }; + Util.isArray = function (obj) { + return Object.prototype.toString.call(obj) === "[object Array]"; + }; + Util.isError = function (obj) { + return Object.prototype.toString.call(obj) === "[object Error]"; + }; + Util.isDate = function (obj) { + return Object.prototype.toString.call(obj) === "[object Date]"; + }; + Util.toISOStringForIE8 = function (date) { + if (Util.isDate(date)) { + if (Date.prototype.toISOString) { + return date.toISOString(); + } + else { + function pad(number) { + var r = String(number); + if (r.length === 1) { + r = "0" + r; + } + return r; + } + return date.getUTCFullYear() + + "-" + pad(date.getUTCMonth() + 1) + + "-" + pad(date.getUTCDate()) + + "T" + pad(date.getUTCHours()) + + ":" + pad(date.getUTCMinutes()) + + ":" + pad(date.getUTCSeconds()) + + "." + String((date.getUTCMilliseconds() / 1000).toFixed(3)).slice(2, 5) + + "Z"; + } + } + }; + Util.getIEVersion = function (userAgentStr) { + if (userAgentStr === void 0) { userAgentStr = null; } + var myNav = userAgentStr ? userAgentStr.toLowerCase() : navigator.userAgent.toLowerCase(); + return (myNav.indexOf('msie') != -1) ? parseInt(myNav.split('msie')[1]) : null; + }; + Util.msToTimeSpan = function (totalms) { + if (isNaN(totalms) || totalms < 0) { + totalms = 0; + } + var ms = "" + totalms % 1000; + var sec = "" + Math.floor(totalms / 1000) % 60; + var min = "" + Math.floor(totalms / (1000 * 60)) % 60; + var hour = "" + Math.floor(totalms / (1000 * 60 * 60)) % 24; + ms = ms.length === 1 ? "00" + ms : ms.length === 2 ? "0" + ms : ms; + sec = sec.length < 2 ? "0" + sec : sec; + min = min.length < 2 ? "0" + min : min; + hour = hour.length < 2 ? "0" + hour : hour; + return hour + ":" + min + ":" + sec + "." + ms; + }; + Util.isCrossOriginError = function (message, url, lineNumber, columnNumber, error) { + return (message === "Script error." || message === "Script error") && error === null; + }; + Util.dump = function (object) { + var objectTypeDump = Object.prototype.toString.call(object); + var propertyValueDump = JSON.stringify(object); + if (objectTypeDump === "[object Error]") { + propertyValueDump = "{ stack: '" + object.stack + "', message: '" + object.message + "', name: '" + object.name + "'"; + } + return objectTypeDump + propertyValueDump; + }; + Util.getExceptionName = function (object) { + var objectTypeDump = Object.prototype.toString.call(object); + if (objectTypeDump === "[object Error]") { + return object.name; + } + return ""; + }; + Util.addEventHandler = function (eventName, callback) { + if (!window || typeof eventName !== 'string' || typeof callback !== 'function') { + return false; + } + var verbEventName = 'on' + eventName; + if (window.addEventListener) { + window.addEventListener(eventName, callback, false); + } + else if (window["attachEvent"]) { + window["attachEvent"].call(verbEventName, callback); + } + else { + return false; + } + return true; + }; + Util.document = typeof document !== "undefined" ? document : {}; + Util.NotSpecified = "not_specified"; + return Util; + })(); + ApplicationInsights.Util = Util; + var UrlHelper = (function () { + function UrlHelper() { + } + UrlHelper.parseUrl = function (url) { + if (!UrlHelper.htmlAnchorElement) { + UrlHelper.htmlAnchorElement = UrlHelper.document.createElement('a'); + } + UrlHelper.htmlAnchorElement.href = url; + return UrlHelper.htmlAnchorElement; + }; + UrlHelper.getAbsoluteUrl = function (url) { + var result; + var a = UrlHelper.parseUrl(url); + if (a) { + result = a.href; + } + return result; + }; + UrlHelper.getPathName = function (url) { + var result; + var a = UrlHelper.parseUrl(url); + if (a) { + result = a.pathname; + } + return result; + }; + UrlHelper.document = typeof document !== "undefined" ? document : {}; + return UrlHelper; + })(); + ApplicationInsights.UrlHelper = UrlHelper; + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +/// +/// +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + "use strict"; + var extensions = (function () { + function extensions() { + } + extensions.IsNullOrUndefined = function (obj) { + return typeof (obj) === "undefined" || obj === null; + }; + return extensions; + })(); + ApplicationInsights.extensions = extensions; + var stringUtils = (function () { + function stringUtils() { + } + stringUtils.GetLength = function (strObject) { + var res = 0; + if (!extensions.IsNullOrUndefined(strObject)) { + var stringified = ""; + try { + stringified = strObject.toString(); + } + catch (ex) { + } + res = stringified.length; + res = isNaN(res) ? 0 : res; + } + return res; + }; + return stringUtils; + })(); + ApplicationInsights.stringUtils = stringUtils; + var dateTime = (function () { + function dateTime() { + } + dateTime.Now = (window.performance && window.performance.now) ? + function () { + return performance.now(); + } + : + function () { + return new Date().getTime(); + }; + dateTime.GetDuration = function (start, end) { + var result = null; + if (start !== 0 && end !== 0 && !extensions.IsNullOrUndefined(start) && !extensions.IsNullOrUndefined(end)) { + result = end - start; + } + return result; + }; + return dateTime; + })(); + ApplicationInsights.dateTime = dateTime; + var EventHelper = (function () { + function EventHelper() { + } + EventHelper.AttachEvent = function (obj, eventNameWithoutOn, handlerRef) { + var result = false; + if (!extensions.IsNullOrUndefined(obj)) { + if (!extensions.IsNullOrUndefined(obj.attachEvent)) { + obj.attachEvent("on" + eventNameWithoutOn, handlerRef); + result = true; + } + else { + if (!extensions.IsNullOrUndefined(obj.addEventListener)) { + obj.addEventListener(eventNameWithoutOn, handlerRef, false); + result = true; + } + } + } + return result; + }; + EventHelper.DetachEvent = function (obj, eventNameWithoutOn, handlerRef) { + if (!extensions.IsNullOrUndefined(obj)) { + if (!extensions.IsNullOrUndefined(obj.detachEvent)) { + obj.detachEvent("on" + eventNameWithoutOn, handlerRef); + } + else { + if (!extensions.IsNullOrUndefined(obj.removeEventListener)) { + obj.removeEventListener(eventNameWithoutOn, handlerRef, false); + } + } + } + }; + return EventHelper; + })(); + ApplicationInsights.EventHelper = EventHelper; + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +/// +/// +/// +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + "use strict"; + var XHRMonitoringState = (function () { + function XHRMonitoringState() { + this.openDone = false; + this.setRequestHeaderDone = false; + this.sendDone = false; + this.abortDone = false; + this.onreadystatechangeCallbackAttached = false; + } + return XHRMonitoringState; + })(); + ApplicationInsights.XHRMonitoringState = XHRMonitoringState; + var ajaxRecord = (function () { + function ajaxRecord(id) { + this.completed = false; + this.requestHeadersSize = null; + this.ttfb = null; + this.responseReceivingDuration = null; + this.callbackDuration = null; + this.ajaxTotalDuration = null; + this.aborted = null; + this.pageUrl = null; + this.requestUrl = null; + this.requestSize = 0; + this.method = null; + this.status = null; + this.requestSentTime = null; + this.responseStartedTime = null; + this.responseFinishedTime = null; + this.callbackFinishedTime = null; + this.endTime = null; + this.originalOnreadystatechage = null; + this.xhrMonitoringState = new XHRMonitoringState(); + this.clientFailure = 0; + this.CalculateMetrics = function () { + var self = this; + self.ajaxTotalDuration = ApplicationInsights.dateTime.GetDuration(self.requestSentTime, self.responseFinishedTime); + }; + this.id = id; + } + ajaxRecord.prototype.getAbsoluteUrl = function () { + return this.requestUrl ? ApplicationInsights.UrlHelper.getAbsoluteUrl(this.requestUrl) : null; + }; + ajaxRecord.prototype.getPathName = function () { + return this.requestUrl ? ApplicationInsights.UrlHelper.getPathName(this.requestUrl) : null; + }; + return ajaxRecord; + })(); + ApplicationInsights.ajaxRecord = ajaxRecord; + ; + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +; +/// +/// +/// +/// +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + "use strict"; + var AjaxMonitor = (function () { + function AjaxMonitor(appInsights) { + this.currentWindowHost = window.location.host; + this.appInsights = appInsights; + this.initialized = false; + this.Init(); + } + AjaxMonitor.prototype.Init = function () { + if (this.supportsMonitoring()) { + this.instrumentOpen(); + this.instrumentSend(); + this.instrumentAbort(); + this.initialized = true; + } + }; + AjaxMonitor.prototype.isMonitoredInstance = function (xhr, excludeAjaxDataValidation) { + return this.initialized + && (excludeAjaxDataValidation === true || !ApplicationInsights.extensions.IsNullOrUndefined(xhr.ajaxData)) + && xhr[AjaxMonitor.DisabledPropertyName] !== true; + }; + AjaxMonitor.prototype.supportsMonitoring = function () { + var result = false; + if (!ApplicationInsights.extensions.IsNullOrUndefined(XMLHttpRequest)) { + result = true; + } + return result; + }; + AjaxMonitor.prototype.instrumentOpen = function () { + var originalOpen = XMLHttpRequest.prototype.open; + var ajaxMonitorInstance = this; + XMLHttpRequest.prototype.open = function (method, url, async) { + try { + if (ajaxMonitorInstance.isMonitoredInstance(this, true) && + (!this.ajaxData || + !this.ajaxData.xhrMonitoringState.openDone)) { + ajaxMonitorInstance.openHandler(this, method, url, async); + } + } + catch (e) { + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_FailedMonitorAjaxOpen, "Failed to monitor XMLHttpRequest.open, monitoring data for this ajax call may be incorrect.", { + ajaxDiagnosticsMessage: AjaxMonitor.getFailedAjaxDiagnosticsMessage(this), + exception: Microsoft.ApplicationInsights.Util.dump(e) + })); + } + return originalOpen.apply(this, arguments); + }; + }; + AjaxMonitor.prototype.openHandler = function (xhr, method, url, async) { + var ajaxData = new ApplicationInsights.ajaxRecord(ApplicationInsights.Util.newId()); + ajaxData.method = method; + ajaxData.requestUrl = url; + ajaxData.xhrMonitoringState.openDone = true; + xhr.ajaxData = ajaxData; + this.attachToOnReadyStateChange(xhr); + }; + AjaxMonitor.getFailedAjaxDiagnosticsMessage = function (xhr) { + var result = ""; + try { + if (!ApplicationInsights.extensions.IsNullOrUndefined(xhr) && + !ApplicationInsights.extensions.IsNullOrUndefined(xhr.ajaxData) && + !ApplicationInsights.extensions.IsNullOrUndefined(xhr.ajaxData.requestUrl)) { + result += "(url: '" + xhr.ajaxData.requestUrl + "')"; + } + } + catch (e) { } + return result; + }; + AjaxMonitor.prototype.instrumentSend = function () { + var originalSend = XMLHttpRequest.prototype.send; + var ajaxMonitorInstance = this; + XMLHttpRequest.prototype.send = function (content) { + try { + if (ajaxMonitorInstance.isMonitoredInstance(this) && !this.ajaxData.xhrMonitoringState.sendDone) { + ajaxMonitorInstance.sendHandler(this, content); + } + } + catch (e) { + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_FailedMonitorAjaxSend, "Failed to monitor XMLHttpRequest, monitoring data for this ajax call may be incorrect.", { + ajaxDiagnosticsMessage: AjaxMonitor.getFailedAjaxDiagnosticsMessage(this), + exception: Microsoft.ApplicationInsights.Util.dump(e) + })); + } + return originalSend.apply(this, arguments); + }; + }; + AjaxMonitor.prototype.sendHandler = function (xhr, content) { + xhr.ajaxData.requestSentTime = ApplicationInsights.dateTime.Now(); + if (!this.appInsights.config.disableCorrelationHeaders && (ApplicationInsights.UrlHelper.parseUrl(xhr.ajaxData.getAbsoluteUrl()).host == this.currentWindowHost)) { + xhr.setRequestHeader("x-ms-request-id", xhr.ajaxData.id); + } + xhr.ajaxData.xhrMonitoringState.sendDone = true; + }; + AjaxMonitor.prototype.instrumentAbort = function () { + var originalAbort = XMLHttpRequest.prototype.abort; + var ajaxMonitorInstance = this; + XMLHttpRequest.prototype.abort = function () { + try { + if (ajaxMonitorInstance.isMonitoredInstance(this) && !this.ajaxData.xhrMonitoringState.abortDone) { + this.ajaxData.aborted = 1; + this.ajaxData.xhrMonitoringState.abortDone = true; + } + } + catch (e) { + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_FailedMonitorAjaxAbort, "Failed to monitor XMLHttpRequest.abort, monitoring data for this ajax call may be incorrect.", { + ajaxDiagnosticsMessage: AjaxMonitor.getFailedAjaxDiagnosticsMessage(this), + exception: Microsoft.ApplicationInsights.Util.dump(e) + })); + } + return originalAbort.apply(this, arguments); + }; + }; + AjaxMonitor.prototype.attachToOnReadyStateChange = function (xhr) { + var ajaxMonitorInstance = this; + xhr.ajaxData.xhrMonitoringState.onreadystatechangeCallbackAttached = ApplicationInsights.EventHelper.AttachEvent(xhr, "readystatechange", function () { + try { + if (ajaxMonitorInstance.isMonitoredInstance(xhr)) { + if (xhr.readyState === 4) { + ajaxMonitorInstance.onAjaxComplete(xhr); + } + } + } + catch (e) { + var exceptionText = Microsoft.ApplicationInsights.Util.dump(e); + if (!exceptionText || exceptionText.toLowerCase().indexOf("c00c023f") == -1) { + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_FailedMonitorAjaxRSC, "Failed to monitor XMLHttpRequest 'readystatechange' event handler, monitoring data for this ajax call may be incorrect.", { + ajaxDiagnosticsMessage: AjaxMonitor.getFailedAjaxDiagnosticsMessage(xhr), + exception: Microsoft.ApplicationInsights.Util.dump(e) + })); + } + } + }); + }; + AjaxMonitor.prototype.onAjaxComplete = function (xhr) { + xhr.ajaxData.responseFinishedTime = ApplicationInsights.dateTime.Now(); + xhr.ajaxData.status = xhr.status; + xhr.ajaxData.CalculateMetrics(); + if (xhr.ajaxData.ajaxTotalDuration < 0) { + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_FailedMonitorAjaxDur, "Failed to calculate the duration of the ajax call, monitoring data for this ajax call won't be sent.", { + ajaxDiagnosticsMessage: AjaxMonitor.getFailedAjaxDiagnosticsMessage(xhr), + requestSentTime: xhr.ajaxData.requestSentTime, + responseFinishedTime: xhr.ajaxData.responseFinishedTime + })); + } + else { + this.appInsights.trackAjax(xhr.ajaxData.id, xhr.ajaxData.getAbsoluteUrl(), xhr.ajaxData.getPathName(), xhr.ajaxData.ajaxTotalDuration, (+(xhr.ajaxData.status)) >= 200 && (+(xhr.ajaxData.status)) < 400, +xhr.ajaxData.status); + xhr.ajaxData = null; + } + }; + AjaxMonitor.instrumentedByAppInsightsName = "InstrumentedByAppInsights"; + AjaxMonitor.DisabledPropertyName = "Microsoft_ApplicationInsights_BypassAjaxInstrumentation"; + return AjaxMonitor; + })(); + ApplicationInsights.AjaxMonitor = AjaxMonitor; + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + var HashCodeScoreGenerator = (function () { + function HashCodeScoreGenerator() { + } + HashCodeScoreGenerator.prototype.getHashCodeScore = function (key) { + var score = this.getHashCode(key) / HashCodeScoreGenerator.INT_MAX_VALUE; + return score * 100; + }; + HashCodeScoreGenerator.prototype.getHashCode = function (input) { + if (input == "") { + return 0; + } + while (input.length < HashCodeScoreGenerator.MIN_INPUT_LENGTH) { + input = input.concat(input); + } + var hash = 5381; + for (var i = 0; i < input.length; ++i) { + hash = ((hash << 5) + hash) + input.charCodeAt(i); + hash = hash & hash; + } + return Math.abs(hash); + }; + HashCodeScoreGenerator.INT_MAX_VALUE = 2147483647; + HashCodeScoreGenerator.MIN_INPUT_LENGTH = 8; + return HashCodeScoreGenerator; + })(); + ApplicationInsights.HashCodeScoreGenerator = HashCodeScoreGenerator; + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +/// +/// +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + "use strict"; + (function (FieldType) { + FieldType[FieldType["Default"] = 0] = "Default"; + FieldType[FieldType["Required"] = 1] = "Required"; + FieldType[FieldType["Array"] = 2] = "Array"; + FieldType[FieldType["Hidden"] = 4] = "Hidden"; + })(ApplicationInsights.FieldType || (ApplicationInsights.FieldType = {})); + var FieldType = ApplicationInsights.FieldType; + ; + var Serializer = (function () { + function Serializer() { + } + Serializer.serialize = function (input) { + var output = Serializer._serializeObject(input, "root"); + return JSON.stringify(output); + }; + Serializer._serializeObject = function (source, name) { + var circularReferenceCheck = "__aiCircularRefCheck"; + var output = {}; + if (!source) { + ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_CannotSerializeObject, "cannot serialize object because it is null or undefined", { name: name })); + return output; + } + if (source[circularReferenceCheck]) { + ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_CircularReferenceDetected, "Circular reference detected while serializing object", { name: name })); + return output; + } + if (!source.aiDataContract) { + if (name === "measurements") { + output = Serializer._serializeStringMap(source, "number", name); + } + else if (name === "properties") { + output = Serializer._serializeStringMap(source, "string", name); + } + else if (name === "tags") { + output = Serializer._serializeStringMap(source, "string", name); + } + else if (ApplicationInsights.Util.isArray(source)) { + output = Serializer._serializeArray(source, name); + } + else { + ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_CannotSerializeObjectNonSerializable, "Attempting to serialize an object which does not implement ISerializable", { name: name })); + try { + JSON.stringify(source); + output = source; + } + catch (e) { + ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, e && typeof e.toString === 'function' ? e.toString() : "Error serializing object"); + } + } + return output; + } + source[circularReferenceCheck] = true; + for (var field in source.aiDataContract) { + var contract = source.aiDataContract[field]; + var isRequired = (typeof contract === "function") ? (contract() & FieldType.Required) : (contract & FieldType.Required); + var isHidden = (typeof contract === "function") ? (contract() & FieldType.Hidden) : (contract & FieldType.Hidden); + var isArray = contract & FieldType.Array; + var isPresent = source[field] !== undefined; + var isObject = typeof source[field] === "object" && source[field] !== null; + if (isRequired && !isPresent && !isArray) { + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_MissingRequiredFieldSpecification, "Missing required field specification. The field is required but not present on source", { field: field, name: name })); + continue; + } + if (isHidden) { + continue; + } + var value; + if (isObject) { + if (isArray) { + value = Serializer._serializeArray(source[field], field); + } + else { + value = Serializer._serializeObject(source[field], field); + } + } + else { + value = source[field]; + } + if (value !== undefined) { + output[field] = value; + } + } + delete source[circularReferenceCheck]; + return output; + }; + Serializer._serializeArray = function (sources, name) { + var output = undefined; + if (!!sources) { + if (!ApplicationInsights.Util.isArray(sources)) { + ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_ItemNotInArray, "This field was specified as an array in the contract but the item is not an array.\r\n", { name: name })); + } + else { + output = []; + for (var i = 0; i < sources.length; i++) { + var source = sources[i]; + var item = Serializer._serializeObject(source, name + "[" + i + "]"); + output.push(item); + } + } + } + return output; + }; + Serializer._serializeStringMap = function (map, expectedType, name) { + var output = undefined; + if (map) { + output = {}; + for (var field in map) { + var value = map[field]; + if (expectedType === "string") { + if (value === undefined) { + output[field] = "undefined"; + } + else if (value === null) { + output[field] = "null"; + } + else if (!value.toString) { + output[field] = "invalid field: toString() is not defined."; + } + else { + output[field] = value.toString(); + } + } + else if (expectedType === "number") { + if (value === undefined) { + output[field] = "undefined"; + } + else if (value === null) { + output[field] = "null"; + } + else { + var num = parseFloat(value); + if (isNaN(num)) { + output[field] = "NaN"; + } + else { + output[field] = num; + } + } + } + else { + output[field] = "invalid field: " + name + " is of unknown type."; + ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, output[field]); + } + } + } + return output; + }; + return Serializer; + })(); + ApplicationInsights.Serializer = Serializer; + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +var Microsoft; +(function (Microsoft) { + var Telemetry; + (function (Telemetry) { + "use strict"; + var Base = (function () { + function Base() { + } + return Base; + })(); + Telemetry.Base = Base; + })(Telemetry = Microsoft.Telemetry || (Microsoft.Telemetry = {})); +})(Microsoft || (Microsoft = {})); +/// +var Microsoft; +(function (Microsoft) { + var Telemetry; + (function (Telemetry) { + "use strict"; + var Envelope = (function () { + function Envelope() { + this.ver = 1; + this.sampleRate = 100.0; + this.tags = {}; + } + return Envelope; + })(); + Telemetry.Envelope = Envelope; + })(Telemetry = Microsoft.Telemetry || (Microsoft.Telemetry = {})); +})(Microsoft || (Microsoft = {})); +/// +/// +/// +var __extends = (this && this.__extends) || function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + __.prototype = b.prototype; + d.prototype = new __(); +}; +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + var Telemetry; + (function (Telemetry) { + var Common; + (function (Common) { + "use strict"; + var Envelope = (function (_super) { + __extends(Envelope, _super); + function Envelope(data, name) { + var _this = this; + _super.call(this); + this.name = name; + this.data = data; + this.time = ApplicationInsights.Util.toISOStringForIE8(new Date()); + this.aiDataContract = { + time: ApplicationInsights.FieldType.Required, + iKey: ApplicationInsights.FieldType.Required, + name: ApplicationInsights.FieldType.Required, + sampleRate: function () { + return (_this.sampleRate == 100) ? ApplicationInsights.FieldType.Hidden : ApplicationInsights.FieldType.Required; + }, + tags: ApplicationInsights.FieldType.Required, + data: ApplicationInsights.FieldType.Required + }; + } + return Envelope; + })(Microsoft.Telemetry.Envelope); + Common.Envelope = Envelope; + })(Common = Telemetry.Common || (Telemetry.Common = {})); + })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {})); + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +/// +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + var Telemetry; + (function (Telemetry) { + var Common; + (function (Common) { + "use strict"; + var Base = (function (_super) { + __extends(Base, _super); + function Base() { + _super.apply(this, arguments); + this.aiDataContract = {}; + } + return Base; + })(Microsoft.Telemetry.Base); + Common.Base = Base; + })(Common = Telemetry.Common || (Telemetry.Common = {})); + })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {})); + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +var AI; +(function (AI) { + "use strict"; + var ContextTagKeys = (function () { + function ContextTagKeys() { + this.applicationVersion = "ai.application.ver"; + this.applicationBuild = "ai.application.build"; + this.applicationTypeId = "ai.application.typeId"; + this.applicationId = "ai.application.applicationId"; + this.deviceId = "ai.device.id"; + this.deviceIp = "ai.device.ip"; + this.deviceLanguage = "ai.device.language"; + this.deviceLocale = "ai.device.locale"; + this.deviceModel = "ai.device.model"; + this.deviceNetwork = "ai.device.network"; + this.deviceNetworkName = "ai.device.networkName"; + this.deviceOEMName = "ai.device.oemName"; + this.deviceOS = "ai.device.os"; + this.deviceOSVersion = "ai.device.osVersion"; + this.deviceRoleInstance = "ai.device.roleInstance"; + this.deviceRoleName = "ai.device.roleName"; + this.deviceScreenResolution = "ai.device.screenResolution"; + this.deviceType = "ai.device.type"; + this.deviceMachineName = "ai.device.machineName"; + this.deviceVMName = "ai.device.vmName"; + this.locationIp = "ai.location.ip"; + this.operationId = "ai.operation.id"; + this.operationName = "ai.operation.name"; + this.operationParentId = "ai.operation.parentId"; + this.operationRootId = "ai.operation.rootId"; + this.operationSyntheticSource = "ai.operation.syntheticSource"; + this.operationIsSynthetic = "ai.operation.isSynthetic"; + this.operationCorrelationVector = "ai.operation.correlationVector"; + this.sessionId = "ai.session.id"; + this.sessionIsFirst = "ai.session.isFirst"; + this.sessionIsNew = "ai.session.isNew"; + this.userAccountAcquisitionDate = "ai.user.accountAcquisitionDate"; + this.userAccountId = "ai.user.accountId"; + this.userAgent = "ai.user.userAgent"; + this.userId = "ai.user.id"; + this.userStoreRegion = "ai.user.storeRegion"; + this.userAuthUserId = "ai.user.authUserId"; + this.userAnonymousUserAcquisitionDate = "ai.user.anonUserAcquisitionDate"; + this.userAuthenticatedUserAcquisitionDate = "ai.user.authUserAcquisitionDate"; + this.sampleRate = "ai.sample.sampleRate"; + this.cloudName = "ai.cloud.name"; + this.cloudRoleVer = "ai.cloud.roleVer"; + this.cloudEnvironment = "ai.cloud.environment"; + this.cloudLocation = "ai.cloud.location"; + this.cloudDeploymentUnit = "ai.cloud.deploymentUnit"; + this.serverDeviceOS = "ai.serverDevice.os"; + this.serverDeviceOSVer = "ai.serverDevice.osVer"; + this.internalSdkVersion = "ai.internal.sdkVersion"; + this.internalAgentVersion = "ai.internal.agentVersion"; + this.internalDataCollectorReceivedTime = "ai.internal.dataCollectorReceivedTime"; + this.internalProfileId = "ai.internal.profileId"; + this.internalProfileClassId = "ai.internal.profileClassId"; + this.internalAccountId = "ai.internal.accountId"; + this.internalApplicationName = "ai.internal.applicationName"; + this.internalInstrumentationKey = "ai.internal.instrumentationKey"; + this.internalTelemetryItemId = "ai.internal.telemetryItemId"; + this.internalApplicationType = "ai.internal.applicationType"; + this.internalRequestSource = "ai.internal.requestSource"; + this.internalFlowType = "ai.internal.flowType"; + this.internalIsAudit = "ai.internal.isAudit"; + this.internalTrackingSourceId = "ai.internal.trackingSourceId"; + this.internalTrackingType = "ai.internal.trackingType"; + this.internalIsDiagnosticExample = "ai.internal.isDiagnosticExample"; + } + return ContextTagKeys; + })(); + AI.ContextTagKeys = ContextTagKeys; +})(AI || (AI = {})); +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + var Context; + (function (Context) { + "use strict"; + var Application = (function () { + function Application() { + } + return Application; + })(); + Context.Application = Application; + })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {})); + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + var Context; + (function (Context) { + "use strict"; + var Device = (function () { + function Device() { + this.id = "browser"; + this.type = "Browser"; + } + return Device; + })(); + Context.Device = Device; + })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {})); + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + var Context; + (function (Context) { + "use strict"; + var Internal = (function () { + function Internal() { + this.sdkVersion = "JavaScript:" + ApplicationInsights.Version; + } + return Internal; + })(); + Context.Internal = Internal; + })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {})); + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + var Context; + (function (Context) { + "use strict"; + var Location = (function () { + function Location() { + } + return Location; + })(); + Context.Location = Location; + })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {})); + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +/// +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + var Context; + (function (Context) { + "use strict"; + var Operation = (function () { + function Operation() { + this.id = ApplicationInsights.Util.newId(); + if (window && window.location && window.location.pathname) { + this.name = window.location.pathname; + } + } + return Operation; + })(); + Context.Operation = Operation; + })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {})); + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +/// +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + var SamplingScoreGenerator = (function () { + function SamplingScoreGenerator() { + this.hashCodeGeneragor = new ApplicationInsights.HashCodeScoreGenerator(); + } + SamplingScoreGenerator.prototype.getSamplingScore = function (envelope) { + var tagKeys = new AI.ContextTagKeys(); + var score = 0; + if (envelope.tags[tagKeys.userId]) { + score = this.hashCodeGeneragor.getHashCodeScore(envelope.tags[tagKeys.userId]); + } + else if (envelope.tags[tagKeys.operationId]) { + score = this.hashCodeGeneragor.getHashCodeScore(envelope.tags[tagKeys.operationId]); + } + else { + score = Math.random(); + } + return score; + }; + return SamplingScoreGenerator; + })(); + ApplicationInsights.SamplingScoreGenerator = SamplingScoreGenerator; + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +/// +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + var Context; + (function (Context) { + "use strict"; + var Sample = (function () { + function Sample(sampleRate) { + this.INT_MAX_VALUE = 2147483647; + if (sampleRate > 100 || sampleRate < 0) { + ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_SampleRateOutOfRange, "Sampling rate is out of range (0..100). Sampling will be disabled, you may be sending too much data which may affect your AI service level.", { samplingRate: sampleRate })); + this.sampleRate = 100; + } + this.sampleRate = sampleRate; + this.samplingScoreGenerator = new ApplicationInsights.SamplingScoreGenerator(); + } + Sample.prototype.isSampledIn = function (envelope) { + if (this.sampleRate == 100) + return true; + var score = this.samplingScoreGenerator.getSamplingScore(envelope); + return score < this.sampleRate; + }; + return Sample; + })(); + Context.Sample = Sample; + })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {})); + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +var AI; +(function (AI) { + "use strict"; + (function (SessionState) { + SessionState[SessionState["Start"] = 0] = "Start"; + SessionState[SessionState["End"] = 1] = "End"; + })(AI.SessionState || (AI.SessionState = {})); + var SessionState = AI.SessionState; +})(AI || (AI = {})); +/// +/// +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + var Context; + (function (Context) { + "use strict"; + var Session = (function () { + function Session() { + } + return Session; + })(); + Context.Session = Session; + var _SessionManager = (function () { + function _SessionManager(config) { + if (!config) { + config = {}; + } + if (!(typeof config.sessionExpirationMs === "function")) { + config.sessionExpirationMs = function () { return _SessionManager.acquisitionSpan; }; + } + if (!(typeof config.sessionRenewalMs === "function")) { + config.sessionRenewalMs = function () { return _SessionManager.renewalSpan; }; + } + this.config = config; + this.automaticSession = new Session(); + } + _SessionManager.prototype.update = function () { + if (!this.automaticSession.id) { + this.initializeAutomaticSession(); + } + var now = +new Date; + var acquisitionExpired = now - this.automaticSession.acquisitionDate > this.config.sessionExpirationMs(); + var renewalExpired = now - this.automaticSession.renewalDate > this.config.sessionRenewalMs(); + if (acquisitionExpired || renewalExpired) { + this.automaticSession.isFirst = undefined; + this.renew(); + } + else { + this.automaticSession.renewalDate = +new Date; + this.setCookie(this.automaticSession.id, this.automaticSession.acquisitionDate, this.automaticSession.renewalDate); + } + }; + _SessionManager.prototype.backup = function () { + this.setStorage(this.automaticSession.id, this.automaticSession.acquisitionDate, this.automaticSession.renewalDate); + }; + _SessionManager.prototype.initializeAutomaticSession = function () { + var cookie = ApplicationInsights.Util.getCookie('ai_session'); + if (cookie && typeof cookie.split === "function") { + this.initializeAutomaticSessionWithData(cookie); + } + else { + var storage = ApplicationInsights.Util.getStorage('ai_session'); + if (storage) { + this.initializeAutomaticSessionWithData(storage); + } + } + if (!this.automaticSession.id) { + this.automaticSession.isFirst = true; + this.renew(); + } + }; + _SessionManager.prototype.initializeAutomaticSessionWithData = function (sessionData) { + var params = sessionData.split("|"); + if (params.length > 0) { + this.automaticSession.id = params[0]; + } + try { + if (params.length > 1) { + var acq = +params[1]; + this.automaticSession.acquisitionDate = +new Date(acq); + this.automaticSession.acquisitionDate = this.automaticSession.acquisitionDate > 0 ? this.automaticSession.acquisitionDate : 0; + } + if (params.length > 2) { + var renewal = +params[2]; + this.automaticSession.renewalDate = +new Date(renewal); + this.automaticSession.renewalDate = this.automaticSession.renewalDate > 0 ? this.automaticSession.renewalDate : 0; + } + } + catch (e) { + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_ErrorParsingAISessionCookie, "Error parsing ai_session cookie, session will be reset: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) })); + } + if (this.automaticSession.renewalDate == 0) { + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_SessionRenewalDateIsZero, "AI session renewal date is 0, session will be reset.")); + } + }; + _SessionManager.prototype.renew = function () { + var now = +new Date; + this.automaticSession.id = ApplicationInsights.Util.newId(); + this.automaticSession.acquisitionDate = now; + this.automaticSession.renewalDate = now; + this.setCookie(this.automaticSession.id, this.automaticSession.acquisitionDate, this.automaticSession.renewalDate); + if (!ApplicationInsights.Util.canUseLocalStorage()) { + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_BrowserDoesNotSupportLocalStorage, "Browser does not support local storage. Session durations will be inaccurate.")); + } + }; + _SessionManager.prototype.setCookie = function (guid, acq, renewal) { + var acquisitionExpiry = acq + this.config.sessionExpirationMs(); + var renewalExpiry = renewal + this.config.sessionRenewalMs(); + var cookieExpiry = new Date(); + var cookie = [guid, acq, renewal]; + if (acquisitionExpiry < renewalExpiry) { + cookieExpiry.setTime(acquisitionExpiry); + } + else { + cookieExpiry.setTime(renewalExpiry); + } + var cookieDomnain = this.config.cookieDomain ? this.config.cookieDomain() : null; + ApplicationInsights.Util.setCookie('ai_session', cookie.join('|') + ';expires=' + cookieExpiry.toUTCString(), cookieDomnain); + }; + _SessionManager.prototype.setStorage = function (guid, acq, renewal) { + ApplicationInsights.Util.setStorage('ai_session', [guid, acq, renewal].join('|')); + }; + _SessionManager.acquisitionSpan = 86400000; + _SessionManager.renewalSpan = 1800000; + return _SessionManager; + })(); + Context._SessionManager = _SessionManager; + })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {})); + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +/// +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + var Context; + (function (Context) { + "use strict"; + var User = (function () { + function User(config) { + var cookie = ApplicationInsights.Util.getCookie(User.userCookieName); + if (cookie) { + var params = cookie.split(User.cookieSeparator); + if (params.length > 0) { + this.id = params[0]; + } + } + this.config = config; + if (!this.id) { + this.id = ApplicationInsights.Util.newId(); + var date = new Date(); + var acqStr = ApplicationInsights.Util.toISOStringForIE8(date); + this.accountAcquisitionDate = acqStr; + date.setTime(date.getTime() + 31536000000); + var newCookie = [this.id, acqStr]; + var cookieDomain = this.config.cookieDomain ? this.config.cookieDomain() : undefined; + ApplicationInsights.Util.setCookie(User.userCookieName, newCookie.join(User.cookieSeparator) + ';expires=' + date.toUTCString(), cookieDomain); + ApplicationInsights.Util.removeStorage('ai_session'); + } + this.accountId = config.accountId ? config.accountId() : undefined; + var authCookie = ApplicationInsights.Util.getCookie(User.authUserCookieName); + if (authCookie) { + authCookie = decodeURI(authCookie); + var authCookieString = authCookie.split(User.cookieSeparator); + if (authCookieString[0]) { + this.authenticatedId = authCookieString[0]; + } + if (authCookieString.length > 1 && authCookieString[1]) { + this.accountId = authCookieString[1]; + } + } + } + User.prototype.setAuthenticatedUserContext = function (authenticatedUserId, accountId) { + var isInvalidInput = !this.validateUserInput(authenticatedUserId) || (accountId && !this.validateUserInput(accountId)); + if (isInvalidInput) { + ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_SetAuthContextFailedAccountName, "Setting auth user context failed. " + + "User auth/account id should be of type string, and not contain commas, semi-colons, equal signs, spaces, or vertical-bars.")); + return; + } + this.authenticatedId = authenticatedUserId; + var authCookie = this.authenticatedId; + if (accountId) { + this.accountId = accountId; + authCookie = [this.authenticatedId, this.accountId].join(User.cookieSeparator); + } + ApplicationInsights.Util.setCookie(User.authUserCookieName, encodeURI(authCookie), this.config.cookieDomain()); + }; + User.prototype.clearAuthenticatedUserContext = function () { + this.authenticatedId = null; + this.accountId = null; + ApplicationInsights.Util.deleteCookie(User.authUserCookieName); + }; + User.prototype.validateUserInput = function (id) { + if (typeof id !== 'string' || + !id || + id.match(/,|;|=| |\|/)) { + return false; + } + return true; + }; + User.cookieSeparator = '|'; + User.userCookieName = 'ai_user'; + User.authUserCookieName = 'ai_authUser'; + return User; + })(); + Context.User = User; + })(Context = ApplicationInsights.Context || (ApplicationInsights.Context = {})); + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + "use strict"; + var DataLossAnalyzer = (function () { + function DataLossAnalyzer() { + } + DataLossAnalyzer.reset = function () { + if (DataLossAnalyzer.isEnabled()) { + ApplicationInsights.Util.setSessionStorage(DataLossAnalyzer.ITEMS_QUEUED_KEY, "0"); + } + }; + DataLossAnalyzer.isEnabled = function () { + return DataLossAnalyzer.enabled && + DataLossAnalyzer.appInsights != null && + ApplicationInsights.Util.canUseSessionStorage(); + }; + DataLossAnalyzer.getIssuesReported = function () { + var result = (!DataLossAnalyzer.isEnabled() || isNaN(+ApplicationInsights.Util.getSessionStorage(DataLossAnalyzer.ISSUES_REPORTED_KEY))) ? + 0 : + +ApplicationInsights.Util.getSessionStorage(DataLossAnalyzer.ISSUES_REPORTED_KEY); + return result; + }; + DataLossAnalyzer.incrementItemsQueued = function () { + try { + if (DataLossAnalyzer.isEnabled()) { + var itemsQueued = DataLossAnalyzer.getNumberOfLostItems(); + ++itemsQueued; + ApplicationInsights.Util.setSessionStorage(DataLossAnalyzer.ITEMS_QUEUED_KEY, itemsQueued.toString()); + } + } + catch (e) { } + }; + DataLossAnalyzer.decrementItemsQueued = function (countOfItemsSentSuccessfully) { + try { + if (DataLossAnalyzer.isEnabled()) { + var itemsQueued = DataLossAnalyzer.getNumberOfLostItems(); + itemsQueued -= countOfItemsSentSuccessfully; + if (itemsQueued < 0) + itemsQueued = 0; + ApplicationInsights.Util.setSessionStorage(DataLossAnalyzer.ITEMS_QUEUED_KEY, itemsQueued.toString()); + } + } + catch (e) { } + }; + DataLossAnalyzer.getNumberOfLostItems = function () { + var result = 0; + try { + if (DataLossAnalyzer.isEnabled()) { + result = isNaN(+ApplicationInsights.Util.getSessionStorage(DataLossAnalyzer.ITEMS_QUEUED_KEY)) ? + 0 : + +ApplicationInsights.Util.getSessionStorage(DataLossAnalyzer.ITEMS_QUEUED_KEY); + } + } + catch (e) { + result = 0; + } + return result; + }; + DataLossAnalyzer.reportLostItems = function () { + try { + if (DataLossAnalyzer.isEnabled() && + DataLossAnalyzer.getIssuesReported() < DataLossAnalyzer.LIMIT_PER_SESSION && + DataLossAnalyzer.getNumberOfLostItems() > 0) { + DataLossAnalyzer.appInsights.trackTrace("AI (Internal): Internal report DATALOSS: " + + DataLossAnalyzer.getNumberOfLostItems(), null); + DataLossAnalyzer.appInsights.flush(); + var issuesReported = DataLossAnalyzer.getIssuesReported(); + ++issuesReported; + ApplicationInsights.Util.setSessionStorage(DataLossAnalyzer.ISSUES_REPORTED_KEY, issuesReported.toString()); + } + } + catch (e) { + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_FailedToReportDataLoss, "Failed to report data loss: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) })); + } + finally { + try { + DataLossAnalyzer.reset(); + } + catch (e) { } + } + }; + DataLossAnalyzer.enabled = false; + DataLossAnalyzer.LIMIT_PER_SESSION = 10; + DataLossAnalyzer.ITEMS_QUEUED_KEY = "AI_itemsQueued"; + DataLossAnalyzer.ISSUES_REPORTED_KEY = "AI_lossIssuesReported"; + return DataLossAnalyzer; + })(); + ApplicationInsights.DataLossAnalyzer = DataLossAnalyzer; + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +; +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + "use strict"; + var Sender = (function () { + function Sender(config) { + this._buffer = []; + this._lastSend = 0; + this._config = config; + this._sender = null; + if (typeof XMLHttpRequest != "undefined") { + var testXhr = new XMLHttpRequest(); + if ("withCredentials" in testXhr) { + this._sender = this._xhrSender; + } + else if (typeof XDomainRequest !== "undefined") { + this._sender = this._xdrSender; + } + } + } + Sender.prototype.send = function (envelope) { + var _this = this; + try { + if (this._config.disableTelemetry()) { + return; + } + if (!envelope) { + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_CannotSendEmptyTelemetry, "Cannot send empty telemetry")); + return; + } + if (!this._sender) { + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_SenderNotInitialized, "Sender was not initialized")); + return; + } + var payload = ApplicationInsights.Serializer.serialize(envelope); + if (this._getSizeInBytes(this._buffer) + payload.length > this._config.maxBatchSizeInBytes()) { + this.triggerSend(); + } + this._buffer.push(payload); + if (!this._timeoutHandle) { + this._timeoutHandle = setTimeout(function () { + _this._timeoutHandle = null; + _this.triggerSend(); + }, this._config.maxBatchInterval()); + } + ApplicationInsights.DataLossAnalyzer.incrementItemsQueued(); + } + catch (e) { + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_FailedAddingTelemetryToBuffer, "Failed adding telemetry to the sender's buffer, some telemetry will be lost: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) })); + } + }; + Sender.prototype._getSizeInBytes = function (list) { + var size = 0; + if (list && list.length) { + for (var i = 0; i < list.length; i++) { + var item = list[i]; + if (item && item.length) { + size += item.length; + } + } + } + return size; + }; + Sender.prototype.triggerSend = function (async) { + var isAsync = true; + if (typeof async === 'boolean') { + isAsync = async; + } + try { + if (!this._config.disableTelemetry()) { + if (this._buffer.length) { + var batch = this._config.emitLineDelimitedJson() ? + this._buffer.join("\n") : + "[" + this._buffer.join(",") + "]"; + this._sender(batch, isAsync, this._buffer.length); + } + this._lastSend = +new Date; + } + this._buffer.length = 0; + clearTimeout(this._timeoutHandle); + this._timeoutHandle = null; + } + catch (e) { + if (!ApplicationInsights.Util.getIEVersion() || ApplicationInsights.Util.getIEVersion() > 9) { + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_TransmissionFailed, "Telemetry transmission failed, some telemetry will be lost: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) })); + } + } + }; + Sender.prototype._xhrSender = function (payload, isAsync, countOfItemsInPayload) { + var xhr = new XMLHttpRequest(); + xhr[ApplicationInsights.AjaxMonitor.DisabledPropertyName] = true; + xhr.open("POST", this._config.endpointUrl(), isAsync); + xhr.setRequestHeader("Content-type", "application/json"); + xhr.onreadystatechange = function () { return Sender._xhrReadyStateChange(xhr, payload, countOfItemsInPayload); }; + xhr.onerror = function (event) { return Sender._onError(payload, xhr.responseText || xhr.response || "", event); }; + xhr.send(payload); + }; + Sender.prototype._xdrSender = function (payload, isAsync) { + var xdr = new XDomainRequest(); + xdr.onload = function () { return Sender._xdrOnLoad(xdr, payload); }; + xdr.onerror = function (event) { return Sender._onError(payload, xdr.responseText || "", event); }; + xdr.open('POST', this._config.endpointUrl()); + xdr.send(payload); + }; + Sender._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) { + if (xhr.readyState === 4) { + if ((xhr.status < 200 || xhr.status >= 300) && xhr.status !== 0) { + Sender._onError(payload, xhr.responseText || xhr.response || ""); + } + else { + Sender._onSuccess(payload, countOfItemsInPayload); + } + } + }; + Sender._xdrOnLoad = function (xdr, payload) { + if (xdr && (xdr.responseText + "" === "200" || xdr.responseText === "")) { + Sender._onSuccess(payload, 0); + } + else { + Sender._onError(payload, xdr && xdr.responseText || ""); + } + }; + Sender._onError = function (payload, message, event) { + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_OnError, "Failed to send telemetry.", { message: message })); + }; + Sender._onSuccess = function (payload, countOfItemsInPayload) { + ApplicationInsights.DataLossAnalyzer.decrementItemsQueued(countOfItemsInPayload); + }; + return Sender; + })(); + ApplicationInsights.Sender = Sender; + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +/// +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + "use strict"; + var SplitTest = (function () { + function SplitTest() { + this.hashCodeGeneragor = new ApplicationInsights.HashCodeScoreGenerator(); + } + SplitTest.prototype.isEnabled = function (key, percentEnabled) { + return this.hashCodeGeneragor.getHashCodeScore(key) < percentEnabled; + }; + return SplitTest; + })(); + ApplicationInsights.SplitTest = SplitTest; + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +var Microsoft; +(function (Microsoft) { + var Telemetry; + (function (Telemetry) { + "use strict"; + var Domain = (function () { + function Domain() { + } + return Domain; + })(); + Telemetry.Domain = Domain; + })(Telemetry = Microsoft.Telemetry || (Microsoft.Telemetry = {})); +})(Microsoft || (Microsoft = {})); +var AI; +(function (AI) { + "use strict"; + (function (SeverityLevel) { + SeverityLevel[SeverityLevel["Verbose"] = 0] = "Verbose"; + SeverityLevel[SeverityLevel["Information"] = 1] = "Information"; + SeverityLevel[SeverityLevel["Warning"] = 2] = "Warning"; + SeverityLevel[SeverityLevel["Error"] = 3] = "Error"; + SeverityLevel[SeverityLevel["Critical"] = 4] = "Critical"; + })(AI.SeverityLevel || (AI.SeverityLevel = {})); + var SeverityLevel = AI.SeverityLevel; +})(AI || (AI = {})); +/// +/// +var AI; +(function (AI) { + "use strict"; + var MessageData = (function (_super) { + __extends(MessageData, _super); + function MessageData() { + this.ver = 2; + this.properties = {}; + _super.call(this); + } + return MessageData; + })(Microsoft.Telemetry.Domain); + AI.MessageData = MessageData; +})(AI || (AI = {})); +/// +/// +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + var Telemetry; + (function (Telemetry) { + var Common; + (function (Common) { + "use strict"; + var DataSanitizer = (function () { + function DataSanitizer() { + } + DataSanitizer.sanitizeKeyAndAddUniqueness = function (key, map) { + var origLength = key.length; + var field = DataSanitizer.sanitizeKey(key); + if (field.length !== origLength) { + var i = 0; + var uniqueField = field; + while (map[uniqueField] !== undefined) { + i++; + uniqueField = field.substring(0, DataSanitizer.MAX_NAME_LENGTH - 3) + DataSanitizer.padNumber(i); + } + field = uniqueField; + } + return field; + }; + DataSanitizer.sanitizeKey = function (name) { + if (name) { + name = ApplicationInsights.Util.trim(name.toString()); + if (name.search(/[^0-9a-zA-Z-._()\/ ]/g) >= 0) { + name = name.replace(/[^0-9a-zA-Z-._()\/ ]/g, "_"); + ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_IllegalCharsInName, "name contains illegal characters. Illegal characters have been replaced with '_'.", { newName: name })); + } + if (name.length > DataSanitizer.MAX_NAME_LENGTH) { + name = name.substring(0, DataSanitizer.MAX_NAME_LENGTH); + ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_NameTooLong, "name is too long. It has been truncated to " + DataSanitizer.MAX_NAME_LENGTH + " characters.", { name: name })); + } + } + return name; + }; + DataSanitizer.sanitizeString = function (value) { + if (value) { + value = ApplicationInsights.Util.trim(value); + if (value.toString().length > DataSanitizer.MAX_STRING_LENGTH) { + value = value.toString().substring(0, DataSanitizer.MAX_STRING_LENGTH); + ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_StringValueTooLong, "string value is too long. It has been truncated to " + DataSanitizer.MAX_STRING_LENGTH + " characters.", { value: value })); + } + } + return value; + }; + DataSanitizer.sanitizeUrl = function (url) { + if (url) { + if (url.length > DataSanitizer.MAX_URL_LENGTH) { + url = url.substring(0, DataSanitizer.MAX_URL_LENGTH); + ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_UrlTooLong, "url is too long, it has been trucated to " + DataSanitizer.MAX_URL_LENGTH + " characters.", { url: url })); + } + } + return url; + }; + DataSanitizer.sanitizeMessage = function (message) { + if (message) { + if (message.length > DataSanitizer.MAX_MESSAGE_LENGTH) { + message = message.substring(0, DataSanitizer.MAX_MESSAGE_LENGTH); + ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_MessageTruncated, "message is too long, it has been trucated to " + DataSanitizer.MAX_MESSAGE_LENGTH + " characters.", { message: message })); + } + } + return message; + }; + DataSanitizer.sanitizeException = function (exception) { + if (exception) { + if (exception.length > DataSanitizer.MAX_EXCEPTION_LENGTH) { + exception = exception.substring(0, DataSanitizer.MAX_EXCEPTION_LENGTH); + ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_ExceptionTruncated, "exception is too long, it has been trucated to " + DataSanitizer.MAX_EXCEPTION_LENGTH + " characters.", { exception: exception })); + } + } + return exception; + }; + DataSanitizer.sanitizeProperties = function (properties) { + if (properties) { + var tempProps = {}; + for (var prop in properties) { + var value = DataSanitizer.sanitizeString(properties[prop]); + prop = DataSanitizer.sanitizeKeyAndAddUniqueness(prop, tempProps); + tempProps[prop] = value; + } + properties = tempProps; + } + return properties; + }; + DataSanitizer.sanitizeMeasurements = function (measurements) { + if (measurements) { + var tempMeasurements = {}; + for (var measure in measurements) { + var value = measurements[measure]; + measure = DataSanitizer.sanitizeKeyAndAddUniqueness(measure, tempMeasurements); + tempMeasurements[measure] = value; + } + measurements = tempMeasurements; + } + return measurements; + }; + DataSanitizer.padNumber = function (num) { + var s = "00" + num; + return s.substr(s.length - 3); + }; + DataSanitizer.MAX_NAME_LENGTH = 150; + DataSanitizer.MAX_STRING_LENGTH = 1024; + DataSanitizer.MAX_URL_LENGTH = 2048; + DataSanitizer.MAX_MESSAGE_LENGTH = 32768; + DataSanitizer.MAX_EXCEPTION_LENGTH = 32768; + return DataSanitizer; + })(); + Common.DataSanitizer = DataSanitizer; + })(Common = Telemetry.Common || (Telemetry.Common = {})); + })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {})); + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +/// +/// +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + var Telemetry; + (function (Telemetry) { + "use strict"; + var Trace = (function (_super) { + __extends(Trace, _super); + function Trace(message, properties) { + _super.call(this); + this.aiDataContract = { + ver: ApplicationInsights.FieldType.Required, + message: ApplicationInsights.FieldType.Required, + severityLevel: ApplicationInsights.FieldType.Default, + measurements: ApplicationInsights.FieldType.Default, + properties: ApplicationInsights.FieldType.Default + }; + message = message || ApplicationInsights.Util.NotSpecified; + this.message = Telemetry.Common.DataSanitizer.sanitizeMessage(message); + this.properties = Telemetry.Common.DataSanitizer.sanitizeProperties(properties); + } + Trace.envelopeType = "Microsoft.ApplicationInsights.{0}.Message"; + Trace.dataType = "MessageData"; + return Trace; + })(AI.MessageData); + Telemetry.Trace = Trace; + })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {})); + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +/// +var AI; +(function (AI) { + "use strict"; + var EventData = (function (_super) { + __extends(EventData, _super); + function EventData() { + this.ver = 2; + this.properties = {}; + this.measurements = {}; + _super.call(this); + } + return EventData; + })(Microsoft.Telemetry.Domain); + AI.EventData = EventData; +})(AI || (AI = {})); +/// +/// +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + var Telemetry; + (function (Telemetry) { + "use strict"; + var Event = (function (_super) { + __extends(Event, _super); + function Event(name, properties, measurements) { + _super.call(this); + this.aiDataContract = { + ver: ApplicationInsights.FieldType.Required, + name: ApplicationInsights.FieldType.Required, + properties: ApplicationInsights.FieldType.Default, + measurements: ApplicationInsights.FieldType.Default + }; + this.name = ApplicationInsights.Telemetry.Common.DataSanitizer.sanitizeString(name); + this.properties = ApplicationInsights.Telemetry.Common.DataSanitizer.sanitizeProperties(properties); + this.measurements = ApplicationInsights.Telemetry.Common.DataSanitizer.sanitizeMeasurements(measurements); + } + Event.envelopeType = "Microsoft.ApplicationInsights.{0}.Event"; + Event.dataType = "EventData"; + return Event; + })(AI.EventData); + Telemetry.Event = Event; + })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {})); + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +var AI; +(function (AI) { + "use strict"; + var ExceptionDetails = (function () { + function ExceptionDetails() { + this.hasFullStack = true; + this.parsedStack = []; + } + return ExceptionDetails; + })(); + AI.ExceptionDetails = ExceptionDetails; +})(AI || (AI = {})); +/// +/// +/// +var AI; +(function (AI) { + "use strict"; + var ExceptionData = (function (_super) { + __extends(ExceptionData, _super); + function ExceptionData() { + this.ver = 2; + this.exceptions = []; + this.properties = {}; + this.measurements = {}; + _super.call(this); + } + return ExceptionData; + })(Microsoft.Telemetry.Domain); + AI.ExceptionData = ExceptionData; +})(AI || (AI = {})); +var AI; +(function (AI) { + "use strict"; + var StackFrame = (function () { + function StackFrame() { + } + return StackFrame; + })(); + AI.StackFrame = StackFrame; +})(AI || (AI = {})); +/// +/// +/// +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + var Telemetry; + (function (Telemetry) { + "use strict"; + var Exception = (function (_super) { + __extends(Exception, _super); + function Exception(exception, handledAt, properties, measurements) { + _super.call(this); + this.aiDataContract = { + ver: ApplicationInsights.FieldType.Required, + handledAt: ApplicationInsights.FieldType.Required, + exceptions: ApplicationInsights.FieldType.Required, + severityLevel: ApplicationInsights.FieldType.Default, + properties: ApplicationInsights.FieldType.Default, + measurements: ApplicationInsights.FieldType.Default + }; + this.properties = ApplicationInsights.Telemetry.Common.DataSanitizer.sanitizeProperties(properties); + this.measurements = ApplicationInsights.Telemetry.Common.DataSanitizer.sanitizeMeasurements(measurements); + this.handledAt = handledAt || "unhandled"; + this.exceptions = [new _ExceptionDetails(exception)]; + } + Exception.CreateSimpleException = function (message, typeName, assembly, fileName, details, line, handledAt) { + return { + handledAt: handledAt || "unhandled", + exceptions: [ + { + hasFullStack: true, + message: message, + stack: details, + typeName: typeName, + parsedStack: [ + { + level: 0, + assembly: assembly, + fileName: fileName, + line: line, + method: "unknown" + } + ] + } + ] + }; + }; + Exception.envelopeType = "Microsoft.ApplicationInsights.{0}.Exception"; + Exception.dataType = "ExceptionData"; + return Exception; + })(AI.ExceptionData); + Telemetry.Exception = Exception; + var _ExceptionDetails = (function (_super) { + __extends(_ExceptionDetails, _super); + function _ExceptionDetails(exception) { + _super.call(this); + this.aiDataContract = { + id: ApplicationInsights.FieldType.Default, + outerId: ApplicationInsights.FieldType.Default, + typeName: ApplicationInsights.FieldType.Required, + message: ApplicationInsights.FieldType.Required, + hasFullStack: ApplicationInsights.FieldType.Default, + stack: ApplicationInsights.FieldType.Default, + parsedStack: ApplicationInsights.FieldType.Array + }; + this.typeName = Telemetry.Common.DataSanitizer.sanitizeString(exception.name || ApplicationInsights.Util.NotSpecified); + this.message = Telemetry.Common.DataSanitizer.sanitizeMessage(exception.message || ApplicationInsights.Util.NotSpecified); + var stack = exception["stack"]; + this.parsedStack = this.parseStack(stack); + this.stack = Telemetry.Common.DataSanitizer.sanitizeException(stack); + this.hasFullStack = ApplicationInsights.Util.isArray(this.parsedStack) && this.parsedStack.length > 0; + } + _ExceptionDetails.prototype.parseStack = function (stack) { + var parsedStack = undefined; + if (typeof stack === "string") { + var frames = stack.split('\n'); + parsedStack = []; + var level = 0; + var totalSizeInBytes = 0; + for (var i = 0; i <= frames.length; i++) { + var frame = frames[i]; + if (_StackFrame.regex.test(frame)) { + var parsedFrame = new _StackFrame(frames[i], level++); + totalSizeInBytes += parsedFrame.sizeInBytes; + parsedStack.push(parsedFrame); + } + } + var exceptionParsedStackThreshold = 32 * 1024; + if (totalSizeInBytes > exceptionParsedStackThreshold) { + var left = 0; + var right = parsedStack.length - 1; + var size = 0; + var acceptedLeft = left; + var acceptedRight = right; + while (left < right) { + var lSize = parsedStack[left].sizeInBytes; + var rSize = parsedStack[right].sizeInBytes; + size += lSize + rSize; + if (size > exceptionParsedStackThreshold) { + var howMany = acceptedRight - acceptedLeft + 1; + parsedStack.splice(acceptedLeft, howMany); + break; + } + acceptedLeft = left; + acceptedRight = right; + left++; + right--; + } + } + } + return parsedStack; + }; + return _ExceptionDetails; + })(AI.ExceptionDetails); + var _StackFrame = (function (_super) { + __extends(_StackFrame, _super); + function _StackFrame(frame, level) { + _super.call(this); + this.sizeInBytes = 0; + this.aiDataContract = { + level: ApplicationInsights.FieldType.Required, + method: ApplicationInsights.FieldType.Required, + assembly: ApplicationInsights.FieldType.Default, + fileName: ApplicationInsights.FieldType.Default, + line: ApplicationInsights.FieldType.Default + }; + this.level = level; + this.method = ""; + this.assembly = ApplicationInsights.Util.trim(frame); + var matches = frame.match(_StackFrame.regex); + if (matches && matches.length >= 5) { + this.method = ApplicationInsights.Util.trim(matches[2]) || this.method; + this.fileName = ApplicationInsights.Util.trim(matches[4]); + this.line = parseInt(matches[5]) || 0; + } + this.sizeInBytes += this.method.length; + this.sizeInBytes += this.fileName.length; + this.sizeInBytes += this.assembly.length; + this.sizeInBytes += _StackFrame.baseSize; + this.sizeInBytes += this.level.toString().length; + this.sizeInBytes += this.line.toString().length; + } + _StackFrame.regex = /^([\s]+at)?(.*?)(\@|\s\(|\s)([^\(\@\n]+):([0-9]+):([0-9]+)(\)?)$/; + _StackFrame.baseSize = 58; + return _StackFrame; + })(AI.StackFrame); + Telemetry._StackFrame = _StackFrame; + })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {})); + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +/// +var AI; +(function (AI) { + "use strict"; + var MetricData = (function (_super) { + __extends(MetricData, _super); + function MetricData() { + this.ver = 2; + this.metrics = []; + this.properties = {}; + _super.call(this); + } + return MetricData; + })(Microsoft.Telemetry.Domain); + AI.MetricData = MetricData; +})(AI || (AI = {})); +var AI; +(function (AI) { + "use strict"; + (function (DataPointType) { + DataPointType[DataPointType["Measurement"] = 0] = "Measurement"; + DataPointType[DataPointType["Aggregation"] = 1] = "Aggregation"; + })(AI.DataPointType || (AI.DataPointType = {})); + var DataPointType = AI.DataPointType; +})(AI || (AI = {})); +/// +var AI; +(function (AI) { + "use strict"; + var DataPoint = (function () { + function DataPoint() { + this.kind = AI.DataPointType.Measurement; + } + return DataPoint; + })(); + AI.DataPoint = DataPoint; +})(AI || (AI = {})); +/// +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + var Telemetry; + (function (Telemetry) { + var Common; + (function (Common) { + "use strict"; + var DataPoint = (function (_super) { + __extends(DataPoint, _super); + function DataPoint() { + _super.apply(this, arguments); + this.aiDataContract = { + name: ApplicationInsights.FieldType.Required, + kind: ApplicationInsights.FieldType.Default, + value: ApplicationInsights.FieldType.Required, + count: ApplicationInsights.FieldType.Default, + min: ApplicationInsights.FieldType.Default, + max: ApplicationInsights.FieldType.Default, + stdDev: ApplicationInsights.FieldType.Default + }; + } + return DataPoint; + })(AI.DataPoint); + Common.DataPoint = DataPoint; + })(Common = Telemetry.Common || (Telemetry.Common = {})); + })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {})); + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +/// +/// +/// +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + var Telemetry; + (function (Telemetry) { + "use strict"; + var Metric = (function (_super) { + __extends(Metric, _super); + function Metric(name, value, count, min, max, properties) { + _super.call(this); + this.aiDataContract = { + ver: ApplicationInsights.FieldType.Required, + metrics: ApplicationInsights.FieldType.Required, + properties: ApplicationInsights.FieldType.Default + }; + var dataPoint = new Microsoft.ApplicationInsights.Telemetry.Common.DataPoint(); + dataPoint.count = count > 0 ? count : undefined; + dataPoint.max = isNaN(max) || max === null ? undefined : max; + dataPoint.min = isNaN(min) || min === null ? undefined : min; + dataPoint.name = Telemetry.Common.DataSanitizer.sanitizeString(name); + dataPoint.value = value; + this.metrics = [dataPoint]; + this.properties = ApplicationInsights.Telemetry.Common.DataSanitizer.sanitizeProperties(properties); + } + Metric.envelopeType = "Microsoft.ApplicationInsights.{0}.Metric"; + Metric.dataType = "MetricData"; + return Metric; + })(AI.MetricData); + Telemetry.Metric = Metric; + })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {})); + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +/// +var AI; +(function (AI) { + "use strict"; + var PageViewData = (function (_super) { + __extends(PageViewData, _super); + function PageViewData() { + this.ver = 2; + this.properties = {}; + this.measurements = {}; + _super.call(this); + } + return PageViewData; + })(AI.EventData); + AI.PageViewData = PageViewData; +})(AI || (AI = {})); +/// +/// +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + var Telemetry; + (function (Telemetry) { + "use strict"; + var PageView = (function (_super) { + __extends(PageView, _super); + function PageView(name, url, durationMs, properties, measurements) { + _super.call(this); + this.aiDataContract = { + ver: ApplicationInsights.FieldType.Required, + name: ApplicationInsights.FieldType.Default, + url: ApplicationInsights.FieldType.Default, + duration: ApplicationInsights.FieldType.Default, + properties: ApplicationInsights.FieldType.Default, + measurements: ApplicationInsights.FieldType.Default + }; + this.url = Telemetry.Common.DataSanitizer.sanitizeUrl(url); + this.name = Telemetry.Common.DataSanitizer.sanitizeString(name || ApplicationInsights.Util.NotSpecified); + if (!isNaN(durationMs)) { + this.duration = ApplicationInsights.Util.msToTimeSpan(durationMs); + } + this.properties = ApplicationInsights.Telemetry.Common.DataSanitizer.sanitizeProperties(properties); + this.measurements = ApplicationInsights.Telemetry.Common.DataSanitizer.sanitizeMeasurements(measurements); + } + PageView.envelopeType = "Microsoft.ApplicationInsights.{0}.Pageview"; + PageView.dataType = "PageviewData"; + return PageView; + })(AI.PageViewData); + Telemetry.PageView = PageView; + })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {})); + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +/// +var AI; +(function (AI) { + "use strict"; + var PageViewPerfData = (function (_super) { + __extends(PageViewPerfData, _super); + function PageViewPerfData() { + this.ver = 2; + this.properties = {}; + this.measurements = {}; + _super.call(this); + } + return PageViewPerfData; + })(AI.PageViewData); + AI.PageViewPerfData = PageViewPerfData; +})(AI || (AI = {})); +/// +/// +/// +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + var Telemetry; + (function (Telemetry) { + "use strict"; + var PageViewPerformance = (function (_super) { + __extends(PageViewPerformance, _super); + function PageViewPerformance(name, url, unused, properties, measurements) { + _super.call(this); + this.aiDataContract = { + ver: ApplicationInsights.FieldType.Required, + name: ApplicationInsights.FieldType.Default, + url: ApplicationInsights.FieldType.Default, + duration: ApplicationInsights.FieldType.Default, + perfTotal: ApplicationInsights.FieldType.Default, + networkConnect: ApplicationInsights.FieldType.Default, + sentRequest: ApplicationInsights.FieldType.Default, + receivedResponse: ApplicationInsights.FieldType.Default, + domProcessing: ApplicationInsights.FieldType.Default, + properties: ApplicationInsights.FieldType.Default, + measurements: ApplicationInsights.FieldType.Default + }; + this.isValid = false; + var timing = PageViewPerformance.getPerformanceTiming(); + if (timing) { + var total = PageViewPerformance.getDuration(timing.navigationStart, timing.loadEventEnd); + var network = PageViewPerformance.getDuration(timing.navigationStart, timing.connectEnd); + var request = PageViewPerformance.getDuration(timing.requestStart, timing.responseStart); + var response = PageViewPerformance.getDuration(timing.responseStart, timing.responseEnd); + var dom = PageViewPerformance.getDuration(timing.responseEnd, timing.loadEventEnd); + if (total == 0) { + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_ErrorPVCalc, "error calculating page view performance.", { total: total, network: network, request: request, response: response, dom: dom })); + } + else if (total < Math.floor(network) + Math.floor(request) + Math.floor(response) + Math.floor(dom)) { + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_ClientPerformanceMathError, "client performance math error.", { total: total, network: network, request: request, response: response, dom: dom })); + } + else { + this.durationMs = total; + this.perfTotal = this.duration = ApplicationInsights.Util.msToTimeSpan(total); + this.networkConnect = ApplicationInsights.Util.msToTimeSpan(network); + this.sentRequest = ApplicationInsights.Util.msToTimeSpan(request); + this.receivedResponse = ApplicationInsights.Util.msToTimeSpan(response); + this.domProcessing = ApplicationInsights.Util.msToTimeSpan(dom); + this.isValid = true; + } + } + this.url = Telemetry.Common.DataSanitizer.sanitizeUrl(url); + this.name = Telemetry.Common.DataSanitizer.sanitizeString(name || ApplicationInsights.Util.NotSpecified); + this.properties = ApplicationInsights.Telemetry.Common.DataSanitizer.sanitizeProperties(properties); + this.measurements = ApplicationInsights.Telemetry.Common.DataSanitizer.sanitizeMeasurements(measurements); + } + PageViewPerformance.prototype.getIsValid = function () { + return this.isValid; + }; + PageViewPerformance.prototype.getDurationMs = function () { + return this.durationMs; + }; + PageViewPerformance.getPerformanceTiming = function () { + if (typeof window != "undefined" && window.performance && window.performance.timing) { + return window.performance.timing; + } + return null; + }; + PageViewPerformance.isPerformanceTimingSupported = function () { + return typeof window != "undefined" && window.performance && window.performance.timing; + }; + PageViewPerformance.isPerformanceTimingDataReady = function () { + var timing = window.performance.timing; + return timing.domainLookupStart > 0 + && timing.navigationStart > 0 + && timing.responseStart > 0 + && timing.requestStart > 0 + && timing.loadEventEnd > 0 + && timing.responseEnd > 0 + && timing.connectEnd > 0 + && timing.domLoading > 0; + }; + PageViewPerformance.getDuration = function (start, end) { + var duration = 0; + if (!(isNaN(start) || isNaN(end))) { + duration = Math.max(end - start, 0); + } + return duration; + }; + PageViewPerformance.envelopeType = "Microsoft.ApplicationInsights.{0}.PageviewPerformance"; + PageViewPerformance.dataType = "PageviewPerformanceData"; + return PageViewPerformance; + })(AI.PageViewPerfData); + Telemetry.PageViewPerformance = PageViewPerformance; + })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {})); + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +/// +/// +/// +/// +/// +/// +/// +/// +/// +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + "use strict"; + var TelemetryContext = (function () { + function TelemetryContext(config) { + this._config = config; + this._sender = new ApplicationInsights.Sender(config); + if (typeof window !== 'undefined') { + this._sessionManager = new ApplicationInsights.Context._SessionManager(config); + this.application = new ApplicationInsights.Context.Application(); + this.device = new ApplicationInsights.Context.Device(); + this.internal = new ApplicationInsights.Context.Internal(); + this.location = new ApplicationInsights.Context.Location(); + this.user = new ApplicationInsights.Context.User(config); + this.operation = new ApplicationInsights.Context.Operation(); + this.session = new ApplicationInsights.Context.Session(); + this.sample = new ApplicationInsights.Context.Sample(config.sampleRate()); + } + } + TelemetryContext.prototype.addTelemetryInitializer = function (telemetryInitializer) { + this.telemetryInitializers = this.telemetryInitializers || []; + this.telemetryInitializers.push(telemetryInitializer); + }; + TelemetryContext.prototype.track = function (envelope) { + if (!envelope) { + ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_TrackArgumentsNotSpecified, "cannot call .track() with a null or undefined argument")); + } + else { + if (envelope.name === ApplicationInsights.Telemetry.PageView.envelopeType) { + ApplicationInsights._InternalLogging.resetInternalMessageCount(); + } + if (this.session) { + if (typeof this.session.id !== "string") { + this._sessionManager.update(); + } + } + this._track(envelope); + } + return envelope; + }; + TelemetryContext.prototype._track = function (envelope) { + if (this.session) { + if (typeof this.session.id === "string") { + this._applySessionContext(envelope, this.session); + } + else { + this._applySessionContext(envelope, this._sessionManager.automaticSession); + } + } + this._applyApplicationContext(envelope, this.application); + this._applyDeviceContext(envelope, this.device); + this._applyInternalContext(envelope, this.internal); + this._applyLocationContext(envelope, this.location); + this._applySampleContext(envelope, this.sample); + this._applyUserContext(envelope, this.user); + this._applyOperationContext(envelope, this.operation); + envelope.iKey = this._config.instrumentationKey(); + var doNotSendItem = false; + try { + this.telemetryInitializers = this.telemetryInitializers || []; + var telemetryInitializersCount = this.telemetryInitializers.length; + for (var i = 0; i < telemetryInitializersCount; ++i) { + var telemetryInitializer = this.telemetryInitializers[i]; + if (telemetryInitializer) { + if (telemetryInitializer.apply(null, [envelope]) === false) { + doNotSendItem = true; + break; + } + } + } + } + catch (e) { + doNotSendItem = true; + ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_TelemetryInitializerFailed, "One of telemetry initializers failed, telemetry item will not be sent: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) })); + } + if (!doNotSendItem) { + if (envelope.name === ApplicationInsights.Telemetry.Metric.envelopeType || + this.sample.isSampledIn(envelope)) { + var iKeyNoDashes = this._config.instrumentationKey().replace(/-/g, ""); + envelope.name = envelope.name.replace("{0}", iKeyNoDashes); + this._sender.send(envelope); + } + else { + ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_TelemetrySampledAndNotSent, "Telemetry is sampled and not sent to the AI service.", { SampleRate: this.sample.sampleRate })); + } + } + return envelope; + }; + TelemetryContext.prototype._applyApplicationContext = function (envelope, appContext) { + if (appContext) { + var tagKeys = new AI.ContextTagKeys(); + if (typeof appContext.ver === "string") { + envelope.tags[tagKeys.applicationVersion] = appContext.ver; + } + if (typeof appContext.build === "string") { + envelope.tags[tagKeys.applicationBuild] = appContext.build; + } + } + }; + TelemetryContext.prototype._applyDeviceContext = function (envelope, deviceContext) { + var tagKeys = new AI.ContextTagKeys(); + if (deviceContext) { + if (typeof deviceContext.id === "string") { + envelope.tags[tagKeys.deviceId] = deviceContext.id; + } + if (typeof deviceContext.ip === "string") { + envelope.tags[tagKeys.deviceIp] = deviceContext.ip; + } + if (typeof deviceContext.language === "string") { + envelope.tags[tagKeys.deviceLanguage] = deviceContext.language; + } + if (typeof deviceContext.locale === "string") { + envelope.tags[tagKeys.deviceLocale] = deviceContext.locale; + } + if (typeof deviceContext.model === "string") { + envelope.tags[tagKeys.deviceModel] = deviceContext.model; + } + if (typeof deviceContext.network !== "undefined") { + envelope.tags[tagKeys.deviceNetwork] = deviceContext.network; + } + if (typeof deviceContext.oemName === "string") { + envelope.tags[tagKeys.deviceOEMName] = deviceContext.oemName; + } + if (typeof deviceContext.os === "string") { + envelope.tags[tagKeys.deviceOS] = deviceContext.os; + } + if (typeof deviceContext.osversion === "string") { + envelope.tags[tagKeys.deviceOSVersion] = deviceContext.osversion; + } + if (typeof deviceContext.resolution === "string") { + envelope.tags[tagKeys.deviceScreenResolution] = deviceContext.resolution; + } + if (typeof deviceContext.type === "string") { + envelope.tags[tagKeys.deviceType] = deviceContext.type; + } + } + }; + TelemetryContext.prototype._applyInternalContext = function (envelope, internalContext) { + if (internalContext) { + var tagKeys = new AI.ContextTagKeys(); + if (typeof internalContext.agentVersion === "string") { + envelope.tags[tagKeys.internalAgentVersion] = internalContext.agentVersion; + } + if (typeof internalContext.sdkVersion === "string") { + envelope.tags[tagKeys.internalSdkVersion] = internalContext.sdkVersion; + } + } + }; + TelemetryContext.prototype._applyLocationContext = function (envelope, locationContext) { + if (locationContext) { + var tagKeys = new AI.ContextTagKeys(); + if (typeof locationContext.ip === "string") { + envelope.tags[tagKeys.locationIp] = locationContext.ip; + } + } + }; + TelemetryContext.prototype._applyOperationContext = function (envelope, operationContext) { + if (operationContext) { + var tagKeys = new AI.ContextTagKeys(); + if (typeof operationContext.id === "string") { + envelope.tags[tagKeys.operationId] = operationContext.id; + } + if (typeof operationContext.name === "string") { + envelope.tags[tagKeys.operationName] = operationContext.name; + } + if (typeof operationContext.parentId === "string") { + envelope.tags[tagKeys.operationParentId] = operationContext.parentId; + } + if (typeof operationContext.rootId === "string") { + envelope.tags[tagKeys.operationRootId] = operationContext.rootId; + } + if (typeof operationContext.syntheticSource === "string") { + envelope.tags[tagKeys.operationSyntheticSource] = operationContext.syntheticSource; + } + } + }; + TelemetryContext.prototype._applySampleContext = function (envelope, sampleContext) { + if (sampleContext) { + envelope.sampleRate = sampleContext.sampleRate; + } + }; + TelemetryContext.prototype._applySessionContext = function (envelope, sessionContext) { + if (sessionContext) { + var tagKeys = new AI.ContextTagKeys(); + if (typeof sessionContext.id === "string") { + envelope.tags[tagKeys.sessionId] = sessionContext.id; + } + if (typeof sessionContext.isFirst !== "undefined") { + envelope.tags[tagKeys.sessionIsFirst] = sessionContext.isFirst; + } + } + }; + TelemetryContext.prototype._applyUserContext = function (envelope, userContext) { + if (userContext) { + var tagKeys = new AI.ContextTagKeys(); + if (typeof userContext.accountId === "string") { + envelope.tags[tagKeys.userAccountId] = userContext.accountId; + } + if (typeof userContext.agent === "string") { + envelope.tags[tagKeys.userAgent] = userContext.agent; + } + if (typeof userContext.id === "string") { + envelope.tags[tagKeys.userId] = userContext.id; + } + if (typeof userContext.authenticatedId === "string") { + envelope.tags[tagKeys.userAuthUserId] = userContext.authenticatedId; + } + if (typeof userContext.storeRegion === "string") { + envelope.tags[tagKeys.userStoreRegion] = userContext.storeRegion; + } + } + }; + return TelemetryContext; + })(); + ApplicationInsights.TelemetryContext = TelemetryContext; + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +/// +var Microsoft; +(function (Microsoft) { + var Telemetry; + (function (Telemetry) { + "use strict"; + var Data = (function (_super) { + __extends(Data, _super); + function Data() { + _super.call(this); + } + return Data; + })(Microsoft.Telemetry.Base); + Telemetry.Data = Data; + })(Telemetry = Microsoft.Telemetry || (Microsoft.Telemetry = {})); +})(Microsoft || (Microsoft = {})); +/// +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + var Telemetry; + (function (Telemetry) { + var Common; + (function (Common) { + "use strict"; + var Data = (function (_super) { + __extends(Data, _super); + function Data(type, data) { + _super.call(this); + this.aiDataContract = { + baseType: ApplicationInsights.FieldType.Required, + baseData: ApplicationInsights.FieldType.Required + }; + this.baseType = type; + this.baseData = data; + } + return Data; + })(Microsoft.Telemetry.Data); + Common.Data = Data; + })(Common = Telemetry.Common || (Telemetry.Common = {})); + })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {})); + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +/// +/// +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + var Telemetry; + (function (Telemetry) { + "use strict"; + var PageViewManager = (function () { + function PageViewManager(appInsights, overridePageViewDuration) { + this.pageViewPerformanceSent = false; + this.overridePageViewDuration = false; + this.overridePageViewDuration = overridePageViewDuration; + this.appInsights = appInsights; + } + PageViewManager.prototype.trackPageView = function (name, url, properties, measurements, duration) { + var _this = this; + if (typeof name !== "string") { + name = window.document && window.document.title || ""; + } + if (typeof url !== "string") { + url = window.location && window.location.href || ""; + } + var pageViewSent = false; + var customDuration = 0; + if (Telemetry.PageViewPerformance.isPerformanceTimingSupported()) { + var start = Telemetry.PageViewPerformance.getPerformanceTiming().navigationStart; + customDuration = Telemetry.PageViewPerformance.getDuration(start, +new Date); + } + else { + this.appInsights.sendPageViewInternal(name, url, !isNaN(duration) ? duration : 0, properties, measurements); + this.appInsights.flush(); + pageViewSent = true; + } + if (this.overridePageViewDuration || !isNaN(duration)) { + this.appInsights.sendPageViewInternal(name, url, !isNaN(duration) ? duration : customDuration, properties, measurements); + this.appInsights.flush(); + pageViewSent = true; + } + var maxDurationLimit = 60000; + if (!Telemetry.PageViewPerformance.isPerformanceTimingSupported()) { + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_NavigationTimingNotSupported, "trackPageView: navigation timing API used for calculation of page duration is not supported in this browser. This page view will be collected without duration and timing info.")); + return; + } + var handle = setInterval(function () { + try { + if (Telemetry.PageViewPerformance.isPerformanceTimingDataReady()) { + clearInterval(handle); + var pageViewPerformance = new Telemetry.PageViewPerformance(name, url, null, properties, measurements); + if (!pageViewPerformance.getIsValid() && !pageViewSent) { + _this.appInsights.sendPageViewInternal(name, url, customDuration, properties, measurements); + _this.appInsights.flush(); + } + else { + if (!pageViewSent) { + _this.appInsights.sendPageViewInternal(name, url, pageViewPerformance.getDurationMs(), properties, measurements); + } + if (!_this.pageViewPerformanceSent) { + _this.appInsights.sendPageViewPerformanceInternal(pageViewPerformance); + _this.pageViewPerformanceSent = true; + } + _this.appInsights.flush(); + } + } + else if (Telemetry.PageViewPerformance.getDuration(start, +new Date) > maxDurationLimit) { + clearInterval(handle); + if (!pageViewSent) { + _this.appInsights.sendPageViewInternal(name, url, maxDurationLimit, properties, measurements); + _this.appInsights.flush(); + } + } + } + catch (e) { + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_TrackPVFailedCalc, "trackPageView failed on page load calculation: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) })); + } + }, 100); + }; + return PageViewManager; + })(); + Telemetry.PageViewManager = PageViewManager; + })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {})); + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +/// +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + var Telemetry; + (function (Telemetry) { + "use strict"; + var PageVisitTimeManager = (function () { + function PageVisitTimeManager(pageVisitTimeTrackingHandler) { + this.prevPageVisitDataKeyName = "prevPageVisitData"; + this.pageVisitTimeTrackingHandler = pageVisitTimeTrackingHandler; + } + PageVisitTimeManager.prototype.trackPreviousPageVisit = function (currentPageName, currentPageUrl) { + try { + var prevPageVisitTimeData = this.restartPageVisitTimer(currentPageName, currentPageUrl); + if (prevPageVisitTimeData) { + this.pageVisitTimeTrackingHandler(prevPageVisitTimeData.pageName, prevPageVisitTimeData.pageUrl, prevPageVisitTimeData.pageVisitTime); + } + } + catch (e) { + ApplicationInsights._InternalLogging.warnToConsole("Auto track page visit time failed, metric will not be collected: " + ApplicationInsights.Util.dump(e)); + } + }; + PageVisitTimeManager.prototype.restartPageVisitTimer = function (pageName, pageUrl) { + try { + var prevPageVisitData = this.stopPageVisitTimer(); + this.startPageVisitTimer(pageName, pageUrl); + return prevPageVisitData; + } + catch (e) { + ApplicationInsights._InternalLogging.warnToConsole("Call to restart failed: " + ApplicationInsights.Util.dump(e)); + return null; + } + }; + PageVisitTimeManager.prototype.startPageVisitTimer = function (pageName, pageUrl) { + try { + if (ApplicationInsights.Util.canUseSessionStorage()) { + if (ApplicationInsights.Util.getSessionStorage(this.prevPageVisitDataKeyName) != null) { + throw new Error("Cannot call startPageVisit consecutively without first calling stopPageVisit"); + } + var currPageVisitData = new PageVisitData(pageName, pageUrl); + var currPageVisitDataStr = JSON.stringify(currPageVisitData); + ApplicationInsights.Util.setSessionStorage(this.prevPageVisitDataKeyName, currPageVisitDataStr); + } + } + catch (e) { + ApplicationInsights._InternalLogging.warnToConsole("Call to start failed: " + ApplicationInsights.Util.dump(e)); + } + }; + PageVisitTimeManager.prototype.stopPageVisitTimer = function () { + try { + if (ApplicationInsights.Util.canUseSessionStorage()) { + var pageVisitEndTime = Date.now(); + var pageVisitDataJsonStr = ApplicationInsights.Util.getSessionStorage(this.prevPageVisitDataKeyName); + if (pageVisitDataJsonStr) { + var prevPageVisitData = JSON.parse(pageVisitDataJsonStr); + prevPageVisitData.pageVisitTime = pageVisitEndTime - prevPageVisitData.pageVisitStartTime; + ApplicationInsights.Util.removeSessionStorage(this.prevPageVisitDataKeyName); + return prevPageVisitData; + } + else { + return null; + } + } + return null; + } + catch (e) { + ApplicationInsights._InternalLogging.warnToConsole("Stop page visit timer failed: " + ApplicationInsights.Util.dump(e)); + return null; + } + }; + return PageVisitTimeManager; + })(); + Telemetry.PageVisitTimeManager = PageVisitTimeManager; + var PageVisitData = (function () { + function PageVisitData(pageName, pageUrl) { + this.pageVisitStartTime = Date.now(); + this.pageName = pageName; + this.pageUrl = pageUrl; + } + return PageVisitData; + })(); + Telemetry.PageVisitData = PageVisitData; + })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {})); + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +var AI; +(function (AI) { + "use strict"; + (function (DependencyKind) { + DependencyKind[DependencyKind["SQL"] = 0] = "SQL"; + DependencyKind[DependencyKind["Http"] = 1] = "Http"; + DependencyKind[DependencyKind["Other"] = 2] = "Other"; + })(AI.DependencyKind || (AI.DependencyKind = {})); + var DependencyKind = AI.DependencyKind; +})(AI || (AI = {})); +var AI; +(function (AI) { + "use strict"; + (function (DependencySourceType) { + DependencySourceType[DependencySourceType["Undefined"] = 0] = "Undefined"; + DependencySourceType[DependencySourceType["Aic"] = 1] = "Aic"; + DependencySourceType[DependencySourceType["Apmc"] = 2] = "Apmc"; + })(AI.DependencySourceType || (AI.DependencySourceType = {})); + var DependencySourceType = AI.DependencySourceType; +})(AI || (AI = {})); +/// +/// +/// +/// +var AI; +(function (AI) { + "use strict"; + var RemoteDependencyData = (function (_super) { + __extends(RemoteDependencyData, _super); + function RemoteDependencyData() { + this.ver = 2; + this.kind = AI.DataPointType.Aggregation; + this.dependencyKind = AI.DependencyKind.Other; + this.success = true; + this.dependencySource = AI.DependencySourceType.Apmc; + this.properties = {}; + _super.call(this); + } + return RemoteDependencyData; + })(Microsoft.Telemetry.Domain); + AI.RemoteDependencyData = RemoteDependencyData; +})(AI || (AI = {})); +/// +/// +/// +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + var Telemetry; + (function (Telemetry) { + "use strict"; + var RemoteDependencyData = (function (_super) { + __extends(RemoteDependencyData, _super); + function RemoteDependencyData(id, name, commandName, value, success, resultCode) { + _super.call(this); + this.aiDataContract = { + id: ApplicationInsights.FieldType.Required, + ver: ApplicationInsights.FieldType.Required, + name: ApplicationInsights.FieldType.Default, + kind: ApplicationInsights.FieldType.Required, + value: ApplicationInsights.FieldType.Default, + count: ApplicationInsights.FieldType.Default, + min: ApplicationInsights.FieldType.Default, + max: ApplicationInsights.FieldType.Default, + stdDev: ApplicationInsights.FieldType.Default, + dependencyKind: ApplicationInsights.FieldType.Default, + success: ApplicationInsights.FieldType.Default, + async: ApplicationInsights.FieldType.Default, + dependencySource: ApplicationInsights.FieldType.Default, + commandName: ApplicationInsights.FieldType.Default, + dependencyTypeName: ApplicationInsights.FieldType.Default, + properties: ApplicationInsights.FieldType.Default, + resultCode: ApplicationInsights.FieldType.Default + }; + this.id = id; + this.name = name; + this.commandName = commandName; + this.value = value; + this.success = success; + this.resultCode = resultCode + ""; + this.dependencyKind = AI.DependencyKind.Http; + this.dependencyTypeName = "Ajax"; + } + RemoteDependencyData.envelopeType = "Microsoft.ApplicationInsights.{0}.RemoteDependency"; + RemoteDependencyData.dataType = "RemoteDependencyData"; + return RemoteDependencyData; + })(AI.RemoteDependencyData); + Telemetry.RemoteDependencyData = RemoteDependencyData; + })(Telemetry = ApplicationInsights.Telemetry || (ApplicationInsights.Telemetry = {})); + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + "use strict"; + ApplicationInsights.Version = "0.22.9"; + var AppInsights = (function () { + function AppInsights(config) { + var _this = this; + this._trackAjaxAttempts = 0; + this.config = config || {}; + var defaults = AppInsights.defaultConfig; + if (defaults !== undefined) { + for (var field in defaults) { + if (this.config[field] === undefined) { + this.config[field] = defaults[field]; + } + } + } + ApplicationInsights._InternalLogging.verboseLogging = function () { return _this.config.verboseLogging; }; + ApplicationInsights._InternalLogging.enableDebugExceptions = function () { return _this.config.enableDebug; }; + var configGetters = { + instrumentationKey: function () { return _this.config.instrumentationKey; }, + accountId: function () { return _this.config.accountId; }, + sessionRenewalMs: function () { return _this.config.sessionRenewalMs; }, + sessionExpirationMs: function () { return _this.config.sessionExpirationMs; }, + endpointUrl: function () { return _this.config.endpointUrl; }, + emitLineDelimitedJson: function () { return _this.config.emitLineDelimitedJson; }, + maxBatchSizeInBytes: function () { return _this.config.maxBatchSizeInBytes; }, + maxBatchInterval: function () { return _this.config.maxBatchInterval; }, + disableTelemetry: function () { return _this.config.disableTelemetry; }, + sampleRate: function () { return _this.config.samplingPercentage; }, + cookieDomain: function () { return _this.config.cookieDomain; } + }; + this.context = new ApplicationInsights.TelemetryContext(configGetters); + this._pageViewManager = new Microsoft.ApplicationInsights.Telemetry.PageViewManager(this, this.config.overridePageViewDuration); + this._eventTracking = new Timing("trackEvent"); + this._eventTracking.action = function (name, url, duration, properties, measurements) { + if (!measurements) { + measurements = { duration: duration }; + } + else { + if (isNaN(measurements["duration"])) { + measurements["duration"] = duration; + } + } + var event = new ApplicationInsights.Telemetry.Event(name, properties, measurements); + var data = new ApplicationInsights.Telemetry.Common.Data(ApplicationInsights.Telemetry.Event.dataType, event); + var envelope = new ApplicationInsights.Telemetry.Common.Envelope(data, ApplicationInsights.Telemetry.Event.envelopeType); + _this.context.track(envelope); + }; + this._pageTracking = new Timing("trackPageView"); + this._pageTracking.action = function (name, url, duration, properties, measurements) { + _this.sendPageViewInternal(name, url, duration, properties, measurements); + }; + this._pageVisitTimeManager = new ApplicationInsights.Telemetry.PageVisitTimeManager(function (pageName, pageUrl, pageVisitTime) { return _this.trackPageVisitTime(pageName, pageUrl, pageVisitTime); }); + if (!this.config.disableAjaxTracking) { + new Microsoft.ApplicationInsights.AjaxMonitor(this); + } + } + AppInsights.prototype.sendPageViewInternal = function (name, url, duration, properties, measurements) { + var pageView = new ApplicationInsights.Telemetry.PageView(name, url, duration, properties, measurements); + var data = new ApplicationInsights.Telemetry.Common.Data(ApplicationInsights.Telemetry.PageView.dataType, pageView); + var envelope = new ApplicationInsights.Telemetry.Common.Envelope(data, ApplicationInsights.Telemetry.PageView.envelopeType); + this.context.track(envelope); + this._trackAjaxAttempts = 0; + }; + AppInsights.prototype.sendPageViewPerformanceInternal = function (pageViewPerformance) { + var pageViewPerformanceData = new ApplicationInsights.Telemetry.Common.Data(ApplicationInsights.Telemetry.PageViewPerformance.dataType, pageViewPerformance); + var pageViewPerformanceEnvelope = new ApplicationInsights.Telemetry.Common.Envelope(pageViewPerformanceData, ApplicationInsights.Telemetry.PageViewPerformance.envelopeType); + this.context.track(pageViewPerformanceEnvelope); + }; + AppInsights.prototype.startTrackPage = function (name) { + try { + if (typeof name !== "string") { + name = window.document && window.document.title || ""; + } + this._pageTracking.start(name); + } + catch (e) { + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_StartTrackFailed, "startTrackPage failed, page view may not be collected: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) })); + } + }; + AppInsights.prototype.stopTrackPage = function (name, url, properties, measurements) { + try { + if (typeof name !== "string") { + name = window.document && window.document.title || ""; + } + if (typeof url !== "string") { + url = window.location && window.location.href || ""; + } + this._pageTracking.stop(name, url, properties, measurements); + if (this.config.autoTrackPageVisitTime) { + this._pageVisitTimeManager.trackPreviousPageVisit(name, url); + } + } + catch (e) { + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_StopTrackFailed, "stopTrackPage failed, page view will not be collected: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) })); + } + }; + AppInsights.prototype.trackPageView = function (name, url, properties, measurements, duration) { + try { + this._pageViewManager.trackPageView(name, url, properties, measurements, duration); + if (this.config.autoTrackPageVisitTime) { + this._pageVisitTimeManager.trackPreviousPageVisit(name, url); + } + } + catch (e) { + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_TrackPVFailed, "trackPageView failed, page view will not be collected: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) })); + } + }; + AppInsights.prototype.startTrackEvent = function (name) { + try { + this._eventTracking.start(name); + } + catch (e) { + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_StartTrackEventFailed, "startTrackEvent failed, event will not be collected: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) })); + } + }; + AppInsights.prototype.stopTrackEvent = function (name, properties, measurements) { + try { + this._eventTracking.stop(name, undefined, properties, measurements); + } + catch (e) { + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_StopTrackEventFailed, "stopTrackEvent failed, event will not be collected: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) })); + } + }; + AppInsights.prototype.trackEvent = function (name, properties, measurements) { + try { + var eventTelemetry = new ApplicationInsights.Telemetry.Event(name, properties, measurements); + var data = new ApplicationInsights.Telemetry.Common.Data(ApplicationInsights.Telemetry.Event.dataType, eventTelemetry); + var envelope = new ApplicationInsights.Telemetry.Common.Envelope(data, ApplicationInsights.Telemetry.Event.envelopeType); + this.context.track(envelope); + } + catch (e) { + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_TrackEventFailed, "trackEvent failed, event will not be collected: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) })); + } + }; + AppInsights.prototype.trackAjax = function (id, absoluteUrl, pathName, totalTime, success, resultCode) { + if (this.config.maxAjaxCallsPerView === -1 || + this._trackAjaxAttempts < this.config.maxAjaxCallsPerView) { + var dependency = new ApplicationInsights.Telemetry.RemoteDependencyData(id, absoluteUrl, pathName, totalTime, success, resultCode); + var dependencyData = new ApplicationInsights.Telemetry.Common.Data(ApplicationInsights.Telemetry.RemoteDependencyData.dataType, dependency); + var envelope = new ApplicationInsights.Telemetry.Common.Envelope(dependencyData, ApplicationInsights.Telemetry.RemoteDependencyData.envelopeType); + this.context.track(envelope); + } + else if (this._trackAjaxAttempts === this.config.maxAjaxCallsPerView) { + ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_MaxAjaxPerPVExceeded, "Maximum ajax per page view limit reached, ajax monitoring is paused until the next trackPageView(). In order to increase the limit set the maxAjaxCallsPerView configuration parameter.")); + } + ++this._trackAjaxAttempts; + }; + AppInsights.prototype.trackException = function (exception, handledAt, properties, measurements) { + try { + if (!ApplicationInsights.Util.isError(exception)) { + try { + throw new Error(exception); + } + catch (error) { + exception = error; + } + } + var exceptionTelemetry = new ApplicationInsights.Telemetry.Exception(exception, handledAt, properties, measurements); + var data = new ApplicationInsights.Telemetry.Common.Data(ApplicationInsights.Telemetry.Exception.dataType, exceptionTelemetry); + var envelope = new ApplicationInsights.Telemetry.Common.Envelope(data, ApplicationInsights.Telemetry.Exception.envelopeType); + this.context.track(envelope); + } + catch (e) { + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_TrackExceptionFailed, "trackException failed, exception will not be collected: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) })); + } + }; + AppInsights.prototype.trackMetric = function (name, average, sampleCount, min, max, properties) { + try { + var telemetry = new ApplicationInsights.Telemetry.Metric(name, average, sampleCount, min, max, properties); + var data = new ApplicationInsights.Telemetry.Common.Data(ApplicationInsights.Telemetry.Metric.dataType, telemetry); + var envelope = new ApplicationInsights.Telemetry.Common.Envelope(data, ApplicationInsights.Telemetry.Metric.envelopeType); + this.context.track(envelope); + } + catch (e) { + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_TrackMetricFailed, "trackMetric failed, metric will not be collected: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) })); + } + }; + AppInsights.prototype.trackTrace = function (message, properties) { + try { + var telemetry = new ApplicationInsights.Telemetry.Trace(message, properties); + var data = new ApplicationInsights.Telemetry.Common.Data(ApplicationInsights.Telemetry.Trace.dataType, telemetry); + var envelope = new ApplicationInsights.Telemetry.Common.Envelope(data, ApplicationInsights.Telemetry.Trace.envelopeType); + this.context.track(envelope); + } + catch (e) { + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_TrackTraceFailed, "trackTrace failed, trace will not be collected: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) })); + } + }; + AppInsights.prototype.trackPageVisitTime = function (pageName, pageUrl, pageVisitTime) { + var properties = { PageName: pageName, PageUrl: pageUrl }; + this.trackMetric("PageVisitTime", pageVisitTime, 1, pageVisitTime, pageVisitTime, properties); + }; + AppInsights.prototype.flush = function () { + try { + this.context._sender.triggerSend(); + } + catch (e) { + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_FlushFailed, "flush failed, telemetry will not be collected: " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) })); + } + }; + AppInsights.prototype.setAuthenticatedUserContext = function (authenticatedUserId, accountId) { + try { + this.context.user.setAuthenticatedUserContext(authenticatedUserId, accountId); + } + catch (e) { + ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_SetAuthContextFailed, "Setting auth user context failed. " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) })); + } + }; + AppInsights.prototype.clearAuthenticatedUserContext = function () { + try { + this.context.user.clearAuthenticatedUserContext(); + } + catch (e) { + ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_SetAuthContextFailed, "Clearing auth user context failed. " + ApplicationInsights.Util.getExceptionName(e), { exception: ApplicationInsights.Util.dump(e) })); + } + }; + AppInsights.prototype.SendCORSException = function (properties) { + var exceptionData = Microsoft.ApplicationInsights.Telemetry.Exception.CreateSimpleException("Script error.", "Error", "unknown", "unknown", "The browser’s same-origin policy prevents us from getting the details of this exception.The exception occurred in a script loaded from an origin different than the web page.For cross- domain error reporting you can use crossorigin attribute together with appropriate CORS HTTP headers.For more information please see http://www.w3.org/TR/cors/.", 0, null); + exceptionData.properties = properties; + var data = new ApplicationInsights.Telemetry.Common.Data(ApplicationInsights.Telemetry.Exception.dataType, exceptionData); + var envelope = new ApplicationInsights.Telemetry.Common.Envelope(data, ApplicationInsights.Telemetry.Exception.envelopeType); + this.context.track(envelope); + }; + AppInsights.prototype._onerror = function (message, url, lineNumber, columnNumber, error) { + try { + var properties = { url: url ? url : document.URL }; + if (ApplicationInsights.Util.isCrossOriginError(message, url, lineNumber, columnNumber, error)) { + this.SendCORSException(properties); + } + else { + if (!ApplicationInsights.Util.isError(error)) { + var stack = "window.onerror@" + properties.url + ":" + lineNumber + ":" + (columnNumber || 0); + error = new Error(message); + error["stack"] = stack; + } + this.trackException(error, null, properties); + } + } + catch (exception) { + var errorString = error ? (error.name + ", " + error.message) : "null"; + var exceptionDump = ApplicationInsights.Util.dump(exception); + ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_ExceptionWhileLoggingError, "_onerror threw exception while logging error, error will not be collected: " + ApplicationInsights.Util.getExceptionName(exception), { exception: exceptionDump, errorString: errorString })); + } + }; + return AppInsights; + })(); + ApplicationInsights.AppInsights = AppInsights; + var Timing = (function () { + function Timing(name) { + this._name = name; + this._events = {}; + } + Timing.prototype.start = function (name) { + if (typeof this._events[name] !== "undefined") { + ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_StartCalledMoreThanOnce, "start was called more than once for this event without calling stop.", { name: this._name, key: name })); + } + this._events[name] = +new Date; + }; + Timing.prototype.stop = function (name, url, properties, measurements) { + var start = this._events[name]; + if (isNaN(start)) { + ApplicationInsights._InternalLogging.throwInternalUserActionable(ApplicationInsights.LoggingSeverity.WARNING, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.USRACT_StopCalledWithoutStart, "stop was called without a corresponding start.", { name: this._name, key: name })); + } + else { + var end = +new Date; + var duration = ApplicationInsights.Telemetry.PageViewPerformance.getDuration(start, end); + this.action(name, url, duration, properties, measurements); + } + delete this._events[name]; + this._events[name] = undefined; + }; + return Timing; + })(); + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +/// +var AI; +(function (AI) { + "use strict"; + var AjaxCallData = (function (_super) { + __extends(AjaxCallData, _super); + function AjaxCallData() { + this.ver = 2; + this.properties = {}; + this.measurements = {}; + _super.call(this); + } + return AjaxCallData; + })(AI.PageViewData); + AI.AjaxCallData = AjaxCallData; +})(AI || (AI = {})); +/// +var AI; +(function (AI) { + "use strict"; + var RequestData = (function (_super) { + __extends(RequestData, _super); + function RequestData() { + this.ver = 2; + this.properties = {}; + this.measurements = {}; + _super.call(this); + } + return RequestData; + })(Microsoft.Telemetry.Domain); + AI.RequestData = RequestData; +})(AI || (AI = {})); +/// +/// +var AI; +(function (AI) { + "use strict"; + var SessionStateData = (function (_super) { + __extends(SessionStateData, _super); + function SessionStateData() { + this.ver = 2; + this.state = AI.SessionState.Start; + _super.call(this); + } + return SessionStateData; + })(Microsoft.Telemetry.Domain); + AI.SessionStateData = SessionStateData; +})(AI || (AI = {})); +/// +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + "use strict"; + var Initialization = (function () { + function Initialization(snippet) { + snippet.queue = snippet.queue || []; + var config = snippet.config || {}; + if (config && !config.instrumentationKey) { + config = snippet; + if (config["iKey"]) { + Microsoft.ApplicationInsights.Version = "0.10.0.0"; + config.instrumentationKey = config["iKey"]; + } + else if (config["applicationInsightsId"]) { + Microsoft.ApplicationInsights.Version = "0.7.2.0"; + config.instrumentationKey = config["applicationInsightsId"]; + } + else { + throw new Error("Cannot load Application Insights SDK, no instrumentationKey was provided."); + } + } + config = Initialization.getDefaultConfig(config); + this.snippet = snippet; + this.config = config; + } + Initialization.prototype.loadAppInsights = function () { + var appInsights = new Microsoft.ApplicationInsights.AppInsights(this.config); + if (this.config["iKey"]) { + var originalTrackPageView = appInsights.trackPageView; + appInsights.trackPageView = function (pagePath, properties, measurements) { + originalTrackPageView.apply(appInsights, [null, pagePath, properties, measurements]); + }; + } + var legacyPageView = "logPageView"; + if (typeof this.snippet[legacyPageView] === "function") { + appInsights[legacyPageView] = function (pagePath, properties, measurements) { + appInsights.trackPageView(null, pagePath, properties, measurements); + }; + } + var legacyEvent = "logEvent"; + if (typeof this.snippet[legacyEvent] === "function") { + appInsights[legacyEvent] = function (name, properties, measurements) { + appInsights.trackEvent(name, properties, measurements); + }; + } + return appInsights; + }; + Initialization.prototype.emptyQueue = function () { + try { + if (Microsoft.ApplicationInsights.Util.isArray(this.snippet.queue)) { + var length = this.snippet.queue.length; + for (var i = 0; i < length; i++) { + var call = this.snippet.queue[i]; + call(); + } + this.snippet.queue = undefined; + delete this.snippet.queue; + } + } + catch (exception) { + var properties = {}; + if (exception && typeof exception.toString === "function") { + properties.exception = exception.toString(); + } + var message = new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_FailedToSendQueuedTelemetry, "Failed to send queued telemetry", properties); + Microsoft.ApplicationInsights._InternalLogging.throwInternalNonUserActionable(ApplicationInsights.LoggingSeverity.WARNING, message); + } + }; + Initialization.prototype.pollInteralLogs = function (appInsightsInstance) { + return setInterval(function () { + var queue = Microsoft.ApplicationInsights._InternalLogging.queue; + var length = queue.length; + for (var i = 0; i < length; i++) { + appInsightsInstance.trackTrace(queue[i].message); + } + queue.length = 0; + }, this.config.diagnosticLogInterval); + }; + Initialization.prototype.addHousekeepingBeforeUnload = function (appInsightsInstance) { + // Add callback to push events when the user navigates away + if (!appInsightsInstance.config.disableFlushOnBeforeUnload && ('onbeforeunload' in window)) { + var performHousekeeping = function () { + appInsightsInstance.context._sender.triggerSend(); + appInsightsInstance.context._sessionManager.backup(); + }; + if (!Microsoft.ApplicationInsights.Util.addEventHandler('beforeunload', performHousekeeping)) { + Microsoft.ApplicationInsights._InternalLogging.throwInternalNonUserActionable(Microsoft.ApplicationInsights.LoggingSeverity.CRITICAL, new ApplicationInsights._InternalLogMessage(ApplicationInsights._InternalMessageId.NONUSRACT_FailedToAddHandlerForOnBeforeUnload, 'Could not add handler for beforeunload')); + } + } + }; + Initialization.getDefaultConfig = function (config) { + if (!config) { + config = {}; + } + config.endpointUrl = config.endpointUrl || "//dc.services.visualstudio.com/v2/track"; + config.sessionRenewalMs = 30 * 60 * 1000; + config.sessionExpirationMs = 24 * 60 * 60 * 1000; + config.maxBatchSizeInBytes = config.maxBatchSizeInBytes > 0 ? config.maxBatchSizeInBytes : 1000000; + config.maxBatchInterval = !isNaN(config.maxBatchInterval) ? config.maxBatchInterval : 15000; + config.enableDebug = ApplicationInsights.Util.stringToBoolOrDefault(config.enableDebug); + config.disableExceptionTracking = (config.disableExceptionTracking !== undefined && config.disableExceptionTracking !== null) ? + ApplicationInsights.Util.stringToBoolOrDefault(config.disableExceptionTracking) : + false; + config.disableTelemetry = ApplicationInsights.Util.stringToBoolOrDefault(config.disableTelemetry); + config.verboseLogging = ApplicationInsights.Util.stringToBoolOrDefault(config.verboseLogging); + config.emitLineDelimitedJson = ApplicationInsights.Util.stringToBoolOrDefault(config.emitLineDelimitedJson); + config.diagnosticLogInterval = config.diagnosticLogInterval || 10000; + config.autoTrackPageVisitTime = ApplicationInsights.Util.stringToBoolOrDefault(config.autoTrackPageVisitTime); + if (isNaN(config.samplingPercentage) || config.samplingPercentage <= 0 || config.samplingPercentage >= 100) { + config.samplingPercentage = 100; + } + config.disableAjaxTracking = (config.disableAjaxTracking !== undefined && config.disableAjaxTracking !== null) ? + ApplicationInsights.Util.stringToBoolOrDefault(config.disableAjaxTracking) : + false; + config.maxAjaxCallsPerView = !isNaN(config.maxAjaxCallsPerView) ? config.maxAjaxCallsPerView : 500; + config.disableCorrelationHeaders = (config.disableCorrelationHeaders !== undefined && config.disableCorrelationHeaders !== null) ? + ApplicationInsights.Util.stringToBoolOrDefault(config.disableCorrelationHeaders) : + true; + config.disableFlushOnBeforeUnload = (config.disableFlushOnBeforeUnload !== undefined && config.disableFlushOnBeforeUnload !== null) ? + ApplicationInsights.Util.stringToBoolOrDefault(config.disableFlushOnBeforeUnload) : + false; + return config; + }; + return Initialization; + })(); + ApplicationInsights.Initialization = Initialization; + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); +/// +var Microsoft; +(function (Microsoft) { + var ApplicationInsights; + (function (ApplicationInsights) { + "use strict"; + try { + if (typeof window !== "undefined" && typeof JSON !== "undefined") { + var aiName = "appInsights"; + if (window[aiName] === undefined) { + Microsoft.ApplicationInsights.AppInsights.defaultConfig = Microsoft.ApplicationInsights.Initialization.getDefaultConfig(); + } + else { + var snippet = window[aiName] || {}; + var init = new Microsoft.ApplicationInsights.Initialization(snippet); + var appInsightsLocal = init.loadAppInsights(); + for (var field in appInsightsLocal) { + snippet[field] = appInsightsLocal[field]; + } + init.emptyQueue(); + init.pollInteralLogs(appInsightsLocal); + init.addHousekeepingBeforeUnload(appInsightsLocal); + } + } + } + catch (e) { + Microsoft.ApplicationInsights._InternalLogging.warnToConsole('Failed to initialize AppInsights JS SDK: ' + e.message); + } + })(ApplicationInsights = Microsoft.ApplicationInsights || (Microsoft.ApplicationInsights = {})); +})(Microsoft || (Microsoft = {})); diff --git a/ankit/ticTac1/ticTac1/scripts/ai.0.22.9-build00167.min.js b/ankit/ticTac1/ticTac1/scripts/ai.0.22.9-build00167.min.js new file mode 100644 index 0000000..4283fa3 --- /dev/null +++ b/ankit/ticTac1/ticTac1/scripts/ai.0.22.9-build00167.min.js @@ -0,0 +1 @@ +var __extends,AI,Microsoft;(function(n){var t;(function(n){var r,t,i,u;(function(n){n[n.CRITICAL=0]="CRITICAL";n[n.WARNING=1]="WARNING"})(n.LoggingSeverity||(n.LoggingSeverity={}));r=n.LoggingSeverity,function(n){n[n.NONUSRACT_BrowserDoesNotSupportLocalStorage=0]="NONUSRACT_BrowserDoesNotSupportLocalStorage";n[n.NONUSRACT_BrowserCannotReadLocalStorage=1]="NONUSRACT_BrowserCannotReadLocalStorage";n[n.NONUSRACT_BrowserCannotReadSessionStorage=2]="NONUSRACT_BrowserCannotReadSessionStorage";n[n.NONUSRACT_BrowserCannotWriteLocalStorage=3]="NONUSRACT_BrowserCannotWriteLocalStorage";n[n.NONUSRACT_BrowserCannotWriteSessionStorage=4]="NONUSRACT_BrowserCannotWriteSessionStorage";n[n.NONUSRACT_BrowserFailedRemovalFromLocalStorage=5]="NONUSRACT_BrowserFailedRemovalFromLocalStorage";n[n.NONUSRACT_BrowserFailedRemovalFromSessionStorage=6]="NONUSRACT_BrowserFailedRemovalFromSessionStorage";n[n.NONUSRACT_CannotSendEmptyTelemetry=7]="NONUSRACT_CannotSendEmptyTelemetry";n[n.NONUSRACT_ClientPerformanceMathError=8]="NONUSRACT_ClientPerformanceMathError";n[n.NONUSRACT_ErrorParsingAISessionCookie=9]="NONUSRACT_ErrorParsingAISessionCookie";n[n.NONUSRACT_ErrorPVCalc=10]="NONUSRACT_ErrorPVCalc";n[n.NONUSRACT_ExceptionWhileLoggingError=11]="NONUSRACT_ExceptionWhileLoggingError";n[n.NONUSRACT_FailedAddingTelemetryToBuffer=12]="NONUSRACT_FailedAddingTelemetryToBuffer";n[n.NONUSRACT_FailedMonitorAjaxAbort=13]="NONUSRACT_FailedMonitorAjaxAbort";n[n.NONUSRACT_FailedMonitorAjaxDur=14]="NONUSRACT_FailedMonitorAjaxDur";n[n.NONUSRACT_FailedMonitorAjaxOpen=15]="NONUSRACT_FailedMonitorAjaxOpen";n[n.NONUSRACT_FailedMonitorAjaxRSC=16]="NONUSRACT_FailedMonitorAjaxRSC";n[n.NONUSRACT_FailedMonitorAjaxSend=17]="NONUSRACT_FailedMonitorAjaxSend";n[n.NONUSRACT_FailedToAddHandlerForOnBeforeUnload=18]="NONUSRACT_FailedToAddHandlerForOnBeforeUnload";n[n.NONUSRACT_FailedToSendQueuedTelemetry=19]="NONUSRACT_FailedToSendQueuedTelemetry";n[n.NONUSRACT_FailedToReportDataLoss=20]="NONUSRACT_FailedToReportDataLoss";n[n.NONUSRACT_FlushFailed=21]="NONUSRACT_FlushFailed";n[n.NONUSRACT_MessageLimitPerPVExceeded=22]="NONUSRACT_MessageLimitPerPVExceeded";n[n.NONUSRACT_MissingRequiredFieldSpecification=23]="NONUSRACT_MissingRequiredFieldSpecification";n[n.NONUSRACT_NavigationTimingNotSupported=24]="NONUSRACT_NavigationTimingNotSupported";n[n.NONUSRACT_OnError=25]="NONUSRACT_OnError";n[n.NONUSRACT_SessionRenewalDateIsZero=26]="NONUSRACT_SessionRenewalDateIsZero";n[n.NONUSRACT_SenderNotInitialized=27]="NONUSRACT_SenderNotInitialized";n[n.NONUSRACT_StartTrackEventFailed=28]="NONUSRACT_StartTrackEventFailed";n[n.NONUSRACT_StopTrackEventFailed=29]="NONUSRACT_StopTrackEventFailed";n[n.NONUSRACT_StartTrackFailed=30]="NONUSRACT_StartTrackFailed";n[n.NONUSRACT_StopTrackFailed=31]="NONUSRACT_StopTrackFailed";n[n.NONUSRACT_TelemetrySampledAndNotSent=32]="NONUSRACT_TelemetrySampledAndNotSent";n[n.NONUSRACT_TrackEventFailed=33]="NONUSRACT_TrackEventFailed";n[n.NONUSRACT_TrackExceptionFailed=34]="NONUSRACT_TrackExceptionFailed";n[n.NONUSRACT_TrackMetricFailed=35]="NONUSRACT_TrackMetricFailed";n[n.NONUSRACT_TrackPVFailed=36]="NONUSRACT_TrackPVFailed";n[n.NONUSRACT_TrackPVFailedCalc=37]="NONUSRACT_TrackPVFailedCalc";n[n.NONUSRACT_TrackTraceFailed=38]="NONUSRACT_TrackTraceFailed";n[n.NONUSRACT_TransmissionFailed=39]="NONUSRACT_TransmissionFailed";n[n.USRACT_CannotSerializeObject=40]="USRACT_CannotSerializeObject";n[n.USRACT_CannotSerializeObjectNonSerializable=41]="USRACT_CannotSerializeObjectNonSerializable";n[n.USRACT_CircularReferenceDetected=42]="USRACT_CircularReferenceDetected";n[n.USRACT_ClearAuthContextFailed=43]="USRACT_ClearAuthContextFailed";n[n.USRACT_ExceptionTruncated=44]="USRACT_ExceptionTruncated";n[n.USRACT_IllegalCharsInName=45]="USRACT_IllegalCharsInName";n[n.USRACT_ItemNotInArray=46]="USRACT_ItemNotInArray";n[n.USRACT_MaxAjaxPerPVExceeded=47]="USRACT_MaxAjaxPerPVExceeded";n[n.USRACT_MessageTruncated=48]="USRACT_MessageTruncated";n[n.USRACT_NameTooLong=49]="USRACT_NameTooLong";n[n.USRACT_SampleRateOutOfRange=50]="USRACT_SampleRateOutOfRange";n[n.USRACT_SetAuthContextFailed=51]="USRACT_SetAuthContextFailed";n[n.USRACT_SetAuthContextFailedAccountName=52]="USRACT_SetAuthContextFailedAccountName";n[n.USRACT_StringValueTooLong=53]="USRACT_StringValueTooLong";n[n.USRACT_StartCalledMoreThanOnce=54]="USRACT_StartCalledMoreThanOnce";n[n.USRACT_StopCalledWithoutStart=55]="USRACT_StopCalledWithoutStart";n[n.USRACT_TelemetryInitializerFailed=56]="USRACT_TelemetryInitializerFailed";n[n.USRACT_TrackArgumentsNotSpecified=57]="USRACT_TrackArgumentsNotSpecified";n[n.USRACT_UrlTooLong=58]="USRACT_UrlTooLong"}(n._InternalMessageId||(n._InternalMessageId={}));t=n._InternalMessageId;i=function(){function n(i,r,u){this.message=t[i].toString();this.messageId=i;var f=(r?" message:"+n.sanitizeDiagnosticText(r):"")+(u?" props:"+n.sanitizeDiagnosticText(JSON.stringify(u)):"");this.message+=f}return n.sanitizeDiagnosticText=function(n){return'"'+n.replace(/\"/g,"")+'"'},n}();n._InternalLogMessage=i;u=function(){function u(){}return u.throwInternalNonUserActionable=function(n,t){if(this.enableDebugExceptions())throw t;else typeof t=="undefined"||!t||typeof t.message!="undefined"&&(t.message=this.AiNonUserActionablePrefix+t.message,this.warnToConsole(t.message),this.logInternalMessage(n,t))},u.throwInternalUserActionable=function(n,t){if(this.enableDebugExceptions())throw t;else typeof t=="undefined"||!t||typeof t.message!="undefined"&&(t.message=this.AiUserActionablePrefix+t.message,this.warnToConsole(t.message),this.logInternalMessage(n,t))},u.warnToConsole=function(n){typeof console=="undefined"||!console||(typeof console.warn=="function"?console.warn(n):typeof console.log=="function"&&console.log(n))},u.resetInternalMessageCount=function(){this._messageCount=0},u.clearInternalMessageLoggedTypes=function(){var i,t;if(n.Util.canUseSessionStorage())for(i=n.Util.getSessionStorageKeys(),t=0;t=this.MAX_INTERNAL_MESSAGE_LIMIT},u.AiUserActionablePrefix="AI: ",u.AIInternalMessagePrefix="AITR_",u.AiNonUserActionablePrefix="AI (Internal): ",u.enableDebugExceptions=function(){return!1},u.verboseLogging=function(){return!1},u.queue=[],u.MAX_INTERNAL_MESSAGE_LIMIT=25,u._messageCount=0,u}();n._InternalLogging=u})(t=n.ApplicationInsights||(n.ApplicationInsights={}))})(Microsoft||(Microsoft={})),function(n){var t;(function(n){var t,i,r;(function(n){n[n.LocalStorage=0]="LocalStorage";n[n.SessionStorage=1]="SessionStorage"})(t||(t={}));i=function(){function i(){}return i._getLocalStorageObject=function(){return i._getVerifiedStorageObject(t.LocalStorage)},i._getVerifiedStorageObject=function(n){var i=null,u,r;try{r=new Date;i=n===t.LocalStorage?window.localStorage:window.sessionStorage;i.setItem(r,r);u=i.getItem(r)!=r;i.removeItem(r);u&&(i=null)}catch(f){i=null}return i},i.canUseLocalStorage=function(){return!!i._getLocalStorageObject()},i.getStorage=function(t){var r=i._getLocalStorageObject(),f;if(r!==null)try{return r.getItem(t)}catch(u){f=new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_BrowserCannotReadLocalStorage,"Browser failed read of local storage. "+i.getExceptionName(u),{exception:i.dump(u)});n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.WARNING,f)}return null},i.setStorage=function(t,r){var u=i._getLocalStorageObject(),e;if(u!==null)try{return u.setItem(t,r),!0}catch(f){e=new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_BrowserCannotWriteLocalStorage,"Browser failed write to local storage. "+i.getExceptionName(f),{exception:i.dump(f)});n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.WARNING,e)}return!1},i.removeStorage=function(t){var r=i._getLocalStorageObject(),f;if(r!==null)try{return r.removeItem(t),!0}catch(u){f=new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_BrowserFailedRemovalFromLocalStorage,"Browser failed removal of local storage item. "+i.getExceptionName(u),{exception:i.dump(u)});n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.WARNING,f)}return!1},i._getSessionStorageObject=function(){return i._getVerifiedStorageObject(t.SessionStorage)},i.canUseSessionStorage=function(){return!!i._getSessionStorageObject()},i.getSessionStorageKeys=function(){var n=[],t;if(i.canUseSessionStorage())for(t in window.sessionStorage)n.push(t);return n},i.getSessionStorage=function(t){var r=i._getSessionStorageObject(),f;if(r!==null)try{return r.getItem(t)}catch(u){f=new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_BrowserCannotReadSessionStorage,"Browser failed read of session storage. "+i.getExceptionName(u),{exception:i.dump(u)});n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.CRITICAL,f)}return null},i.setSessionStorage=function(t,r){var u=i._getSessionStorageObject(),e;if(u!==null)try{return u.setItem(t,r),!0}catch(f){e=new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_BrowserCannotWriteSessionStorage,"Browser failed write to session storage. "+i.getExceptionName(f),{exception:i.dump(f)});n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.CRITICAL,e)}return!1},i.removeSessionStorage=function(t){var r=i._getSessionStorageObject(),f;if(r!==null)try{return r.removeItem(t),!0}catch(u){f=new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_BrowserFailedRemovalFromSessionStorage,"Browser failed removal of session storage item. "+i.getExceptionName(u),{exception:i.dump(u)});n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.CRITICAL,f)}return!1},i.setCookie=function(n,t,r){var u="";r&&(u=";domain="+r);i.document.cookie=n+"="+t+u+";path=/"},i.stringToBoolOrDefault=function(n){return n?n.toString().toLowerCase()==="true":!1},i.getCookie=function(n){var e="",f,u,r,t;if(n&&n.length)for(f=n+"=",u=i.document.cookie.split(";"),r=0;r0;)i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(n%64),t+=i,n=Math.floor(n/64);return t},i.isArray=function(n){return Object.prototype.toString.call(n)==="[object Array]"},i.isError=function(n){return Object.prototype.toString.call(n)==="[object Error]"},i.isDate=function(n){return Object.prototype.toString.call(n)==="[object Date]"},i.toISOStringForIE8=function(n){if(i.isDate(n)){function t(n){var t=String(n);return t.length===1&&(t="0"+t),t}return Date.prototype.toISOString?n.toISOString():n.getUTCFullYear()+"-"+t(n.getUTCMonth()+1)+"-"+t(n.getUTCDate())+"T"+t(n.getUTCHours())+":"+t(n.getUTCMinutes())+":"+t(n.getUTCSeconds())+"."+String((n.getUTCMilliseconds()/1e3).toFixed(3)).slice(2,5)+"Z"}},i.getIEVersion=function(n){n===void 0&&(n=null);var t=n?n.toLowerCase():navigator.userAgent.toLowerCase();return t.indexOf("msie")!=-1?parseInt(t.split("msie")[1]):null},i.msToTimeSpan=function(n){(isNaN(n)||n<0)&&(n=0);var t=""+n%1e3,i=""+Math.floor(n/1e3)%60,r=""+Math.floor(n/6e4)%60,u=""+Math.floor(n/36e5)%24;return t=t.length===1?"00"+t:t.length===2?"0"+t:t,i=i.length<2?"0"+i:i,r=r.length<2?"0"+r:r,u=u.length<2?"0"+u:u,u+":"+r+":"+i+"."+t},i.isCrossOriginError=function(n,t,i,r,u){return(n==="Script error."||n==="Script error")&&u===null},i.dump=function(n){var t=Object.prototype.toString.call(n),i=JSON.stringify(n);return t==="[object Error]"&&(i="{ stack: '"+n.stack+"', message: '"+n.message+"', name: '"+n.name+"'"),t+i},i.getExceptionName=function(n){var t=Object.prototype.toString.call(n);return t==="[object Error]"?n.name:""},i.addEventHandler=function(n,t){if(!window||typeof n!="string"||typeof t!="function")return!1;var i="on"+n;if(window.addEventListener)window.addEventListener(n,t,!1);else if(window.attachEvent)window.attachEvent.call(i,t);else return!1;return!0},i.document=typeof document!="undefined"?document:{},i.NotSpecified="not_specified",i}();n.Util=i;r=function(){function n(){}return n.parseUrl=function(t){return n.htmlAnchorElement||(n.htmlAnchorElement=n.document.createElement("a")),n.htmlAnchorElement.href=t,n.htmlAnchorElement},n.getAbsoluteUrl=function(t){var i,r=n.parseUrl(t);return r&&(i=r.href),i},n.getPathName=function(t){var i,r=n.parseUrl(t);return r&&(i=r.pathname),i},n.document=typeof document!="undefined"?document:{},n}();n.UrlHelper=r})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){"use strict";var t=function(){function n(){}return n.IsNullOrUndefined=function(n){return typeof n=="undefined"||n===null},n}(),i,r,u;n.extensions=t;i=function(){function n(){}return n.GetLength=function(n){var i=0,r;if(!t.IsNullOrUndefined(n)){r="";try{r=n.toString()}catch(u){}i=r.length;i=isNaN(i)?0:i}return i},n}();n.stringUtils=i;r=function(){function n(){}return n.Now=window.performance&&window.performance.now?function(){return performance.now()}:function(){return(new Date).getTime()},n.GetDuration=function(n,i){var r=null;return n===0||i===0||t.IsNullOrUndefined(n)||t.IsNullOrUndefined(i)||(r=i-n),r},n}();n.dateTime=r;u=function(){function n(){}return n.AttachEvent=function(n,i,r){var u=!1;return t.IsNullOrUndefined(n)||(t.IsNullOrUndefined(n.attachEvent)?t.IsNullOrUndefined(n.addEventListener)||(n.addEventListener(i,r,!1),u=!0):(n.attachEvent("on"+i,r),u=!0)),u},n.DetachEvent=function(n,i,r){t.IsNullOrUndefined(n)||(t.IsNullOrUndefined(n.detachEvent)?t.IsNullOrUndefined(n.removeEventListener)||n.removeEventListener(i,r,!1):n.detachEvent("on"+i,r))},n}();n.EventHelper=u})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){"use strict";var t=function(){function n(){this.openDone=!1;this.setRequestHeaderDone=!1;this.sendDone=!1;this.abortDone=!1;this.onreadystatechangeCallbackAttached=!1}return n}(),i;n.XHRMonitoringState=t;i=function(){function i(i){this.completed=!1;this.requestHeadersSize=null;this.ttfb=null;this.responseReceivingDuration=null;this.callbackDuration=null;this.ajaxTotalDuration=null;this.aborted=null;this.pageUrl=null;this.requestUrl=null;this.requestSize=0;this.method=null;this.status=null;this.requestSentTime=null;this.responseStartedTime=null;this.responseFinishedTime=null;this.callbackFinishedTime=null;this.endTime=null;this.originalOnreadystatechage=null;this.xhrMonitoringState=new t;this.clientFailure=0;this.CalculateMetrics=function(){var t=this;t.ajaxTotalDuration=n.dateTime.GetDuration(t.requestSentTime,t.responseFinishedTime)};this.id=i}return i.prototype.getAbsoluteUrl=function(){return this.requestUrl?n.UrlHelper.getAbsoluteUrl(this.requestUrl):null},i.prototype.getPathName=function(){return this.requestUrl?n.UrlHelper.getPathName(this.requestUrl):null},i}();n.ajaxRecord=i})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(t){"use strict";var i=function(){function i(n){this.currentWindowHost=window.location.host;this.appInsights=n;this.initialized=!1;this.Init()}return i.prototype.Init=function(){this.supportsMonitoring()&&(this.instrumentOpen(),this.instrumentSend(),this.instrumentAbort(),this.initialized=!0)},i.prototype.isMonitoredInstance=function(n,r){return this.initialized&&(r===!0||!t.extensions.IsNullOrUndefined(n.ajaxData))&&n[i.DisabledPropertyName]!==!0},i.prototype.supportsMonitoring=function(){var n=!1;return t.extensions.IsNullOrUndefined(XMLHttpRequest)||(n=!0),n},i.prototype.instrumentOpen=function(){var u=XMLHttpRequest.prototype.open,r=this;XMLHttpRequest.prototype.open=function(f,e,o){try{!r.isMonitoredInstance(this,!0)||this.ajaxData&&this.ajaxData.xhrMonitoringState.openDone||r.openHandler(this,f,e,o)}catch(s){t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_FailedMonitorAjaxOpen,"Failed to monitor XMLHttpRequest.open, monitoring data for this ajax call may be incorrect.",{ajaxDiagnosticsMessage:i.getFailedAjaxDiagnosticsMessage(this),exception:n.ApplicationInsights.Util.dump(s)}))}return u.apply(this,arguments)}},i.prototype.openHandler=function(n,i,r){var u=new t.ajaxRecord(t.Util.newId());u.method=i;u.requestUrl=r;u.xhrMonitoringState.openDone=!0;n.ajaxData=u;this.attachToOnReadyStateChange(n)},i.getFailedAjaxDiagnosticsMessage=function(n){var i="";try{t.extensions.IsNullOrUndefined(n)||t.extensions.IsNullOrUndefined(n.ajaxData)||t.extensions.IsNullOrUndefined(n.ajaxData.requestUrl)||(i+="(url: '"+n.ajaxData.requestUrl+"')")}catch(r){}return i},i.prototype.instrumentSend=function(){var u=XMLHttpRequest.prototype.send,r=this;XMLHttpRequest.prototype.send=function(f){try{r.isMonitoredInstance(this)&&!this.ajaxData.xhrMonitoringState.sendDone&&r.sendHandler(this,f)}catch(e){t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_FailedMonitorAjaxSend,"Failed to monitor XMLHttpRequest, monitoring data for this ajax call may be incorrect.",{ajaxDiagnosticsMessage:i.getFailedAjaxDiagnosticsMessage(this),exception:n.ApplicationInsights.Util.dump(e)}))}return u.apply(this,arguments)}},i.prototype.sendHandler=function(n){n.ajaxData.requestSentTime=t.dateTime.Now();this.appInsights.config.disableCorrelationHeaders||t.UrlHelper.parseUrl(n.ajaxData.getAbsoluteUrl()).host!=this.currentWindowHost||n.setRequestHeader("x-ms-request-id",n.ajaxData.id);n.ajaxData.xhrMonitoringState.sendDone=!0},i.prototype.instrumentAbort=function(){var r=XMLHttpRequest.prototype.abort,u=this;XMLHttpRequest.prototype.abort=function(){try{u.isMonitoredInstance(this)&&!this.ajaxData.xhrMonitoringState.abortDone&&(this.ajaxData.aborted=1,this.ajaxData.xhrMonitoringState.abortDone=!0)}catch(f){t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_FailedMonitorAjaxAbort,"Failed to monitor XMLHttpRequest.abort, monitoring data for this ajax call may be incorrect.",{ajaxDiagnosticsMessage:i.getFailedAjaxDiagnosticsMessage(this),exception:n.ApplicationInsights.Util.dump(f)}))}return r.apply(this,arguments)}},i.prototype.attachToOnReadyStateChange=function(r){var u=this;r.ajaxData.xhrMonitoringState.onreadystatechangeCallbackAttached=t.EventHelper.AttachEvent(r,"readystatechange",function(){try{if(u.isMonitoredInstance(r)&&r.readyState===4)u.onAjaxComplete(r)}catch(f){var e=n.ApplicationInsights.Util.dump(f);e&&e.toLowerCase().indexOf("c00c023f")!=-1||t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_FailedMonitorAjaxRSC,"Failed to monitor XMLHttpRequest 'readystatechange' event handler, monitoring data for this ajax call may be incorrect.",{ajaxDiagnosticsMessage:i.getFailedAjaxDiagnosticsMessage(r),exception:n.ApplicationInsights.Util.dump(f)}))}})},i.prototype.onAjaxComplete=function(n){n.ajaxData.responseFinishedTime=t.dateTime.Now();n.ajaxData.status=n.status;n.ajaxData.CalculateMetrics();n.ajaxData.ajaxTotalDuration<0?t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.WARNING,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_FailedMonitorAjaxDur,"Failed to calculate the duration of the ajax call, monitoring data for this ajax call won't be sent.",{ajaxDiagnosticsMessage:i.getFailedAjaxDiagnosticsMessage(n),requestSentTime:n.ajaxData.requestSentTime,responseFinishedTime:n.ajaxData.responseFinishedTime})):(this.appInsights.trackAjax(n.ajaxData.id,n.ajaxData.getAbsoluteUrl(),n.ajaxData.getPathName(),n.ajaxData.ajaxTotalDuration,+n.ajaxData.status>=200&&+n.ajaxData.status<400,+n.ajaxData.status),n.ajaxData=null)},i.instrumentedByAppInsightsName="InstrumentedByAppInsights",i.DisabledPropertyName="Microsoft_ApplicationInsights_BypassAjaxInstrumentation",i}();t.AjaxMonitor=i})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){var t=function(){function n(){}return n.prototype.getHashCodeScore=function(t){var i=this.getHashCode(t)/n.INT_MAX_VALUE;return i*100},n.prototype.getHashCode=function(t){var i,r;if(t=="")return 0;while(t.length100||t<0)&&(n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.USRACT_SampleRateOutOfRange,"Sampling rate is out of range (0..100). Sampling will be disabled, you may be sending too much data which may affect your AI service level.",{samplingRate:t})),this.sampleRate=100);this.sampleRate=t;this.samplingScoreGenerator=new n.SamplingScoreGenerator}return t.prototype.isSampledIn=function(n){if(this.sampleRate==100)return!0;var t=this.samplingScoreGenerator.getSamplingScore(n);return tthis.config.sessionExpirationMs(),i=n-this.automaticSession.renewalDate>this.config.sessionRenewalMs();t||i?(this.automaticSession.isFirst=undefined,this.renew()):(this.automaticSession.renewalDate=+new Date,this.setCookie(this.automaticSession.id,this.automaticSession.acquisitionDate,this.automaticSession.renewalDate))},t.prototype.backup=function(){this.setStorage(this.automaticSession.id,this.automaticSession.acquisitionDate,this.automaticSession.renewalDate)},t.prototype.initializeAutomaticSession=function(){var t=n.Util.getCookie("ai_session"),i;t&&typeof t.split=="function"?this.initializeAutomaticSessionWithData(t):(i=n.Util.getStorage("ai_session"),i&&this.initializeAutomaticSessionWithData(i));this.automaticSession.id||(this.automaticSession.isFirst=!0,this.renew())},t.prototype.initializeAutomaticSessionWithData=function(t){var i=t.split("|"),r,u;i.length>0&&(this.automaticSession.id=i[0]);try{i.length>1&&(r=+i[1],this.automaticSession.acquisitionDate=+new Date(r),this.automaticSession.acquisitionDate=this.automaticSession.acquisitionDate>0?this.automaticSession.acquisitionDate:0);i.length>2&&(u=+i[2],this.automaticSession.renewalDate=+new Date(u),this.automaticSession.renewalDate=this.automaticSession.renewalDate>0?this.automaticSession.renewalDate:0)}catch(f){n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.CRITICAL,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_ErrorParsingAISessionCookie,"Error parsing ai_session cookie, session will be reset: "+n.Util.getExceptionName(f),{exception:n.Util.dump(f)}))}this.automaticSession.renewalDate==0&&n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_SessionRenewalDateIsZero,"AI session renewal date is 0, session will be reset."))},t.prototype.renew=function(){var t=+new Date;this.automaticSession.id=n.Util.newId();this.automaticSession.acquisitionDate=t;this.automaticSession.renewalDate=t;this.setCookie(this.automaticSession.id,this.automaticSession.acquisitionDate,this.automaticSession.renewalDate);n.Util.canUseLocalStorage()||n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_BrowserDoesNotSupportLocalStorage,"Browser does not support local storage. Session durations will be inaccurate."))},t.prototype.setCookie=function(t,i,r){var f=i+this.config.sessionExpirationMs(),e=r+this.config.sessionRenewalMs(),u=new Date,s=[t,i,r],o;f0&&(this.id=e[0]));this.config=i;this.id||(this.id=n.Util.newId(),u=new Date,o=n.Util.toISOStringForIE8(u),this.accountAcquisitionDate=o,u.setTime(u.getTime()+31536e6),h=[this.id,o],c=this.config.cookieDomain?this.config.cookieDomain():undefined,n.Util.setCookie(t.userCookieName,h.join(t.cookieSeparator)+";expires="+u.toUTCString(),c),n.Util.removeStorage("ai_session"));this.accountId=i.accountId?i.accountId():undefined;f=n.Util.getCookie(t.authUserCookieName);f&&(f=decodeURI(f),r=f.split(t.cookieSeparator),r[0]&&(this.authenticatedId=r[0]),r.length>1&&r[1]&&(this.accountId=r[1]))}return t.prototype.setAuthenticatedUserContext=function(i,r){var f=!this.validateUserInput(i)||r&&!this.validateUserInput(r),u;if(f){n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.USRACT_SetAuthContextFailedAccountName,"Setting auth user context failed. User auth/account id should be of type string, and not contain commas, semi-colons, equal signs, spaces, or vertical-bars."));return}this.authenticatedId=i;u=this.authenticatedId;r&&(this.accountId=r,u=[this.authenticatedId,this.accountId].join(t.cookieSeparator));n.Util.setCookie(t.authUserCookieName,encodeURI(u),this.config.cookieDomain())},t.prototype.clearAuthenticatedUserContext=function(){this.authenticatedId=null;this.accountId=null;n.Util.deleteCookie(t.authUserCookieName)},t.prototype.validateUserInput=function(n){return typeof n!="string"||!n||n.match(/,|;|=| |\|/)?!1:!0},t.cookieSeparator="|",t.userCookieName="ai_user",t.authUserCookieName="ai_authUser",t}();t.User=i})(t=n.Context||(n.Context={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){"use strict";var t=function(){function t(){}return t.reset=function(){t.isEnabled()&&n.Util.setSessionStorage(t.ITEMS_QUEUED_KEY,"0")},t.isEnabled=function(){return t.enabled&&t.appInsights!=null&&n.Util.canUseSessionStorage()},t.getIssuesReported=function(){return!t.isEnabled()||isNaN(+n.Util.getSessionStorage(t.ISSUES_REPORTED_KEY))?0:+n.Util.getSessionStorage(t.ISSUES_REPORTED_KEY)},t.incrementItemsQueued=function(){try{if(t.isEnabled()){var i=t.getNumberOfLostItems();++i;n.Util.setSessionStorage(t.ITEMS_QUEUED_KEY,i.toString())}}catch(r){}},t.decrementItemsQueued=function(i){try{if(t.isEnabled()){var r=t.getNumberOfLostItems();r-=i;r<0&&(r=0);n.Util.setSessionStorage(t.ITEMS_QUEUED_KEY,r.toString())}}catch(u){}},t.getNumberOfLostItems=function(){var i=0;try{t.isEnabled()&&(i=isNaN(+n.Util.getSessionStorage(t.ITEMS_QUEUED_KEY))?0:+n.Util.getSessionStorage(t.ITEMS_QUEUED_KEY))}catch(r){i=0}return i},t.reportLostItems=function(){try{if(t.isEnabled()&&t.getIssuesReported()0){t.appInsights.trackTrace("AI (Internal): Internal report DATALOSS: "+t.getNumberOfLostItems(),null);t.appInsights.flush();var i=t.getIssuesReported();++i;n.Util.setSessionStorage(t.ISSUES_REPORTED_KEY,i.toString())}}catch(r){n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.CRITICAL,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_FailedToReportDataLoss,"Failed to report data loss: "+n.Util.getExceptionName(r),{exception:n.Util.dump(r)}))}finally{try{t.reset()}catch(r){}}},t.enabled=!1,t.LIMIT_PER_SESSION=10,t.ITEMS_QUEUED_KEY="AI_itemsQueued",t.ISSUES_REPORTED_KEY="AI_lossIssuesReported",t}();n.DataLossAnalyzer=t})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){"use strict";var t=function(){function t(n){if(this._buffer=[],this._lastSend=0,this._config=n,this._sender=null,typeof XMLHttpRequest!="undefined"){var t=new XMLHttpRequest;"withCredentials"in t?this._sender=this._xhrSender:typeof XDomainRequest!="undefined"&&(this._sender=this._xdrSender)}}return t.prototype.send=function(t){var r=this,i;try{if(this._config.disableTelemetry())return;if(!t){n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.CRITICAL,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_CannotSendEmptyTelemetry,"Cannot send empty telemetry"));return}if(!this._sender){n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.CRITICAL,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_SenderNotInitialized,"Sender was not initialized"));return}i=n.Serializer.serialize(t);this._getSizeInBytes(this._buffer)+i.length>this._config.maxBatchSizeInBytes()&&this.triggerSend();this._buffer.push(i);this._timeoutHandle||(this._timeoutHandle=setTimeout(function(){r._timeoutHandle=null;r.triggerSend()},this._config.maxBatchInterval()));n.DataLossAnalyzer.incrementItemsQueued()}catch(u){n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.CRITICAL,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_FailedAddingTelemetryToBuffer,"Failed adding telemetry to the sender's buffer, some telemetry will be lost: "+n.Util.getExceptionName(u),{exception:n.Util.dump(u)}))}},t.prototype._getSizeInBytes=function(n){var r=0,t,i;if(n&&n.length)for(t=0;t9)&&n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.CRITICAL,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_TransmissionFailed,"Telemetry transmission failed, some telemetry will be lost: "+n.Util.getExceptionName(u),{exception:n.Util.dump(u)}))}},t.prototype._xhrSender=function(i,r,u){var f=new XMLHttpRequest;f[n.AjaxMonitor.DisabledPropertyName]=!0;f.open("POST",this._config.endpointUrl(),r);f.setRequestHeader("Content-type","application/json");f.onreadystatechange=function(){return t._xhrReadyStateChange(f,i,u)};f.onerror=function(n){return t._onError(i,f.responseText||f.response||"",n)};f.send(i)},t.prototype._xdrSender=function(n){var i=new XDomainRequest;i.onload=function(){return t._xdrOnLoad(i,n)};i.onerror=function(r){return t._onError(n,i.responseText||"",r)};i.open("POST",this._config.endpointUrl());i.send(n)},t._xhrReadyStateChange=function(n,i,r){n.readyState===4&&((n.status<200||n.status>=300)&&n.status!==0?t._onError(i,n.responseText||n.response||""):t._onSuccess(i,r))},t._xdrOnLoad=function(n,i){n&&(n.responseText+""=="200"||n.responseText==="")?t._onSuccess(i,0):t._onError(i,n&&n.responseText||"")},t._onError=function(t,i){n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_OnError,"Failed to send telemetry.",{message:i}))},t._onSuccess=function(t,i){n.DataLossAnalyzer.decrementItemsQueued(i)},t}();n.Sender=t})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){"use strict";var t=function(){function t(){this.hashCodeGeneragor=new n.HashCodeScoreGenerator}return t.prototype.isEnabled=function(n,t){return this.hashCodeGeneragor.getHashCodeScore(n)=0&&(i=i.replace(/[^0-9a-zA-Z-._()\/ ]/g,"_"),n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.USRACT_IllegalCharsInName,"name contains illegal characters. Illegal characters have been replaced with '_'.",{newName:i}))),i.length>t.MAX_NAME_LENGTH&&(i=i.substring(0,t.MAX_NAME_LENGTH),n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.USRACT_NameTooLong,"name is too long. It has been truncated to "+t.MAX_NAME_LENGTH+" characters.",{name:i})))),i},t.sanitizeString=function(i){return i&&(i=n.Util.trim(i),i.toString().length>t.MAX_STRING_LENGTH&&(i=i.toString().substring(0,t.MAX_STRING_LENGTH),n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.USRACT_StringValueTooLong,"string value is too long. It has been truncated to "+t.MAX_STRING_LENGTH+" characters.",{value:i})))),i},t.sanitizeUrl=function(i){return i&&i.length>t.MAX_URL_LENGTH&&(i=i.substring(0,t.MAX_URL_LENGTH),n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.USRACT_UrlTooLong,"url is too long, it has been trucated to "+t.MAX_URL_LENGTH+" characters.",{url:i}))),i},t.sanitizeMessage=function(i){return i&&i.length>t.MAX_MESSAGE_LENGTH&&(i=i.substring(0,t.MAX_MESSAGE_LENGTH),n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.USRACT_MessageTruncated,"message is too long, it has been trucated to "+t.MAX_MESSAGE_LENGTH+" characters.",{message:i}))),i},t.sanitizeException=function(i){return i&&i.length>t.MAX_EXCEPTION_LENGTH&&(i=i.substring(0,t.MAX_EXCEPTION_LENGTH),n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.USRACT_ExceptionTruncated,"exception is too long, it has been trucated to "+t.MAX_EXCEPTION_LENGTH+" characters.",{exception:i}))),i},t.sanitizeProperties=function(n){var r,i,u;if(n){r={};for(i in n)u=t.sanitizeString(n[i]),i=t.sanitizeKeyAndAddUniqueness(i,r),r[i]=u;n=r}return n},t.sanitizeMeasurements=function(n){var r,i,u;if(n){r={};for(i in n)u=n[i],i=t.sanitizeKeyAndAddUniqueness(i,r),r[i]=u;n=r}return n},t.padNumber=function(n){var t="00"+n;return t.substr(t.length-3)},t.MAX_NAME_LENGTH=150,t.MAX_STRING_LENGTH=1024,t.MAX_URL_LENGTH=2048,t.MAX_MESSAGE_LENGTH=32768,t.MAX_EXCEPTION_LENGTH=32768,t}();t.DataSanitizer=i})(i=t.Common||(t.Common={}))})(t=n.Telemetry||(n.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){var t;(function(t){"use strict";var i=function(i){function r(r,u){i.call(this);this.aiDataContract={ver:n.FieldType.Required,message:n.FieldType.Required,severityLevel:n.FieldType.Default,measurements:n.FieldType.Default,properties:n.FieldType.Default};r=r||n.Util.NotSpecified;this.message=t.Common.DataSanitizer.sanitizeMessage(r);this.properties=t.Common.DataSanitizer.sanitizeProperties(u)}return __extends(r,i),r.envelopeType="Microsoft.ApplicationInsights.{0}.Message",r.dataType="MessageData",r}(AI.MessageData);t.Trace=i})(t=n.Telemetry||(n.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){"use strict";var t=function(n){function t(){this.ver=2;this.properties={};this.measurements={};n.call(this)}return __extends(t,n),t}(Microsoft.Telemetry.Domain);n.EventData=t}(AI||(AI={})),function(n){var t;(function(n){var t;(function(t){"use strict";var i=function(t){function i(i,r,u){t.call(this);this.aiDataContract={ver:n.FieldType.Required,name:n.FieldType.Required,properties:n.FieldType.Default,measurements:n.FieldType.Default};this.name=n.Telemetry.Common.DataSanitizer.sanitizeString(i);this.properties=n.Telemetry.Common.DataSanitizer.sanitizeProperties(r);this.measurements=n.Telemetry.Common.DataSanitizer.sanitizeMeasurements(u)}return __extends(i,t),i.envelopeType="Microsoft.ApplicationInsights.{0}.Event",i.dataType="EventData",i}(AI.EventData);t.Event=i})(t=n.Telemetry||(n.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){"use strict";var t=function(){function n(){this.hasFullStack=!0;this.parsedStack=[]}return n}();n.ExceptionDetails=t}(AI||(AI={})),function(n){"use strict";var t=function(n){function t(){this.ver=2;this.exceptions=[];this.properties={};this.measurements={};n.call(this)}return __extends(t,n),t}(Microsoft.Telemetry.Domain);n.ExceptionData=t}(AI||(AI={})),function(n){"use strict";var t=function(){function n(){}return n}();n.StackFrame=t}(AI||(AI={})),function(n){var t;(function(n){var t;(function(t){"use strict";var u=function(t){function i(i,u,f,e){t.call(this);this.aiDataContract={ver:n.FieldType.Required,handledAt:n.FieldType.Required,exceptions:n.FieldType.Required,severityLevel:n.FieldType.Default,properties:n.FieldType.Default,measurements:n.FieldType.Default};this.properties=n.Telemetry.Common.DataSanitizer.sanitizeProperties(f);this.measurements=n.Telemetry.Common.DataSanitizer.sanitizeMeasurements(e);this.handledAt=u||"unhandled";this.exceptions=[new r(i)]}return __extends(i,t),i.CreateSimpleException=function(n,t,i,r,u,f,e){return{handledAt:e||"unhandled",exceptions:[{hasFullStack:!0,message:n,stack:u,typeName:t,parsedStack:[{level:0,assembly:i,fileName:r,line:f,method:"unknown"}]}]}},i.envelopeType="Microsoft.ApplicationInsights.{0}.Exception",i.dataType="ExceptionData",i}(AI.ExceptionData),r,i;t.Exception=u;r=function(r){function u(i){r.call(this);this.aiDataContract={id:n.FieldType.Default,outerId:n.FieldType.Default,typeName:n.FieldType.Required,message:n.FieldType.Required,hasFullStack:n.FieldType.Default,stack:n.FieldType.Default,parsedStack:n.FieldType.Array};this.typeName=t.Common.DataSanitizer.sanitizeString(i.name||n.Util.NotSpecified);this.message=t.Common.DataSanitizer.sanitizeMessage(i.message||n.Util.NotSpecified);var u=i.stack;this.parsedStack=this.parseStack(u);this.stack=t.Common.DataSanitizer.sanitizeException(u);this.hasFullStack=n.Util.isArray(this.parsedStack)&&this.parsedStack.length>0}return __extends(u,r),u.prototype.parseStack=function(n){var t=undefined,e,l,o,r,a,s,h,p,w,b;if(typeof n=="string"){for(e=n.split("\n"),t=[],l=0,o=0,r=0;r<=e.length;r++)a=e[r],i.regex.test(a)&&(s=new i(e[r],l++),o+=s.sizeInBytes,t.push(s));if(h=32768,o>h)for(var u=0,f=t.length-1,v=0,c=u,y=f;uh){b=y-c+1;t.splice(c,b);break}c=u;y=f;u++;f--}}return t},u}(AI.ExceptionDetails);i=function(t){function i(r,u){t.call(this);this.sizeInBytes=0;this.aiDataContract={level:n.FieldType.Required,method:n.FieldType.Required,assembly:n.FieldType.Default,fileName:n.FieldType.Default,line:n.FieldType.Default};this.level=u;this.method="";this.assembly=n.Util.trim(r);var f=r.match(i.regex);f&&f.length>=5&&(this.method=n.Util.trim(f[2])||this.method,this.fileName=n.Util.trim(f[4]),this.line=parseInt(f[5])||0);this.sizeInBytes+=this.method.length;this.sizeInBytes+=this.fileName.length;this.sizeInBytes+=this.assembly.length;this.sizeInBytes+=i.baseSize;this.sizeInBytes+=this.level.toString().length;this.sizeInBytes+=this.line.toString().length}return __extends(i,t),i.regex=/^([\s]+at)?(.*?)(\@|\s\(|\s)([^\(\@\n]+):([0-9]+):([0-9]+)(\)?)$/,i.baseSize=58,i}(AI.StackFrame);t._StackFrame=i})(t=n.Telemetry||(n.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){"use strict";var t=function(n){function t(){this.ver=2;this.metrics=[];this.properties={};n.call(this)}return __extends(t,n),t}(Microsoft.Telemetry.Domain);n.MetricData=t}(AI||(AI={})),function(n){"use strict";(function(n){n[n.Measurement=0]="Measurement";n[n.Aggregation=1]="Aggregation"})(n.DataPointType||(n.DataPointType={}));var t=n.DataPointType}(AI||(AI={})),function(n){"use strict";var t=function(){function t(){this.kind=n.DataPointType.Measurement}return t}();n.DataPoint=t}(AI||(AI={})),function(n){var t;(function(n){var t;(function(t){var i;(function(t){"use strict";var i=function(t){function i(){t.apply(this,arguments);this.aiDataContract={name:n.FieldType.Required,kind:n.FieldType.Default,value:n.FieldType.Required,count:n.FieldType.Default,min:n.FieldType.Default,max:n.FieldType.Default,stdDev:n.FieldType.Default}}return __extends(i,t),i}(AI.DataPoint);t.DataPoint=i})(i=t.Common||(t.Common={}))})(t=n.Telemetry||(n.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(t){var i;(function(i){"use strict";var r=function(r){function u(u,f,e,o,s,h){r.call(this);this.aiDataContract={ver:t.FieldType.Required,metrics:t.FieldType.Required,properties:t.FieldType.Default};var c=new n.ApplicationInsights.Telemetry.Common.DataPoint;c.count=e>0?e:undefined;c.max=isNaN(s)||s===null?undefined:s;c.min=isNaN(o)||o===null?undefined:o;c.name=i.Common.DataSanitizer.sanitizeString(u);c.value=f;this.metrics=[c];this.properties=t.Telemetry.Common.DataSanitizer.sanitizeProperties(h)}return __extends(u,r),u.envelopeType="Microsoft.ApplicationInsights.{0}.Metric",u.dataType="MetricData",u}(AI.MetricData);i.Metric=r})(i=t.Telemetry||(t.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){"use strict";var t=function(n){function t(){this.ver=2;this.properties={};this.measurements={};n.call(this)}return __extends(t,n),t}(n.EventData);n.PageViewData=t}(AI||(AI={})),function(n){var t;(function(n){var t;(function(t){"use strict";var i=function(i){function r(r,u,f,e,o){i.call(this);this.aiDataContract={ver:n.FieldType.Required,name:n.FieldType.Default,url:n.FieldType.Default,duration:n.FieldType.Default,properties:n.FieldType.Default,measurements:n.FieldType.Default};this.url=t.Common.DataSanitizer.sanitizeUrl(u);this.name=t.Common.DataSanitizer.sanitizeString(r||n.Util.NotSpecified);isNaN(f)||(this.duration=n.Util.msToTimeSpan(f));this.properties=n.Telemetry.Common.DataSanitizer.sanitizeProperties(e);this.measurements=n.Telemetry.Common.DataSanitizer.sanitizeMeasurements(o)}return __extends(r,i),r.envelopeType="Microsoft.ApplicationInsights.{0}.Pageview",r.dataType="PageviewData",r}(AI.PageViewData);t.PageView=i})(t=n.Telemetry||(n.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){"use strict";var t=function(n){function t(){this.ver=2;this.properties={};this.measurements={};n.call(this)}return __extends(t,n),t}(n.PageViewData);n.PageViewPerfData=t}(AI||(AI={})),function(n){var t;(function(n){var t;(function(t){"use strict";var i=function(i){function r(u,f,e,o,s){var h;if(i.call(this),this.aiDataContract={ver:n.FieldType.Required,name:n.FieldType.Default,url:n.FieldType.Default,duration:n.FieldType.Default,perfTotal:n.FieldType.Default,networkConnect:n.FieldType.Default,sentRequest:n.FieldType.Default,receivedResponse:n.FieldType.Default,domProcessing:n.FieldType.Default,properties:n.FieldType.Default,measurements:n.FieldType.Default},this.isValid=!1,h=r.getPerformanceTiming(),h){var c=r.getDuration(h.navigationStart,h.loadEventEnd),l=r.getDuration(h.navigationStart,h.connectEnd),a=r.getDuration(h.requestStart,h.responseStart),v=r.getDuration(h.responseStart,h.responseEnd),y=r.getDuration(h.responseEnd,h.loadEventEnd);c==0?n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.WARNING,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_ErrorPVCalc,"error calculating page view performance.",{total:c,network:l,request:a,response:v,dom:y})):c0&&n.navigationStart>0&&n.responseStart>0&&n.requestStart>0&&n.loadEventEnd>0&&n.responseEnd>0&&n.connectEnd>0&&n.domLoading>0},r.getDuration=function(n,t){var i=0;return isNaN(n)||isNaN(t)||(i=Math.max(t-n,0)),i},r.envelopeType="Microsoft.ApplicationInsights.{0}.PageviewPerformance",r.dataType="PageviewPerformanceData",r}(AI.PageViewPerfData);t.PageViewPerformance=i})(t=n.Telemetry||(n.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){"use strict";var t=function(){function t(t){this._config=t;this._sender=new n.Sender(t);typeof window!="undefined"&&(this._sessionManager=new n.Context._SessionManager(t),this.application=new n.Context.Application,this.device=new n.Context.Device,this.internal=new n.Context.Internal,this.location=new n.Context.Location,this.user=new n.Context.User(t),this.operation=new n.Context.Operation,this.session=new n.Context.Session,this.sample=new n.Context.Sample(t.sampleRate()))}return t.prototype.addTelemetryInitializer=function(n){this.telemetryInitializers=this.telemetryInitializers||[];this.telemetryInitializers.push(n)},t.prototype.track=function(t){return t?(t.name===n.Telemetry.PageView.envelopeType&&n._InternalLogging.resetInternalMessageCount(),this.session&&typeof this.session.id!="string"&&this._sessionManager.update(),this._track(t)):n._InternalLogging.throwInternalUserActionable(n.LoggingSeverity.CRITICAL,new n._InternalLogMessage(n._InternalMessageId.USRACT_TrackArgumentsNotSpecified,"cannot call .track() with a null or undefined argument")),t},t.prototype._track=function(t){var i,f,r,u,o;this.session&&(typeof this.session.id=="string"?this._applySessionContext(t,this.session):this._applySessionContext(t,this._sessionManager.automaticSession));this._applyApplicationContext(t,this.application);this._applyDeviceContext(t,this.device);this._applyInternalContext(t,this.internal);this._applyLocationContext(t,this.location);this._applySampleContext(t,this.sample);this._applyUserContext(t,this.user);this._applyOperationContext(t,this.operation);t.iKey=this._config.instrumentationKey();i=!1;try{for(this.telemetryInitializers=this.telemetryInitializers||[],f=this.telemetryInitializers.length,r=0;rl&&(clearInterval(a),s||(o.appInsights.sendPageViewInternal(i,r,l,u,f),o.appInsights.flush()))}catch(v){n._InternalLogging.throwInternalNonUserActionable(n.LoggingSeverity.CRITICAL,new n._InternalLogMessage(n._InternalMessageId.NONUSRACT_TrackPVFailedCalc,"trackPageView failed on page load calculation: "+n.Util.getExceptionName(v),{exception:n.Util.dump(v)}))}},100)},i}();t.PageViewManager=i})(t=n.Telemetry||(n.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(n){var t;(function(t){"use strict";var r=function(){function t(n){this.prevPageVisitDataKeyName="prevPageVisitData";this.pageVisitTimeTrackingHandler=n}return t.prototype.trackPreviousPageVisit=function(t,i){try{var r=this.restartPageVisitTimer(t,i);r&&this.pageVisitTimeTrackingHandler(r.pageName,r.pageUrl,r.pageVisitTime)}catch(u){n._InternalLogging.warnToConsole("Auto track page visit time failed, metric will not be collected: "+n.Util.dump(u))}},t.prototype.restartPageVisitTimer=function(t,i){try{var r=this.stopPageVisitTimer();return this.startPageVisitTimer(t,i),r}catch(u){return n._InternalLogging.warnToConsole("Call to restart failed: "+n.Util.dump(u)),null}},t.prototype.startPageVisitTimer=function(t,r){try{if(n.Util.canUseSessionStorage()){if(n.Util.getSessionStorage(this.prevPageVisitDataKeyName)!=null)throw new Error("Cannot call startPageVisit consecutively without first calling stopPageVisit");var u=new i(t,r),f=JSON.stringify(u);n.Util.setSessionStorage(this.prevPageVisitDataKeyName,f)}}catch(e){n._InternalLogging.warnToConsole("Call to start failed: "+n.Util.dump(e))}},t.prototype.stopPageVisitTimer=function(){var r,i,t;try{return n.Util.canUseSessionStorage()?(r=Date.now(),i=n.Util.getSessionStorage(this.prevPageVisitDataKeyName),i?(t=JSON.parse(i),t.pageVisitTime=r-t.pageVisitStartTime,n.Util.removeSessionStorage(this.prevPageVisitDataKeyName),t):null):null}catch(u){return n._InternalLogging.warnToConsole("Stop page visit timer failed: "+n.Util.dump(u)),null}},t}(),i;t.PageVisitTimeManager=r;i=function(){function n(n,t){this.pageVisitStartTime=Date.now();this.pageName=n;this.pageUrl=t}return n}();t.PageVisitData=i})(t=n.Telemetry||(n.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){"use strict";(function(n){n[n.SQL=0]="SQL";n[n.Http=1]="Http";n[n.Other=2]="Other"})(n.DependencyKind||(n.DependencyKind={}));var t=n.DependencyKind}(AI||(AI={})),function(n){"use strict";(function(n){n[n.Undefined=0]="Undefined";n[n.Aic=1]="Aic";n[n.Apmc=2]="Apmc"})(n.DependencySourceType||(n.DependencySourceType={}));var t=n.DependencySourceType}(AI||(AI={})),function(n){"use strict";var t=function(t){function i(){this.ver=2;this.kind=n.DataPointType.Aggregation;this.dependencyKind=n.DependencyKind.Other;this.success=!0;this.dependencySource=n.DependencySourceType.Apmc;this.properties={};t.call(this)}return __extends(i,t),i}(Microsoft.Telemetry.Domain);n.RemoteDependencyData=t}(AI||(AI={})),function(n){var t;(function(n){var t;(function(t){"use strict";var i=function(t){function i(i,r,u,f,e,o){t.call(this);this.aiDataContract={id:n.FieldType.Required,ver:n.FieldType.Required,name:n.FieldType.Default,kind:n.FieldType.Required,value:n.FieldType.Default,count:n.FieldType.Default,min:n.FieldType.Default,max:n.FieldType.Default,stdDev:n.FieldType.Default,dependencyKind:n.FieldType.Default,success:n.FieldType.Default,async:n.FieldType.Default,dependencySource:n.FieldType.Default,commandName:n.FieldType.Default,dependencyTypeName:n.FieldType.Default,properties:n.FieldType.Default,resultCode:n.FieldType.Default};this.id=i;this.name=r;this.commandName=u;this.value=f;this.success=e;this.resultCode=o+"";this.dependencyKind=AI.DependencyKind.Http;this.dependencyTypeName="Ajax"}return __extends(i,t),i.envelopeType="Microsoft.ApplicationInsights.{0}.RemoteDependency",i.dataType="RemoteDependencyData",i}(AI.RemoteDependencyData);t.RemoteDependencyData=i})(t=n.Telemetry||(n.Telemetry={}))})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(t){"use strict";var r,i;t.Version="0.22.9";r=function(){function r(u){var f=this,e,o,s;if(this._trackAjaxAttempts=0,this.config=u||{},e=r.defaultConfig,e!==undefined)for(o in e)this.config[o]===undefined&&(this.config[o]=e[o]);t._InternalLogging.verboseLogging=function(){return f.config.verboseLogging};t._InternalLogging.enableDebugExceptions=function(){return f.config.enableDebug};s={instrumentationKey:function(){return f.config.instrumentationKey},accountId:function(){return f.config.accountId},sessionRenewalMs:function(){return f.config.sessionRenewalMs},sessionExpirationMs:function(){return f.config.sessionExpirationMs},endpointUrl:function(){return f.config.endpointUrl},emitLineDelimitedJson:function(){return f.config.emitLineDelimitedJson},maxBatchSizeInBytes:function(){return f.config.maxBatchSizeInBytes},maxBatchInterval:function(){return f.config.maxBatchInterval},disableTelemetry:function(){return f.config.disableTelemetry},sampleRate:function(){return f.config.samplingPercentage},cookieDomain:function(){return f.config.cookieDomain}};this.context=new t.TelemetryContext(s);this._pageViewManager=new n.ApplicationInsights.Telemetry.PageViewManager(this,this.config.overridePageViewDuration);this._eventTracking=new i("trackEvent");this._eventTracking.action=function(n,i,r,u,e){e?isNaN(e.duration)&&(e.duration=r):e={duration:r};var o=new t.Telemetry.Event(n,u,e),s=new t.Telemetry.Common.Data(t.Telemetry.Event.dataType,o),h=new t.Telemetry.Common.Envelope(s,t.Telemetry.Event.envelopeType);f.context.track(h)};this._pageTracking=new i("trackPageView");this._pageTracking.action=function(n,t,i,r,u){f.sendPageViewInternal(n,t,i,r,u)};this._pageVisitTimeManager=new t.Telemetry.PageVisitTimeManager(function(n,t,i){return f.trackPageVisitTime(n,t,i)});this.config.disableAjaxTracking||new n.ApplicationInsights.AjaxMonitor(this)}return r.prototype.sendPageViewInternal=function(n,i,r,u,f){var e=new t.Telemetry.PageView(n,i,r,u,f),o=new t.Telemetry.Common.Data(t.Telemetry.PageView.dataType,e),s=new t.Telemetry.Common.Envelope(o,t.Telemetry.PageView.envelopeType);this.context.track(s);this._trackAjaxAttempts=0},r.prototype.sendPageViewPerformanceInternal=function(n){var i=new t.Telemetry.Common.Data(t.Telemetry.PageViewPerformance.dataType,n),r=new t.Telemetry.Common.Envelope(i,t.Telemetry.PageViewPerformance.envelopeType);this.context.track(r)},r.prototype.startTrackPage=function(n){try{typeof n!="string"&&(n=window.document&&window.document.title||"");this._pageTracking.start(n)}catch(i){t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_StartTrackFailed,"startTrackPage failed, page view may not be collected: "+t.Util.getExceptionName(i),{exception:t.Util.dump(i)}))}},r.prototype.stopTrackPage=function(n,i,r,u){try{typeof n!="string"&&(n=window.document&&window.document.title||"");typeof i!="string"&&(i=window.location&&window.location.href||"");this._pageTracking.stop(n,i,r,u);this.config.autoTrackPageVisitTime&&this._pageVisitTimeManager.trackPreviousPageVisit(n,i)}catch(f){t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_StopTrackFailed,"stopTrackPage failed, page view will not be collected: "+t.Util.getExceptionName(f),{exception:t.Util.dump(f)}))}},r.prototype.trackPageView=function(n,i,r,u,f){try{this._pageViewManager.trackPageView(n,i,r,u,f);this.config.autoTrackPageVisitTime&&this._pageVisitTimeManager.trackPreviousPageVisit(n,i)}catch(e){t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_TrackPVFailed,"trackPageView failed, page view will not be collected: "+t.Util.getExceptionName(e),{exception:t.Util.dump(e)}))}},r.prototype.startTrackEvent=function(n){try{this._eventTracking.start(n)}catch(i){t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_StartTrackEventFailed,"startTrackEvent failed, event will not be collected: "+t.Util.getExceptionName(i),{exception:t.Util.dump(i)}))}},r.prototype.stopTrackEvent=function(n,i,r){try{this._eventTracking.stop(n,undefined,i,r)}catch(u){t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_StopTrackEventFailed,"stopTrackEvent failed, event will not be collected: "+t.Util.getExceptionName(u),{exception:t.Util.dump(u)}))}},r.prototype.trackEvent=function(n,i,r){try{var f=new t.Telemetry.Event(n,i,r),e=new t.Telemetry.Common.Data(t.Telemetry.Event.dataType,f),o=new t.Telemetry.Common.Envelope(e,t.Telemetry.Event.envelopeType);this.context.track(o)}catch(u){t._InternalLogging.throwInternalNonUserActionable(t.LoggingSeverity.CRITICAL,new t._InternalLogMessage(t._InternalMessageId.NONUSRACT_TrackEventFailed,"trackEvent failed, event will not be collected: "+t.Util.getExceptionName(u),{exception:t.Util.dump(u)}))}},r.prototype.trackAjax=function(n,i,r,u,f,e){if(this.config.maxAjaxCallsPerView===-1||this._trackAjaxAttempts0?n.maxBatchSizeInBytes:1e6,n.maxBatchInterval=isNaN(n.maxBatchInterval)?15e3:n.maxBatchInterval,n.enableDebug=t.Util.stringToBoolOrDefault(n.enableDebug),n.disableExceptionTracking=n.disableExceptionTracking!==undefined&&n.disableExceptionTracking!==null?t.Util.stringToBoolOrDefault(n.disableExceptionTracking):!1,n.disableTelemetry=t.Util.stringToBoolOrDefault(n.disableTelemetry),n.verboseLogging=t.Util.stringToBoolOrDefault(n.verboseLogging),n.emitLineDelimitedJson=t.Util.stringToBoolOrDefault(n.emitLineDelimitedJson),n.diagnosticLogInterval=n.diagnosticLogInterval||1e4,n.autoTrackPageVisitTime=t.Util.stringToBoolOrDefault(n.autoTrackPageVisitTime),(isNaN(n.samplingPercentage)||n.samplingPercentage<=0||n.samplingPercentage>=100)&&(n.samplingPercentage=100),n.disableAjaxTracking=n.disableAjaxTracking!==undefined&&n.disableAjaxTracking!==null?t.Util.stringToBoolOrDefault(n.disableAjaxTracking):!1,n.maxAjaxCallsPerView=isNaN(n.maxAjaxCallsPerView)?500:n.maxAjaxCallsPerView,n.disableCorrelationHeaders=n.disableCorrelationHeaders!==undefined&&n.disableCorrelationHeaders!==null?t.Util.stringToBoolOrDefault(n.disableCorrelationHeaders):!0,n.disableFlushOnBeforeUnload=n.disableFlushOnBeforeUnload!==undefined&&n.disableFlushOnBeforeUnload!==null?t.Util.stringToBoolOrDefault(n.disableFlushOnBeforeUnload):!1,n},i}();t.Initialization=i})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})),function(n){var t;(function(){"use strict";var r,u;try{if(typeof window!="undefined"&&typeof JSON!="undefined")if(r="appInsights",window[r]===undefined)n.ApplicationInsights.AppInsights.defaultConfig=n.ApplicationInsights.Initialization.getDefaultConfig();else{var f=window[r]||{},t=new n.ApplicationInsights.Initialization(f),i=t.loadAppInsights();for(u in i)f[u]=i[u];t.emptyQueue();t.pollInteralLogs(i);t.addHousekeepingBeforeUnload(i)}}catch(e){n.ApplicationInsights._InternalLogging.warnToConsole("Failed to initialize AppInsights JS SDK: "+e.message)}})(t=n.ApplicationInsights||(n.ApplicationInsights={}))}(Microsoft||(Microsoft={})) \ No newline at end of file diff --git a/ankit/ticTac1/ticTac1/ticTac1.csproj b/ankit/ticTac1/ticTac1/ticTac1.csproj new file mode 100644 index 0000000..14380e3 --- /dev/null +++ b/ankit/ticTac1/ticTac1/ticTac1.csproj @@ -0,0 +1,237 @@ + + + + + + + Debug + AnyCPU + + + 2.0 + {3BE5777B-38FA-4FCB-8BC1-53D363008CBB} + {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} + Library + Properties + ticTac1 + ticTac1 + v4.5.2 + true + + + + + + + + + + true + full + false + bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\ + TRACE + prompt + 4 + + + + ..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll + True + + + ..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.SqlServer.dll + True + + + ..\packages\Microsoft.ApplicationInsights.Agent.Intercept.1.2.1\lib\net45\Microsoft.AI.Agent.Intercept.dll + True + + + ..\packages\Microsoft.ApplicationInsights.DependencyCollector.2.0.0\lib\net45\Microsoft.AI.DependencyCollector.dll + True + + + ..\packages\Microsoft.ApplicationInsights.PerfCounterCollector.2.0.0\lib\net45\Microsoft.AI.PerfCounterCollector.dll + True + + + ..\packages\Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.0.0\lib\net45\Microsoft.AI.ServerTelemetryChannel.dll + True + + + ..\packages\Microsoft.ApplicationInsights.Web.2.0.0\lib\net45\Microsoft.AI.Web.dll + True + + + ..\packages\Microsoft.ApplicationInsights.WindowsServer.2.0.0\lib\net45\Microsoft.AI.WindowsServer.dll + True + + + ..\packages\Microsoft.ApplicationInsights.2.0.0\lib\net45\Microsoft.ApplicationInsights.dll + True + + + ..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll + True + + + + ..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll + True + + + + ..\packages\Microsoft.AspNet.WebApi.Client.5.2.7\lib\net45\System.Net.Http.Formatting.dll + True + + + + + ..\packages\Microsoft.AspNet.Cors.5.2.7\lib\net45\System.Web.Cors.dll + True + + + + + + + + + + + + ..\packages\Microsoft.AspNet.WebApi.Core.5.2.7\lib\net45\System.Web.Http.dll + True + + + ..\packages\Microsoft.AspNet.WebApi.Cors.5.2.7\lib\net45\System.Web.Http.Cors.dll + True + + + ..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll + True + + + + + + + + + + + + + PreserveNewest + + + EntityModelCodeGenerator + ticTac1.Designer.cs + + + ticTac1.edmx + + + Web.config + + + Web.config + + + + + + TextTemplatingFileGenerator + ticTac1.edmx + ticTac1.Context.cs + + + TextTemplatingFileGenerator + ticTac1.edmx + ticTac1.cs + + + + + + + + + + Global.asax + + + ticTac1.tt + + + True + True + ticTac1.Context.tt + + + True + True + ticTac1.tt + + + True + True + ticTac1.edmx + + + + + + + + + + + 10.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + + + + + + + True + True + 54411 + / + http://localhost:54411/ + False + False + + + False + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/ankit/ticTac1/ticTac1/ticTac1.csproj.user b/ankit/ticTac1/ticTac1/ticTac1.csproj.user new file mode 100644 index 0000000..9828b88 --- /dev/null +++ b/ankit/ticTac1/ticTac1/ticTac1.csproj.user @@ -0,0 +1,38 @@ + + + + true + 600 + True + False + True + + ticTac1.model.gameEntities + False + + + + + + + + CurrentPage + True + False + False + False + + + + + + + + + True + True + + + + + \ No newline at end of file diff --git a/ankit/toc.css b/ankit/toc.css new file mode 100644 index 0000000..be717c3 --- /dev/null +++ b/ankit/toc.css @@ -0,0 +1,29 @@ +* { + margin: 0; + padding: 0; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +#board { + padding: 0px; + margin: 0 auto; + margin-top: 25px; +} + +#board tr td { + width: 80px; + height: 80px; + border: 1px solid #1c1c1c; + font-family: Helvetica; + font-size: 30px; + text-align: center; +} + +#board tr td:hover { + background: #e4e4e4; + cursor: pointer; +} \ No newline at end of file diff --git a/ankit/toc.html b/ankit/toc.html new file mode 100644 index 0000000..338e1dc --- /dev/null +++ b/ankit/toc.html @@ -0,0 +1,25 @@ + + + Tic-Tac-Toe + + + + + + + + + + + + + + + + + +
+ + + \ No newline at end of file diff --git a/ankit/toc.js b/ankit/toc.js new file mode 100644 index 0000000..3643f00 --- /dev/null +++ b/ankit/toc.js @@ -0,0 +1,44 @@ +$(document).ready(function(){ + + var move = 1; + var play = true; + + $("#board tr td").click(function() { + if ($(this).text()=="" && play) { + if ((move%2)==1) { $(this).append("X"); } + else { $(this).append("O"); } + move++; + if (checkForWinner()!=-1 && checkForWinner()!="") { + if (checkForWinner()=="X") { alert("Player 1 wins!"); } + else { alert("Player 2 wins!"); } + play = false; + } + } + }); + + function checkForWinner() { + var space1 = $("#board tr:nth-child(1) td:nth-child(1)").text(); + var space2 = $("#board tr:nth-child(1) td:nth-child(2)").text(); + var space3 = $("#board tr:nth-child(1) td:nth-child(3)").text(); + var space4 = $("#board tr:nth-child(2) td:nth-child(1)").text(); + var space5 = $("#board tr:nth-child(2) td:nth-child(2)").text(); + var space6 = $("#board tr:nth-child(2) td:nth-child(3)").text(); + var space7 = $("#board tr:nth-child(3) td:nth-child(1)").text(); + var space8 = $("#board tr:nth-child(3) td:nth-child(2)").text(); + var space9 = $("#board tr:nth-child(3) td:nth-child(3)").text(); + // check rows + if ((space1==space2) && (space2==space3)) { return space3; } + else if ((space4==space5) && (space5==space6)) { return space6; } + else if ((space7==space8) && (space8==space9)) { return space9; } + // check columns + else if ((space1==space4) && (space4==space7)) { return space7; } + else if ((space2==space5) && (space5==space8)) { return space8; } + else if ((space3==space6) && (space6==space9)) { return space9; } + // check diagonals + else if ((space1==space5) && (space5==space9)) { return space9; } + else if ((space3==space5) && (space5==space7)) { return space7; } + // no winner + return -1; + } + +}); \ No newline at end of file diff --git a/ankit/webs.jpg b/ankit/webs.jpg new file mode 100644 index 0000000000000000000000000000000000000000..63da66e34a76b3ea802dd98278c8f5f59e541cfd GIT binary patch literal 287502 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

!PYb>fS~=>bOGe2Q61tv|{?8og{l&IO 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%0Dl+~G1jTZ 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 E*>K-6_5c6? literal 0 HcmV?d00001 From bcc2209b5bfea3ccee0a982d9b01b225e6416f85 Mon Sep 17 00:00:00 2001 From: Ankit Kumar <46670567+ankit506@users.noreply.github.com> Date: Thu, 14 Feb 2019 18:51:40 +0530 Subject: [PATCH 2/2] Modified tic tac code with backend. --- ankit/.gitignore | 12 +-- ankit/Login.css | 132 ++++++++++++------------ ankit/Tac1.css | 21 ++++ ankit/Tac1.html | 33 ++++++ ankit/Tac1.js | 65 ++++++++++++ ankit/ankitdetail page.html | 178 ++++++++++++++++---------------- ankit/ankitdetail.css | 198 ++++++++++++++++++------------------ ankit/index.html | 126 +++++++++++------------ 8 files changed, 440 insertions(+), 325 deletions(-) create mode 100644 ankit/Tac1.css create mode 100644 ankit/Tac1.html create mode 100644 ankit/Tac1.js diff --git a/ankit/.gitignore b/ankit/.gitignore index b3f7b1d..b6a0467 100644 --- a/ankit/.gitignore +++ b/ankit/.gitignore @@ -1,7 +1,7 @@ -/ticTac1/.vs - -/ticTac1/packages - -/ticTac1/ticTac1/bin - +/ticTac1/.vs + +/ticTac1/packages + +/ticTac1/ticTac1/bin + /ticTac1/ticTac1/obj \ No newline at end of file diff --git a/ankit/Login.css b/ankit/Login.css index f34a2d3..56fcb45 100644 --- a/ankit/Login.css +++ b/ankit/Login.css @@ -1,69 +1,65 @@ - - - - - - - - - - - - -

-
- -
-
- -
- -

Sign up

-

Please fill this form to create an account.

-
- Name :          
- User_Name :
- Password :  
- Re-Password :
- - Remember me
-

By creating an account you agree to our Terms & Privacy.

-
-
- -
- -
- -
-
- - - - - + + + sign up Page + + + + + + + + + + + +
+
+ +
+
+ +
+ +

Sign up

+

Please fill this form to create an account.

+
+ Name :          
+ User_Name :
+ Password :  
+ Re-Password :
+ + Remember me
+

By creating an account you agree to our Terms & Privacy.

+
+
+ +
+ +
+ +
+
+ +
+ + + diff --git a/ankit/ankitdetail.css b/ankit/ankitdetail.css index ae221dc..740ac18 100644 --- a/ankit/ankitdetail.css +++ b/ankit/ankitdetail.css @@ -1,100 +1,100 @@ - - - - - - - - - - -
-

TIC TOC

-

Sign in

-
-Email :        
-Password :  
- - Remember me
-

By creating an account you agree to our Terms & Privacy.

- - - - + + +sign in + + + + + + + + + +
+

TIC TOC

+

Sign in

+
+Email :        
+Password :  
+ + Remember me
+

By creating an account you agree to our Terms & Privacy.

+ + + +