* browserlist file is removed
This commit is contained in:
		
							parent
							
								
									e617f344f8
								
							
						
					
					
						commit
						937efe1107
					
				
					 4 changed files with 18 additions and 30 deletions
				
			
		|  | @ -1 +0,0 @@ | ||||||
| >0.3% and not dead, firefox>=98, safari>=15.4, chrome>=84 |  | ||||||
							
								
								
									
										12
									
								
								README.md
									
										
									
									
									
								
							
							
						
						
									
										12
									
								
								README.md
									
										
									
									
									
								
							|  | @ -8,17 +8,17 @@ Tutu is a comfortable experience for tooting. Designed to work on any device - d | ||||||
| 
 | 
 | ||||||
| The code is built against those targets and Tutu must run on those platforms: | The code is built against those targets and Tutu must run on those platforms: | ||||||
| 
 | 
 | ||||||
| | Firefox | Safari |  iOS  | Chrome | Edge | | | Firefox | Safari |  iOS  | Chrome & Edge | | ||||||
| | ------- | ------ | ----- | ------ | ---- | | | ------- | ------ | ----- | ------------- | | ||||||
| |   98    |  15.4  | 15.4  |   84   |  87  | | |   115   |  15.6  | 15.6  |      108      | | ||||||
| 
 | 
 | ||||||
| Tutu trys to push the Web technology to its limit. Some features might not be available on the platform does not meet the requirement. | Tutu trys to push the Web technology to its limit. Some features might not be available on the platform does not meet the requirement. | ||||||
| 
 | 
 | ||||||
| ## The "Next" Branch | ## The "Nightly" Branch | ||||||
| 
 | 
 | ||||||
| The "next" branch of the app is built on every commit pushed into "master". You can tatse latest change but risks your data. | Tutu built on the latest code, called the nightly version. You can tatse latest change but risks your data. | ||||||
| 
 | 
 | ||||||
| [Launch Tutu (Next)](https://master.tututheapp.pages.dev) | [Launch Tutu (Nightly)](https://master.tututheapp.pages.dev) | ||||||
| 
 | 
 | ||||||
| ## Build & Depoly | ## Build & Depoly | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,38 +1,27 @@ | ||||||
| //! This module has side effect.
 | //! This module has side effect.
 | ||||||
| //! It recommended to include the module by <script> tag.
 | //! It recommended to include the module by <script> tag.
 | ||||||
| if (typeof window.crypto.randomUUID === "undefined") { |  | ||||||
|   // TODO: this polyfill can be removed in 2.0, see https://code.lightstands.xyz/Rubicon/tutu/issues/36
 |  | ||||||
|   // Chrome/Edge 92+
 |  | ||||||
|   // https://stackoverflow.com/a/2117523/2800218
 |  | ||||||
|   // LICENSE: https://creativecommons.org/licenses/by-sa/4.0/legalcode
 |  | ||||||
|   window.crypto.randomUUID = |  | ||||||
|     function randomUUID(): `${string}-${string}-${string}-${string}-${string}` { |  | ||||||
|       return "10000000-1000-4000-8000-100000000000".replace(/[018]/g, (c) => |  | ||||||
|         ( |  | ||||||
|           +c ^ |  | ||||||
|           (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (+c / 4))) |  | ||||||
|         ).toString(16), |  | ||||||
|       ) as `${string}-${string}-${string}-${string}-${string}`; |  | ||||||
|     }; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| 
 | 
 | ||||||
| if (typeof Promise.withResolvers === "undefined") { | if (typeof Promise.withResolvers === "undefined") { | ||||||
|   // Chrome/Edge 119, Firefox 121, Safari/iOS 17.4
 |   // Chrome/Edge 119, Firefox 121, Safari/iOS 17.4
 | ||||||
| 
 | 
 | ||||||
|   // Promise.withResolvers is generic and works with subclasses - the typescript built-in decl
 |   // Promise.withResolvers is generic and works with subclasses - the typescript built-in decl
 | ||||||
|   // could not handle the subclassing case.
 |   // could not handle the subclassing case.
 | ||||||
|   (Promise.prototype as any).withResolvers = function <T>(this: AnyPromiseConstructor<T>) { |   (Promise.prototype as any).withResolvers = function <T>( | ||||||
|     let resolve!: PromiseWithResolvers<T>["resolve"], reject!: PromiseWithResolvers<T>["reject"]; |     this: AnyPromiseConstructor<T>, | ||||||
|  |   ) { | ||||||
|  |     let resolve!: PromiseWithResolvers<T>["resolve"], | ||||||
|  |       reject!: PromiseWithResolvers<T>["reject"]; | ||||||
|     // These variables are expected to be set after `new this()`
 |     // These variables are expected to be set after `new this()`
 | ||||||
| 
 | 
 | ||||||
|     const promise = new this((resolve0, reject0) => { |     const promise = new this((resolve0, reject0) => { | ||||||
|       resolve = resolve0; |       resolve = resolve0; | ||||||
|       reject = reject0; |       reject = reject0; | ||||||
|     }) |     }); | ||||||
| 
 | 
 | ||||||
|     return { |     return { | ||||||
|       promise, resolve, reject |       promise, | ||||||
|     } |       resolve, | ||||||
|   } |       reject, | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -147,7 +147,7 @@ export default defineConfig(({ mode }) => { | ||||||
|       devSourcemap: true, |       devSourcemap: true, | ||||||
|     }, |     }, | ||||||
|     build: { |     build: { | ||||||
|       target: ["firefox98", "safari15.4", "ios15.4", "chrome84", "edge87"], |       target: ["firefox115", "safari15.6", "ios15.6", "chrome108", "edge108"], | ||||||
|       sourcemap: true, |       sourcemap: true, | ||||||
|       rollupOptions: { |       rollupOptions: { | ||||||
|         output: { |         output: { | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue