diff --git a/.gitignore b/.gitignore index 45614b240d..0addfd8763 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,6 @@ public/trans public/compiled public/vendor/stockfish.wasm public/vendor/stockfish-mv.wasm -public/vendor/stockfish.pexe public/vendor/stockfish.js public/css/ target diff --git a/ui/ceval/src/ctrl.ts b/ui/ceval/src/ctrl.ts index 7735a3d228..76ca3f6998 100644 --- a/ui/ceval/src/ctrl.ts +++ b/ui/ceval/src/ctrl.ts @@ -1,6 +1,6 @@ import { CevalCtrl, CevalOpts, CevalTechnology, Work, Step, Hovering, Started } from './types'; -import { Pool, makeWatchdog } from './pool'; +import { Pool } from './pool'; import { prop } from 'common'; import { storedProp } from 'common/storage'; import throttle from 'common/throttle'; @@ -68,10 +68,9 @@ export default function(opts: CevalOpts): CevalCtrl { return opts.storageKeyPrefix ? `${opts.storageKeyPrefix}.${k}` : k; }; - // select pnacl > wasmx > wasm > asmjs + // select wasmx > wasm > asmjs let technology: CevalTechnology = 'asmjs'; - if (makeWatchdog('pnacl').good() && 'application/x-pnacl' in navigator.mimeTypes) technology = 'pnacl'; - else if (typeof WebAssembly === 'object' && WebAssembly.validate(Uint8Array.of(0x0, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00))) { + if (typeof WebAssembly === 'object' && WebAssembly.validate(Uint8Array.of(0x0, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00))) { technology = 'wasm'; if (officialStockfish(opts.variant.key) && wasmThreadsSupported()) technology = 'wasmx'; } @@ -98,14 +97,13 @@ export default function(opts: CevalOpts): CevalCtrl { const pool = new Pool({ technology, asmjs: 'vendor/stockfish.js/stockfish.js', - pnacl: 'vendor/stockfish.pexe/stockfish.nmf', wasm: 'vendor/stockfish.js/stockfish.wasm.js', wasmx: officialStockfish(opts.variant.key) ? 'vendor/stockfish.wasm/stockfish.js' : 'vendor/stockfish-mv.wasm/stockfish.js', }, { minDepth, variant: opts.variant.key, - threads: (technology == 'pnacl' || technology == 'wasmx') && threads, - hashSize: technology == 'pnacl' && hashSize + threads: technology == 'wasmx' && threads, + hashSize: false && hashSize, }); // adjusts maxDepth based on nodes per second @@ -240,8 +238,8 @@ export default function(opts: CevalOpts): CevalCtrl { possible: opts.possible, enabled, multiPv, - threads: (technology == 'pnacl' || technology == 'wasmx') ? threads : undefined, - hashSize: technology == 'pnacl' ? hashSize : undefined, + threads: (technology == 'wasmx') ? threads : undefined, + hashSize: undefined, maxThreads, infinite, hovering, diff --git a/ui/ceval/src/pool.ts b/ui/ceval/src/pool.ts index 02bb81f8e8..c6aa9dfeff 100644 --- a/ui/ceval/src/pool.ts +++ b/ui/ceval/src/pool.ts @@ -1,44 +1,7 @@ -import { storedProp } from 'common/storage'; import { sync, Sync } from 'common/sync'; -import { Watchdog, PoolOpts, WorkerOpts, Work } from './types'; +import { PoolOpts, WorkerOpts, Work } from './types'; import Protocol from './stockfishProtocol'; -export function makeWatchdog(name: string): Watchdog { - const prop = storedProp('ceval.watchdog3.' + name, 0); - let failed = false; - let disarming = false; - return { - arm() { - prop(new Date().getTime()); - console.log('watchdog armed: ' + name); - }, - disarmSoon() { - if (failed || disarming) return; - disarming = true; - setTimeout(() => { - // delayed to detect potential tab crash - prop(0); - console.log('watchdog disarmed (delayed): ' + name); - }, 2000); - }, - disarm() { - if (failed || disarming) return; - disarming = true; - prop(0); - console.log('watchdog disarmed: ' + name); - }, - good() { - const lastArmed = parseInt(prop(), 10); - const now = new Date().getTime(); - return (lastArmed < (now - 1000 * 60 * 60 * 24 * 2)) || ((now - 5000) < lastArmed); - }, - fail() { - failed = true; - prop(new Date().getTime()); - }, - }; -} - export abstract class AbstractWorker { protected protocol: Sync; @@ -103,65 +66,6 @@ class WebWorker extends AbstractWorker { } } -class PNaClWorker extends AbstractWorker { - private listener?: HTMLElement; - private worker?: HTMLObjectElement; - - boot(): Promise { - return new Promise((resolve, reject) => { - const watchdog = makeWatchdog('pnacl'); - watchdog.arm(); - window.addEventListener('unload', () => watchdog.disarm(), false); - - try { - // Use a listener div to ensure listeners are active before the - // load event fires. - const listener = this.listener = document.createElement('div'); - listener.addEventListener('load', () => { - resolve(new Protocol(this.send.bind(this), this.workerOpts)); - }, true); - listener.addEventListener('error', e => { - watchdog.fail(); - reject(e); - }, true); - listener.addEventListener('message', e => { - watchdog.disarmSoon(); - if (this.protocol.sync) this.protocol.sync.received((e as any).data); - }, true); - listener.addEventListener('crash', e => { - const err = this.worker ? (this.worker as any).lastError : e; - console.error('pnacl crash', err); - watchdog.fail(); - }, true); - document.body.appendChild(listener); - - const worker = this.worker = document.createElement('object'); - worker.width = '0'; - worker.height = '0'; - worker.data = window.lichess.assetUrl(this.url); - worker.type = 'application/x-pnacl'; - listener.appendChild(worker); - } catch (err) { - console.error('exception while booting pnacl', err); - watchdog.fail(); - this.destroy(); - reject(err); - } - }); - } - - destroy() { - if (this.worker) this.worker.remove(); - delete this.worker; - if (this.listener) this.listener.remove(); - delete this.listener; - } - - send(cmd: string) { - if (this.worker) (this.worker as any).postMessage(cmd); - } -} - class ThreadedWasmWorker extends AbstractWorker { static global: Promise<{instance: unknown, protocol: Protocol}>; @@ -221,9 +125,7 @@ export class Pool { warmup = () => { if (this.workers.length) return; - if (this.poolOpts.technology == 'pnacl') - this.workers.push(new PNaClWorker(this.poolOpts.pnacl, this.poolOpts, this.protocolOpts)); - else if (this.poolOpts.technology == 'wasmx') + if (this.poolOpts.technology == 'wasmx') this.workers.push(new ThreadedWasmWorker(this.poolOpts.wasmx, this.poolOpts, this.protocolOpts)); else { for (let i = 1; i <= 2; i++) diff --git a/ui/ceval/src/types.ts b/ui/ceval/src/types.ts index be0ed7ae32..6b933b92b6 100644 --- a/ui/ceval/src/types.ts +++ b/ui/ceval/src/types.ts @@ -1,7 +1,7 @@ import { Prop } from 'common'; import { StoredProp, StoredBooleanProp } from 'common/storage'; -export type CevalTechnology = 'asmjs' | 'wasm' | 'wasmx' | 'pnacl'; +export type CevalTechnology = 'asmjs' | 'wasm' | 'wasmx'; export interface Eval { cp?: number; @@ -29,7 +29,6 @@ export interface Work { export interface PoolOpts { technology: CevalTechnology; - pnacl: string; wasm: string; wasmx: string; asmjs: string; @@ -115,11 +114,3 @@ export interface Step { threat?: Tree.ClientEval; ceval?: Tree.ClientEval; } - -export interface Watchdog { - arm(): void; - disarm(): void; - disarmSoon(): void; - fail(): void; - good(): boolean; -} diff --git a/ui/ceval/src/view.ts b/ui/ceval/src/view.ts index 1917406839..e019ce5c26 100644 --- a/ui/ceval/src/view.ts +++ b/ui/ceval/src/view.ts @@ -67,10 +67,9 @@ function engineName(ctrl: CevalCtrl): VNode[] { const version = ctrl.engineName(); return [ h('span', version ? { attrs: { title: version } } : {}, window.lichess.engineName), - ctrl.technology == 'pnacl' ? h('span.native', { attrs: { title: 'Portable Native Client (fast but deprecated)' } }, 'pnacl') : - (ctrl.technology == 'wasmx' ? h('span.native', { attrs: { title: 'Multi-threaded WebAssembly (experimental)' } }, 'wasmx') : + ctrl.technology == 'wasmx' ? h('span.native', { attrs: { title: 'Multi-threaded WebAssembly (experimental)' } }, 'wasmx') : (ctrl.technology == 'wasm' ? h('span.native', { attrs: { title: 'WebAssembly' } }, 'wasm') : - h('span.asmjs', { attrs: { title: 'JavaScript fallback' } }, 'asmjs'))) + h('span.asmjs', { attrs: { title: 'JavaScript fallback' } }, 'asmjs')) ]; } diff --git a/ui/site/gulpfile.js b/ui/site/gulpfile.js index dbad7a52eb..6a1758411d 100644 --- a/ui/site/gulpfile.js +++ b/ui/site/gulpfile.js @@ -41,12 +41,6 @@ const ab = () => { } }; -const stockfishPexe = () => gulp.src([ - require.resolve('stockfish.pexe/stockfish.nmf'), - require.resolve('stockfish.pexe/stockfish.pexe'), - require.resolve('stockfish.pexe/stockfish.bc') -]).pipe(gulp.dest('../../public/vendor/stockfish.pexe')); - const stockfishJs = () => gulp.src([ require.resolve('stockfish.js/stockfish.wasm.js'), require.resolve('stockfish.js/stockfish.wasm'), @@ -133,7 +127,7 @@ const userMod = () => browserify(browserifyOpts('./src/user-mod.js', false)) const deps = makeDependencies('lichess.deps.js'); -const tasks = [gitSha, jqueryFill, ab, standalonesJs, userMod, stockfishWasm, stockfishMvWasm, stockfishPexe, stockfishJs, deps]; +const tasks = [gitSha, jqueryFill, ab, standalonesJs, userMod, stockfishWasm, stockfishMvWasm, stockfishJs, deps]; const dev = gulp.series(tasks.concat([devSource])); diff --git a/ui/site/package.json b/ui/site/package.json index 879c5a00c7..a94f26eef2 100644 --- a/ui/site/package.json +++ b/ui/site/package.json @@ -24,7 +24,6 @@ "dependencies": { "stockfish-mv.wasm": "^0.2.0", "stockfish.js": "^10.0.2", - "stockfish.pexe": "^10.1.0", "stockfish.wasm": "^0.5.12", "tablesort": "^5.1" } diff --git a/yarn.lock b/yarn.lock index 71cb03aeb9..7c85357108 100644 --- a/yarn.lock +++ b/yarn.lock @@ -829,11 +829,6 @@ chokidar@^2.0.0, chokidar@^2.1.1: optionalDependencies: fsevents "^1.2.7" -chownr@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" - integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw== - cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -1140,7 +1135,7 @@ debug-fabulous@1.X: memoizee "0.4.X" object-assign "4.X" -debug@3.X, debug@^3.2.6: +debug@3.X: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== @@ -1164,11 +1159,6 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - default-compare@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/default-compare/-/default-compare-1.0.0.tgz#cb61131844ad84d84788fb68fd01681ca7781a2f" @@ -1248,11 +1238,6 @@ detect-file@^1.0.0: resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= - detect-newline@2.X: version "2.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" @@ -1735,13 +1720,6 @@ fs-extra@^4.0.2: jsonfile "^4.0.0" universalify "^0.1.0" -fs-minipass@^1.2.5: - version "1.2.7" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" - integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== - dependencies: - minipass "^2.6.0" - fs-mkdirp-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb" @@ -2313,25 +2291,11 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= -iconv-lite@^0.4.4: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - ieee754@^1.1.4: version "1.1.13" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== -ignore-walk@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" - integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== - dependencies: - minimatch "^3.0.4" - in-publish@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51" @@ -2367,7 +2331,7 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@^1.3.4, ini@~1.3.0: +ini@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== @@ -3183,26 +3147,11 @@ minimist@0.0.8: resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= -minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: +minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= -minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" - integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minizlib@^1.2.1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" - integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== - dependencies: - minipass "^2.9.0" - "mithril@github:ornicar/mithril.js#lila-1": version "0.2.1-lila" resolved "https://codeload.github.com/ornicar/mithril.js/tar.gz/dd92827aec63f921149ca9a3460ccd981e7025bb" @@ -3301,15 +3250,6 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" -needle@^2.2.1: - version "2.4.0" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" - integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== - dependencies: - debug "^3.2.6" - iconv-lite "^0.4.4" - sax "^1.2.4" - next-tick@1, next-tick@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" @@ -3333,22 +3273,6 @@ node-gyp@^3.8.0: tar "^2.0.0" which "1" -node-pre-gyp@*: - version "0.14.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83" - integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4.4.2" - node-releases@^1.1.42: version "1.1.42" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.42.tgz#a999f6a62f8746981f6da90627a8d2fc090bbad7" @@ -3386,14 +3310,6 @@ node-sass@^4.8.3: dependencies: abbrev "1" -nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= - dependencies: - abbrev "1" - osenv "^0.1.4" - normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -3428,27 +3344,7 @@ now-and-later@^2.0.0: dependencies: once "^1.3.2" -npm-bundled@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" - integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== - dependencies: - npm-normalize-package-bin "^1.0.1" - -npm-normalize-package-bin@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" - integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== - -npm-packlist@^1.1.6: - version "1.4.7" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.7.tgz#9e954365a06b80b18111ea900945af4f88ed4848" - integrity sha512-vAj7dIkp5NhieaGZxBJB8fF4R0078rqsmhJcAfXZ6O7JJhjhPK96n5Ry1oZcfLXgfun0GWTZPOxaEyqv8GBykQ== - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - -"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2: +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -3617,7 +3513,7 @@ os-tmpdir@^1.0.0: resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= -osenv@0, osenv@^0.1.4: +osenv@0: version "0.1.5" resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== @@ -3953,16 +3849,6 @@ randomfill@^1.0.3: randombytes "^2.0.5" safe-buffer "^5.1.0" -rc@^1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - read-only-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0" @@ -4199,7 +4085,7 @@ ret@~0.1.10: resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== -rimraf@2, rimraf@^2.6.1: +rimraf@2: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -4231,7 +4117,7 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -4246,7 +4132,7 @@ sass-graph@^2.2.3, sass-graph@^2.2.4: scss-tokenizer "^0.2.3" yargs "^7.0.0" -sax@>=0.6.0, sax@^1.2.4: +sax@>=0.6.0: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== @@ -4266,7 +4152,7 @@ semver-greatest-satisfied-range@^1.1.0: dependencies: sver-compat "^1.5.0" -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -4499,11 +4385,6 @@ stockfish.js@^10.0.2: resolved "https://registry.yarnpkg.com/stockfish.js/-/stockfish.js-10.0.2.tgz#c8206aa3b0290171ace52b463a74112ea1f83989" integrity sha512-treB3AYcdvRJ9SDPOyL0R2NcEAtQgG432nStfRzR4wzVELGQ6iVoeBHwvirHTfocNOTims7XNkK3SADaocsJmQ== -stockfish.pexe@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/stockfish.pexe/-/stockfish.pexe-10.1.0.tgz#5c585f2b974fdc13bf9928bf2878ba09ce7d9691" - integrity sha512-dn0X7NrpFxg8Uz+bMy0gsi5hGejHb8cBsSjFKblqO1FXbpMxdRWt1IdXKDrJ0h6r4mBHkZkn6HGv5rnrxLbJ5A== - stockfish.wasm@^0.5.12: version "0.5.12" resolved "https://registry.yarnpkg.com/stockfish.wasm/-/stockfish.wasm-0.5.12.tgz#b499c7df995ab0ef01ed6d7c30cb014711e39f74" @@ -4665,7 +4546,7 @@ strip-indent@^1.0.1: dependencies: get-stdin "^4.0.1" -strip-json-comments@^2.0.0, strip-json-comments@~2.0.1: +strip-json-comments@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= @@ -4725,19 +4606,6 @@ tar@^2.0.0: fstream "^1.0.12" inherits "2" -tar@^4.4.2: - version "4.4.13" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" - integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== - dependencies: - chownr "^1.1.1" - fs-minipass "^1.2.5" - minipass "^2.8.6" - minizlib "^1.2.1" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.3" - ternary-stream@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/ternary-stream/-/ternary-stream-2.1.1.tgz#4ad64b98668d796a085af2c493885a435a8a8bfc" @@ -5311,11 +5179,6 @@ yallist@^2.1.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= -yallist@^3.0.0, yallist@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - yargs-parser@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a"