File tree Expand file tree Collapse file tree 1 file changed +13
-8
lines changed Expand file tree Collapse file tree 1 file changed +13
-8
lines changed Original file line number Diff line number Diff line change @@ -1872,14 +1872,19 @@ const chatgpt = { // eslint-disable-line no-redeclare
18721872 unminify ( ) { chatgpt . code . unminify ( ) ; } ,
18731873
18741874 uuidv4 ( ) {
1875- let d = new Date ( ) . getTime ( ) ; // get current timestamp in ms (to ensure UUID uniqueness)
1876- const uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx' . replace ( / [ x y ] / g, ( c ) => {
1877- const r = ( // generate random nibble
1878- ( d + ( window . crypto . getRandomValues ( new Uint32Array ( 1 ) ) [ 0 ] / ( Math . pow ( 2 , 32 ) - 1 ) ) * 16 ) % 16 | 0 ) ;
1879- d = Math . floor ( d / 16 ) ; // correspond each UUID digit to unique 4-bit chunks of timestamp
1880- return ( c == 'x' ? r : ( r & 0x3 | 0x8 ) ) . toString ( 16 ) ; // generate random hexadecimal digit
1881- } ) ;
1882- return uuid ;
1875+ try {
1876+ // use native secure uuid generator when available
1877+ return crypto . randomUUID ( ) ;
1878+ } catch ( _e ) {
1879+ let d = new Date ( ) . getTime ( ) ; // get current timestamp in ms (to ensure UUID uniqueness)
1880+ const uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx' . replace ( / [ x y ] / g, ( c ) => {
1881+ const r = ( // generate random nibble
1882+ ( d + ( window . crypto . getRandomValues ( new Uint32Array ( 1 ) ) [ 0 ] / ( Math . pow ( 2 , 32 ) - 1 ) ) * 16 ) % 16 | 0 ) ;
1883+ d = Math . floor ( d / 16 ) ; // correspond each UUID digit to unique 4-bit chunks of timestamp
1884+ return ( c == 'x' ? r : ( r & 0x3 | 0x8 ) ) . toString ( 16 ) ; // generate random hexadecimal digit
1885+ } ) ;
1886+ return uuid ;
1887+ }
18831888 } ,
18841889
18851890 writeCode ( ) { chatgpt . code . write ( ) ; }
You can’t perform that action at this time.
0 commit comments