("bridge");
16 |
17 | function App() {
18 | useEffect(() => {
19 | bridge.addMessageHandler((type, data) => {
20 | alert("Got message of type: " + type + " data: " + JSON.stringify(data));
21 | });
22 | });
23 |
24 | return (
25 |
26 |
41 |
56 |
57 |
67 |
68 | );
69 | }
70 |
71 | export default App;
72 |
--------------------------------------------------------------------------------
/web-ui/src/logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/WebView2BetterBridge/Form1.Designer.cs:
--------------------------------------------------------------------------------
1 |
2 | namespace WebView2BetterBridge
3 | {
4 | partial class Form1
5 | {
6 | ///
7 | /// Required designer variable.
8 | ///
9 | private System.ComponentModel.IContainer components = null;
10 |
11 | ///
12 | /// Clean up any resources being used.
13 | ///
14 | /// true if managed resources should be disposed; otherwise, false.
15 | protected override void Dispose(bool disposing)
16 | {
17 | if (disposing && (components != null))
18 | {
19 | components.Dispose();
20 | }
21 | base.Dispose(disposing);
22 | }
23 |
24 | #region Windows Form Designer generated code
25 |
26 | ///
27 | /// Required method for Designer support - do not modify
28 | /// the contents of this method with the code editor.
29 | ///
30 | private void InitializeComponent()
31 | {
32 | this.webView2 = new Microsoft.Web.WebView2.WinForms.WebView2();
33 | ((System.ComponentModel.ISupportInitialize)(this.webView2)).BeginInit();
34 | this.SuspendLayout();
35 | //
36 | // webView2
37 | //
38 | this.webView2.CreationProperties = null;
39 | this.webView2.DefaultBackgroundColor = System.Drawing.Color.White;
40 | this.webView2.Dock = System.Windows.Forms.DockStyle.Fill;
41 | this.webView2.Location = new System.Drawing.Point(0, 0);
42 | this.webView2.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
43 | this.webView2.Name = "webView2";
44 | this.webView2.Size = new System.Drawing.Size(914, 600);
45 | this.webView2.TabIndex = 0;
46 | this.webView2.ZoomFactor = 1D;
47 | //
48 | // Form1
49 | //
50 | this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
51 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
52 | this.ClientSize = new System.Drawing.Size(914, 600);
53 | this.Controls.Add(this.webView2);
54 | this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
55 | this.Name = "Form1";
56 | this.Text = "Better Bridge Sample";
57 | ((System.ComponentModel.ISupportInitialize)(this.webView2)).EndInit();
58 | this.ResumeLayout(false);
59 |
60 | }
61 |
62 | #endregion
63 |
64 | private Microsoft.Web.WebView2.WinForms.WebView2 webView2;
65 | }
66 | }
67 |
68 |
--------------------------------------------------------------------------------
/web-ui/src/betterBridge.ts:
--------------------------------------------------------------------------------
1 | export function createBridge<
2 | T = Record Promise>
3 | >(bridgeName: string) {
4 | return new BetterBridge(bridgeName) as BetterBridge & T;
5 | }
6 |
7 | class BetterBridge {
8 | private webViewBridge: any = undefined;
9 | private messageHandlers: MessageHandler[] = [];
10 |
11 | constructor(bridgeName: string) {
12 | this.webViewBridge = (window as any).chrome.webview.hostObjects[bridgeName];
13 |
14 | const availableMethods = (window as any).chrome.webview.hostObjects.sync[
15 | bridgeName
16 | ].GetMethods();
17 |
18 | availableMethods.forEach((methodName: string) => {
19 | const lowerCaseMethodName = lowercaseFirstLetter(methodName);
20 |
21 | (this as any)[lowerCaseMethodName] = (...args: any[]) => {
22 | return this.runMethod(methodName, args);
23 | };
24 | });
25 | }
26 |
27 | // TODO: Need logic to clean this up when no handlers exist anymore, might cause leaks
28 | private initMessageHandling = () => {
29 | (window as any).chrome.webview.addEventListener("message", (event: any) => {
30 | // This data will already be deserialized for us
31 | const eventData = event.data;
32 | const type: string = eventData.type;
33 | const data: any = eventData.data;
34 |
35 | if (type) {
36 | this.onMessage(type, data);
37 | }
38 | });
39 | };
40 |
41 | private messageHandlingInitialized = false;
42 |
43 | addMessageHandler = (messageHandler: MessageHandler) => {
44 | if (!this.messageHandlingInitialized) {
45 | this.initMessageHandling();
46 | this.messageHandlingInitialized = true;
47 | }
48 |
49 | this.messageHandlers.push(messageHandler);
50 | };
51 |
52 | removeMessageHandler = (messageHandler: MessageHandler) => {
53 | const index = this.messageHandlers.indexOf(messageHandler);
54 | this.messageHandlers.splice(index, 1);
55 | };
56 |
57 | private onMessage = (type: string, data: any) => {
58 | // Call all handlers
59 | for (const handler of this.messageHandlers) {
60 | handler(type, data);
61 | }
62 | };
63 |
64 | // Only works in WebView2 1.0.1293.44+
65 | private runMethod = async (
66 | methodName: string,
67 | args: any[]
68 | ): Promise => {
69 | const argsJson = args.map((a) => JSON.stringify(a));
70 |
71 | const returnJson = await this.webViewBridge.RunMethod(
72 | methodName,
73 | JSON.stringify(argsJson)
74 | );
75 |
76 | return JSON.parse(returnJson);
77 | };
78 | }
79 |
80 | export type MessageHandler = (type: string, data: any) => void;
81 |
82 | function lowercaseFirstLetter(name: string) {
83 | return name.charAt(0).toLowerCase() + name.slice(1);
84 | }
85 |
--------------------------------------------------------------------------------
/WebView2BetterBridge/Form1.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 | text/microsoft-resx
50 |
51 |
52 | 2.0
53 |
54 |
55 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
56 |
57 |
58 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
59 |
60 |
--------------------------------------------------------------------------------
/Readme.md:
--------------------------------------------------------------------------------
1 | # WebView2 Better Bridge
2 |
3 | Using WebView2 call C# methods (async and sync) with complex parameters and return values from TS/JS!
4 |
5 | ## Installation
6 |
7 | There currently is no NuGet and npm packages, instead copy the `WebView2BetterBridge\BetterBridge.cs` to your C# project and `web-ui\src\betterBridge.ts` to your frontend project.
8 |
9 | > Note: For this solution to work with async methods you need to be on WebView2 1.0.1293.44 or later.
10 |
11 | ## Usage
12 |
13 | The documentation here is just a very light overview, for full details check the sample projects.
14 |
15 | ### Initialize bridge
16 |
17 | - Create a regular class that contains all the methods you can call from TS/JS (see `SampleBridge.cs` for an example). Both async and sync methods with complex object parameters and return values will work.
18 |
19 | - Register it by calling:
20 |
21 | ```cs
22 | webView2.CoreWebView2.AddHostObjectToScript("bridge", new BetterBridge(new MyBridge(), webView2));
23 | ```
24 |
25 | _Notice how BetterBridge wraps your own bridge class._
26 |
27 | ### Calling async C# methods
28 |
29 | > Note: The TS/JS method on the bridge should use camelCase.
30 |
31 | ```ts
32 | // TypeScript
33 | import { createBridge } from "./betterBridge";
34 | const bridge = createBridge("bridge");
35 |
36 | const result = await bridge.helloWorldAsync(99, "abc", {
37 | text: "hello from JS!",
38 | sent: new Date(),
39 | });
40 | ```
41 |
42 | ```cs
43 | // C#
44 | public async Task HelloWorldAsync(int someData, string moreData, Message message)
45 | {
46 | var msg = new Message()
47 | {
48 | Text = $"Hi from C#! Thank you for the data: {message.Text} {message.Sent} {someData} and {moreData}.",
49 | Sent = DateTime.Now
50 | };
51 |
52 | await Task.Delay(500);
53 |
54 | return msg;
55 | }
56 | ```
57 |
58 | ### Calling sync C# methods
59 |
60 | > Note: The TS/JS method on the bridge should use camelCase.
61 |
62 | > Note: Even though the C# method is sync it's still resolved to a Promise that we have to await. This is the recommended way since we do not want to lock up the UI.
63 |
64 | ```ts
65 | // TypeScript
66 | import { createBridge } from "./betterBridge";
67 | const bridge = createBridge("bridge");
68 |
69 | const result = await bridge.helloWorld(99, "abc", {
70 | text: "hello from JS!",
71 | sent: new Date(),
72 | });
73 | ```
74 |
75 | ```cs
76 | // C#
77 | public Message HelloWorld(int someData, string moreData, Message message)
78 | {
79 | return new Message()
80 | {
81 | Text = $"Hi from C#! Thank you for the data: {message.Text} {message.Sent} {someData} and {moreData}.",
82 | Sent = DateTime.Now
83 | };
84 | }
85 | ```
86 |
87 | ### Sending messages from C# to TS/JS
88 |
89 | Makes it a bit easier to send messages from C# to TS/JS instead of using `webView2.CoreWebView2.PostWebMessageAsJson` directly.
90 |
91 | ```cs
92 | // C#
93 | var messageSender = new BetterBridgeMessageSender(webView2);
94 | messageSender.SendMessage("message", new Message() { Text = "I want to report something", Sent = DateTime.Now });
95 | ```
96 |
97 | ```ts
98 | // TypeScript
99 | import { createBridge } from "./betterBridge";
100 | const bridge = createBridge("bridge");
101 |
102 | bridge.addMessageHandler((type, data) => {
103 | console.log("Got message", type, data);
104 | });
105 | ```
106 |
107 | ## Performance
108 |
109 | Uses some reflection under the hood but when testing I saw very small performance differences often in the range of 0.1-0.5 ms. But your results may vary 😊.
110 |
--------------------------------------------------------------------------------
/WebView2BetterBridge/BetterBridge.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Web.WebView2.WinForms;
2 | using Newtonsoft.Json;
3 | using Newtonsoft.Json.Serialization;
4 | using System;
5 | using System.Linq;
6 | using System.Threading.Tasks;
7 |
8 | namespace WebView2BetterBridge
9 | {
10 | ///
11 | /// Subscribers to messages from TS/JS and invokes methods / parses JSON etc for a wrapping bridge class.
12 | /// Giving us the ability to use any arguments, use async methods pass complex objects etc :D
13 | ///
14 | public class BetterBridge
15 | {
16 | private readonly WebView2 webView2;
17 |
18 | // Will invoke methods on this object
19 | private readonly object bridgeClass;
20 | private Type bridgeClassType;
21 |
22 | public BetterBridge(object bridgeClass, WebView2 webView2)
23 | {
24 | this.webView2 = webView2;
25 | this.bridgeClass = bridgeClass;
26 | this.bridgeClassType = this.bridgeClass.GetType();
27 | }
28 |
29 | private JsonSerializerSettings jsonSerializerSettings = new JsonSerializerSettings
30 | {
31 | ObjectCreationHandling = ObjectCreationHandling.Replace,
32 | ContractResolver = new DefaultContractResolver
33 | {
34 | NamingStrategy = new CamelCaseNamingStrategy()
35 | },
36 | //Formatting = Formatting.Indented
37 | };
38 |
39 | public string[] GetMethods()
40 | {
41 | return this.bridgeClassType.GetMethods().Select(m => m.Name).ToArray();
42 | }
43 |
44 | ///
45 | /// Called from TS/JS side works on both async and regular methods of the wrapped class :D !
46 | ///
47 | ///
48 | ///
49 | ///
50 | ///
51 | public async Task RunMethod(string methodName, string argsJson)
52 | {
53 | // We have stored each argument as json data in an array, the array is also encoded to a string
54 | // since webview can't invoke string[] array functions
55 | var jsonDataArray = JsonConvert.DeserializeObject(argsJson, jsonSerializerSettings);
56 |
57 | var method = bridgeClassType.GetMethod(methodName);
58 | var parameters = bridgeClassType.GetMethod(methodName).GetParameters();
59 |
60 | if (parameters.Length != jsonDataArray.Length)
61 | throw new Exception("Wrong number of arguments, expected: " + parameters.Length + " but got: " + jsonDataArray.Length);
62 |
63 | var typedArgs = new object[jsonDataArray.Length];
64 |
65 | for (int i = 0; i < typedArgs.Length; i++)
66 | {
67 | var typedObj = JsonConvert.DeserializeObject(jsonDataArray[i], parameters[i].ParameterType, jsonSerializerSettings);
68 | typedArgs[i] = typedObj;
69 | }
70 |
71 | var resultTyped = method.Invoke(this.bridgeClass, typedArgs);
72 |
73 | // Was it an async method (in bridgeClass?)
74 | var resultTypedTask = resultTyped as Task;
75 |
76 | string resultJson = null;
77 |
78 | // Was the method called async?
79 | if (resultTypedTask == null)
80 | {
81 | // Regular method:
82 |
83 | // Package the result
84 | resultJson = JsonConvert.SerializeObject(resultTyped, jsonSerializerSettings);
85 | }
86 | else
87 | {
88 | // Async method:
89 |
90 | await resultTypedTask;
91 |
92 | // If has a "Result" property return the value otherwise null (Task etc)
93 | var resultProperty = resultTypedTask.GetType().GetProperty("Result");
94 |
95 | var taskResult = resultProperty != null ? resultProperty.GetValue(resultTypedTask) : null;
96 |
97 | // Package the result
98 | resultJson = JsonConvert.SerializeObject(taskResult, jsonSerializerSettings);
99 | }
100 |
101 | return resultJson;
102 | }
103 | }
104 |
105 | public class BetterBridgeMessageSender
106 | {
107 | private readonly WebView2 webView2;
108 |
109 | public BetterBridgeMessageSender(WebView2 webView2)
110 | {
111 | this.webView2 = webView2;
112 | }
113 | public void SendMessage(string type, object data)
114 | {
115 | // Convert to JSON
116 | string result = JsonConvert.SerializeObject(new BridgeMessage() { Type = type, Data = data }, jsonSerializerSettings);
117 |
118 | webView2.CoreWebView2.PostWebMessageAsJson(result);
119 | }
120 |
121 | private JsonSerializerSettings jsonSerializerSettings = new JsonSerializerSettings
122 | {
123 | ContractResolver = new DefaultContractResolver
124 | {
125 | NamingStrategy = new CamelCaseNamingStrategy()
126 | },
127 | //Formatting = Formatting.Indented
128 | };
129 | }
130 |
131 | ///
132 | /// For sending messages (like progress etc) to TS/JS.
133 | ///
134 | public class BridgeMessage
135 | {
136 | public string Type { get; set; }
137 | public object Data { get; set; }
138 | }
139 | }
140 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 | ##
4 | ## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore
5 |
6 | # User-specific files
7 | *.rsuser
8 | *.suo
9 | *.user
10 | *.userosscache
11 | *.sln.docstates
12 |
13 | # User-specific files (MonoDevelop/Xamarin Studio)
14 | *.userprefs
15 |
16 | # Mono auto generated files
17 | mono_crash.*
18 |
19 | # Build results
20 | [Dd]ebug/
21 | [Dd]ebugPublic/
22 | [Rr]elease/
23 | [Rr]eleases/
24 | x64/
25 | x86/
26 | [Ww][Ii][Nn]32/
27 | [Aa][Rr][Mm]/
28 | [Aa][Rr][Mm]64/
29 | bld/
30 | [Bb]in/
31 | [Oo]bj/
32 | [Ll]og/
33 | [Ll]ogs/
34 |
35 | # Visual Studio 2015/2017 cache/options directory
36 | .vs/
37 | # Uncomment if you have tasks that create the project's static files in wwwroot
38 | #wwwroot/
39 |
40 | # Visual Studio 2017 auto generated files
41 | Generated\ Files/
42 |
43 | # MSTest test Results
44 | [Tt]est[Rr]esult*/
45 | [Bb]uild[Ll]og.*
46 |
47 | # NUnit
48 | *.VisualState.xml
49 | TestResult.xml
50 | nunit-*.xml
51 |
52 | # Build Results of an ATL Project
53 | [Dd]ebugPS/
54 | [Rr]eleasePS/
55 | dlldata.c
56 |
57 | # Benchmark Results
58 | BenchmarkDotNet.Artifacts/
59 |
60 | # .NET Core
61 | project.lock.json
62 | project.fragment.lock.json
63 | artifacts/
64 |
65 | # ASP.NET Scaffolding
66 | ScaffoldingReadMe.txt
67 |
68 | # StyleCop
69 | StyleCopReport.xml
70 |
71 | # Files built by Visual Studio
72 | *_i.c
73 | *_p.c
74 | *_h.h
75 | *.ilk
76 | *.meta
77 | *.obj
78 | *.iobj
79 | *.pch
80 | *.pdb
81 | *.ipdb
82 | *.pgc
83 | *.pgd
84 | *.rsp
85 | *.sbr
86 | *.tlb
87 | *.tli
88 | *.tlh
89 | *.tmp
90 | *.tmp_proj
91 | *_wpftmp.csproj
92 | *.log
93 | *.tlog
94 | *.vspscc
95 | *.vssscc
96 | .builds
97 | *.pidb
98 | *.svclog
99 | *.scc
100 |
101 | # Chutzpah Test files
102 | _Chutzpah*
103 |
104 | # Visual C++ cache files
105 | ipch/
106 | *.aps
107 | *.ncb
108 | *.opendb
109 | *.opensdf
110 | *.sdf
111 | *.cachefile
112 | *.VC.db
113 | *.VC.VC.opendb
114 |
115 | # Visual Studio profiler
116 | *.psess
117 | *.vsp
118 | *.vspx
119 | *.sap
120 |
121 | # Visual Studio Trace Files
122 | *.e2e
123 |
124 | # TFS 2012 Local Workspace
125 | $tf/
126 |
127 | # Guidance Automation Toolkit
128 | *.gpState
129 |
130 | # ReSharper is a .NET coding add-in
131 | _ReSharper*/
132 | *.[Rr]e[Ss]harper
133 | *.DotSettings.user
134 |
135 | # TeamCity is a build add-in
136 | _TeamCity*
137 |
138 | # DotCover is a Code Coverage Tool
139 | *.dotCover
140 |
141 | # AxoCover is a Code Coverage Tool
142 | .axoCover/*
143 | !.axoCover/settings.json
144 |
145 | # Coverlet is a free, cross platform Code Coverage Tool
146 | coverage*.json
147 | coverage*.xml
148 | coverage*.info
149 |
150 | # Visual Studio code coverage results
151 | *.coverage
152 | *.coveragexml
153 |
154 | # NCrunch
155 | _NCrunch_*
156 | .*crunch*.local.xml
157 | nCrunchTemp_*
158 |
159 | # MightyMoose
160 | *.mm.*
161 | AutoTest.Net/
162 |
163 | # Web workbench (sass)
164 | .sass-cache/
165 |
166 | # Installshield output folder
167 | [Ee]xpress/
168 |
169 | # DocProject is a documentation generator add-in
170 | DocProject/buildhelp/
171 | DocProject/Help/*.HxT
172 | DocProject/Help/*.HxC
173 | DocProject/Help/*.hhc
174 | DocProject/Help/*.hhk
175 | DocProject/Help/*.hhp
176 | DocProject/Help/Html2
177 | DocProject/Help/html
178 |
179 | # Click-Once directory
180 | publish/
181 |
182 | # Publish Web Output
183 | *.[Pp]ublish.xml
184 | *.azurePubxml
185 | # Note: Comment the next line if you want to checkin your web deploy settings,
186 | # but database connection strings (with potential passwords) will be unencrypted
187 | *.pubxml
188 | *.publishproj
189 |
190 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
191 | # checkin your Azure Web App publish settings, but sensitive information contained
192 | # in these scripts will be unencrypted
193 | PublishScripts/
194 |
195 | # NuGet Packages
196 | *.nupkg
197 | # NuGet Symbol Packages
198 | *.snupkg
199 | # The packages folder can be ignored because of Package Restore
200 | **/[Pp]ackages/*
201 | # except build/, which is used as an MSBuild target.
202 | !**/[Pp]ackages/build/
203 | # Uncomment if necessary however generally it will be regenerated when needed
204 | #!**/[Pp]ackages/repositories.config
205 | # NuGet v3's project.json files produces more ignorable files
206 | *.nuget.props
207 | *.nuget.targets
208 |
209 | # Microsoft Azure Build Output
210 | csx/
211 | *.build.csdef
212 |
213 | # Microsoft Azure Emulator
214 | ecf/
215 | rcf/
216 |
217 | # Windows Store app package directories and files
218 | AppPackages/
219 | BundleArtifacts/
220 | Package.StoreAssociation.xml
221 | _pkginfo.txt
222 | *.appx
223 | *.appxbundle
224 | *.appxupload
225 |
226 | # Visual Studio cache files
227 | # files ending in .cache can be ignored
228 | *.[Cc]ache
229 | # but keep track of directories ending in .cache
230 | !?*.[Cc]ache/
231 |
232 | # Others
233 | ClientBin/
234 | ~$*
235 | *~
236 | *.dbmdl
237 | *.dbproj.schemaview
238 | *.jfm
239 | *.pfx
240 | *.publishsettings
241 | orleans.codegen.cs
242 |
243 | # Including strong name files can present a security risk
244 | # (https://github.com/github/gitignore/pull/2483#issue-259490424)
245 | #*.snk
246 |
247 | # Since there are multiple workflows, uncomment next line to ignore bower_components
248 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
249 | #bower_components/
250 |
251 | # RIA/Silverlight projects
252 | Generated_Code/
253 |
254 | # Backup & report files from converting an old project file
255 | # to a newer Visual Studio version. Backup files are not needed,
256 | # because we have git ;-)
257 | _UpgradeReport_Files/
258 | Backup*/
259 | UpgradeLog*.XML
260 | UpgradeLog*.htm
261 | ServiceFabricBackup/
262 | *.rptproj.bak
263 |
264 | # SQL Server files
265 | *.mdf
266 | *.ldf
267 | *.ndf
268 |
269 | # Business Intelligence projects
270 | *.rdl.data
271 | *.bim.layout
272 | *.bim_*.settings
273 | *.rptproj.rsuser
274 | *- [Bb]ackup.rdl
275 | *- [Bb]ackup ([0-9]).rdl
276 | *- [Bb]ackup ([0-9][0-9]).rdl
277 |
278 | # Microsoft Fakes
279 | FakesAssemblies/
280 |
281 | # GhostDoc plugin setting file
282 | *.GhostDoc.xml
283 |
284 | # Node.js Tools for Visual Studio
285 | .ntvs_analysis.dat
286 | node_modules/
287 |
288 | # Visual Studio 6 build log
289 | *.plg
290 |
291 | # Visual Studio 6 workspace options file
292 | *.opt
293 |
294 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
295 | *.vbw
296 |
297 | # Visual Studio 6 auto-generated project file (contains which files were open etc.)
298 | *.vbp
299 |
300 | # Visual Studio 6 workspace and project file (working project files containing files to include in project)
301 | *.dsw
302 | *.dsp
303 |
304 | # Visual Studio 6 technical files
305 | *.ncb
306 | *.aps
307 |
308 | # Visual Studio LightSwitch build output
309 | **/*.HTMLClient/GeneratedArtifacts
310 | **/*.DesktopClient/GeneratedArtifacts
311 | **/*.DesktopClient/ModelManifest.xml
312 | **/*.Server/GeneratedArtifacts
313 | **/*.Server/ModelManifest.xml
314 | _Pvt_Extensions
315 |
316 | # Paket dependency manager
317 | .paket/paket.exe
318 | paket-files/
319 |
320 | # FAKE - F# Make
321 | .fake/
322 |
323 | # CodeRush personal settings
324 | .cr/personal
325 |
326 | # Python Tools for Visual Studio (PTVS)
327 | __pycache__/
328 | *.pyc
329 |
330 | # Cake - Uncomment if you are using it
331 | # tools/**
332 | # !tools/packages.config
333 |
334 | # Tabs Studio
335 | *.tss
336 |
337 | # Telerik's JustMock configuration file
338 | *.jmconfig
339 |
340 | # BizTalk build output
341 | *.btp.cs
342 | *.btm.cs
343 | *.odx.cs
344 | *.xsd.cs
345 |
346 | # OpenCover UI analysis results
347 | OpenCover/
348 |
349 | # Azure Stream Analytics local run output
350 | ASALocalRun/
351 |
352 | # MSBuild Binary and Structured Log
353 | *.binlog
354 |
355 | # NVidia Nsight GPU debugger configuration file
356 | *.nvuser
357 |
358 | # MFractors (Xamarin productivity tool) working folder
359 | .mfractor/
360 |
361 | # Local History for Visual Studio
362 | .localhistory/
363 |
364 | # Visual Studio History (VSHistory) files
365 | .vshistory/
366 |
367 | # BeatPulse healthcheck temp database
368 | healthchecksdb
369 |
370 | # Backup folder for Package Reference Convert tool in Visual Studio 2017
371 | MigrationBackup/
372 |
373 | # Ionide (cross platform F# VS Code tools) working folder
374 | .ionide/
375 |
376 | # Fody - auto-generated XML schema
377 | FodyWeavers.xsd
378 |
379 | # VS Code files for those working on multiple tools
380 | .vscode/*
381 | !.vscode/settings.json
382 | !.vscode/tasks.json
383 | !.vscode/launch.json
384 | !.vscode/extensions.json
385 | *.code-workspace
386 |
387 | # Local History for Visual Studio Code
388 | .history/
389 |
390 | # Windows Installer files from build outputs
391 | *.cab
392 | *.msi
393 | *.msix
394 | *.msm
395 | *.msp
396 |
397 | # JetBrains Rider
398 | *.sln.iml
--------------------------------------------------------------------------------
/web-ui/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@ampproject/remapping@^2.1.0":
6 | version "2.1.2"
7 | resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34"
8 | integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==
9 | dependencies:
10 | "@jridgewell/trace-mapping" "^0.3.0"
11 |
12 | "@babel/code-frame@^7.18.6":
13 | version "7.18.6"
14 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a"
15 | integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==
16 | dependencies:
17 | "@babel/highlight" "^7.18.6"
18 |
19 | "@babel/compat-data@^7.18.8":
20 | version "7.18.8"
21 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.8.tgz#2483f565faca607b8535590e84e7de323f27764d"
22 | integrity sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==
23 |
24 | "@babel/core@^7.18.10":
25 | version "7.18.10"
26 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.10.tgz#39ad504991d77f1f3da91be0b8b949a5bc466fb8"
27 | integrity sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==
28 | dependencies:
29 | "@ampproject/remapping" "^2.1.0"
30 | "@babel/code-frame" "^7.18.6"
31 | "@babel/generator" "^7.18.10"
32 | "@babel/helper-compilation-targets" "^7.18.9"
33 | "@babel/helper-module-transforms" "^7.18.9"
34 | "@babel/helpers" "^7.18.9"
35 | "@babel/parser" "^7.18.10"
36 | "@babel/template" "^7.18.10"
37 | "@babel/traverse" "^7.18.10"
38 | "@babel/types" "^7.18.10"
39 | convert-source-map "^1.7.0"
40 | debug "^4.1.0"
41 | gensync "^1.0.0-beta.2"
42 | json5 "^2.2.1"
43 | semver "^6.3.0"
44 |
45 | "@babel/generator@^7.18.10":
46 | version "7.18.12"
47 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.12.tgz#fa58daa303757bd6f5e4bbca91b342040463d9f4"
48 | integrity sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==
49 | dependencies:
50 | "@babel/types" "^7.18.10"
51 | "@jridgewell/gen-mapping" "^0.3.2"
52 | jsesc "^2.5.1"
53 |
54 | "@babel/helper-annotate-as-pure@^7.18.6":
55 | version "7.18.6"
56 | resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb"
57 | integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==
58 | dependencies:
59 | "@babel/types" "^7.18.6"
60 |
61 | "@babel/helper-compilation-targets@^7.18.9":
62 | version "7.18.9"
63 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz#69e64f57b524cde3e5ff6cc5a9f4a387ee5563bf"
64 | integrity sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==
65 | dependencies:
66 | "@babel/compat-data" "^7.18.8"
67 | "@babel/helper-validator-option" "^7.18.6"
68 | browserslist "^4.20.2"
69 | semver "^6.3.0"
70 |
71 | "@babel/helper-environment-visitor@^7.18.9":
72 | version "7.18.9"
73 | resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be"
74 | integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==
75 |
76 | "@babel/helper-function-name@^7.18.9":
77 | version "7.18.9"
78 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz#940e6084a55dee867d33b4e487da2676365e86b0"
79 | integrity sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==
80 | dependencies:
81 | "@babel/template" "^7.18.6"
82 | "@babel/types" "^7.18.9"
83 |
84 | "@babel/helper-hoist-variables@^7.18.6":
85 | version "7.18.6"
86 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678"
87 | integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==
88 | dependencies:
89 | "@babel/types" "^7.18.6"
90 |
91 | "@babel/helper-module-imports@^7.18.6":
92 | version "7.18.6"
93 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e"
94 | integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==
95 | dependencies:
96 | "@babel/types" "^7.18.6"
97 |
98 | "@babel/helper-module-transforms@^7.18.9":
99 | version "7.18.9"
100 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz#5a1079c005135ed627442df31a42887e80fcb712"
101 | integrity sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==
102 | dependencies:
103 | "@babel/helper-environment-visitor" "^7.18.9"
104 | "@babel/helper-module-imports" "^7.18.6"
105 | "@babel/helper-simple-access" "^7.18.6"
106 | "@babel/helper-split-export-declaration" "^7.18.6"
107 | "@babel/helper-validator-identifier" "^7.18.6"
108 | "@babel/template" "^7.18.6"
109 | "@babel/traverse" "^7.18.9"
110 | "@babel/types" "^7.18.9"
111 |
112 | "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9":
113 | version "7.18.9"
114 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz#4b8aea3b069d8cb8a72cdfe28ddf5ceca695ef2f"
115 | integrity sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==
116 |
117 | "@babel/helper-simple-access@^7.18.6":
118 | version "7.18.6"
119 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz#d6d8f51f4ac2978068df934b569f08f29788c7ea"
120 | integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==
121 | dependencies:
122 | "@babel/types" "^7.18.6"
123 |
124 | "@babel/helper-split-export-declaration@^7.18.6":
125 | version "7.18.6"
126 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075"
127 | integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==
128 | dependencies:
129 | "@babel/types" "^7.18.6"
130 |
131 | "@babel/helper-string-parser@^7.18.10":
132 | version "7.18.10"
133 | resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56"
134 | integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==
135 |
136 | "@babel/helper-validator-identifier@^7.18.6":
137 | version "7.18.6"
138 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076"
139 | integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==
140 |
141 | "@babel/helper-validator-option@^7.18.6":
142 | version "7.18.6"
143 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8"
144 | integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==
145 |
146 | "@babel/helpers@^7.18.9":
147 | version "7.18.9"
148 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.9.tgz#4bef3b893f253a1eced04516824ede94dcfe7ff9"
149 | integrity sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==
150 | dependencies:
151 | "@babel/template" "^7.18.6"
152 | "@babel/traverse" "^7.18.9"
153 | "@babel/types" "^7.18.9"
154 |
155 | "@babel/highlight@^7.18.6":
156 | version "7.18.6"
157 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf"
158 | integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==
159 | dependencies:
160 | "@babel/helper-validator-identifier" "^7.18.6"
161 | chalk "^2.0.0"
162 | js-tokens "^4.0.0"
163 |
164 | "@babel/parser@^7.18.10", "@babel/parser@^7.18.11":
165 | version "7.18.11"
166 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.11.tgz#68bb07ab3d380affa9a3f96728df07969645d2d9"
167 | integrity sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==
168 |
169 | "@babel/plugin-syntax-jsx@^7.18.6":
170 | version "7.18.6"
171 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0"
172 | integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==
173 | dependencies:
174 | "@babel/helper-plugin-utils" "^7.18.6"
175 |
176 | "@babel/plugin-transform-react-jsx-development@^7.18.6":
177 | version "7.18.6"
178 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz#dbe5c972811e49c7405b630e4d0d2e1380c0ddc5"
179 | integrity sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==
180 | dependencies:
181 | "@babel/plugin-transform-react-jsx" "^7.18.6"
182 |
183 | "@babel/plugin-transform-react-jsx-self@^7.18.6":
184 | version "7.18.6"
185 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz#3849401bab7ae8ffa1e3e5687c94a753fc75bda7"
186 | integrity sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==
187 | dependencies:
188 | "@babel/helper-plugin-utils" "^7.18.6"
189 |
190 | "@babel/plugin-transform-react-jsx-source@^7.18.6":
191 | version "7.18.6"
192 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.18.6.tgz#06e9ae8a14d2bc19ce6e3c447d842032a50598fc"
193 | integrity sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==
194 | dependencies:
195 | "@babel/helper-plugin-utils" "^7.18.6"
196 |
197 | "@babel/plugin-transform-react-jsx@^7.18.10", "@babel/plugin-transform-react-jsx@^7.18.6":
198 | version "7.18.10"
199 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.10.tgz#ea47b2c4197102c196cbd10db9b3bb20daa820f1"
200 | integrity sha512-gCy7Iikrpu3IZjYZolFE4M1Sm+nrh1/6za2Ewj77Z+XirT4TsbJcvOFOyF+fRPwU6AKKK136CZxx6L8AbSFG6A==
201 | dependencies:
202 | "@babel/helper-annotate-as-pure" "^7.18.6"
203 | "@babel/helper-module-imports" "^7.18.6"
204 | "@babel/helper-plugin-utils" "^7.18.9"
205 | "@babel/plugin-syntax-jsx" "^7.18.6"
206 | "@babel/types" "^7.18.10"
207 |
208 | "@babel/template@^7.18.10", "@babel/template@^7.18.6":
209 | version "7.18.10"
210 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71"
211 | integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==
212 | dependencies:
213 | "@babel/code-frame" "^7.18.6"
214 | "@babel/parser" "^7.18.10"
215 | "@babel/types" "^7.18.10"
216 |
217 | "@babel/traverse@^7.18.10", "@babel/traverse@^7.18.9":
218 | version "7.18.11"
219 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.11.tgz#3d51f2afbd83ecf9912bcbb5c4d94e3d2ddaa16f"
220 | integrity sha512-TG9PiM2R/cWCAy6BPJKeHzNbu4lPzOSZpeMfeNErskGpTJx6trEvFaVCbDvpcxwy49BKWmEPwiW8mrysNiDvIQ==
221 | dependencies:
222 | "@babel/code-frame" "^7.18.6"
223 | "@babel/generator" "^7.18.10"
224 | "@babel/helper-environment-visitor" "^7.18.9"
225 | "@babel/helper-function-name" "^7.18.9"
226 | "@babel/helper-hoist-variables" "^7.18.6"
227 | "@babel/helper-split-export-declaration" "^7.18.6"
228 | "@babel/parser" "^7.18.11"
229 | "@babel/types" "^7.18.10"
230 | debug "^4.1.0"
231 | globals "^11.1.0"
232 |
233 | "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9":
234 | version "7.18.10"
235 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.10.tgz#4908e81b6b339ca7c6b7a555a5fc29446f26dde6"
236 | integrity sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==
237 | dependencies:
238 | "@babel/helper-string-parser" "^7.18.10"
239 | "@babel/helper-validator-identifier" "^7.18.6"
240 | to-fast-properties "^2.0.0"
241 |
242 | "@esbuild/linux-loong64@0.14.54":
243 | version "0.14.54"
244 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz#de2a4be678bd4d0d1ffbb86e6de779cde5999028"
245 | integrity sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==
246 |
247 | "@jridgewell/gen-mapping@^0.3.2":
248 | version "0.3.2"
249 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9"
250 | integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==
251 | dependencies:
252 | "@jridgewell/set-array" "^1.0.1"
253 | "@jridgewell/sourcemap-codec" "^1.4.10"
254 | "@jridgewell/trace-mapping" "^0.3.9"
255 |
256 | "@jridgewell/resolve-uri@^3.0.3":
257 | version "3.0.5"
258 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c"
259 | integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==
260 |
261 | "@jridgewell/set-array@^1.0.1":
262 | version "1.1.2"
263 | resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
264 | integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
265 |
266 | "@jridgewell/sourcemap-codec@^1.4.10":
267 | version "1.4.11"
268 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec"
269 | integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==
270 |
271 | "@jridgewell/trace-mapping@^0.3.0":
272 | version "0.3.4"
273 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3"
274 | integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==
275 | dependencies:
276 | "@jridgewell/resolve-uri" "^3.0.3"
277 | "@jridgewell/sourcemap-codec" "^1.4.10"
278 |
279 | "@jridgewell/trace-mapping@^0.3.9":
280 | version "0.3.15"
281 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774"
282 | integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==
283 | dependencies:
284 | "@jridgewell/resolve-uri" "^3.0.3"
285 | "@jridgewell/sourcemap-codec" "^1.4.10"
286 |
287 | "@types/node@^16.11.26":
288 | version "16.11.26"
289 | resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.26.tgz#63d204d136c9916fb4dcd1b50f9740fe86884e47"
290 | integrity sha512-GZ7bu5A6+4DtG7q9GsoHXy3ALcgeIHP4NnL0Vv2wu0uUB/yQex26v0tf6/na1mm0+bS9Uw+0DFex7aaKr2qawQ==
291 |
292 | "@types/prop-types@*":
293 | version "15.7.4"
294 | resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11"
295 | integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==
296 |
297 | "@types/react-dom@^17.0.13":
298 | version "17.0.13"
299 | resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.13.tgz#a3323b974ee4280070982b3112351bb1952a7809"
300 | integrity sha512-wEP+B8hzvy6ORDv1QBhcQia4j6ea4SFIBttHYpXKPFZRviBvknq0FRh3VrIxeXUmsPkwuXVZrVGG7KUVONmXCQ==
301 | dependencies:
302 | "@types/react" "*"
303 |
304 | "@types/react@*", "@types/react@^17.0.39":
305 | version "17.0.39"
306 | resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.39.tgz#d0f4cde092502a6db00a1cded6e6bf2abb7633ce"
307 | integrity sha512-UVavlfAxDd/AgAacMa60Azl7ygyQNRwC/DsHZmKgNvPmRR5p70AJ5Q9EAmL2NWOJmeV+vVUI4IAP7GZrN8h8Ug==
308 | dependencies:
309 | "@types/prop-types" "*"
310 | "@types/scheduler" "*"
311 | csstype "^3.0.2"
312 |
313 | "@types/scheduler@*":
314 | version "0.16.2"
315 | resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39"
316 | integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==
317 |
318 | "@vitejs/plugin-react@^2.0.1":
319 | version "2.0.1"
320 | resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-2.0.1.tgz#3197c01d8e4a4eb9fed829c7888c467a43aadd4e"
321 | integrity sha512-uINzNHmjrbunlFtyVkST6lY1ewSfz/XwLufG0PIqvLGnpk2nOIOa/1CACTDNcKi1/RwaCzJLmsXwm1NsUVV/NA==
322 | dependencies:
323 | "@babel/core" "^7.18.10"
324 | "@babel/plugin-transform-react-jsx" "^7.18.10"
325 | "@babel/plugin-transform-react-jsx-development" "^7.18.6"
326 | "@babel/plugin-transform-react-jsx-self" "^7.18.6"
327 | "@babel/plugin-transform-react-jsx-source" "^7.18.6"
328 | magic-string "^0.26.2"
329 | react-refresh "^0.14.0"
330 |
331 | ansi-styles@^3.2.1:
332 | version "3.2.1"
333 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
334 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
335 | dependencies:
336 | color-convert "^1.9.0"
337 |
338 | browserslist@^4.20.2:
339 | version "4.21.3"
340 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.3.tgz#5df277694eb3c48bc5c4b05af3e8b7e09c5a6d1a"
341 | integrity sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==
342 | dependencies:
343 | caniuse-lite "^1.0.30001370"
344 | electron-to-chromium "^1.4.202"
345 | node-releases "^2.0.6"
346 | update-browserslist-db "^1.0.5"
347 |
348 | caniuse-lite@^1.0.30001370:
349 | version "1.0.30001376"
350 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001376.tgz#af2450833e5a06873fbb030a9556ca9461a2736d"
351 | integrity sha512-I27WhtOQ3X3v3it9gNs/oTpoE5KpwmqKR5oKPA8M0G7uMXh9Ty81Q904HpKUrM30ei7zfcL5jE7AXefgbOfMig==
352 |
353 | chalk@^2.0.0:
354 | version "2.4.2"
355 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
356 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
357 | dependencies:
358 | ansi-styles "^3.2.1"
359 | escape-string-regexp "^1.0.5"
360 | supports-color "^5.3.0"
361 |
362 | color-convert@^1.9.0:
363 | version "1.9.3"
364 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
365 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
366 | dependencies:
367 | color-name "1.1.3"
368 |
369 | color-name@1.1.3:
370 | version "1.1.3"
371 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
372 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
373 |
374 | convert-source-map@^1.7.0:
375 | version "1.8.0"
376 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369"
377 | integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
378 | dependencies:
379 | safe-buffer "~5.1.1"
380 |
381 | csstype@^3.0.2:
382 | version "3.0.11"
383 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.11.tgz#d66700c5eacfac1940deb4e3ee5642792d85cd33"
384 | integrity sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==
385 |
386 | debug@^4.1.0:
387 | version "4.3.3"
388 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664"
389 | integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
390 | dependencies:
391 | ms "2.1.2"
392 |
393 | electron-to-chromium@^1.4.202:
394 | version "1.4.219"
395 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.219.tgz#a7a672304b6aa4f376918d3f63a47f2c3906009a"
396 | integrity sha512-zoQJsXOUw0ZA0YxbjkmzBumAJRtr6je5JySuL/bAoFs0DuLiLJ+5FzRF7/ZayihxR2QcewlRZVm5QZdUhwjOgA==
397 |
398 | esbuild-android-64@0.14.54:
399 | version "0.14.54"
400 | resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz#505f41832884313bbaffb27704b8bcaa2d8616be"
401 | integrity sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==
402 |
403 | esbuild-android-arm64@0.14.54:
404 | version "0.14.54"
405 | resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz#8ce69d7caba49646e009968fe5754a21a9871771"
406 | integrity sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==
407 |
408 | esbuild-darwin-64@0.14.54:
409 | version "0.14.54"
410 | resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz#24ba67b9a8cb890a3c08d9018f887cc221cdda25"
411 | integrity sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==
412 |
413 | esbuild-darwin-arm64@0.14.54:
414 | version "0.14.54"
415 | resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz#3f7cdb78888ee05e488d250a2bdaab1fa671bf73"
416 | integrity sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==
417 |
418 | esbuild-freebsd-64@0.14.54:
419 | version "0.14.54"
420 | resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz#09250f997a56ed4650f3e1979c905ffc40bbe94d"
421 | integrity sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==
422 |
423 | esbuild-freebsd-arm64@0.14.54:
424 | version "0.14.54"
425 | resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz#bafb46ed04fc5f97cbdb016d86947a79579f8e48"
426 | integrity sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==
427 |
428 | esbuild-linux-32@0.14.54:
429 | version "0.14.54"
430 | resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz#e2a8c4a8efdc355405325033fcebeb941f781fe5"
431 | integrity sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==
432 |
433 | esbuild-linux-64@0.14.54:
434 | version "0.14.54"
435 | resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz#de5fdba1c95666cf72369f52b40b03be71226652"
436 | integrity sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==
437 |
438 | esbuild-linux-arm64@0.14.54:
439 | version "0.14.54"
440 | resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz#dae4cd42ae9787468b6a5c158da4c84e83b0ce8b"
441 | integrity sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==
442 |
443 | esbuild-linux-arm@0.14.54:
444 | version "0.14.54"
445 | resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz#a2c1dff6d0f21dbe8fc6998a122675533ddfcd59"
446 | integrity sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==
447 |
448 | esbuild-linux-mips64le@0.14.54:
449 | version "0.14.54"
450 | resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz#d9918e9e4cb972f8d6dae8e8655bf9ee131eda34"
451 | integrity sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==
452 |
453 | esbuild-linux-ppc64le@0.14.54:
454 | version "0.14.54"
455 | resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz#3f9a0f6d41073fb1a640680845c7de52995f137e"
456 | integrity sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==
457 |
458 | esbuild-linux-riscv64@0.14.54:
459 | version "0.14.54"
460 | resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz#618853c028178a61837bc799d2013d4695e451c8"
461 | integrity sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==
462 |
463 | esbuild-linux-s390x@0.14.54:
464 | version "0.14.54"
465 | resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz#d1885c4c5a76bbb5a0fe182e2c8c60eb9e29f2a6"
466 | integrity sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==
467 |
468 | esbuild-netbsd-64@0.14.54:
469 | version "0.14.54"
470 | resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz#69ae917a2ff241b7df1dbf22baf04bd330349e81"
471 | integrity sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==
472 |
473 | esbuild-openbsd-64@0.14.54:
474 | version "0.14.54"
475 | resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz#db4c8495287a350a6790de22edea247a57c5d47b"
476 | integrity sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==
477 |
478 | esbuild-sunos-64@0.14.54:
479 | version "0.14.54"
480 | resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz#54287ee3da73d3844b721c21bc80c1dc7e1bf7da"
481 | integrity sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==
482 |
483 | esbuild-windows-32@0.14.54:
484 | version "0.14.54"
485 | resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz#f8aaf9a5667630b40f0fb3aa37bf01bbd340ce31"
486 | integrity sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==
487 |
488 | esbuild-windows-64@0.14.54:
489 | version "0.14.54"
490 | resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz#bf54b51bd3e9b0f1886ffdb224a4176031ea0af4"
491 | integrity sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==
492 |
493 | esbuild-windows-arm64@0.14.54:
494 | version "0.14.54"
495 | resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz#937d15675a15e4b0e4fafdbaa3a01a776a2be982"
496 | integrity sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==
497 |
498 | esbuild@^0.14.47:
499 | version "0.14.54"
500 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.54.tgz#8b44dcf2b0f1a66fc22459943dccf477535e9aa2"
501 | integrity sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==
502 | optionalDependencies:
503 | "@esbuild/linux-loong64" "0.14.54"
504 | esbuild-android-64 "0.14.54"
505 | esbuild-android-arm64 "0.14.54"
506 | esbuild-darwin-64 "0.14.54"
507 | esbuild-darwin-arm64 "0.14.54"
508 | esbuild-freebsd-64 "0.14.54"
509 | esbuild-freebsd-arm64 "0.14.54"
510 | esbuild-linux-32 "0.14.54"
511 | esbuild-linux-64 "0.14.54"
512 | esbuild-linux-arm "0.14.54"
513 | esbuild-linux-arm64 "0.14.54"
514 | esbuild-linux-mips64le "0.14.54"
515 | esbuild-linux-ppc64le "0.14.54"
516 | esbuild-linux-riscv64 "0.14.54"
517 | esbuild-linux-s390x "0.14.54"
518 | esbuild-netbsd-64 "0.14.54"
519 | esbuild-openbsd-64 "0.14.54"
520 | esbuild-sunos-64 "0.14.54"
521 | esbuild-windows-32 "0.14.54"
522 | esbuild-windows-64 "0.14.54"
523 | esbuild-windows-arm64 "0.14.54"
524 |
525 | escalade@^3.1.1:
526 | version "3.1.1"
527 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
528 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
529 |
530 | escape-string-regexp@^1.0.5:
531 | version "1.0.5"
532 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
533 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
534 |
535 | fsevents@~2.3.2:
536 | version "2.3.2"
537 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
538 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
539 |
540 | function-bind@^1.1.1:
541 | version "1.1.1"
542 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
543 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
544 |
545 | gensync@^1.0.0-beta.2:
546 | version "1.0.0-beta.2"
547 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
548 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
549 |
550 | globals@^11.1.0:
551 | version "11.12.0"
552 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
553 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
554 |
555 | has-flag@^3.0.0:
556 | version "3.0.0"
557 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
558 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
559 |
560 | has@^1.0.3:
561 | version "1.0.3"
562 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
563 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
564 | dependencies:
565 | function-bind "^1.1.1"
566 |
567 | is-core-module@^2.9.0:
568 | version "2.10.0"
569 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed"
570 | integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==
571 | dependencies:
572 | has "^1.0.3"
573 |
574 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
575 | version "4.0.0"
576 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
577 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
578 |
579 | jsesc@^2.5.1:
580 | version "2.5.2"
581 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
582 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
583 |
584 | json5@^2.2.1:
585 | version "2.2.1"
586 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c"
587 | integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==
588 |
589 | loose-envify@^1.1.0:
590 | version "1.4.0"
591 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
592 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
593 | dependencies:
594 | js-tokens "^3.0.0 || ^4.0.0"
595 |
596 | magic-string@^0.26.2:
597 | version "0.26.2"
598 | resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.2.tgz#5331700e4158cd6befda738bb6b0c7b93c0d4432"
599 | integrity sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==
600 | dependencies:
601 | sourcemap-codec "^1.4.8"
602 |
603 | ms@2.1.2:
604 | version "2.1.2"
605 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
606 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
607 |
608 | nanoid@^3.3.4:
609 | version "3.3.4"
610 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab"
611 | integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==
612 |
613 | node-releases@^2.0.6:
614 | version "2.0.6"
615 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503"
616 | integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==
617 |
618 | object-assign@^4.1.1:
619 | version "4.1.1"
620 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
621 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
622 |
623 | path-parse@^1.0.7:
624 | version "1.0.7"
625 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
626 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
627 |
628 | picocolors@^1.0.0:
629 | version "1.0.0"
630 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
631 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
632 |
633 | postcss@^8.4.16:
634 | version "8.4.16"
635 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.16.tgz#33a1d675fac39941f5f445db0de4db2b6e01d43c"
636 | integrity sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==
637 | dependencies:
638 | nanoid "^3.3.4"
639 | picocolors "^1.0.0"
640 | source-map-js "^1.0.2"
641 |
642 | react-dom@^17.0.2:
643 | version "17.0.2"
644 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23"
645 | integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==
646 | dependencies:
647 | loose-envify "^1.1.0"
648 | object-assign "^4.1.1"
649 | scheduler "^0.20.2"
650 |
651 | react-refresh@^0.14.0:
652 | version "0.14.0"
653 | resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e"
654 | integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==
655 |
656 | react@^17.0.2:
657 | version "17.0.2"
658 | resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037"
659 | integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==
660 | dependencies:
661 | loose-envify "^1.1.0"
662 | object-assign "^4.1.1"
663 |
664 | resolve@^1.22.1:
665 | version "1.22.1"
666 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177"
667 | integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==
668 | dependencies:
669 | is-core-module "^2.9.0"
670 | path-parse "^1.0.7"
671 | supports-preserve-symlinks-flag "^1.0.0"
672 |
673 | "rollup@>=2.75.6 <2.77.0 || ~2.77.0":
674 | version "2.77.3"
675 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.77.3.tgz#8f00418d3a2740036e15deb653bed1a90ee0cc12"
676 | integrity sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==
677 | optionalDependencies:
678 | fsevents "~2.3.2"
679 |
680 | safe-buffer@~5.1.1:
681 | version "5.1.2"
682 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
683 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
684 |
685 | scheduler@^0.20.2:
686 | version "0.20.2"
687 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91"
688 | integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==
689 | dependencies:
690 | loose-envify "^1.1.0"
691 | object-assign "^4.1.1"
692 |
693 | semver@^6.3.0:
694 | version "6.3.0"
695 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
696 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
697 |
698 | source-map-js@^1.0.2:
699 | version "1.0.2"
700 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
701 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
702 |
703 | sourcemap-codec@^1.4.8:
704 | version "1.4.8"
705 | resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
706 | integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
707 |
708 | supports-color@^5.3.0:
709 | version "5.5.0"
710 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
711 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
712 | dependencies:
713 | has-flag "^3.0.0"
714 |
715 | supports-preserve-symlinks-flag@^1.0.0:
716 | version "1.0.0"
717 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
718 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
719 |
720 | to-fast-properties@^2.0.0:
721 | version "2.0.0"
722 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
723 | integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
724 |
725 | typescript@^4.6.2:
726 | version "4.6.2"
727 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.2.tgz#fe12d2727b708f4eef40f51598b3398baa9611d4"
728 | integrity sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==
729 |
730 | update-browserslist-db@^1.0.5:
731 | version "1.0.5"
732 | resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz#be06a5eedd62f107b7c19eb5bcefb194411abf38"
733 | integrity sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==
734 | dependencies:
735 | escalade "^3.1.1"
736 | picocolors "^1.0.0"
737 |
738 | vite@^3.0.7:
739 | version "3.0.7"
740 | resolved "https://registry.yarnpkg.com/vite/-/vite-3.0.7.tgz#f1e379857e9c5d652126f8b20d371e1365eb700f"
741 | integrity sha512-dILhvKba1mbP1wCezVQx/qhEK7/+jVn9ciadEcyKMMhZpsuAi/eWZfJRMkmYlkSFG7Qq9NvJbgFq4XOBxugJsA==
742 | dependencies:
743 | esbuild "^0.14.47"
744 | postcss "^8.4.16"
745 | resolve "^1.22.1"
746 | rollup ">=2.75.6 <2.77.0 || ~2.77.0"
747 | optionalDependencies:
748 | fsevents "~2.3.2"
749 |
--------------------------------------------------------------------------------