(Stats used from 2022-06-20)
chrome >= 79, and_chr >= 81, safari >= 13, ios_saf >= 12.4, firefox >= 73
...or more generally
[| #!/bin/bash | |
| touch urls.txt | |
| CURR=`pwd` | |
| if [ $# -ne 0 ] | |
| then | |
| let COUNT=0 | |
| mkdir $1 | |
| while read url |
| import React, { useState, useEffect, useRef } from 'react'; | |
| window.windowWidthListeners = window.windowWidthListeners || {}; | |
| window.prevWidth = window.prevWidth || window.innerWidth; | |
| window.addEventListener('resize', () => { | |
| if (window.prevWidth !== window.innerWidth) { | |
| window.prevWidth = window.innerWidth; | |
| Object.values(window.windowWidthListeners).forEach(fn => fn(window.prevWidth)); | |
| } |
| const debounce = (func, ms = 500) => { | |
| let timeout; | |
| return function(...args) { | |
| clearTimeout(timeout); | |
| return new Promise(resolve => { | |
| timeout = setTimeout(() => { | |
| resolve(func.bind(this)(...args)); | |
| }, ms); | |
| }); | |
| }; |
| // For node and pre-babel src | |
| const toSafeSlug = str => "_" + encodeURIComponent(str) | |
| .replace(/[.!~*'()_-]/g, match => `%${match.charCodeAt(0).toString(16)}`.toUpperCase()) | |
| .replace(/%/g, "_"); | |
| const fromSafeSlug = str => decodeURIComponent(str.substring(1).replace(/_/g, "%")); | |
| // ES5 friendly |
| const fs = require('fs'); | |
| const path = require('path'); | |
| const inquirer = require('inquirer'); | |
| const uuidv4 = require('uuid/v4'); | |
| const owasp = require('owasp-password-strength-test'); | |
| const words = new Set([...require('wordlist-english')['english/10'], ...require('wordlist-english')['english/20']]); | |
| const thingsIDontDoAnyMore = require("./thingsIDontDoAnyMore.json"); | |
| const { items } = require('./bitwarden_export_file.json'); |
| { | |
| "animation": [ | |
| "animation-name", | |
| "animation-duration", | |
| "animation-timing-function", | |
| "animation-delay", | |
| "animation-iteration-count", | |
| "animation-direction", | |
| "animation-fill-mode", | |
| "animation-play-state" |
| class Queue { | |
| private readonly queue: any[]; | |
| private start: number; | |
| private end: number; | |
| constructor(array: any[] = []) { | |
| this.queue = array; | |
| // pointers | |
| this.start = 0; |