mirror of
				https://github.com/invoiceninja/invoiceninja.git
				synced 2025-11-04 01:17:30 -05:00 
			
		
		
		
	Update Flutter client
This commit is contained in:
		
							parent
							
								
									956c06c430
								
							
						
					
					
						commit
						41ee143930
					
				@ -1195,6 +1195,7 @@ collection
 | 
				
			|||||||
convert
 | 
					convert
 | 
				
			||||||
crypto
 | 
					crypto
 | 
				
			||||||
mime
 | 
					mime
 | 
				
			||||||
 | 
					package_resolver
 | 
				
			||||||
shelf_static
 | 
					shelf_static
 | 
				
			||||||
source_gen
 | 
					source_gen
 | 
				
			||||||
source_map_stack_trace
 | 
					source_map_stack_trace
 | 
				
			||||||
@ -4325,6 +4326,32 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 | 
				
			|||||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
					(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
				
			||||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
					OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					cached_network_image
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The MIT License (MIT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Copyright (c) 2018 Rene Floor
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The above copyright notice and this permission notice shall be included in all
 | 
				
			||||||
 | 
					copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
				
			||||||
 | 
					SOFTWARE.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
--------------------------------------------------------------------------------
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
charcode
 | 
					charcode
 | 
				
			||||||
dart_style
 | 
					dart_style
 | 
				
			||||||
@ -5322,6 +5349,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
				
			|||||||
--------------------------------------------------------------------------------
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
device_info
 | 
					device_info
 | 
				
			||||||
google_sign_in_platform_interface
 | 
					google_sign_in_platform_interface
 | 
				
			||||||
 | 
					image_picker_platform_interface
 | 
				
			||||||
local_auth
 | 
					local_auth
 | 
				
			||||||
package_info
 | 
					package_info
 | 
				
			||||||
url_launcher_platform_interface
 | 
					url_launcher_platform_interface
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										113
									
								
								public/flutter_service_worker.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										113
									
								
								public/flutter_service_worker.js
									
									
									
									
										vendored
									
									
								
							@ -1,13 +1,15 @@
 | 
				
			|||||||
'use strict';
 | 
					'use strict';
 | 
				
			||||||
 | 
					const MANIFEST = 'flutter-app-manifest';
 | 
				
			||||||
 | 
					const TEMP = 'flutter-temp-cache';
 | 
				
			||||||
const CACHE_NAME = 'flutter-app-cache';
 | 
					const CACHE_NAME = 'flutter-app-cache';
 | 
				
			||||||
const RESOURCES = {
 | 
					const RESOURCES = {
 | 
				
			||||||
  "favicon.ico": "51636d3a390451561744c42188ccd628",
 | 
					  "favicon.ico": "51636d3a390451561744c42188ccd628",
 | 
				
			||||||
"main.dart.js": "ae4b6ec0d44e5ffa24155b6cf0cc6c40",
 | 
					"main.dart.js": "2f84e93ad2541a7b78b2bd3b211a21f9",
 | 
				
			||||||
"assets/web/assets/fonts/Roboto-Regular.ttf": "3e1af3ef546b9e6ecef9f3ba197bf7d2",
 | 
					"assets/web/assets/fonts/Roboto-Regular.ttf": "3e1af3ef546b9e6ecef9f3ba197bf7d2",
 | 
				
			||||||
"assets/fonts/MaterialIcons-Regular.ttf": "56d3ffdef7a25659eab6a68a3fbfaf16",
 | 
					"assets/fonts/MaterialIcons-Regular.ttf": "56d3ffdef7a25659eab6a68a3fbfaf16",
 | 
				
			||||||
"assets/fonts/Roboto-Regular.ttf": "3e1af3ef546b9e6ecef9f3ba197bf7d2",
 | 
					"assets/fonts/Roboto-Regular.ttf": "3e1af3ef546b9e6ecef9f3ba197bf7d2",
 | 
				
			||||||
"assets/FontManifest.json": "280b2f61f6810d59bd1bcd4cf01d3bf4",
 | 
					"assets/FontManifest.json": "280b2f61f6810d59bd1bcd4cf01d3bf4",
 | 
				
			||||||
"assets/LICENSE": "98845e6a0ac2838c7313ef03b0e016fb",
 | 
					"assets/LICENSE": "1eb3c349969aa16947840ae4713e2b4a",
 | 
				
			||||||
"assets/packages/font_awesome_flutter/lib/fonts/fa-brands-400.ttf": "5a37ae808cf9f652198acde612b5328d",
 | 
					"assets/packages/font_awesome_flutter/lib/fonts/fa-brands-400.ttf": "5a37ae808cf9f652198acde612b5328d",
 | 
				
			||||||
"assets/packages/font_awesome_flutter/lib/fonts/fa-regular-400.ttf": "2bca5ec802e40d3f4b60343e346cedde",
 | 
					"assets/packages/font_awesome_flutter/lib/fonts/fa-regular-400.ttf": "2bca5ec802e40d3f4b60343e346cedde",
 | 
				
			||||||
"assets/packages/font_awesome_flutter/lib/fonts/fa-solid-900.ttf": "2aa350bd2aeab88b601a593f793734c0",
 | 
					"assets/packages/font_awesome_flutter/lib/fonts/fa-solid-900.ttf": "2aa350bd2aeab88b601a593f793734c0",
 | 
				
			||||||
@ -17,26 +19,103 @@ const RESOURCES = {
 | 
				
			|||||||
"/": "02f52d8ed33971b0d7a938e631e89401"
 | 
					"/": "02f52d8ed33971b0d7a938e631e89401"
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
self.addEventListener('activate', function (event) {
 | 
					// The application shell files that are downloaded before a service worker can
 | 
				
			||||||
  event.waitUntil(
 | 
					// start.
 | 
				
			||||||
    caches.keys().then(function (cacheName) {
 | 
					const CORE = [
 | 
				
			||||||
      return caches.delete(cacheName);
 | 
					  "main.dart.js",
 | 
				
			||||||
    }).then(function (_) {
 | 
					"/",
 | 
				
			||||||
      return caches.open(CACHE_NAME);
 | 
					"index.html",
 | 
				
			||||||
    }).then(function (cache) {
 | 
					"assets/LICENSE",
 | 
				
			||||||
      return cache.addAll(Object.keys(RESOURCES));
 | 
					"assets/AssetManifest.json",
 | 
				
			||||||
 | 
					"assets/FontManifest.json"];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// During install, the TEMP cache is populated with the application shell files.
 | 
				
			||||||
 | 
					self.addEventListener("install", (event) => {
 | 
				
			||||||
 | 
					  return event.waitUntil(
 | 
				
			||||||
 | 
					    caches.open(TEMP).then((cache) => {
 | 
				
			||||||
 | 
					      return cache.addAll(CORE);
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
  );
 | 
					  );
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
self.addEventListener('fetch', function (event) {
 | 
					// During activate, the cache is populated with the temp files downloaded in
 | 
				
			||||||
  event.respondWith(
 | 
					// install. If this service worker is upgrading from one with a saved
 | 
				
			||||||
    caches.match(event.request)
 | 
					// MANIFEST, then use this to retain unchanged resource files.
 | 
				
			||||||
      .then(function (response) {
 | 
					self.addEventListener("activate", function(event) {
 | 
				
			||||||
        if (response) {
 | 
					  return event.waitUntil(async function() {
 | 
				
			||||||
          return response;
 | 
					    try {
 | 
				
			||||||
 | 
					      var contentCache = await caches.open(CACHE_NAME);
 | 
				
			||||||
 | 
					      var tempCache = await caches.open(TEMP);
 | 
				
			||||||
 | 
					      var manifestCache = await caches.open(MANIFEST);
 | 
				
			||||||
 | 
					      var manifest = await manifestCache.match('manifest');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      // When there is no prior manifest, clear the entire cache.
 | 
				
			||||||
 | 
					      if (!manifest) {
 | 
				
			||||||
 | 
					        await caches.delete(CACHE_NAME);
 | 
				
			||||||
 | 
					        for (var request of await tempCache.keys()) {
 | 
				
			||||||
 | 
					          var response = await tempCache.match(request);
 | 
				
			||||||
 | 
					          await contentCache.put(request, response);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return fetch(event.request);
 | 
					        await caches.delete(TEMP);
 | 
				
			||||||
 | 
					        // Save the manifest to make future upgrades efficient.
 | 
				
			||||||
 | 
					        await manifestCache.put('manifest', new Response(JSON.stringify(RESOURCES)));
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      var oldManifest = await manifest.json();
 | 
				
			||||||
 | 
					      var origin = self.location.origin;
 | 
				
			||||||
 | 
					      for (var request of await contentCache.keys()) {
 | 
				
			||||||
 | 
					        var key = request.url.substring(origin.length + 1);
 | 
				
			||||||
 | 
					        if (key == "") {
 | 
				
			||||||
 | 
					          key = "/";
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        // If a resource from the old manifest is not in the new cache, or if
 | 
				
			||||||
 | 
					        // the MD5 sum has changed, delete it. Otherwise the resource is left
 | 
				
			||||||
 | 
					        // in the cache and can be reused by the new service worker.
 | 
				
			||||||
 | 
					        if (!RESOURCES[key] || RESOURCES[key] != oldManifest[key]) {
 | 
				
			||||||
 | 
					          await contentCache.delete(request);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      // Populate the cache with the app shell TEMP files, potentially overwriting
 | 
				
			||||||
 | 
					      // cache files preserved above.
 | 
				
			||||||
 | 
					      for (var request of await tempCache.keys()) {
 | 
				
			||||||
 | 
					        var response = await tempCache.match(request);
 | 
				
			||||||
 | 
					        await contentCache.put(request, response);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      await caches.delete(TEMP);
 | 
				
			||||||
 | 
					      // Save the manifest to make future upgrades efficient.
 | 
				
			||||||
 | 
					      await manifestCache.put('manifest', new Response(JSON.stringify(RESOURCES)));
 | 
				
			||||||
 | 
					      return;
 | 
				
			||||||
 | 
					    } catch (err) {
 | 
				
			||||||
 | 
					      // On an unhandled exception the state of the cache cannot be guaranteed.
 | 
				
			||||||
 | 
					      console.error('Failed to upgrade service worker: ' + err);
 | 
				
			||||||
 | 
					      await caches.delete(CACHE_NAME);
 | 
				
			||||||
 | 
					      await caches.delete(TEMP);
 | 
				
			||||||
 | 
					      await caches.delete(MANIFEST);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }());
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// The fetch handler redirects requests for RESOURCE files to the service
 | 
				
			||||||
 | 
					// worker cache.
 | 
				
			||||||
 | 
					self.addEventListener("fetch", (event) => {
 | 
				
			||||||
 | 
					  var origin = self.location.origin;
 | 
				
			||||||
 | 
					  var key = event.request.url.substring(origin.length + 1);
 | 
				
			||||||
 | 
					  // If the URL is not the the RESOURCE list, skip the cache.
 | 
				
			||||||
 | 
					  if (!RESOURCES[key]) {
 | 
				
			||||||
 | 
					    return event.respondWith(fetch(event.request));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  event.respondWith(caches.open(CACHE_NAME)
 | 
				
			||||||
 | 
					    .then((cache) =>  {
 | 
				
			||||||
 | 
					      return cache.match(event.request).then((response) => {
 | 
				
			||||||
 | 
					        // Either respond with the cached resource, or perform a fetch and
 | 
				
			||||||
 | 
					        // lazily populate the cache.
 | 
				
			||||||
 | 
					        return response || fetch(event.request).then((response) => {
 | 
				
			||||||
 | 
					          cache.put(event.request, response.clone());
 | 
				
			||||||
 | 
					          return response;
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
      })
 | 
					      })
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
  );
 | 
					  );
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										24
									
								
								public/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								public/index.html
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,24 @@
 | 
				
			|||||||
 | 
					<!DOCTYPE html>
 | 
				
			||||||
 | 
					<html>
 | 
				
			||||||
 | 
					<head>
 | 
				
			||||||
 | 
					  <meta charset="UTF-8">
 | 
				
			||||||
 | 
					  <title>Invoice Ninja</title>
 | 
				
			||||||
 | 
					</head>
 | 
				
			||||||
 | 
					<body style="background-color:#888888;">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <script>
 | 
				
			||||||
 | 
					    if ('serviceWorker' in navigator) {
 | 
				
			||||||
 | 
					      window.addEventListener('load', function () {
 | 
				
			||||||
 | 
					        navigator.serviceWorker.register('/flutter_service_worker.js');
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  </script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <script src="main.dart.js" type="application/javascript"></script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <center style="font-family:Tahoma,Geneva,sans-serif;font-size:28px;color:white;padding-top:100px">
 | 
				
			||||||
 | 
					    Loading...
 | 
				
			||||||
 | 
					  </center>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</body>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
							
								
								
									
										204156
									
								
								public/main.dart.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										204156
									
								
								public/main.dart.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user