diff --git a/.browserslistrc b/.browserslistrc
new file mode 100644
index 00000000..496d1ef5
--- /dev/null
+++ b/.browserslistrc
@@ -0,0 +1 @@
+defaults
\ No newline at end of file
diff --git a/.eslintrc.json b/.eslintrc.json
index 75715c85..fab47749 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -1,14 +1,16 @@
{
"root": true,
+ "plugins": ["compat"],
"extends": [
- "eslint:recommended"
+ "eslint:recommended",
+ "plugin:compat/recommended"
],
"env": {
- "es6": false,
+ "es6": true,
"browser": true
},
"parserOptions": {
- "ecmaVersion": 5,
+ "ecmaVersion": 6,
"sourceType": "script",
"ecmaFeatures": {
"globalReturn": false,
diff --git a/.travis.yml b/.travis.yml
index b3cc86c6..c6fffb1e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,6 +1,10 @@
+# Specify dist until Travis CI default Runner OS updates to one
+# with glibc version required by newer Node versions
+# See: https://github.com/nodejs/node/issues/42351#issuecomment-1068424442
+dist: jammy
language: node_js
sudo: false
node_js:
- - "16.14.2"
+ - lts/*
before_install:
- npm install -g grunt-cli
diff --git a/Gruntfile.js b/Gruntfile.js
index c963e170..3111bd65 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -161,8 +161,11 @@ module.exports = function(grunt) {
normal: {
options: {
urls: [ "http://localhost:8000/test/test.html" ],
- timeout: 10000
- }
+ timeout: 10000,
+ puppeteer: {
+ headless: 'new'
+ }
+ },
},
coverage: {
options: {
diff --git a/LICENSE.txt b/LICENSE.txt
index 4de9c76e..7c6df831 100644
--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -1,5 +1,5 @@
Copyright (C) 2009 CodePlex Foundation
-Copyright (C) 2010-2022 OpenSeadragon contributors
+Copyright (C) 2010-2023 OpenSeadragon contributors
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
diff --git a/changelog.txt b/changelog.txt
index ea669fa1..3fb0703c 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,9 +1,42 @@
OPENSEADRAGON CHANGELOG
=======================
-3.2.0: (in progress...)
+5.0.0: (in progress...)
-* NEW BEHAVIOR: Setting the viewport rotation now animates by default (pass false for the new immediately parameter to disable) (#2136 @jonasengelmann)
+* BREAKING CHANGE: Dropped support for IE11 (#2300, #2361 @AndrewADev)
+* DEPRECATION: The OpenSeadragon.createCallback function is no longer recommended (#2367 @akansjain)
+* Fixed: Sometimes if the viewport was flipped and the user zoomed in far enough, it would flip back (#2364 @SebDelile)
+* Test improvements (#2382 @AndrewADev)
+
+4.1.0:
+
+* NEW BEHAVIOR: When `navigatorRotate` is false, while the navigator image doesn't rotate, the red outline now does (#2356 @lcl45)
+* The viewer no longer emits `canvas-key` events for both keydown and keypress events; canvas-key is now just for keydown, and the new `canvas-key-press` is for keypress (#2270 @hrghauri)
+* You can now specify a priority when calling addHandler, to control when your event handler gets called relative to others (#2273 @Aiosa)
+* Added tileRetryMax and tileRetryDelay options, so the viewer can retry loading failed tiles (#2238 @Ughuuu @paaddyy, #2334 @Ughuuu @Titan21)
+* All of the viewers keyboard handling is now in response to keydown events (it used to be split between keydown and keypress) (#2291 @MohitBansal321)
+* Added `canvas-focus` and `canvas-blur` events to Viewer (#2301 @MohitBansal321)
+* You can now more easily add custom buttons to the viewer (#2306 @MohitBansal321)
+* The fitBounds function now takes zoom constraints into account (#2293 @pearcetm)
+* The viewer now has an `after-resize` event what happens after the viewport bounds have been updated, to complement the `resize` event which happens before (#2317 @pearcetm)
+* IIIFTileSource now uses resolution level dimensions provided in the info.json "sizes" field for more accurate tile requests (#2337 @ruven)
+* Added setAjaxHeaders method to Viewer and TiledImage (#2346 @uschmidt83)
+* Improved documentation (#2297 @KevinBritten)
+* Fixed: The `tile-loaded` event's completionCallback could be called more than once in some circumstances (#2282 @Aiosa, @pearcetm)
+* Fixed: Navigator display rectangle was off if the page had `box-sizing: border-box` (#2276 @ambujsahu81)
+* Fixed: Code that required identifying functions would fail for async functions (#2273 @Aiosa)
+* Fixed: Reference strip click detection was not accurate for long reference strips (#2280 @damonsson)
+* Fixed: Translation problems in some circumstances with cropping polygons enabled (#2316 @pearcetm)
+* Fixed: The navigator area rectangle would grow larger when you zoom in very far (#2318 @donotloveshampo)
+* Fixed: JSON with embedded XML was being incorrectly identified as XML (#2328 @craigberry)
+* Fixed: Touch/pinch rotate was not working properly on some platforms (#2324 @rsimon, @pearcetm)
+* Fixed: Navigator rotation didn't honor `immediately` parameter (#2333 @robertjcolley)
+* Fixed: The navigator didn't update for its new size in certain circumstances (#2347 @pearcetm)
+
+4.0.0:
+
+* NEW BEHAVIOR: Setting the viewport rotation now animates by default (pass true for the new `immediately` parameter to disable) (#2136 @jonasengelmann)
+* NEW BEHAVIOR: The auto resize now takes both width and height into account when scaling the contents proportionally to the viewer (#2256 @pearcetm)
* DEPRECATION: Don't access the viewport's degrees property directly anymore; instead use setRotation and getRotation (#2136 @jonasengelmann)
* New gesture: Double-click and drag to zoom (on by default for touch) (#2225 @HamzaTatheer)
* You can now provide a pivot point when rotating the viewport (#2233 #2253 @pearcetm)
@@ -13,8 +46,10 @@ OPENSEADRAGON CHANGELOG
* We now delegate tile fetching and caching to the TileSource, to allow for custom tile formats (#2148 @Aiosa)
* Added support for dynamic URLs from tile sources (#2247 @JohnReagan)
* The viewer now emits before-destroy and destroy events (#2239 @pearcetm)
+* Auto resize detection is now more efficient (#2256 @pearcetm)
* Improved documentation (#2211 @shyamkumaryadav)
* Fixed: Cropping tiled images with polygons was broken (#2183 @altert)
+* Fixed: Boundary constraints were wrong when the viewport was rotated (#2249 @pearcetm)
* Fixed: IIIF tile sizes would be calculated wrong on rare occasions (#2206 @filak)
* Fixed: Disabling buttons only changed their appearance, but they were still clickable (#2187 @pearcetm)
* Fixed: ImageTileSource produced an error having to do with getTileHashKey (#2190 @Aiosa)
diff --git a/package-lock.json b/package-lock.json
index ca799e74..f123990b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,32 +1,68 @@
{
"name": "openseadragon",
- "version": "3.1.0",
- "lockfileVersion": 2,
+ "version": "4.1.0",
+ "lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "openseadragon",
- "version": "3.1.0",
+ "version": "4.1.0",
"license": "BSD-3-Clause",
"devDependencies": {
- "grunt": "^1.4.1",
- "grunt-contrib-clean": "^2.0.0",
+ "eslint-plugin-compat": "^4.1.2",
+ "grunt": "^1.6.1",
+ "grunt-contrib-clean": "^2.0.1",
"grunt-contrib-compress": "^2.0.0",
- "grunt-contrib-concat": "^2.0.0",
+ "grunt-contrib-concat": "^2.1.0",
"grunt-contrib-connect": "^3.0.0",
- "grunt-contrib-qunit": "^6.2.0",
+ "grunt-contrib-qunit": "^7.0.1",
"grunt-contrib-uglify": "^5.0.1",
"grunt-contrib-watch": "^1.1.0",
- "grunt-eslint": "^24.0.0",
+ "grunt-eslint": "^24.0.1",
"grunt-git-describe": "^2.4.4",
"grunt-istanbul": "^0.8.0",
"grunt-text-replace": "^0.4.0",
- "qunitjs": "2.4.1"
+ "qunit": "^2.19.4"
},
"funding": {
"url": "https://opencollective.com/openseadragon"
}
},
+ "node_modules/@babel/code-frame": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz",
+ "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/highlight": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz",
+ "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz",
+ "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.22.5",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
"node_modules/@eslint/eslintrc": {
"version": "1.0.5",
"dev": true,
@@ -122,16 +158,77 @@
"dev": true,
"license": "BSD-3-Clause"
},
- "node_modules/@types/node": {
- "version": "18.11.9",
+ "node_modules/@mdn/browser-compat-data": {
+ "version": "5.2.36",
+ "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.2.36.tgz",
+ "integrity": "sha512-cS+xbp4jq+W04pFqw5639Grzj82JevJZst4b55Mk2NGc9wY7uXD6hlM6H0hkK5mLKXXZKsT1xq79W6LsSG4crw==",
+ "dev": true
+ },
+ "node_modules/@puppeteer/browsers": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-0.5.0.tgz",
+ "integrity": "sha512-Uw6oB7VvmPRLE4iKsjuOh8zgDabhNX67dzo8U/BB0f9527qx+4eeUs+korU98OhG5C4ubg7ufBgVi63XYwS6TQ==",
+ "dev": true,
+ "dependencies": {
+ "debug": "4.3.4",
+ "extract-zip": "2.0.1",
+ "https-proxy-agent": "5.0.1",
+ "progress": "2.0.3",
+ "proxy-from-env": "1.1.0",
+ "tar-fs": "2.1.1",
+ "unbzip2-stream": "1.4.3",
+ "yargs": "17.7.1"
+ },
+ "bin": {
+ "browsers": "lib/cjs/main-cli.js"
+ },
+ "engines": {
+ "node": ">=14.1.0"
+ },
+ "peerDependencies": {
+ "typescript": ">= 4.7.4"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@puppeteer/browsers/node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@puppeteer/browsers/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "node_modules/@types/node": {
+ "version": "20.4.1",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.1.tgz",
+ "integrity": "sha512-JIzsAvJeA/5iY6Y/OxZbv1lUcc8dNSE77lb2gnBH+/PJ3lFR1Ccvgwl5JWnHAkNHcRsT0TbpVOsiMKZ1F/yyJg==",
"dev": true,
- "license": "MIT",
"optional": true
},
"node_modules/@types/yauzl": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==",
"dev": true,
- "license": "MIT",
"optional": true,
"dependencies": {
"@types/node": "*"
@@ -183,8 +280,9 @@
},
"node_modules/agent-base": {
"version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"debug": "4"
},
@@ -194,8 +292,9 @@
},
"node_modules/agent-base/node_modules/debug": {
"version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ms": "2.1.2"
},
@@ -210,8 +309,9 @@
},
"node_modules/agent-base/node_modules/ms": {
"version": "2.1.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
},
"node_modules/ajv": {
"version": "6.12.6",
@@ -264,15 +364,6 @@
"node": ">=4"
}
},
- "node_modules/anymatch": {
- "version": "1.3.2",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "micromatch": "^2.1.5",
- "normalize-path": "^2.0.0"
- }
- },
"node_modules/archiver": {
"version": "5.3.0",
"dev": true,
@@ -349,33 +440,6 @@
"dev": true,
"license": "BSD-3-Clause"
},
- "node_modules/arr-diff": {
- "version": "2.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "arr-flatten": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/arr-flatten": {
- "version": "1.1.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/arr-union": {
- "version": "3.1.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/array-each": {
"version": "1.0.1",
"dev": true,
@@ -392,14 +456,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/array-unique": {
- "version": "0.2.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/assert": {
"version": "1.4.1",
"dev": true,
@@ -408,124 +464,36 @@
"util": "0.10.3"
}
},
- "node_modules/assign-symbols": {
- "version": "1.0.0",
+ "node_modules/ast-metadata-inferer": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.7.0.tgz",
+ "integrity": "sha512-OkMLzd8xelb3gmnp6ToFvvsHLtS6CbagTkFQvQ+ZYFe3/AIl9iKikNR9G7pY3GfOR/2Xc222hwBjzI7HLkE76Q==",
"dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
+ "dependencies": {
+ "@mdn/browser-compat-data": "^3.3.14"
}
},
+ "node_modules/ast-metadata-inferer/node_modules/@mdn/browser-compat-data": {
+ "version": "3.3.14",
+ "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-3.3.14.tgz",
+ "integrity": "sha512-n2RC9d6XatVbWFdHLimzzUJxJ1KY8LdjqrW6YvGPiRmsHkhOUx74/Ct10x5Yo7bC/Jvqx7cDEW8IMPv/+vwEzA==",
+ "dev": true
+ },
"node_modules/async": {
"version": "1.5.2",
"dev": true,
"license": "MIT"
},
- "node_modules/async-each": {
- "version": "1.0.3",
- "dev": true,
- "license": "MIT"
- },
"node_modules/async-limiter": {
"version": "1.0.1",
"dev": true,
"license": "MIT"
},
- "node_modules/atob": {
- "version": "2.1.2",
- "dev": true,
- "license": "(MIT OR Apache-2.0)",
- "bin": {
- "atob": "bin/atob.js"
- },
- "engines": {
- "node": ">= 4.5.0"
- }
- },
"node_modules/balanced-match": {
"version": "1.0.0",
"dev": true,
"license": "MIT"
},
- "node_modules/base": {
- "version": "0.11.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cache-base": "^1.0.1",
- "class-utils": "^0.3.5",
- "component-emitter": "^1.2.1",
- "define-property": "^1.0.0",
- "isobject": "^3.0.1",
- "mixin-deep": "^1.2.0",
- "pascalcase": "^0.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/base/node_modules/define-property": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-descriptor": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/base/node_modules/is-accessor-descriptor": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "kind-of": "^6.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/base/node_modules/is-data-descriptor": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "kind-of": "^6.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/base/node_modules/is-descriptor": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/base/node_modules/isobject": {
- "version": "3.0.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/base/node_modules/kind-of": {
- "version": "6.0.3",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/base64-js": {
"version": "1.5.1",
"dev": true,
@@ -561,23 +529,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/binary-extensions": {
- "version": "1.13.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/bindings": {
- "version": "1.5.0",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "file-uri-to-path": "1.0.0"
- }
- },
"node_modules/bl": {
"version": "4.1.0",
"dev": true,
@@ -620,17 +571,32 @@
"concat-map": "0.0.1"
}
},
- "node_modules/braces": {
- "version": "1.8.5",
+ "node_modules/browserslist": {
+ "version": "4.21.5",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz",
+ "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==",
"dev": true,
- "license": "MIT",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ }
+ ],
"dependencies": {
- "expand-range": "^1.8.1",
- "preserve": "^0.2.0",
- "repeat-element": "^1.1.2"
+ "caniuse-lite": "^1.0.30001449",
+ "electron-to-chromium": "^1.4.284",
+ "node-releases": "^2.0.8",
+ "update-browserslist-db": "^1.0.10"
+ },
+ "bin": {
+ "browserslist": "cli.js"
},
"engines": {
- "node": ">=0.10.0"
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
}
},
"node_modules/buffer": {
@@ -668,33 +634,6 @@
"version": "1.0.0",
"dev": true
},
- "node_modules/cache-base": {
- "version": "1.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "collection-visit": "^1.0.0",
- "component-emitter": "^1.2.1",
- "get-value": "^2.0.6",
- "has-value": "^1.0.0",
- "isobject": "^3.0.1",
- "set-value": "^2.0.0",
- "to-object-path": "^0.3.0",
- "union-value": "^1.0.0",
- "unset-value": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/cache-base/node_modules/isobject": {
- "version": "3.0.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/call-bind": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
@@ -716,6 +655,22 @@
"node": ">=6"
}
},
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001456",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001456.tgz",
+ "integrity": "sha512-XFHJY5dUgmpMV25UqaD4kVq2LsiaU5rS8fb0f17pCoXQiQslzmFgnfOxfvo1bTpTqf7dwG/N/05CnLCnOEKmzA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ }
+ ]
+ },
"node_modules/chalk": {
"version": "2.4.2",
"dev": true,
@@ -729,99 +684,57 @@
"node": ">=4"
}
},
- "node_modules/chokidar": {
- "version": "1.6.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "anymatch": "^1.3.0",
- "async-each": "^1.0.0",
- "glob-parent": "^2.0.0",
- "inherits": "^2.0.1",
- "is-binary-path": "^1.0.0",
- "is-glob": "^2.0.0",
- "path-is-absolute": "^1.0.0",
- "readdirp": "^2.0.0"
- },
- "optionalDependencies": {
- "fsevents": "^1.0.0"
- }
- },
- "node_modules/chokidar/node_modules/glob-parent": {
- "version": "2.0.0",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "is-glob": "^2.0.0"
- }
- },
- "node_modules/chokidar/node_modules/is-extglob": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/chokidar/node_modules/is-glob": {
- "version": "2.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-extglob": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/chownr": {
"version": "1.1.4",
- "dev": true,
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
+ "dev": true
},
- "node_modules/class-utils": {
- "version": "0.3.6",
+ "node_modules/chromium-bidi": {
+ "version": "0.4.7",
+ "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.7.tgz",
+ "integrity": "sha512-6+mJuFXwTMU6I3vYLs6IL8A1DyQTPjCfIL971X0aMPVGRbGnNfl6i6Cl0NMbxi2bRYLGESt9T2ZIMRM5PAEcIQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "arr-union": "^3.1.0",
- "define-property": "^0.2.5",
- "isobject": "^3.0.0",
- "static-extend": "^0.1.1"
+ "mitt": "3.0.0"
},
- "engines": {
- "node": ">=0.10.0"
+ "peerDependencies": {
+ "devtools-protocol": "*"
}
},
- "node_modules/class-utils/node_modules/define-property": {
- "version": "0.2.5",
+ "node_modules/cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "is-descriptor": "^0.1.0"
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=12"
}
},
- "node_modules/class-utils/node_modules/isobject": {
- "version": "3.0.1",
+ "node_modules/cliui/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"dev": true,
- "license": "MIT",
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
}
},
- "node_modules/collection-visit": {
- "version": "1.0.0",
+ "node_modules/cliui/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "map-visit": "^1.0.0",
- "object-visit": "^1.0.0"
+ "ansi-regex": "^5.0.1"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
}
},
"node_modules/color-convert": {
@@ -846,21 +759,14 @@
}
},
"node_modules/commander": {
- "version": "2.9.0",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
"dev": true,
- "license": "MIT",
- "dependencies": {
- "graceful-readlink": ">= 1.0.0"
- },
"engines": {
- "node": ">= 0.6.x"
+ "node": ">= 10"
}
},
- "node_modules/component-emitter": {
- "version": "1.3.0",
- "dev": true,
- "license": "MIT"
- },
"node_modules/compress-commons": {
"version": "4.1.1",
"dev": true,
@@ -927,19 +833,47 @@
"version": "0.3.1",
"dev": true
},
- "node_modules/copy-descriptor": {
- "version": "0.1.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/core-util-is": {
"version": "1.0.2",
"dev": true,
"license": "MIT"
},
+ "node_modules/cosmiconfig": {
+ "version": "8.1.3",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz",
+ "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==",
+ "dev": true,
+ "dependencies": {
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/d-fischer"
+ }
+ },
+ "node_modules/cosmiconfig/node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
+ "node_modules/cosmiconfig/node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
"node_modules/crc-32": {
"version": "1.2.0",
"dev": true,
@@ -980,6 +914,15 @@
"node": ">= 6"
}
},
+ "node_modules/cross-fetch": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
+ "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
+ "dev": true,
+ "dependencies": {
+ "node-fetch": "2.6.7"
+ }
+ },
"node_modules/cross-spawn": {
"version": "7.0.3",
"dev": true,
@@ -1008,9 +951,10 @@
}
},
"node_modules/dateformat": {
- "version": "3.0.3",
+ "version": "4.6.3",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz",
+ "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": "*"
}
@@ -1023,83 +967,11 @@
"ms": "2.0.0"
}
},
- "node_modules/decode-uri-component": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
- "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10"
- }
- },
"node_modules/deep-is": {
"version": "0.1.3",
"dev": true,
"license": "MIT"
},
- "node_modules/define-property": {
- "version": "2.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-descriptor": "^1.0.2",
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/define-property/node_modules/is-accessor-descriptor": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "kind-of": "^6.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/define-property/node_modules/is-data-descriptor": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "kind-of": "^6.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/define-property/node_modules/is-descriptor": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/define-property/node_modules/isobject": {
- "version": "3.0.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/define-property/node_modules/kind-of": {
- "version": "6.0.3",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/depd": {
"version": "2.0.0",
"dev": true,
@@ -1114,20 +986,19 @@
"license": "MIT"
},
"node_modules/detect-file": {
- "version": "0.1.0",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
+ "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==",
"dev": true,
- "license": "MIT",
- "dependencies": {
- "fs-exists-sync": "^0.1.0"
- },
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/devtools-protocol": {
- "version": "0.0.869402",
- "dev": true,
- "license": "BSD-3-Clause"
+ "version": "0.0.1107588",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1107588.tgz",
+ "integrity": "sha512-yIR+pG9x65Xko7bErCUSQaDLrO/P1p3JUzEk7JCU4DowPcGHkTGUGQapcfcLc4qj0UaALwZ+cr0riFgiqpixcg==",
+ "dev": true
},
"node_modules/doctrine": {
"version": "3.0.0",
@@ -1161,6 +1032,18 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/electron-to-chromium": {
+ "version": "1.4.302",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.302.tgz",
+ "integrity": "sha512-Uk7C+7aPBryUR1Fwvk9VmipBcN9fVsqBO57jV2ZjTm+IZ6BMNqu7EDVEg2HxCNufk6QcWlFsBkhQyQroB2VWKw==",
+ "dev": true
+ },
+ "node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
"node_modules/encodeurl": {
"version": "1.0.2",
"dev": true,
@@ -1188,11 +1071,6 @@
"node": ">=8.6"
}
},
- "node_modules/ensure-posix-path": {
- "version": "1.1.1",
- "dev": true,
- "license": "ISC"
- },
"node_modules/error": {
"version": "7.2.1",
"dev": true,
@@ -1200,6 +1078,24 @@
"string-template": "~0.2.1"
}
},
+ "node_modules/error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "dependencies": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/escape-html": {
"version": "1.0.3",
"dev": true,
@@ -1364,6 +1260,88 @@
"url": "https://opencollective.com/eslint"
}
},
+ "node_modules/eslint-plugin-compat": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.1.2.tgz",
+ "integrity": "sha512-DNrQgDi5L4mAL4FdFboKBlSRg6MWfd75eA7K91lMjtP5ryN+O11qT2FDn7Z6zqy6sZ4sJawUR5V75qzB6l0CBg==",
+ "dev": true,
+ "dependencies": {
+ "@mdn/browser-compat-data": "^5.2.34",
+ "ast-metadata-inferer": "^0.7.0",
+ "browserslist": "^4.21.5",
+ "caniuse-lite": "^1.0.30001451",
+ "find-up": "^5.0.0",
+ "lodash.memoize": "4.1.2",
+ "semver": "7.3.8"
+ },
+ "engines": {
+ "node": ">=16.x"
+ },
+ "peerDependencies": {
+ "eslint": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/eslint-plugin-compat/node_modules/find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint-plugin-compat/node_modules/locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint-plugin-compat/node_modules/p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dev": true,
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint-plugin-compat/node_modules/p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/eslint-scope": {
"version": "7.1.0",
"dev": true,
@@ -1624,11 +1602,6 @@
"node": ">=0.4.x"
}
},
- "node_modules/exists-stat": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT"
- },
"node_modules/exit": {
"version": "0.1.2",
"dev": true,
@@ -1644,34 +1617,13 @@
"node": ">=0.8"
}
},
- "node_modules/expand-brackets": {
- "version": "0.1.5",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-posix-bracket": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/expand-range": {
- "version": "1.8.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fill-range": "^2.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/expand-tilde": {
- "version": "1.2.2",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
+ "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "os-homedir": "^1.0.1"
+ "homedir-polyfill": "^1.0.1"
},
"engines": {
"node": ">=0.10.0"
@@ -1682,52 +1634,11 @@
"dev": true,
"license": "MIT"
},
- "node_modules/extend-shallow": {
- "version": "3.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/extend-shallow/node_modules/is-extendable": {
- "version": "1.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-plain-object": "^2.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/extglob": {
- "version": "0.3.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-extglob": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/extglob/node_modules/is-extglob": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/extract-zip": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
+ "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
"dev": true,
- "license": "BSD-2-Clause",
"dependencies": {
"debug": "^4.1.1",
"get-stream": "^5.1.0",
@@ -1745,8 +1656,9 @@
},
"node_modules/extract-zip/node_modules/debug": {
"version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ms": "2.1.2"
},
@@ -1761,8 +1673,9 @@
},
"node_modules/extract-zip/node_modules/ms": {
"version": "2.1.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
},
"node_modules/fast-deep-equal": {
"version": "3.1.3",
@@ -1792,8 +1705,9 @@
},
"node_modules/fd-slicer": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
+ "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
"dev": true,
- "license": "MIT",
"dependencies": {
"pend": "~1.2.0"
}
@@ -1821,35 +1735,6 @@
"node": "^10.12.0 || >=12.0.0"
}
},
- "node_modules/file-uri-to-path": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "optional": true
- },
- "node_modules/filename-regex": {
- "version": "2.0.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/fill-range": {
- "version": "2.2.4",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-number": "^2.1.0",
- "isobject": "^2.0.0",
- "randomatic": "^3.0.0",
- "repeat-element": "^1.1.2",
- "repeat-string": "^1.5.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/finalhandler": {
"version": "1.1.2",
"dev": true,
@@ -1867,41 +1752,77 @@
"node": ">= 0.8"
}
},
- "node_modules/find-up": {
- "version": "4.1.0",
+ "node_modules/findup-sync": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz",
+ "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
+ "detect-file": "^1.0.0",
+ "is-glob": "^4.0.3",
+ "micromatch": "^4.0.4",
+ "resolve-dir": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/findup-sync/node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "dependencies": {
+ "fill-range": "^7.0.1"
},
"engines": {
"node": ">=8"
}
},
- "node_modules/findup-sync": {
- "version": "0.3.0",
+ "node_modules/findup-sync/node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dev": true,
"dependencies": {
- "glob": "~5.0.0"
+ "to-regex-range": "^5.0.1"
},
"engines": {
- "node": ">= 0.6.0"
+ "node": ">=8"
}
},
- "node_modules/findup-sync/node_modules/glob": {
- "version": "5.0.15",
+ "node_modules/findup-sync/node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/findup-sync/node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
"dev": true,
- "license": "ISC",
"dependencies": {
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "2 || 3",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
},
"engines": {
- "node": "*"
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/findup-sync/node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
}
},
"node_modules/fined": {
@@ -1919,17 +1840,6 @@
"node": ">= 0.10"
}
},
- "node_modules/fined/node_modules/expand-tilde": {
- "version": "2.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "homedir-polyfill": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/flagged-respawn": {
"version": "1.0.1",
"dev": true,
@@ -1977,28 +1887,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/for-own": {
- "version": "0.1.5",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "for-in": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/fragment-cache": {
- "version": "0.2.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "map-cache": "^0.2.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/fresh": {
"version": "0.5.2",
"dev": true,
@@ -2012,36 +1900,11 @@
"dev": true,
"license": "MIT"
},
- "node_modules/fs-exists-sync": {
- "version": "0.1.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/fs.realpath": {
"version": "1.0.0",
"dev": true,
"license": "ISC"
},
- "node_modules/fsevents": {
- "version": "1.2.13",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "dependencies": {
- "bindings": "^1.5.0",
- "nan": "^2.12.1"
- },
- "engines": {
- "node": ">= 4.0"
- }
- },
"node_modules/function-bind": {
"version": "1.1.1",
"dev": true,
@@ -2063,6 +1926,15 @@
"node": ">= 4.0.0"
}
},
+ "node_modules/get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "dev": true,
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
"node_modules/get-intrinsic": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
@@ -2079,8 +1951,9 @@
},
"node_modules/get-stream": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"pump": "^3.0.0"
},
@@ -2091,14 +1964,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/get-value": {
- "version": "2.0.6",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/getobject": {
"version": "1.0.2",
"dev": true,
@@ -2125,45 +1990,6 @@
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/glob-base": {
- "version": "0.3.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "glob-parent": "^2.0.0",
- "is-glob": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/glob-base/node_modules/glob-parent": {
- "version": "2.0.0",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "is-glob": "^2.0.0"
- }
- },
- "node_modules/glob-base/node_modules/is-extglob": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/glob-base/node_modules/is-glob": {
- "version": "2.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-extglob": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/glob-parent": {
"version": "6.0.2",
"dev": true,
@@ -2175,59 +2001,36 @@
"node": ">=10.13.0"
}
},
- "node_modules/glob-parent/node_modules/is-glob": {
- "version": "4.0.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/global-modules": {
- "version": "0.2.3",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
+ "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "global-prefix": "^0.1.4",
- "is-windows": "^0.2.0"
+ "global-prefix": "^1.0.1",
+ "is-windows": "^1.0.1",
+ "resolve-dir": "^1.0.0"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/global-modules/node_modules/is-windows": {
- "version": "0.2.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/global-prefix": {
- "version": "0.1.5",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
+ "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "homedir-polyfill": "^1.0.0",
+ "expand-tilde": "^2.0.2",
+ "homedir-polyfill": "^1.0.1",
"ini": "^1.3.4",
- "is-windows": "^0.2.0",
- "which": "^1.2.12"
+ "is-windows": "^1.0.1",
+ "which": "^1.2.14"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/global-prefix/node_modules/is-windows": {
- "version": "0.2.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/globals": {
"version": "13.12.0",
"dev": true,
@@ -2242,6 +2045,18 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/globalyzer": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz",
+ "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==",
+ "dev": true
+ },
+ "node_modules/globrex": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz",
+ "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==",
+ "dev": true
+ },
"node_modules/globule": {
"version": "1.3.2",
"dev": true,
@@ -2279,61 +2094,54 @@
"dev": true,
"license": "ISC"
},
- "node_modules/graceful-readlink": {
- "version": "1.0.1",
- "dev": true,
- "license": "MIT"
- },
"node_modules/grunt": {
- "version": "1.5.3",
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.6.1.tgz",
+ "integrity": "sha512-/ABUy3gYWu5iBmrUSRBP97JLpQUm0GgVveDCp6t3yRNIoltIYw7rEj3g5y1o2PGPR2vfTRGa7WC/LZHLTXnEzA==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "dateformat": "~3.0.3",
+ "dateformat": "~4.6.2",
"eventemitter2": "~0.4.13",
"exit": "~0.1.2",
- "findup-sync": "~0.3.0",
+ "findup-sync": "~5.0.0",
"glob": "~7.1.6",
"grunt-cli": "~1.4.3",
"grunt-known-options": "~2.0.0",
"grunt-legacy-log": "~3.0.0",
"grunt-legacy-util": "~2.0.1",
- "iconv-lite": "~0.4.13",
+ "iconv-lite": "~0.6.3",
"js-yaml": "~3.14.0",
"minimatch": "~3.0.4",
- "mkdirp": "~1.0.4",
- "nopt": "~3.0.6",
- "rimraf": "~3.0.2"
+ "nopt": "~3.0.6"
},
"bin": {
"grunt": "bin/grunt"
},
"engines": {
- "node": ">=8"
+ "node": ">=16"
}
},
"node_modules/grunt-contrib-clean": {
- "version": "2.0.0",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-2.0.1.tgz",
+ "integrity": "sha512-uRvnXfhiZt8akb/ZRDHJpQQtkkVkqc/opWO4Po/9ehC2hPxgptB9S6JHDC/Nxswo4CJSM0iFPT/Iym3cEMWzKA==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "async": "^2.6.1",
+ "async": "^3.2.3",
"rimraf": "^2.6.2"
},
"engines": {
- "node": ">=6"
+ "node": ">=12"
},
"peerDependencies": {
"grunt": ">=0.4.5"
}
},
"node_modules/grunt-contrib-clean/node_modules/async": {
- "version": "2.6.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "lodash": "^4.17.14"
- }
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
+ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==",
+ "dev": true
},
"node_modules/grunt-contrib-compress": {
"version": "2.0.0",
@@ -2416,9 +2224,10 @@
}
},
"node_modules/grunt-contrib-concat": {
- "version": "2.0.0",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-2.1.0.tgz",
+ "integrity": "sha512-Vnl95JIOxfhEN7bnYIlCgQz41kkbi7tsZ/9a4usZmxNxi1S2YAIOy8ysFmO8u4MN26Apal1O106BwARdaNxXQw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"chalk": "^4.1.2",
"source-map": "^0.5.3"
@@ -2519,22 +2328,24 @@
"license": "MIT"
},
"node_modules/grunt-contrib-qunit": {
- "version": "6.2.1",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-qunit/-/grunt-contrib-qunit-7.0.1.tgz",
+ "integrity": "sha512-+5eL4qv2H8q6he+2HGDkqbKwAulRUrtMaX5NoY2AwwvbA4d4OqsI1YGiUZ0L/O9oL7nUQ1cxGKeOp+TcE/AYUg==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "eventemitter2": "^6.4.2",
- "p-each-series": "^2.1.0",
- "puppeteer": "^9.0.0"
+ "eventemitter2": "^6.4.9",
+ "p-each-series": "^2.2.0",
+ "puppeteer": "^19.7.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=14"
}
},
"node_modules/grunt-contrib-qunit/node_modules/eventemitter2": {
- "version": "6.4.5",
- "dev": true,
- "license": "MIT"
+ "version": "6.4.9",
+ "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz",
+ "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==",
+ "dev": true
},
"node_modules/grunt-contrib-uglify": {
"version": "5.0.1",
@@ -2584,9 +2395,10 @@
}
},
"node_modules/grunt-eslint": {
- "version": "24.0.0",
+ "version": "24.0.1",
+ "resolved": "https://registry.npmjs.org/grunt-eslint/-/grunt-eslint-24.0.1.tgz",
+ "integrity": "sha512-gFzp+ikAkwyu6nqBE2zx1pLVL0JPrerG7jaO4uJV3XUGKPIipv4mfhDOS5MyiMrzUtGdXSW8FkRHjoUnfqbW+g==",
"dev": true,
- "license": "MIT",
"dependencies": {
"chalk": "^4.1.2",
"eslint": "^8.0.1"
@@ -2908,8 +2720,9 @@
},
"node_modules/grunt/node_modules/glob": {
"version": "7.1.7",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
+ "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
"dev": true,
- "license": "ISC",
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -2967,20 +2780,6 @@
"js-yaml": "bin/js-yaml.js"
}
},
- "node_modules/grunt/node_modules/rimraf": {
- "version": "3.0.2",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/gzip-size": {
"version": "3.0.0",
"dev": true,
@@ -3062,72 +2861,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/has-value": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "get-value": "^2.0.6",
- "has-values": "^1.0.0",
- "isobject": "^3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/has-value/node_modules/isobject": {
- "version": "3.0.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/has-values": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-number": "^3.0.0",
- "kind-of": "^4.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/has-values/node_modules/is-number": {
- "version": "3.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/has-values/node_modules/is-number/node_modules/kind-of": {
- "version": "3.2.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/has-values/node_modules/kind-of": {
- "version": "4.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/homedir-polyfill": {
"version": "1.0.3",
"dev": true,
@@ -3185,8 +2918,9 @@
},
"node_modules/https-proxy-agent": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"agent-base": "6",
"debug": "4"
@@ -3197,8 +2931,9 @@
},
"node_modules/https-proxy-agent/node_modules/debug": {
"version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ms": "2.1.2"
},
@@ -3213,15 +2948,17 @@
},
"node_modules/https-proxy-agent/node_modules/ms": {
"version": "2.1.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
},
"node_modules/iconv-lite": {
- "version": "0.4.24",
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
},
"engines": {
"node": ">=0.10.0"
@@ -3292,9 +3029,10 @@
"license": "ISC"
},
"node_modules/ini": {
- "version": "1.3.7",
- "dev": true,
- "license": "ISC"
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
+ "dev": true
},
"node_modules/interpret": {
"version": "1.1.0",
@@ -3313,32 +3051,11 @@
"node": ">=0.10.0"
}
},
- "node_modules/is-accessor-descriptor": {
- "version": "0.1.6",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-binary-path": {
- "version": "1.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "binary-extensions": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-buffer": {
- "version": "1.1.6",
- "dev": true,
- "license": "MIT"
+ "node_modules/is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
+ "dev": true
},
"node_modules/is-core-module": {
"version": "2.9.0",
@@ -3351,65 +3068,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-data-descriptor": {
- "version": "0.1.4",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-descriptor": {
- "version": "0.1.6",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-descriptor/node_modules/kind-of": {
- "version": "5.1.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-dotfile": {
- "version": "1.0.3",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-equal-shallow": {
- "version": "0.1.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-primitive": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-extendable": {
- "version": "0.1.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/is-extglob": {
"version": "2.1.1",
"dev": true,
@@ -3418,23 +3076,22 @@
"node": ">=0.10.0"
}
},
- "node_modules/is-glob": {
- "version": "4.0.1",
+ "node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true,
- "license": "MIT",
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
}
},
- "node_modules/is-number": {
- "version": "2.1.0",
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "kind-of": "^3.0.2"
+ "is-extglob": "^2.1.1"
},
"engines": {
"node": ">=0.10.0"
@@ -3459,30 +3116,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/is-plain-object/node_modules/isobject": {
- "version": "3.0.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-posix-bracket": {
- "version": "0.1.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-primitive": {
- "version": "2.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/is-relative": {
"version": "1.0.0",
"dev": true,
@@ -3532,12 +3165,10 @@
"license": "ISC"
},
"node_modules/isobject": {
- "version": "2.1.0",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
"dev": true,
- "license": "MIT",
- "dependencies": {
- "isarray": "1.0.0"
- },
"engines": {
"node": ">=0.10.0"
}
@@ -3633,10 +3264,11 @@
"node": ">=0.8.0"
}
},
- "node_modules/js-reporters": {
- "version": "1.2.0",
- "dev": true,
- "license": "MIT"
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true
},
"node_modules/js-yaml": {
"version": "3.13.1",
@@ -3650,6 +3282,12 @@
"js-yaml": "bin/js-yaml.js"
}
},
+ "node_modules/json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "dev": true
+ },
"node_modules/json-schema-traverse": {
"version": "0.4.1",
"dev": true,
@@ -3661,12 +3299,10 @@
"license": "MIT"
},
"node_modules/kind-of": {
- "version": "3.2.2",
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true,
- "license": "MIT",
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
"engines": {
"node": ">=0.10.0"
}
@@ -3723,25 +3359,6 @@
"node": ">=8"
}
},
- "node_modules/liftup/node_modules/detect-file": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/liftup/node_modules/expand-tilde": {
- "version": "2.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "homedir-polyfill": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/liftup/node_modules/fill-range": {
"version": "7.0.1",
"dev": true,
@@ -3767,34 +3384,6 @@
"node": ">= 8"
}
},
- "node_modules/liftup/node_modules/global-modules": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "global-prefix": "^1.0.1",
- "is-windows": "^1.0.1",
- "resolve-dir": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/liftup/node_modules/global-prefix": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "expand-tilde": "^2.0.2",
- "homedir-polyfill": "^1.0.1",
- "ini": "^1.3.4",
- "is-windows": "^1.0.1",
- "which": "^1.2.14"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/liftup/node_modules/is-number": {
"version": "7.0.0",
"dev": true,
@@ -3815,18 +3404,6 @@
"node": ">=8.6"
}
},
- "node_modules/liftup/node_modules/resolve-dir": {
- "version": "1.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "expand-tilde": "^2.0.0",
- "global-modules": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/liftup/node_modules/to-regex-range": {
"version": "5.0.1",
"dev": true,
@@ -3838,22 +3415,17 @@
"node": ">=8.0"
}
},
+ "node_modules/lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "dev": true
+ },
"node_modules/livereload-js": {
"version": "2.4.0",
"dev": true,
"license": "MIT"
},
- "node_modules/locate-path": {
- "version": "5.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/lodash": {
"version": "4.17.21",
"dev": true,
@@ -3884,6 +3456,12 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/lodash.memoize": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+ "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==",
+ "dev": true
+ },
"node_modules/lodash.merge": {
"version": "4.6.2",
"dev": true,
@@ -3916,14 +3494,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/make-iterator/node_modules/kind-of": {
- "version": "6.0.3",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/map-cache": {
"version": "0.2.2",
"dev": true,
@@ -3932,30 +3502,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/map-visit": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "object-visit": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/matcher-collection": {
- "version": "1.1.2",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "minimatch": "^3.0.2"
- }
- },
- "node_modules/math-random": {
- "version": "1.0.4",
- "dev": true,
- "license": "MIT"
- },
"node_modules/maxmin": {
"version": "2.1.0",
"dev": true,
@@ -4012,48 +3558,6 @@
"node": ">=0.8.0"
}
},
- "node_modules/micromatch": {
- "version": "2.3.11",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "arr-diff": "^2.0.0",
- "array-unique": "^0.2.1",
- "braces": "^1.8.2",
- "expand-brackets": "^0.1.4",
- "extglob": "^0.3.1",
- "filename-regex": "^2.0.0",
- "is-extglob": "^1.0.0",
- "is-glob": "^2.0.1",
- "kind-of": "^3.0.2",
- "normalize-path": "^2.0.1",
- "object.omit": "^2.0.0",
- "parse-glob": "^3.0.4",
- "regex-cache": "^0.4.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/micromatch/node_modules/is-extglob": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/micromatch/node_modules/is-glob": {
- "version": "2.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-extglob": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/mime": {
"version": "1.6.0",
"dev": true,
@@ -4100,44 +3604,17 @@
"dev": true,
"license": "MIT"
},
- "node_modules/mixin-deep": {
- "version": "1.3.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "for-in": "^1.0.2",
- "is-extendable": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/mixin-deep/node_modules/is-extendable": {
- "version": "1.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-plain-object": "^2.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/mkdirp": {
- "version": "1.0.4",
- "dev": true,
- "license": "MIT",
- "bin": {
- "mkdirp": "bin/cmd.js"
- },
- "engines": {
- "node": ">=10"
- }
+ "node_modules/mitt": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz",
+ "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==",
+ "dev": true
},
"node_modules/mkdirp-classic": {
"version": "0.5.3",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
+ "dev": true
},
"node_modules/morgan": {
"version": "1.10.0",
@@ -4159,57 +3636,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/nan": {
- "version": "2.14.1",
- "dev": true,
- "license": "MIT",
- "optional": true
- },
- "node_modules/nanomatch": {
- "version": "1.2.13",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "fragment-cache": "^0.2.1",
- "is-windows": "^1.0.2",
- "kind-of": "^6.0.2",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/nanomatch/node_modules/arr-diff": {
- "version": "4.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/nanomatch/node_modules/array-unique": {
- "version": "0.3.2",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/nanomatch/node_modules/kind-of": {
- "version": "6.0.3",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/natural-compare": {
"version": "1.4.0",
"dev": true,
@@ -4230,8 +3656,9 @@
},
"node_modules/node-fetch": {
"version": "2.6.7",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
+ "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"whatwg-url": "^5.0.0"
},
@@ -4265,6 +3692,21 @@
"node": ">=0.12.0"
}
},
+ "node_modules/node-releases": {
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz",
+ "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==",
+ "dev": true
+ },
+ "node_modules/node-watch": {
+ "version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/node-watch/-/node-watch-0.7.3.tgz",
+ "integrity": "sha512-3l4E8uMPY1HdMMryPRUAl+oIHtXtyiTlIiESNSVSNxcPfzAFzeTbXFQkZfAwBbo0B1qMSG8nUABx+Gd+YrbKrQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/nopt": {
"version": "3.0.6",
"dev": true,
@@ -4276,17 +3718,6 @@
"nopt": "bin/nopt.js"
}
},
- "node_modules/normalize-path": {
- "version": "2.1.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "remove-trailing-separator": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/nue": {
"version": "0.7.1",
"dev": true
@@ -4307,30 +3738,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/object-copy": {
- "version": "0.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "copy-descriptor": "^0.1.0",
- "define-property": "^0.2.5",
- "kind-of": "^3.0.3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-copy/node_modules/define-property": {
- "version": "0.2.5",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-descriptor": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/object-inspect": {
"version": "1.12.2",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
@@ -4340,25 +3747,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/object-visit": {
- "version": "1.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "isobject": "^3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-visit/node_modules/isobject": {
- "version": "3.0.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/object.defaults": {
"version": "1.1.0",
"dev": true,
@@ -4384,14 +3772,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/object.defaults/node_modules/isobject": {
- "version": "3.0.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/object.map": {
"version": "1.0.1",
"dev": true,
@@ -4415,18 +3795,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/object.omit": {
- "version": "2.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "for-own": "^0.1.4",
- "is-extendable": "^0.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/object.pick": {
"version": "1.3.0",
"dev": true,
@@ -4438,14 +3806,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/object.pick/node_modules/isobject": {
- "version": "3.0.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/on-finished": {
"version": "2.3.0",
"dev": true,
@@ -4537,39 +3897,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/p-limit": {
- "version": "2.3.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-locate": {
- "version": "4.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/p-try": {
- "version": "2.2.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/parent-module": {
"version": "1.0.1",
"dev": true,
@@ -4594,37 +3921,22 @@
"node": ">=0.8"
}
},
- "node_modules/parse-glob": {
- "version": "3.0.4",
+ "node_modules/parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "glob-base": "^0.3.0",
- "is-dotfile": "^1.0.0",
- "is-extglob": "^1.0.0",
- "is-glob": "^2.0.0"
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
},
"engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/parse-glob/node_modules/is-extglob": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/parse-glob/node_modules/is-glob": {
- "version": "2.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-extglob": "^1.0.0"
+ "node": ">=8"
},
- "engines": {
- "node": ">=0.10.0"
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/parse-passwd": {
@@ -4643,14 +3955,6 @@
"node": ">= 0.8"
}
},
- "node_modules/pascalcase": {
- "version": "0.1.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/path-exists": {
"version": "4.0.0",
"dev": true,
@@ -4699,10 +4003,26 @@
"node": ">=0.10.0"
}
},
+ "node_modules/path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/pend": {
"version": "1.2.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
+ "dev": true
+ },
+ "node_modules/picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+ "dev": true
},
"node_modules/picomatch": {
"version": "2.3.1",
@@ -4715,17 +4035,6 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/pkg-dir": {
- "version": "4.2.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "find-up": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/portscanner": {
"version": "2.2.0",
"dev": true,
@@ -4747,14 +4056,6 @@
"lodash": "^4.17.14"
}
},
- "node_modules/posix-character-classes": {
- "version": "0.1.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/prelude-ls": {
"version": "1.2.1",
"dev": true,
@@ -4763,14 +4064,6 @@
"node": ">= 0.8.0"
}
},
- "node_modules/preserve": {
- "version": "0.2.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/pretty-bytes": {
"version": "5.6.0",
"dev": true,
@@ -4808,13 +4101,15 @@
},
"node_modules/proxy-from-env": {
"version": "1.1.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
+ "dev": true
},
"node_modules/pump": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
"dev": true,
- "license": "MIT",
"dependencies": {
"end-of-stream": "^1.1.0",
"once": "^1.3.1"
@@ -4826,32 +4121,55 @@
"license": "MIT"
},
"node_modules/puppeteer": {
- "version": "9.1.1",
+ "version": "19.11.1",
+ "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.11.1.tgz",
+ "integrity": "sha512-39olGaX2djYUdhaQQHDZ0T0GwEp+5f9UB9HmEP0qHfdQHIq0xGQZuAZ5TLnJIc/88SrPLpEflPC+xUqOTv3c5g==",
"dev": true,
"hasInstallScript": true,
- "license": "Apache-2.0",
"dependencies": {
- "debug": "^4.1.0",
- "devtools-protocol": "0.0.869402",
- "extract-zip": "^2.0.0",
- "https-proxy-agent": "^5.0.0",
- "node-fetch": "^2.6.1",
- "pkg-dir": "^4.2.0",
- "progress": "^2.0.1",
- "proxy-from-env": "^1.1.0",
- "rimraf": "^3.0.2",
- "tar-fs": "^2.0.0",
- "unbzip2-stream": "^1.3.3",
- "ws": "^7.2.3"
- },
- "engines": {
- "node": ">=10.18.1"
+ "@puppeteer/browsers": "0.5.0",
+ "cosmiconfig": "8.1.3",
+ "https-proxy-agent": "5.0.1",
+ "progress": "2.0.3",
+ "proxy-from-env": "1.1.0",
+ "puppeteer-core": "19.11.1"
}
},
- "node_modules/puppeteer/node_modules/debug": {
- "version": "4.3.4",
+ "node_modules/puppeteer-core": {
+ "version": "19.11.1",
+ "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.11.1.tgz",
+ "integrity": "sha512-qcuC2Uf0Fwdj9wNtaTZ2OvYRraXpAK+puwwVW8ofOhOgLPZyz1c68tsorfIZyCUOpyBisjr+xByu7BMbEYMepA==",
+ "dev": true,
+ "dependencies": {
+ "@puppeteer/browsers": "0.5.0",
+ "chromium-bidi": "0.4.7",
+ "cross-fetch": "3.1.5",
+ "debug": "4.3.4",
+ "devtools-protocol": "0.0.1107588",
+ "extract-zip": "2.0.1",
+ "https-proxy-agent": "5.0.1",
+ "proxy-from-env": "1.1.0",
+ "tar-fs": "2.1.1",
+ "unbzip2-stream": "1.4.3",
+ "ws": "8.13.0"
+ },
+ "engines": {
+ "node": ">=14.14.0"
+ },
+ "peerDependencies": {
+ "typescript": ">= 4.7.4"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/puppeteer-core/node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ms": "2.1.2"
},
@@ -4864,35 +4182,23 @@
}
}
},
- "node_modules/puppeteer/node_modules/ms": {
+ "node_modules/puppeteer-core/node_modules/ms": {
"version": "2.1.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
},
- "node_modules/puppeteer/node_modules/rimraf": {
- "version": "3.0.2",
+ "node_modules/puppeteer-core/node_modules/ws": {
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz",
+ "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==",
"dev": true,
- "license": "ISC",
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/puppeteer/node_modules/ws": {
- "version": "7.5.9",
- "dev": true,
- "license": "MIT",
"engines": {
- "node": ">=8.3.0"
+ "node": ">=10.0.0"
},
"peerDependencies": {
"bufferutil": "^4.0.1",
- "utf-8-validate": "^5.0.2"
+ "utf-8-validate": ">=5.0.2"
},
"peerDependenciesMeta": {
"bufferutil": {
@@ -4925,94 +4231,21 @@
"node": ">=0.4.x"
}
},
- "node_modules/qunitjs": {
- "version": "2.4.1",
+ "node_modules/qunit": {
+ "version": "2.19.4",
+ "resolved": "https://registry.npmjs.org/qunit/-/qunit-2.19.4.tgz",
+ "integrity": "sha512-aqUzzUeCqlleWYKlpgfdHHw9C6KxkB9H3wNfiBg5yHqQMzy0xw/pbCRHYFkjl8MsP/t8qkTQE+JTYL71azgiew==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "chokidar": "1.6.1",
- "commander": "2.9.0",
- "exists-stat": "1.0.0",
- "findup-sync": "0.4.3",
- "js-reporters": "1.2.0",
- "resolve": "1.3.2",
- "walk-sync": "0.3.1"
+ "commander": "7.2.0",
+ "node-watch": "0.7.3",
+ "tiny-glob": "0.2.9"
},
"bin": {
- "qunit": "bin/qunit"
+ "qunit": "bin/qunit.js"
},
"engines": {
- "node": ">=4"
- }
- },
- "node_modules/qunitjs/node_modules/findup-sync": {
- "version": "0.4.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "detect-file": "^0.1.0",
- "is-glob": "^2.0.1",
- "micromatch": "^2.3.7",
- "resolve-dir": "^0.1.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/qunitjs/node_modules/is-extglob": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/qunitjs/node_modules/is-glob": {
- "version": "2.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-extglob": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/qunitjs/node_modules/resolve": {
- "version": "1.3.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "path-parse": "^1.0.5"
- }
- },
- "node_modules/randomatic": {
- "version": "3.1.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-number": "^4.0.0",
- "kind-of": "^6.0.0",
- "math-random": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.10.0"
- }
- },
- "node_modules/randomatic/node_modules/is-number": {
- "version": "4.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/randomatic/node_modules/kind-of": {
- "version": "6.0.3",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
+ "node": ">=10"
}
},
"node_modules/range-parser": {
@@ -5062,331 +4295,6 @@
"minimatch": "^3.0.4"
}
},
- "node_modules/readdirp": {
- "version": "2.2.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "graceful-fs": "^4.1.11",
- "micromatch": "^3.1.10",
- "readable-stream": "^2.0.2"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/readdirp/node_modules/arr-diff": {
- "version": "4.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/readdirp/node_modules/array-unique": {
- "version": "0.3.2",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/readdirp/node_modules/braces": {
- "version": "2.3.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "arr-flatten": "^1.1.0",
- "array-unique": "^0.3.2",
- "extend-shallow": "^2.0.1",
- "fill-range": "^4.0.0",
- "isobject": "^3.0.1",
- "repeat-element": "^1.1.2",
- "snapdragon": "^0.8.1",
- "snapdragon-node": "^2.0.1",
- "split-string": "^3.0.2",
- "to-regex": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/readdirp/node_modules/braces/node_modules/extend-shallow": {
- "version": "2.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-extendable": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/readdirp/node_modules/expand-brackets": {
- "version": "2.1.4",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "debug": "^2.3.3",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "posix-character-classes": "^0.1.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/readdirp/node_modules/expand-brackets/node_modules/define-property": {
- "version": "0.2.5",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-descriptor": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/readdirp/node_modules/expand-brackets/node_modules/extend-shallow": {
- "version": "2.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-extendable": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/readdirp/node_modules/expand-brackets/node_modules/is-accessor-descriptor": {
- "version": "0.1.6",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/readdirp/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": {
- "version": "3.2.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/readdirp/node_modules/expand-brackets/node_modules/is-data-descriptor": {
- "version": "0.1.4",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/readdirp/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": {
- "version": "3.2.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/readdirp/node_modules/expand-brackets/node_modules/is-descriptor": {
- "version": "0.1.6",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/readdirp/node_modules/expand-brackets/node_modules/kind-of": {
- "version": "5.1.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/readdirp/node_modules/extglob": {
- "version": "2.0.4",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "array-unique": "^0.3.2",
- "define-property": "^1.0.0",
- "expand-brackets": "^2.1.4",
- "extend-shallow": "^2.0.1",
- "fragment-cache": "^0.2.1",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/readdirp/node_modules/extglob/node_modules/define-property": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-descriptor": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/readdirp/node_modules/extglob/node_modules/extend-shallow": {
- "version": "2.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-extendable": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/readdirp/node_modules/fill-range": {
- "version": "4.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "extend-shallow": "^2.0.1",
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1",
- "to-regex-range": "^2.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/readdirp/node_modules/fill-range/node_modules/extend-shallow": {
- "version": "2.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-extendable": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/readdirp/node_modules/is-accessor-descriptor": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "kind-of": "^6.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/readdirp/node_modules/is-data-descriptor": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "kind-of": "^6.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/readdirp/node_modules/is-descriptor": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/readdirp/node_modules/is-number": {
- "version": "3.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/readdirp/node_modules/is-number/node_modules/kind-of": {
- "version": "3.2.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/readdirp/node_modules/isobject": {
- "version": "3.0.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/readdirp/node_modules/kind-of": {
- "version": "6.0.3",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/readdirp/node_modules/micromatch": {
- "version": "3.1.10",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/rechoir": {
"version": "0.7.1",
"dev": true,
@@ -5398,29 +4306,6 @@
"node": ">= 0.10"
}
},
- "node_modules/regex-cache": {
- "version": "0.4.4",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-equal-shallow": "^0.1.3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/regex-not": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "extend-shallow": "^3.0.2",
- "safe-regex": "^1.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/regexpp": {
"version": "3.2.0",
"dev": true,
@@ -5432,27 +4317,15 @@
"url": "https://github.com/sponsors/mysticatea"
}
},
- "node_modules/remove-trailing-separator": {
- "version": "1.1.0",
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
"dev": true,
- "license": "ISC"
- },
- "node_modules/repeat-element": {
- "version": "1.1.3",
- "dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/repeat-string": {
- "version": "1.6.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10"
- }
- },
"node_modules/resolve": {
"version": "1.22.0",
"dev": true,
@@ -5470,12 +4343,13 @@
}
},
"node_modules/resolve-dir": {
- "version": "0.1.1",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
+ "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "expand-tilde": "^1.2.2",
- "global-modules": "^0.2.3"
+ "expand-tilde": "^2.0.0",
+ "global-modules": "^1.0.0"
},
"engines": {
"node": ">=0.10.0"
@@ -5489,19 +4363,6 @@
"node": ">=4"
}
},
- "node_modules/resolve-url": {
- "version": "0.2.1",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/ret": {
- "version": "0.1.15",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.12"
- }
- },
"node_modules/rimraf": {
"version": "2.6.3",
"dev": true,
@@ -5513,25 +4374,6 @@
"rimraf": "bin.js"
}
},
- "node_modules/rimraf/node_modules/glob": {
- "version": "7.1.6",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/safe-buffer": {
"version": "5.1.2",
"dev": true,
@@ -5541,23 +4383,17 @@
"version": "1.0.1",
"dev": true
},
- "node_modules/safe-regex": {
- "version": "1.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ret": "~0.1.10"
- }
- },
"node_modules/safer-buffer": {
"version": "2.1.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "dev": true
},
"node_modules/semver": {
- "version": "7.3.5",
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
"dev": true,
- "license": "ISC",
"dependencies": {
"lru-cache": "^6.0.0"
},
@@ -5655,31 +4491,6 @@
"node": ">= 0.8.0"
}
},
- "node_modules/set-value": {
- "version": "2.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "extend-shallow": "^2.0.1",
- "is-extendable": "^0.1.1",
- "is-plain-object": "^2.0.3",
- "split-string": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/set-value/node_modules/extend-shallow": {
- "version": "2.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-extendable": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/setimmediate": {
"version": "1.0.5",
"dev": true,
@@ -5723,132 +4534,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/snapdragon": {
- "version": "0.8.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "base": "^0.11.1",
- "debug": "^2.2.0",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "map-cache": "^0.2.2",
- "source-map": "^0.5.6",
- "source-map-resolve": "^0.5.0",
- "use": "^3.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon-node": {
- "version": "2.1.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "define-property": "^1.0.0",
- "isobject": "^3.0.0",
- "snapdragon-util": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon-node/node_modules/define-property": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-descriptor": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "kind-of": "^6.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon-node/node_modules/is-data-descriptor": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "kind-of": "^6.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon-node/node_modules/is-descriptor": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon-node/node_modules/isobject": {
- "version": "3.0.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon-node/node_modules/kind-of": {
- "version": "6.0.3",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon-util": {
- "version": "3.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "kind-of": "^3.2.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon/node_modules/define-property": {
- "version": "0.2.5",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-descriptor": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon/node_modules/extend-shallow": {
- "version": "2.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-extendable": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/source-map": {
"version": "0.5.7",
"dev": true,
@@ -5857,62 +4542,11 @@
"node": ">=0.10.0"
}
},
- "node_modules/source-map-resolve": {
- "version": "0.5.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "atob": "^2.1.2",
- "decode-uri-component": "^0.2.0",
- "resolve-url": "^0.2.1",
- "source-map-url": "^0.4.0",
- "urix": "^0.1.0"
- }
- },
- "node_modules/source-map-url": {
- "version": "0.4.0",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/split-string": {
- "version": "3.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "extend-shallow": "^3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/sprintf-js": {
"version": "1.1.2",
"dev": true,
"license": "BSD-3-Clause"
},
- "node_modules/static-extend": {
- "version": "0.1.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "define-property": "^0.2.5",
- "object-copy": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/static-extend/node_modules/define-property": {
- "version": "0.2.5",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-descriptor": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/statuses": {
"version": "1.5.0",
"dev": true,
@@ -5955,6 +4589,41 @@
"version": "0.2.1",
"dev": true
},
+ "node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/strip-ansi": {
"version": "3.0.1",
"dev": true,
@@ -6001,8 +4670,9 @@
},
"node_modules/tar-fs": {
"version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
+ "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
"dev": true,
- "license": "MIT",
"dependencies": {
"chownr": "^1.1.1",
"mkdirp-classic": "^0.5.2",
@@ -6045,8 +4715,9 @@
},
"node_modules/through": {
"version": "2.3.8",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
+ "dev": true
},
"node_modules/timers-browserify": {
"version": "2.0.2",
@@ -6058,6 +4729,16 @@
"node": ">=0.6.0"
}
},
+ "node_modules/tiny-glob": {
+ "version": "0.2.9",
+ "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz",
+ "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==",
+ "dev": true,
+ "dependencies": {
+ "globalyzer": "0.1.0",
+ "globrex": "^0.1.2"
+ }
+ },
"node_modules/tiny-lr": {
"version": "1.1.1",
"dev": true,
@@ -6084,54 +4765,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/to-object-path": {
- "version": "0.3.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/to-regex": {
- "version": "3.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "regex-not": "^1.0.2",
- "safe-regex": "^1.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/to-regex-range": {
- "version": "2.1.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/to-regex-range/node_modules/is-number": {
- "version": "3.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/toidentifier": {
"version": "1.0.1",
"dev": true,
@@ -6142,8 +4775,9 @@
},
"node_modules/tr46": {
"version": "0.0.3",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
+ "dev": true
},
"node_modules/type-check": {
"version": "0.4.0",
@@ -6186,8 +4820,9 @@
},
"node_modules/unbzip2-stream": {
"version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
+ "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"buffer": "^5.2.1",
"through": "^2.3.8"
@@ -6213,20 +4848,6 @@
"node": "*"
}
},
- "node_modules/union-value": {
- "version": "1.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "arr-union": "^3.1.0",
- "get-value": "^2.0.6",
- "is-extendable": "^0.1.1",
- "set-value": "^2.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/unpipe": {
"version": "1.0.0",
"dev": true,
@@ -6235,56 +4856,30 @@
"node": ">= 0.8"
}
},
- "node_modules/unset-value": {
- "version": "1.0.0",
+ "node_modules/update-browserslist-db": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
+ "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
"dev": true,
- "license": "MIT",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ }
+ ],
"dependencies": {
- "has-value": "^0.3.1",
- "isobject": "^3.0.0"
+ "escalade": "^3.1.1",
+ "picocolors": "^1.0.0"
},
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/unset-value/node_modules/has-value": {
- "version": "0.3.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "get-value": "^2.0.3",
- "has-values": "^0.1.4",
- "isobject": "^2.0.0"
+ "bin": {
+ "browserslist-lint": "cli.js"
},
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/unset-value/node_modules/has-value/node_modules/isobject": {
- "version": "2.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "isarray": "1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/unset-value/node_modules/has-values": {
- "version": "0.1.4",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/unset-value/node_modules/isobject": {
- "version": "3.0.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
}
},
"node_modules/uri-js": {
@@ -6311,11 +4906,6 @@
"node": ">= 0.10"
}
},
- "node_modules/urix": {
- "version": "0.1.0",
- "dev": true,
- "license": "MIT"
- },
"node_modules/url": {
"version": "0.11.0",
"dev": true,
@@ -6325,14 +4915,6 @@
"querystring": "0.2.0"
}
},
- "node_modules/use": {
- "version": "3.1.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/util": {
"version": "0.10.3",
"dev": true,
@@ -6375,19 +4957,11 @@
"node": ">= 0.10"
}
},
- "node_modules/walk-sync": {
- "version": "0.3.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ensure-posix-path": "^1.0.0",
- "matcher-collection": "^1.0.0"
- }
- },
"node_modules/webidl-conversions": {
"version": "3.0.1",
- "dev": true,
- "license": "BSD-2-Clause"
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
+ "dev": true
},
"node_modules/websocket-driver": {
"version": "0.7.4",
@@ -6425,8 +4999,9 @@
},
"node_modules/whatwg-url": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"tr46": "~0.0.3",
"webidl-conversions": "^3.0.0"
@@ -6444,9 +5019,10 @@
}
},
"node_modules/word-wrap": {
- "version": "1.2.3",
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz",
+ "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -6456,6 +5032,77 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/wrap-ansi/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/wrappy": {
"version": "1.0.2",
"dev": true,
@@ -6479,20 +5126,69 @@
"node": ">=0.4"
}
},
+ "node_modules/y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/yallist": {
"version": "4.0.0",
"dev": true,
"license": "ISC"
},
+ "node_modules/yargs": {
+ "version": "17.7.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz",
+ "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==",
+ "dev": true,
+ "dependencies": {
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ }
+ },
"node_modules/yauzl": {
"version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
"dev": true,
- "license": "MIT",
"dependencies": {
"buffer-crc32": "~0.2.3",
"fd-slicer": "~1.1.0"
}
},
+ "node_modules/yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/zip-stream": {
"version": "4.1.0",
"dev": true,
@@ -6519,4359 +5215,5 @@
"node": ">= 6"
}
}
- },
- "dependencies": {
- "@eslint/eslintrc": {
- "version": "1.0.5",
- "dev": true,
- "requires": {
- "ajv": "^6.12.4",
- "debug": "^4.3.2",
- "espree": "^9.2.0",
- "globals": "^13.9.0",
- "ignore": "^4.0.6",
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.0",
- "minimatch": "^3.0.4",
- "strip-json-comments": "^3.1.1"
- },
- "dependencies": {
- "argparse": {
- "version": "2.0.1",
- "dev": true
- },
- "debug": {
- "version": "4.3.3",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "js-yaml": {
- "version": "4.1.0",
- "dev": true,
- "requires": {
- "argparse": "^2.0.1"
- }
- },
- "ms": {
- "version": "2.1.2",
- "dev": true
- }
- }
- },
- "@humanwhocodes/config-array": {
- "version": "0.9.2",
- "dev": true,
- "requires": {
- "@humanwhocodes/object-schema": "^1.2.1",
- "debug": "^4.1.1",
- "minimatch": "^3.0.4"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.3",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "dev": true
- }
- }
- },
- "@humanwhocodes/object-schema": {
- "version": "1.2.1",
- "dev": true
- },
- "@types/node": {
- "version": "18.11.9",
- "dev": true,
- "optional": true
- },
- "@types/yauzl": {
- "version": "2.10.0",
- "dev": true,
- "optional": true,
- "requires": {
- "@types/node": "*"
- }
- },
- "abbrev": {
- "version": "1.1.1",
- "dev": true
- },
- "accepts": {
- "version": "1.3.7",
- "dev": true,
- "requires": {
- "mime-types": "~2.1.24",
- "negotiator": "0.6.2"
- }
- },
- "acorn": {
- "version": "8.6.0",
- "dev": true
- },
- "acorn-jsx": {
- "version": "5.3.2",
- "dev": true,
- "requires": {}
- },
- "adm-zip": {
- "version": "0.5.9",
- "dev": true
- },
- "agent-base": {
- "version": "6.0.2",
- "dev": true,
- "requires": {
- "debug": "4"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "dev": true
- }
- }
- },
- "ajv": {
- "version": "6.12.6",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- }
- },
- "amdefine": {
- "version": "1.0.1",
- "dev": true,
- "optional": true
- },
- "ansi-colors": {
- "version": "4.1.1",
- "dev": true
- },
- "ansi-regex": {
- "version": "2.1.1",
- "dev": true
- },
- "ansi-styles": {
- "version": "3.2.1",
- "dev": true,
- "requires": {
- "color-convert": "^1.9.0"
- }
- },
- "anymatch": {
- "version": "1.3.2",
- "dev": true,
- "requires": {
- "micromatch": "^2.1.5",
- "normalize-path": "^2.0.0"
- }
- },
- "archiver": {
- "version": "5.3.0",
- "dev": true,
- "requires": {
- "archiver-utils": "^2.1.0",
- "async": "^3.2.0",
- "buffer-crc32": "^0.2.1",
- "readable-stream": "^3.6.0",
- "readdir-glob": "^1.0.0",
- "tar-stream": "^2.2.0",
- "zip-stream": "^4.1.0"
- },
- "dependencies": {
- "async": {
- "version": "3.2.2",
- "dev": true
- },
- "readable-stream": {
- "version": "3.6.0",
- "dev": true,
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- }
- }
- },
- "archiver-utils": {
- "version": "2.1.0",
- "dev": true,
- "requires": {
- "glob": "^7.1.4",
- "graceful-fs": "^4.2.0",
- "lazystream": "^1.0.0",
- "lodash.defaults": "^4.2.0",
- "lodash.difference": "^4.5.0",
- "lodash.flatten": "^4.4.0",
- "lodash.isplainobject": "^4.0.6",
- "lodash.union": "^4.6.0",
- "normalize-path": "^3.0.0",
- "readable-stream": "^2.0.0"
- },
- "dependencies": {
- "normalize-path": {
- "version": "3.0.0",
- "dev": true
- }
- }
- },
- "argparse": {
- "version": "1.0.10",
- "dev": true,
- "requires": {
- "sprintf-js": "~1.0.2"
- },
- "dependencies": {
- "sprintf-js": {
- "version": "1.0.3",
- "dev": true
- }
- }
- },
- "arr-diff": {
- "version": "2.0.0",
- "dev": true,
- "requires": {
- "arr-flatten": "^1.0.1"
- }
- },
- "arr-flatten": {
- "version": "1.1.0",
- "dev": true
- },
- "arr-union": {
- "version": "3.1.0",
- "dev": true
- },
- "array-each": {
- "version": "1.0.1",
- "dev": true
- },
- "array-slice": {
- "version": "1.1.0",
- "dev": true
- },
- "array-unique": {
- "version": "0.2.1",
- "dev": true
- },
- "assert": {
- "version": "1.4.1",
- "dev": true,
- "requires": {
- "util": "0.10.3"
- }
- },
- "assign-symbols": {
- "version": "1.0.0",
- "dev": true
- },
- "async": {
- "version": "1.5.2",
- "dev": true
- },
- "async-each": {
- "version": "1.0.3",
- "dev": true
- },
- "async-limiter": {
- "version": "1.0.1",
- "dev": true
- },
- "atob": {
- "version": "2.1.2",
- "dev": true
- },
- "balanced-match": {
- "version": "1.0.0",
- "dev": true
- },
- "base": {
- "version": "0.11.2",
- "dev": true,
- "requires": {
- "cache-base": "^1.0.1",
- "class-utils": "^0.3.5",
- "component-emitter": "^1.2.1",
- "define-property": "^1.0.0",
- "isobject": "^3.0.1",
- "mixin-deep": "^1.2.0",
- "pascalcase": "^0.1.1"
- },
- "dependencies": {
- "define-property": {
- "version": "1.0.0",
- "dev": true,
- "requires": {
- "is-descriptor": "^1.0.0"
- }
- },
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- }
- },
- "isobject": {
- "version": "3.0.1",
- "dev": true
- },
- "kind-of": {
- "version": "6.0.3",
- "dev": true
- }
- }
- },
- "base64-js": {
- "version": "1.5.1",
- "dev": true
- },
- "basic-auth": {
- "version": "2.0.1",
- "dev": true,
- "requires": {
- "safe-buffer": "5.1.2"
- }
- },
- "batch": {
- "version": "0.6.1",
- "dev": true
- },
- "binary-extensions": {
- "version": "1.13.1",
- "dev": true
- },
- "bindings": {
- "version": "1.5.0",
- "dev": true,
- "optional": true,
- "requires": {
- "file-uri-to-path": "1.0.0"
- }
- },
- "bl": {
- "version": "4.1.0",
- "dev": true,
- "requires": {
- "buffer": "^5.5.0",
- "inherits": "^2.0.4",
- "readable-stream": "^3.4.0"
- },
- "dependencies": {
- "readable-stream": {
- "version": "3.6.0",
- "dev": true,
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- }
- }
- },
- "body": {
- "version": "5.1.0",
- "dev": true,
- "requires": {
- "continuable-cache": "^0.3.1",
- "error": "^7.0.0",
- "raw-body": "~1.1.0",
- "safe-json-parse": "~1.0.1"
- }
- },
- "brace-expansion": {
- "version": "1.1.11",
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "braces": {
- "version": "1.8.5",
- "dev": true,
- "requires": {
- "expand-range": "^1.8.1",
- "preserve": "^0.2.0",
- "repeat-element": "^1.1.2"
- }
- },
- "buffer": {
- "version": "5.7.1",
- "dev": true,
- "requires": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
- }
- },
- "buffer-crc32": {
- "version": "0.2.13",
- "dev": true
- },
- "bytes": {
- "version": "1.0.0",
- "dev": true
- },
- "cache-base": {
- "version": "1.0.1",
- "dev": true,
- "requires": {
- "collection-visit": "^1.0.0",
- "component-emitter": "^1.2.1",
- "get-value": "^2.0.6",
- "has-value": "^1.0.0",
- "isobject": "^3.0.1",
- "set-value": "^2.0.0",
- "to-object-path": "^0.3.0",
- "union-value": "^1.0.0",
- "unset-value": "^1.0.0"
- },
- "dependencies": {
- "isobject": {
- "version": "3.0.1",
- "dev": true
- }
- }
- },
- "call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- }
- },
- "callsites": {
- "version": "3.1.0",
- "dev": true
- },
- "chalk": {
- "version": "2.4.2",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
- "chokidar": {
- "version": "1.6.1",
- "dev": true,
- "requires": {
- "anymatch": "^1.3.0",
- "async-each": "^1.0.0",
- "fsevents": "^1.0.0",
- "glob-parent": "^2.0.0",
- "inherits": "^2.0.1",
- "is-binary-path": "^1.0.0",
- "is-glob": "^2.0.0",
- "path-is-absolute": "^1.0.0",
- "readdirp": "^2.0.0"
- },
- "dependencies": {
- "glob-parent": {
- "version": "2.0.0",
- "dev": true,
- "requires": {
- "is-glob": "^2.0.0"
- }
- },
- "is-extglob": {
- "version": "1.0.0",
- "dev": true
- },
- "is-glob": {
- "version": "2.0.1",
- "dev": true,
- "requires": {
- "is-extglob": "^1.0.0"
- }
- }
- }
- },
- "chownr": {
- "version": "1.1.4",
- "dev": true
- },
- "class-utils": {
- "version": "0.3.6",
- "dev": true,
- "requires": {
- "arr-union": "^3.1.0",
- "define-property": "^0.2.5",
- "isobject": "^3.0.0",
- "static-extend": "^0.1.1"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "dev": true,
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- },
- "isobject": {
- "version": "3.0.1",
- "dev": true
- }
- }
- },
- "collection-visit": {
- "version": "1.0.0",
- "dev": true,
- "requires": {
- "map-visit": "^1.0.0",
- "object-visit": "^1.0.0"
- }
- },
- "color-convert": {
- "version": "1.9.3",
- "dev": true,
- "requires": {
- "color-name": "1.1.3"
- }
- },
- "color-name": {
- "version": "1.1.3",
- "dev": true
- },
- "colors": {
- "version": "1.1.2",
- "dev": true
- },
- "commander": {
- "version": "2.9.0",
- "dev": true,
- "requires": {
- "graceful-readlink": ">= 1.0.0"
- }
- },
- "component-emitter": {
- "version": "1.3.0",
- "dev": true
- },
- "compress-commons": {
- "version": "4.1.1",
- "dev": true,
- "requires": {
- "buffer-crc32": "^0.2.13",
- "crc32-stream": "^4.0.2",
- "normalize-path": "^3.0.0",
- "readable-stream": "^3.6.0"
- },
- "dependencies": {
- "normalize-path": {
- "version": "3.0.0",
- "dev": true
- },
- "readable-stream": {
- "version": "3.6.0",
- "dev": true,
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- }
- }
- },
- "concat-map": {
- "version": "0.0.1",
- "dev": true
- },
- "connect": {
- "version": "3.7.0",
- "dev": true,
- "requires": {
- "debug": "2.6.9",
- "finalhandler": "1.1.2",
- "parseurl": "~1.3.3",
- "utils-merge": "1.0.1"
- }
- },
- "connect-livereload": {
- "version": "0.6.1",
- "dev": true
- },
- "continuable-cache": {
- "version": "0.3.1",
- "dev": true
- },
- "copy-descriptor": {
- "version": "0.1.1",
- "dev": true
- },
- "core-util-is": {
- "version": "1.0.2",
- "dev": true
- },
- "crc-32": {
- "version": "1.2.0",
- "dev": true,
- "requires": {
- "exit-on-epipe": "~1.0.1",
- "printj": "~1.1.0"
- }
- },
- "crc32-stream": {
- "version": "4.0.2",
- "dev": true,
- "requires": {
- "crc-32": "^1.2.0",
- "readable-stream": "^3.4.0"
- },
- "dependencies": {
- "readable-stream": {
- "version": "3.6.0",
- "dev": true,
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- }
- }
- },
- "cross-spawn": {
- "version": "7.0.3",
- "dev": true,
- "requires": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "dependencies": {
- "which": {
- "version": "2.0.2",
- "dev": true,
- "requires": {
- "isexe": "^2.0.0"
- }
- }
- }
- },
- "dateformat": {
- "version": "3.0.3",
- "dev": true
- },
- "debug": {
- "version": "2.6.9",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "decode-uri-component": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
- "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
- "dev": true
- },
- "deep-is": {
- "version": "0.1.3",
- "dev": true
- },
- "define-property": {
- "version": "2.0.2",
- "dev": true,
- "requires": {
- "is-descriptor": "^1.0.2",
- "isobject": "^3.0.1"
- },
- "dependencies": {
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- }
- },
- "isobject": {
- "version": "3.0.1",
- "dev": true
- },
- "kind-of": {
- "version": "6.0.3",
- "dev": true
- }
- }
- },
- "depd": {
- "version": "2.0.0",
- "dev": true
- },
- "destroy": {
- "version": "1.0.4",
- "dev": true
- },
- "detect-file": {
- "version": "0.1.0",
- "dev": true,
- "requires": {
- "fs-exists-sync": "^0.1.0"
- }
- },
- "devtools-protocol": {
- "version": "0.0.869402",
- "dev": true
- },
- "doctrine": {
- "version": "3.0.0",
- "dev": true,
- "requires": {
- "esutils": "^2.0.2"
- }
- },
- "duplexer": {
- "version": "0.1.2",
- "dev": true
- },
- "duplexify": {
- "version": "3.7.1",
- "dev": true,
- "requires": {
- "end-of-stream": "^1.0.0",
- "inherits": "^2.0.1",
- "readable-stream": "^2.0.0",
- "stream-shift": "^1.0.0"
- }
- },
- "ee-first": {
- "version": "1.1.1",
- "dev": true
- },
- "encodeurl": {
- "version": "1.0.2",
- "dev": true
- },
- "end-of-stream": {
- "version": "1.4.4",
- "dev": true,
- "requires": {
- "once": "^1.4.0"
- }
- },
- "enquirer": {
- "version": "2.3.6",
- "dev": true,
- "requires": {
- "ansi-colors": "^4.1.1"
- }
- },
- "ensure-posix-path": {
- "version": "1.1.1",
- "dev": true
- },
- "error": {
- "version": "7.2.1",
- "dev": true,
- "requires": {
- "string-template": "~0.2.1"
- }
- },
- "escape-html": {
- "version": "1.0.3",
- "dev": true
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "dev": true
- },
- "escodegen": {
- "version": "1.8.1",
- "dev": true,
- "requires": {
- "esprima": "^2.7.1",
- "estraverse": "^1.9.1",
- "esutils": "^2.0.2",
- "optionator": "^0.8.1",
- "source-map": "~0.2.0"
- },
- "dependencies": {
- "esprima": {
- "version": "2.7.3",
- "dev": true
- },
- "estraverse": {
- "version": "1.9.3",
- "dev": true
- },
- "levn": {
- "version": "0.3.0",
- "dev": true,
- "requires": {
- "prelude-ls": "~1.1.2",
- "type-check": "~0.3.2"
- }
- },
- "optionator": {
- "version": "0.8.3",
- "dev": true,
- "requires": {
- "deep-is": "~0.1.3",
- "fast-levenshtein": "~2.0.6",
- "levn": "~0.3.0",
- "prelude-ls": "~1.1.2",
- "type-check": "~0.3.2",
- "word-wrap": "~1.2.3"
- }
- },
- "prelude-ls": {
- "version": "1.1.2",
- "dev": true
- },
- "source-map": {
- "version": "0.2.0",
- "dev": true,
- "optional": true,
- "requires": {
- "amdefine": ">=0.0.4"
- }
- },
- "type-check": {
- "version": "0.3.2",
- "dev": true,
- "requires": {
- "prelude-ls": "~1.1.2"
- }
- }
- }
- },
- "eslint": {
- "version": "8.5.0",
- "dev": true,
- "requires": {
- "@eslint/eslintrc": "^1.0.5",
- "@humanwhocodes/config-array": "^0.9.2",
- "ajv": "^6.10.0",
- "chalk": "^4.0.0",
- "cross-spawn": "^7.0.2",
- "debug": "^4.3.2",
- "doctrine": "^3.0.0",
- "enquirer": "^2.3.5",
- "escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.1.0",
- "eslint-utils": "^3.0.0",
- "eslint-visitor-keys": "^3.1.0",
- "espree": "^9.2.0",
- "esquery": "^1.4.0",
- "esutils": "^2.0.2",
- "fast-deep-equal": "^3.1.3",
- "file-entry-cache": "^6.0.1",
- "functional-red-black-tree": "^1.0.1",
- "glob-parent": "^6.0.1",
- "globals": "^13.6.0",
- "ignore": "^4.0.6",
- "import-fresh": "^3.0.0",
- "imurmurhash": "^0.1.4",
- "is-glob": "^4.0.0",
- "js-yaml": "^4.1.0",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "levn": "^0.4.1",
- "lodash.merge": "^4.6.2",
- "minimatch": "^3.0.4",
- "natural-compare": "^1.4.0",
- "optionator": "^0.9.1",
- "progress": "^2.0.0",
- "regexpp": "^3.2.0",
- "semver": "^7.2.1",
- "strip-ansi": "^6.0.1",
- "strip-json-comments": "^3.1.0",
- "text-table": "^0.2.0",
- "v8-compile-cache": "^2.0.3"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "5.0.1",
- "dev": true
- },
- "ansi-styles": {
- "version": "4.3.0",
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "argparse": {
- "version": "2.0.1",
- "dev": true
- },
- "chalk": {
- "version": "4.1.2",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "dev": true
- },
- "debug": {
- "version": "4.3.3",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "escape-string-regexp": {
- "version": "4.0.0",
- "dev": true
- },
- "has-flag": {
- "version": "4.0.0",
- "dev": true
- },
- "js-yaml": {
- "version": "4.1.0",
- "dev": true,
- "requires": {
- "argparse": "^2.0.1"
- }
- },
- "ms": {
- "version": "2.1.2",
- "dev": true
- },
- "strip-ansi": {
- "version": "6.0.1",
- "dev": true,
- "requires": {
- "ansi-regex": "^5.0.1"
- }
- },
- "supports-color": {
- "version": "7.2.0",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "eslint-scope": {
- "version": "7.1.0",
- "dev": true,
- "requires": {
- "esrecurse": "^4.3.0",
- "estraverse": "^5.2.0"
- }
- },
- "eslint-utils": {
- "version": "3.0.0",
- "dev": true,
- "requires": {
- "eslint-visitor-keys": "^2.0.0"
- },
- "dependencies": {
- "eslint-visitor-keys": {
- "version": "2.1.0",
- "dev": true
- }
- }
- },
- "eslint-visitor-keys": {
- "version": "3.1.0",
- "dev": true
- },
- "espree": {
- "version": "9.2.0",
- "dev": true,
- "requires": {
- "acorn": "^8.6.0",
- "acorn-jsx": "^5.3.1",
- "eslint-visitor-keys": "^3.1.0"
- }
- },
- "esprima": {
- "version": "4.0.1",
- "dev": true
- },
- "esquery": {
- "version": "1.4.0",
- "dev": true,
- "requires": {
- "estraverse": "^5.1.0"
- }
- },
- "esrecurse": {
- "version": "4.3.0",
- "dev": true,
- "requires": {
- "estraverse": "^5.2.0"
- }
- },
- "estraverse": {
- "version": "5.3.0",
- "dev": true
- },
- "esutils": {
- "version": "2.0.3",
- "dev": true
- },
- "etag": {
- "version": "1.8.1",
- "dev": true
- },
- "eventemitter2": {
- "version": "0.4.14",
- "dev": true
- },
- "events": {
- "version": "1.1.1",
- "dev": true
- },
- "exists-stat": {
- "version": "1.0.0",
- "dev": true
- },
- "exit": {
- "version": "0.1.2",
- "dev": true
- },
- "exit-on-epipe": {
- "version": "1.0.1",
- "dev": true
- },
- "expand-brackets": {
- "version": "0.1.5",
- "dev": true,
- "requires": {
- "is-posix-bracket": "^0.1.0"
- }
- },
- "expand-range": {
- "version": "1.8.2",
- "dev": true,
- "requires": {
- "fill-range": "^2.1.0"
- }
- },
- "expand-tilde": {
- "version": "1.2.2",
- "dev": true,
- "requires": {
- "os-homedir": "^1.0.1"
- }
- },
- "extend": {
- "version": "3.0.2",
- "dev": true
- },
- "extend-shallow": {
- "version": "3.0.2",
- "dev": true,
- "requires": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
- "dependencies": {
- "is-extendable": {
- "version": "1.0.1",
- "dev": true,
- "requires": {
- "is-plain-object": "^2.0.4"
- }
- }
- }
- },
- "extglob": {
- "version": "0.3.2",
- "dev": true,
- "requires": {
- "is-extglob": "^1.0.0"
- },
- "dependencies": {
- "is-extglob": {
- "version": "1.0.0",
- "dev": true
- }
- }
- },
- "extract-zip": {
- "version": "2.0.1",
- "dev": true,
- "requires": {
- "@types/yauzl": "^2.9.1",
- "debug": "^4.1.1",
- "get-stream": "^5.1.0",
- "yauzl": "^2.10.0"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "dev": true
- }
- }
- },
- "fast-deep-equal": {
- "version": "3.1.3",
- "dev": true
- },
- "fast-json-stable-stringify": {
- "version": "2.1.0",
- "dev": true
- },
- "fast-levenshtein": {
- "version": "2.0.6",
- "dev": true
- },
- "faye-websocket": {
- "version": "0.10.0",
- "dev": true,
- "requires": {
- "websocket-driver": ">=0.5.1"
- }
- },
- "fd-slicer": {
- "version": "1.1.0",
- "dev": true,
- "requires": {
- "pend": "~1.2.0"
- }
- },
- "figures": {
- "version": "1.7.0",
- "dev": true,
- "requires": {
- "escape-string-regexp": "^1.0.5",
- "object-assign": "^4.1.0"
- }
- },
- "file-entry-cache": {
- "version": "6.0.1",
- "dev": true,
- "requires": {
- "flat-cache": "^3.0.4"
- }
- },
- "file-uri-to-path": {
- "version": "1.0.0",
- "dev": true,
- "optional": true
- },
- "filename-regex": {
- "version": "2.0.1",
- "dev": true
- },
- "fill-range": {
- "version": "2.2.4",
- "dev": true,
- "requires": {
- "is-number": "^2.1.0",
- "isobject": "^2.0.0",
- "randomatic": "^3.0.0",
- "repeat-element": "^1.1.2",
- "repeat-string": "^1.5.2"
- }
- },
- "finalhandler": {
- "version": "1.1.2",
- "dev": true,
- "requires": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "~2.3.0",
- "parseurl": "~1.3.3",
- "statuses": "~1.5.0",
- "unpipe": "~1.0.0"
- }
- },
- "find-up": {
- "version": "4.1.0",
- "dev": true,
- "requires": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- }
- },
- "findup-sync": {
- "version": "0.3.0",
- "dev": true,
- "requires": {
- "glob": "~5.0.0"
- },
- "dependencies": {
- "glob": {
- "version": "5.0.15",
- "dev": true,
- "requires": {
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "2 || 3",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- }
- }
- },
- "fined": {
- "version": "1.2.0",
- "dev": true,
- "requires": {
- "expand-tilde": "^2.0.2",
- "is-plain-object": "^2.0.3",
- "object.defaults": "^1.1.0",
- "object.pick": "^1.2.0",
- "parse-filepath": "^1.0.1"
- },
- "dependencies": {
- "expand-tilde": {
- "version": "2.0.2",
- "dev": true,
- "requires": {
- "homedir-polyfill": "^1.0.1"
- }
- }
- }
- },
- "flagged-respawn": {
- "version": "1.0.1",
- "dev": true
- },
- "flat-cache": {
- "version": "3.0.4",
- "dev": true,
- "requires": {
- "flatted": "^3.1.0",
- "rimraf": "^3.0.2"
- },
- "dependencies": {
- "rimraf": {
- "version": "3.0.2",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- }
- }
- }
- },
- "flatted": {
- "version": "3.2.4",
- "dev": true
- },
- "for-in": {
- "version": "1.0.2",
- "dev": true
- },
- "for-own": {
- "version": "0.1.5",
- "dev": true,
- "requires": {
- "for-in": "^1.0.1"
- }
- },
- "fragment-cache": {
- "version": "0.2.1",
- "dev": true,
- "requires": {
- "map-cache": "^0.2.2"
- }
- },
- "fresh": {
- "version": "0.5.2",
- "dev": true
- },
- "fs-constants": {
- "version": "1.0.0",
- "dev": true
- },
- "fs-exists-sync": {
- "version": "0.1.0",
- "dev": true
- },
- "fs.realpath": {
- "version": "1.0.0",
- "dev": true
- },
- "fsevents": {
- "version": "1.2.13",
- "dev": true,
- "optional": true,
- "requires": {
- "bindings": "^1.5.0",
- "nan": "^2.12.1"
- }
- },
- "function-bind": {
- "version": "1.1.1",
- "dev": true
- },
- "functional-red-black-tree": {
- "version": "1.0.1",
- "dev": true
- },
- "gaze": {
- "version": "1.1.3",
- "dev": true,
- "requires": {
- "globule": "^1.0.0"
- }
- },
- "get-intrinsic": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
- "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.3"
- }
- },
- "get-stream": {
- "version": "5.2.0",
- "dev": true,
- "requires": {
- "pump": "^3.0.0"
- }
- },
- "get-value": {
- "version": "2.0.6",
- "dev": true
- },
- "getobject": {
- "version": "1.0.2",
- "dev": true
- },
- "glob": {
- "version": "7.2.0",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "glob-base": {
- "version": "0.3.0",
- "dev": true,
- "requires": {
- "glob-parent": "^2.0.0",
- "is-glob": "^2.0.0"
- },
- "dependencies": {
- "glob-parent": {
- "version": "2.0.0",
- "dev": true,
- "requires": {
- "is-glob": "^2.0.0"
- }
- },
- "is-extglob": {
- "version": "1.0.0",
- "dev": true
- },
- "is-glob": {
- "version": "2.0.1",
- "dev": true,
- "requires": {
- "is-extglob": "^1.0.0"
- }
- }
- }
- },
- "glob-parent": {
- "version": "6.0.2",
- "dev": true,
- "requires": {
- "is-glob": "^4.0.3"
- },
- "dependencies": {
- "is-glob": {
- "version": "4.0.3",
- "dev": true,
- "requires": {
- "is-extglob": "^2.1.1"
- }
- }
- }
- },
- "global-modules": {
- "version": "0.2.3",
- "dev": true,
- "requires": {
- "global-prefix": "^0.1.4",
- "is-windows": "^0.2.0"
- },
- "dependencies": {
- "is-windows": {
- "version": "0.2.0",
- "dev": true
- }
- }
- },
- "global-prefix": {
- "version": "0.1.5",
- "dev": true,
- "requires": {
- "homedir-polyfill": "^1.0.0",
- "ini": "^1.3.4",
- "is-windows": "^0.2.0",
- "which": "^1.2.12"
- },
- "dependencies": {
- "is-windows": {
- "version": "0.2.0",
- "dev": true
- }
- }
- },
- "globals": {
- "version": "13.12.0",
- "dev": true,
- "requires": {
- "type-fest": "^0.20.2"
- }
- },
- "globule": {
- "version": "1.3.2",
- "dev": true,
- "requires": {
- "glob": "~7.1.1",
- "lodash": "~4.17.10",
- "minimatch": "~3.0.2"
- },
- "dependencies": {
- "glob": {
- "version": "7.1.6",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- }
- }
- },
- "graceful-fs": {
- "version": "4.2.4",
- "dev": true
- },
- "graceful-readlink": {
- "version": "1.0.1",
- "dev": true
- },
- "grunt": {
- "version": "1.5.3",
- "dev": true,
- "requires": {
- "dateformat": "~3.0.3",
- "eventemitter2": "~0.4.13",
- "exit": "~0.1.2",
- "findup-sync": "~0.3.0",
- "glob": "~7.1.6",
- "grunt-cli": "~1.4.3",
- "grunt-known-options": "~2.0.0",
- "grunt-legacy-log": "~3.0.0",
- "grunt-legacy-util": "~2.0.1",
- "iconv-lite": "~0.4.13",
- "js-yaml": "~3.14.0",
- "minimatch": "~3.0.4",
- "mkdirp": "~1.0.4",
- "nopt": "~3.0.6",
- "rimraf": "~3.0.2"
- },
- "dependencies": {
- "glob": {
- "version": "7.1.7",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "grunt-cli": {
- "version": "1.4.3",
- "dev": true,
- "requires": {
- "grunt-known-options": "~2.0.0",
- "interpret": "~1.1.0",
- "liftup": "~3.0.1",
- "nopt": "~4.0.1",
- "v8flags": "~3.2.0"
- },
- "dependencies": {
- "nopt": {
- "version": "4.0.3",
- "dev": true,
- "requires": {
- "abbrev": "1",
- "osenv": "^0.1.4"
- }
- }
- }
- },
- "js-yaml": {
- "version": "3.14.1",
- "dev": true,
- "requires": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- }
- },
- "rimraf": {
- "version": "3.0.2",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- }
- }
- }
- },
- "grunt-contrib-clean": {
- "version": "2.0.0",
- "dev": true,
- "requires": {
- "async": "^2.6.1",
- "rimraf": "^2.6.2"
- },
- "dependencies": {
- "async": {
- "version": "2.6.3",
- "dev": true,
- "requires": {
- "lodash": "^4.17.14"
- }
- }
- }
- },
- "grunt-contrib-compress": {
- "version": "2.0.0",
- "dev": true,
- "requires": {
- "adm-zip": "^0.5.1",
- "archiver": "^5.1.0",
- "chalk": "^4.1.0",
- "lodash": "^4.17.20",
- "pretty-bytes": "^5.4.1",
- "stream-buffers": "^3.0.2"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "dev": true
- },
- "has-flag": {
- "version": "4.0.0",
- "dev": true
- },
- "supports-color": {
- "version": "7.2.0",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "grunt-contrib-concat": {
- "version": "2.0.0",
- "dev": true,
- "requires": {
- "chalk": "^4.1.2",
- "source-map": "^0.5.3"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "dev": true
- },
- "has-flag": {
- "version": "4.0.0",
- "dev": true
- },
- "supports-color": {
- "version": "7.2.0",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "grunt-contrib-connect": {
- "version": "3.0.0",
- "dev": true,
- "requires": {
- "async": "^3.2.0",
- "connect": "^3.7.0",
- "connect-livereload": "^0.6.1",
- "morgan": "^1.10.0",
- "node-http2": "^4.0.1",
- "opn": "^6.0.0",
- "portscanner": "^2.2.0",
- "serve-index": "^1.9.1",
- "serve-static": "^1.14.1"
- },
- "dependencies": {
- "async": {
- "version": "3.2.2",
- "dev": true
- }
- }
- },
- "grunt-contrib-qunit": {
- "version": "6.2.1",
- "dev": true,
- "requires": {
- "eventemitter2": "^6.4.2",
- "p-each-series": "^2.1.0",
- "puppeteer": "^9.0.0"
- },
- "dependencies": {
- "eventemitter2": {
- "version": "6.4.5",
- "dev": true
- }
- }
- },
- "grunt-contrib-uglify": {
- "version": "5.0.1",
- "dev": true,
- "requires": {
- "chalk": "^2.4.1",
- "maxmin": "^2.1.0",
- "uglify-js": "^3.13.3",
- "uri-path": "^1.0.0"
- },
- "dependencies": {
- "uglify-js": {
- "version": "3.14.5",
- "dev": true
- }
- }
- },
- "grunt-contrib-watch": {
- "version": "1.1.0",
- "dev": true,
- "requires": {
- "async": "^2.6.0",
- "gaze": "^1.1.0",
- "lodash": "^4.17.10",
- "tiny-lr": "^1.1.1"
- },
- "dependencies": {
- "async": {
- "version": "2.6.3",
- "dev": true,
- "requires": {
- "lodash": "^4.17.14"
- }
- }
- }
- },
- "grunt-eslint": {
- "version": "24.0.0",
- "dev": true,
- "requires": {
- "chalk": "^4.1.2",
- "eslint": "^8.0.1"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "dev": true
- },
- "has-flag": {
- "version": "4.0.0",
- "dev": true
- },
- "supports-color": {
- "version": "7.2.0",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "grunt-git-describe": {
- "version": "2.4.4",
- "dev": true,
- "requires": {
- "grunt-util-args": "~0.0.5",
- "grunt-util-options": "~0.0.4",
- "grunt-util-process": "~0.0.3",
- "grunt-util-spawn": "~0.0.3"
- }
- },
- "grunt-istanbul": {
- "version": "0.8.0",
- "dev": true,
- "requires": {
- "chalk": "1.1.1",
- "istanbul": "~0.4.2",
- "nue": "0.7.1"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "2.2.1",
- "dev": true
- },
- "chalk": {
- "version": "1.1.1",
- "dev": true,
- "requires": {
- "ansi-styles": "^2.1.0",
- "escape-string-regexp": "^1.0.2",
- "has-ansi": "^2.0.0",
- "strip-ansi": "^3.0.0",
- "supports-color": "^2.0.0"
- }
- },
- "supports-color": {
- "version": "2.0.0",
- "dev": true
- }
- }
- },
- "grunt-known-options": {
- "version": "2.0.0",
- "dev": true
- },
- "grunt-legacy-log": {
- "version": "3.0.0",
- "dev": true,
- "requires": {
- "colors": "~1.1.2",
- "grunt-legacy-log-utils": "~2.1.0",
- "hooker": "~0.2.3",
- "lodash": "~4.17.19"
- }
- },
- "grunt-legacy-log-utils": {
- "version": "2.1.0",
- "dev": true,
- "requires": {
- "chalk": "~4.1.0",
- "lodash": "~4.17.19"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "dev": true
- },
- "has-flag": {
- "version": "4.0.0",
- "dev": true
- },
- "supports-color": {
- "version": "7.2.0",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "grunt-legacy-util": {
- "version": "2.0.1",
- "dev": true,
- "requires": {
- "async": "~3.2.0",
- "exit": "~0.1.2",
- "getobject": "~1.0.0",
- "hooker": "~0.2.3",
- "lodash": "~4.17.21",
- "underscore.string": "~3.3.5",
- "which": "~2.0.2"
- },
- "dependencies": {
- "async": {
- "version": "3.2.3",
- "dev": true
- },
- "which": {
- "version": "2.0.2",
- "dev": true,
- "requires": {
- "isexe": "^2.0.0"
- }
- }
- }
- },
- "grunt-text-replace": {
- "version": "0.4.0",
- "dev": true
- },
- "grunt-util-args": {
- "version": "0.0.6",
- "dev": true,
- "requires": {}
- },
- "grunt-util-options": {
- "version": "0.0.4",
- "dev": true,
- "requires": {
- "grunt-util-property": "^0.0.2"
- }
- },
- "grunt-util-process": {
- "version": "0.0.3",
- "dev": true,
- "requires": {}
- },
- "grunt-util-property": {
- "version": "0.0.2",
- "dev": true,
- "requires": {}
- },
- "grunt-util-spawn": {
- "version": "0.0.3",
- "dev": true,
- "requires": {}
- },
- "gzip-size": {
- "version": "3.0.0",
- "dev": true,
- "requires": {
- "duplexer": "^0.1.1"
- }
- },
- "handlebars": {
- "version": "4.7.7",
- "dev": true,
- "requires": {
- "minimist": "^1.2.5",
- "neo-async": "^2.6.0",
- "source-map": "^0.6.1",
- "uglify-js": "^3.1.4",
- "wordwrap": "^1.0.0"
- },
- "dependencies": {
- "source-map": {
- "version": "0.6.1",
- "dev": true
- }
- }
- },
- "has": {
- "version": "1.0.3",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1"
- }
- },
- "has-ansi": {
- "version": "2.0.0",
- "dev": true,
- "requires": {
- "ansi-regex": "^2.0.0"
- }
- },
- "has-flag": {
- "version": "3.0.0",
- "dev": true
- },
- "has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
- "dev": true
- },
- "has-value": {
- "version": "1.0.0",
- "dev": true,
- "requires": {
- "get-value": "^2.0.6",
- "has-values": "^1.0.0",
- "isobject": "^3.0.0"
- },
- "dependencies": {
- "isobject": {
- "version": "3.0.1",
- "dev": true
- }
- }
- },
- "has-values": {
- "version": "1.0.0",
- "dev": true,
- "requires": {
- "is-number": "^3.0.0",
- "kind-of": "^4.0.0"
- },
- "dependencies": {
- "is-number": {
- "version": "3.0.0",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "kind-of": {
- "version": "4.0.0",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "homedir-polyfill": {
- "version": "1.0.3",
- "dev": true,
- "requires": {
- "parse-passwd": "^1.0.0"
- }
- },
- "hooker": {
- "version": "0.2.3",
- "dev": true
- },
- "http-errors": {
- "version": "1.6.3",
- "dev": true,
- "requires": {
- "depd": "~1.1.2",
- "inherits": "2.0.3",
- "setprototypeof": "1.1.0",
- "statuses": ">= 1.4.0 < 2"
- },
- "dependencies": {
- "depd": {
- "version": "1.1.2",
- "dev": true
- },
- "inherits": {
- "version": "2.0.3",
- "dev": true
- }
- }
- },
- "http-parser-js": {
- "version": "0.5.2",
- "dev": true
- },
- "https-browserify": {
- "version": "0.0.1",
- "dev": true
- },
- "https-proxy-agent": {
- "version": "5.0.1",
- "dev": true,
- "requires": {
- "agent-base": "6",
- "debug": "4"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "dev": true
- }
- }
- },
- "iconv-lite": {
- "version": "0.4.24",
- "dev": true,
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3"
- }
- },
- "ieee754": {
- "version": "1.2.1",
- "dev": true
- },
- "ignore": {
- "version": "4.0.6",
- "dev": true
- },
- "import-fresh": {
- "version": "3.3.0",
- "dev": true,
- "requires": {
- "parent-module": "^1.0.0",
- "resolve-from": "^4.0.0"
- }
- },
- "imurmurhash": {
- "version": "0.1.4",
- "dev": true
- },
- "inflight": {
- "version": "1.0.6",
- "dev": true,
- "requires": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "inherits": {
- "version": "2.0.4",
- "dev": true
- },
- "ini": {
- "version": "1.3.7",
- "dev": true
- },
- "interpret": {
- "version": "1.1.0",
- "dev": true
- },
- "is-absolute": {
- "version": "1.0.0",
- "dev": true,
- "requires": {
- "is-relative": "^1.0.0",
- "is-windows": "^1.0.1"
- }
- },
- "is-accessor-descriptor": {
- "version": "0.1.6",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- }
- },
- "is-binary-path": {
- "version": "1.0.1",
- "dev": true,
- "requires": {
- "binary-extensions": "^1.0.0"
- }
- },
- "is-buffer": {
- "version": "1.1.6",
- "dev": true
- },
- "is-core-module": {
- "version": "2.9.0",
- "dev": true,
- "requires": {
- "has": "^1.0.3"
- }
- },
- "is-data-descriptor": {
- "version": "0.1.4",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- }
- },
- "is-descriptor": {
- "version": "0.1.6",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- },
- "dependencies": {
- "kind-of": {
- "version": "5.1.0",
- "dev": true
- }
- }
- },
- "is-dotfile": {
- "version": "1.0.3",
- "dev": true
- },
- "is-equal-shallow": {
- "version": "0.1.3",
- "dev": true,
- "requires": {
- "is-primitive": "^2.0.0"
- }
- },
- "is-extendable": {
- "version": "0.1.1",
- "dev": true
- },
- "is-extglob": {
- "version": "2.1.1",
- "dev": true
- },
- "is-glob": {
- "version": "4.0.1",
- "dev": true,
- "requires": {
- "is-extglob": "^2.1.1"
- }
- },
- "is-number": {
- "version": "2.1.0",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- }
- },
- "is-number-like": {
- "version": "1.0.8",
- "dev": true,
- "requires": {
- "lodash.isfinite": "^3.3.2"
- }
- },
- "is-plain-object": {
- "version": "2.0.4",
- "dev": true,
- "requires": {
- "isobject": "^3.0.1"
- },
- "dependencies": {
- "isobject": {
- "version": "3.0.1",
- "dev": true
- }
- }
- },
- "is-posix-bracket": {
- "version": "0.1.1",
- "dev": true
- },
- "is-primitive": {
- "version": "2.0.0",
- "dev": true
- },
- "is-relative": {
- "version": "1.0.0",
- "dev": true,
- "requires": {
- "is-unc-path": "^1.0.0"
- }
- },
- "is-unc-path": {
- "version": "1.0.0",
- "dev": true,
- "requires": {
- "unc-path-regex": "^0.1.2"
- }
- },
- "is-windows": {
- "version": "1.0.2",
- "dev": true
- },
- "is-wsl": {
- "version": "1.1.0",
- "dev": true
- },
- "isarray": {
- "version": "1.0.0",
- "dev": true
- },
- "isexe": {
- "version": "2.0.0",
- "dev": true
- },
- "isobject": {
- "version": "2.1.0",
- "dev": true,
- "requires": {
- "isarray": "1.0.0"
- }
- },
- "istanbul": {
- "version": "0.4.5",
- "dev": true,
- "requires": {
- "abbrev": "1.0.x",
- "async": "1.x",
- "escodegen": "1.8.x",
- "esprima": "2.7.x",
- "glob": "^5.0.15",
- "handlebars": "^4.0.1",
- "js-yaml": "3.x",
- "mkdirp": "0.5.x",
- "nopt": "3.x",
- "once": "1.x",
- "resolve": "1.1.x",
- "supports-color": "^3.1.0",
- "which": "^1.1.1",
- "wordwrap": "^1.0.0"
- },
- "dependencies": {
- "abbrev": {
- "version": "1.0.9",
- "dev": true
- },
- "esprima": {
- "version": "2.7.3",
- "dev": true
- },
- "glob": {
- "version": "5.0.15",
- "dev": true,
- "requires": {
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "2 || 3",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "has-flag": {
- "version": "1.0.0",
- "dev": true
- },
- "mkdirp": {
- "version": "0.5.5",
- "dev": true,
- "requires": {
- "minimist": "^1.2.5"
- }
- },
- "resolve": {
- "version": "1.1.7",
- "dev": true
- },
- "supports-color": {
- "version": "3.2.3",
- "dev": true,
- "requires": {
- "has-flag": "^1.0.0"
- }
- }
- }
- },
- "js-reporters": {
- "version": "1.2.0",
- "dev": true
- },
- "js-yaml": {
- "version": "3.13.1",
- "dev": true,
- "requires": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- }
- },
- "json-schema-traverse": {
- "version": "0.4.1",
- "dev": true
- },
- "json-stable-stringify-without-jsonify": {
- "version": "1.0.1",
- "dev": true
- },
- "kind-of": {
- "version": "3.2.2",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- },
- "lazystream": {
- "version": "1.0.1",
- "dev": true,
- "requires": {
- "readable-stream": "^2.0.5"
- }
- },
- "levn": {
- "version": "0.4.1",
- "dev": true,
- "requires": {
- "prelude-ls": "^1.2.1",
- "type-check": "~0.4.0"
- }
- },
- "liftup": {
- "version": "3.0.1",
- "dev": true,
- "requires": {
- "extend": "^3.0.2",
- "findup-sync": "^4.0.0",
- "fined": "^1.2.0",
- "flagged-respawn": "^1.0.1",
- "is-plain-object": "^2.0.4",
- "object.map": "^1.0.1",
- "rechoir": "^0.7.0",
- "resolve": "^1.19.0"
- },
- "dependencies": {
- "braces": {
- "version": "3.0.2",
- "dev": true,
- "requires": {
- "fill-range": "^7.0.1"
- }
- },
- "detect-file": {
- "version": "1.0.0",
- "dev": true
- },
- "expand-tilde": {
- "version": "2.0.2",
- "dev": true,
- "requires": {
- "homedir-polyfill": "^1.0.1"
- }
- },
- "fill-range": {
- "version": "7.0.1",
- "dev": true,
- "requires": {
- "to-regex-range": "^5.0.1"
- }
- },
- "findup-sync": {
- "version": "4.0.0",
- "dev": true,
- "requires": {
- "detect-file": "^1.0.0",
- "is-glob": "^4.0.0",
- "micromatch": "^4.0.2",
- "resolve-dir": "^1.0.1"
- }
- },
- "global-modules": {
- "version": "1.0.0",
- "dev": true,
- "requires": {
- "global-prefix": "^1.0.1",
- "is-windows": "^1.0.1",
- "resolve-dir": "^1.0.0"
- }
- },
- "global-prefix": {
- "version": "1.0.2",
- "dev": true,
- "requires": {
- "expand-tilde": "^2.0.2",
- "homedir-polyfill": "^1.0.1",
- "ini": "^1.3.4",
- "is-windows": "^1.0.1",
- "which": "^1.2.14"
- }
- },
- "is-number": {
- "version": "7.0.0",
- "dev": true
- },
- "micromatch": {
- "version": "4.0.5",
- "dev": true,
- "requires": {
- "braces": "^3.0.2",
- "picomatch": "^2.3.1"
- }
- },
- "resolve-dir": {
- "version": "1.0.1",
- "dev": true,
- "requires": {
- "expand-tilde": "^2.0.0",
- "global-modules": "^1.0.0"
- }
- },
- "to-regex-range": {
- "version": "5.0.1",
- "dev": true,
- "requires": {
- "is-number": "^7.0.0"
- }
- }
- }
- },
- "livereload-js": {
- "version": "2.4.0",
- "dev": true
- },
- "locate-path": {
- "version": "5.0.0",
- "dev": true,
- "requires": {
- "p-locate": "^4.1.0"
- }
- },
- "lodash": {
- "version": "4.17.21",
- "dev": true
- },
- "lodash.defaults": {
- "version": "4.2.0",
- "dev": true
- },
- "lodash.difference": {
- "version": "4.5.0",
- "dev": true
- },
- "lodash.flatten": {
- "version": "4.4.0",
- "dev": true
- },
- "lodash.isfinite": {
- "version": "3.3.2",
- "dev": true
- },
- "lodash.isplainobject": {
- "version": "4.0.6",
- "dev": true
- },
- "lodash.merge": {
- "version": "4.6.2",
- "dev": true
- },
- "lodash.union": {
- "version": "4.6.0",
- "dev": true
- },
- "lru-cache": {
- "version": "6.0.0",
- "dev": true,
- "requires": {
- "yallist": "^4.0.0"
- }
- },
- "make-iterator": {
- "version": "1.0.1",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "6.0.3",
- "dev": true
- }
- }
- },
- "map-cache": {
- "version": "0.2.2",
- "dev": true
- },
- "map-visit": {
- "version": "1.0.0",
- "dev": true,
- "requires": {
- "object-visit": "^1.0.0"
- }
- },
- "matcher-collection": {
- "version": "1.1.2",
- "dev": true,
- "requires": {
- "minimatch": "^3.0.2"
- }
- },
- "math-random": {
- "version": "1.0.4",
- "dev": true
- },
- "maxmin": {
- "version": "2.1.0",
- "dev": true,
- "requires": {
- "chalk": "^1.0.0",
- "figures": "^1.0.1",
- "gzip-size": "^3.0.0",
- "pretty-bytes": "^3.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "2.2.1",
- "dev": true
- },
- "chalk": {
- "version": "1.1.3",
- "dev": true,
- "requires": {
- "ansi-styles": "^2.2.1",
- "escape-string-regexp": "^1.0.2",
- "has-ansi": "^2.0.0",
- "strip-ansi": "^3.0.0",
- "supports-color": "^2.0.0"
- }
- },
- "pretty-bytes": {
- "version": "3.0.1",
- "dev": true,
- "requires": {
- "number-is-nan": "^1.0.0"
- }
- },
- "supports-color": {
- "version": "2.0.0",
- "dev": true
- }
- }
- },
- "micromatch": {
- "version": "2.3.11",
- "dev": true,
- "requires": {
- "arr-diff": "^2.0.0",
- "array-unique": "^0.2.1",
- "braces": "^1.8.2",
- "expand-brackets": "^0.1.4",
- "extglob": "^0.3.1",
- "filename-regex": "^2.0.0",
- "is-extglob": "^1.0.0",
- "is-glob": "^2.0.1",
- "kind-of": "^3.0.2",
- "normalize-path": "^2.0.1",
- "object.omit": "^2.0.0",
- "parse-glob": "^3.0.4",
- "regex-cache": "^0.4.2"
- },
- "dependencies": {
- "is-extglob": {
- "version": "1.0.0",
- "dev": true
- },
- "is-glob": {
- "version": "2.0.1",
- "dev": true,
- "requires": {
- "is-extglob": "^1.0.0"
- }
- }
- }
- },
- "mime": {
- "version": "1.6.0",
- "dev": true
- },
- "mime-db": {
- "version": "1.51.0",
- "dev": true
- },
- "mime-types": {
- "version": "2.1.34",
- "dev": true,
- "requires": {
- "mime-db": "1.51.0"
- }
- },
- "minimatch": {
- "version": "3.0.8",
- "dev": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "minimist": {
- "version": "1.2.6",
- "dev": true
- },
- "mixin-deep": {
- "version": "1.3.2",
- "dev": true,
- "requires": {
- "for-in": "^1.0.2",
- "is-extendable": "^1.0.1"
- },
- "dependencies": {
- "is-extendable": {
- "version": "1.0.1",
- "dev": true,
- "requires": {
- "is-plain-object": "^2.0.4"
- }
- }
- }
- },
- "mkdirp": {
- "version": "1.0.4",
- "dev": true
- },
- "mkdirp-classic": {
- "version": "0.5.3",
- "dev": true
- },
- "morgan": {
- "version": "1.10.0",
- "dev": true,
- "requires": {
- "basic-auth": "~2.0.1",
- "debug": "2.6.9",
- "depd": "~2.0.0",
- "on-finished": "~2.3.0",
- "on-headers": "~1.0.2"
- }
- },
- "ms": {
- "version": "2.0.0",
- "dev": true
- },
- "nan": {
- "version": "2.14.1",
- "dev": true,
- "optional": true
- },
- "nanomatch": {
- "version": "1.2.13",
- "dev": true,
- "requires": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "fragment-cache": "^0.2.1",
- "is-windows": "^1.0.2",
- "kind-of": "^6.0.2",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "arr-diff": {
- "version": "4.0.0",
- "dev": true
- },
- "array-unique": {
- "version": "0.3.2",
- "dev": true
- },
- "kind-of": {
- "version": "6.0.3",
- "dev": true
- }
- }
- },
- "natural-compare": {
- "version": "1.4.0",
- "dev": true
- },
- "negotiator": {
- "version": "0.6.2",
- "dev": true
- },
- "neo-async": {
- "version": "2.6.1",
- "dev": true
- },
- "node-fetch": {
- "version": "2.6.7",
- "dev": true,
- "requires": {
- "whatwg-url": "^5.0.0"
- }
- },
- "node-http2": {
- "version": "4.0.1",
- "dev": true,
- "requires": {
- "assert": "1.4.1",
- "events": "1.1.1",
- "https-browserify": "0.0.1",
- "setimmediate": "^1.0.5",
- "stream-browserify": "2.0.1",
- "timers-browserify": "2.0.2",
- "url": "^0.11.0",
- "websocket-stream": "^5.0.1"
- }
- },
- "nopt": {
- "version": "3.0.6",
- "dev": true,
- "requires": {
- "abbrev": "1"
- }
- },
- "normalize-path": {
- "version": "2.1.1",
- "dev": true,
- "requires": {
- "remove-trailing-separator": "^1.0.1"
- }
- },
- "nue": {
- "version": "0.7.1",
- "dev": true
- },
- "number-is-nan": {
- "version": "1.0.1",
- "dev": true
- },
- "object-assign": {
- "version": "4.1.1",
- "dev": true
- },
- "object-copy": {
- "version": "0.1.0",
- "dev": true,
- "requires": {
- "copy-descriptor": "^0.1.0",
- "define-property": "^0.2.5",
- "kind-of": "^3.0.3"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "dev": true,
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- }
- }
- },
- "object-inspect": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
- "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
- "dev": true
- },
- "object-visit": {
- "version": "1.0.1",
- "dev": true,
- "requires": {
- "isobject": "^3.0.0"
- },
- "dependencies": {
- "isobject": {
- "version": "3.0.1",
- "dev": true
- }
- }
- },
- "object.defaults": {
- "version": "1.1.0",
- "dev": true,
- "requires": {
- "array-each": "^1.0.1",
- "array-slice": "^1.0.0",
- "for-own": "^1.0.0",
- "isobject": "^3.0.0"
- },
- "dependencies": {
- "for-own": {
- "version": "1.0.0",
- "dev": true,
- "requires": {
- "for-in": "^1.0.1"
- }
- },
- "isobject": {
- "version": "3.0.1",
- "dev": true
- }
- }
- },
- "object.map": {
- "version": "1.0.1",
- "dev": true,
- "requires": {
- "for-own": "^1.0.0",
- "make-iterator": "^1.0.0"
- },
- "dependencies": {
- "for-own": {
- "version": "1.0.0",
- "dev": true,
- "requires": {
- "for-in": "^1.0.1"
- }
- }
- }
- },
- "object.omit": {
- "version": "2.0.1",
- "dev": true,
- "requires": {
- "for-own": "^0.1.4",
- "is-extendable": "^0.1.1"
- }
- },
- "object.pick": {
- "version": "1.3.0",
- "dev": true,
- "requires": {
- "isobject": "^3.0.1"
- },
- "dependencies": {
- "isobject": {
- "version": "3.0.1",
- "dev": true
- }
- }
- },
- "on-finished": {
- "version": "2.3.0",
- "dev": true,
- "requires": {
- "ee-first": "1.1.1"
- }
- },
- "on-headers": {
- "version": "1.0.2",
- "dev": true
- },
- "once": {
- "version": "1.4.0",
- "dev": true,
- "requires": {
- "wrappy": "1"
- }
- },
- "opn": {
- "version": "6.0.0",
- "dev": true,
- "requires": {
- "is-wsl": "^1.1.0"
- }
- },
- "optionator": {
- "version": "0.9.1",
- "dev": true,
- "requires": {
- "deep-is": "^0.1.3",
- "fast-levenshtein": "^2.0.6",
- "levn": "^0.4.1",
- "prelude-ls": "^1.2.1",
- "type-check": "^0.4.0",
- "word-wrap": "^1.2.3"
- }
- },
- "os-homedir": {
- "version": "1.0.2",
- "dev": true
- },
- "os-tmpdir": {
- "version": "1.0.2",
- "dev": true
- },
- "osenv": {
- "version": "0.1.5",
- "dev": true,
- "requires": {
- "os-homedir": "^1.0.0",
- "os-tmpdir": "^1.0.0"
- }
- },
- "p-each-series": {
- "version": "2.2.0",
- "dev": true
- },
- "p-limit": {
- "version": "2.3.0",
- "dev": true,
- "requires": {
- "p-try": "^2.0.0"
- }
- },
- "p-locate": {
- "version": "4.1.0",
- "dev": true,
- "requires": {
- "p-limit": "^2.2.0"
- }
- },
- "p-try": {
- "version": "2.2.0",
- "dev": true
- },
- "parent-module": {
- "version": "1.0.1",
- "dev": true,
- "requires": {
- "callsites": "^3.0.0"
- }
- },
- "parse-filepath": {
- "version": "1.0.2",
- "dev": true,
- "requires": {
- "is-absolute": "^1.0.0",
- "map-cache": "^0.2.0",
- "path-root": "^0.1.1"
- }
- },
- "parse-glob": {
- "version": "3.0.4",
- "dev": true,
- "requires": {
- "glob-base": "^0.3.0",
- "is-dotfile": "^1.0.0",
- "is-extglob": "^1.0.0",
- "is-glob": "^2.0.0"
- },
- "dependencies": {
- "is-extglob": {
- "version": "1.0.0",
- "dev": true
- },
- "is-glob": {
- "version": "2.0.1",
- "dev": true,
- "requires": {
- "is-extglob": "^1.0.0"
- }
- }
- }
- },
- "parse-passwd": {
- "version": "1.0.0",
- "dev": true
- },
- "parseurl": {
- "version": "1.3.3",
- "dev": true
- },
- "pascalcase": {
- "version": "0.1.1",
- "dev": true
- },
- "path-exists": {
- "version": "4.0.0",
- "dev": true
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "dev": true
- },
- "path-key": {
- "version": "3.1.1",
- "dev": true
- },
- "path-parse": {
- "version": "1.0.7",
- "dev": true
- },
- "path-root": {
- "version": "0.1.1",
- "dev": true,
- "requires": {
- "path-root-regex": "^0.1.0"
- }
- },
- "path-root-regex": {
- "version": "0.1.2",
- "dev": true
- },
- "pend": {
- "version": "1.2.0",
- "dev": true
- },
- "picomatch": {
- "version": "2.3.1",
- "dev": true
- },
- "pkg-dir": {
- "version": "4.2.0",
- "dev": true,
- "requires": {
- "find-up": "^4.0.0"
- }
- },
- "portscanner": {
- "version": "2.2.0",
- "dev": true,
- "requires": {
- "async": "^2.6.0",
- "is-number-like": "^1.0.3"
- },
- "dependencies": {
- "async": {
- "version": "2.6.3",
- "dev": true,
- "requires": {
- "lodash": "^4.17.14"
- }
- }
- }
- },
- "posix-character-classes": {
- "version": "0.1.1",
- "dev": true
- },
- "prelude-ls": {
- "version": "1.2.1",
- "dev": true
- },
- "preserve": {
- "version": "0.2.0",
- "dev": true
- },
- "pretty-bytes": {
- "version": "5.6.0",
- "dev": true
- },
- "printj": {
- "version": "1.1.2",
- "dev": true
- },
- "process-nextick-args": {
- "version": "2.0.1",
- "dev": true
- },
- "progress": {
- "version": "2.0.3",
- "dev": true
- },
- "proxy-from-env": {
- "version": "1.1.0",
- "dev": true
- },
- "pump": {
- "version": "3.0.0",
- "dev": true,
- "requires": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
- }
- },
- "punycode": {
- "version": "1.3.2",
- "dev": true
- },
- "puppeteer": {
- "version": "9.1.1",
- "dev": true,
- "requires": {
- "debug": "^4.1.0",
- "devtools-protocol": "0.0.869402",
- "extract-zip": "^2.0.0",
- "https-proxy-agent": "^5.0.0",
- "node-fetch": "^2.6.1",
- "pkg-dir": "^4.2.0",
- "progress": "^2.0.1",
- "proxy-from-env": "^1.1.0",
- "rimraf": "^3.0.2",
- "tar-fs": "^2.0.0",
- "unbzip2-stream": "^1.3.3",
- "ws": "^7.2.3"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "dev": true
- },
- "rimraf": {
- "version": "3.0.2",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- }
- },
- "ws": {
- "version": "7.5.9",
- "dev": true,
- "requires": {}
- }
- }
- },
- "qs": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
- "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
- "dev": true,
- "requires": {
- "side-channel": "^1.0.4"
- }
- },
- "querystring": {
- "version": "0.2.0",
- "dev": true
- },
- "qunitjs": {
- "version": "2.4.1",
- "dev": true,
- "requires": {
- "chokidar": "1.6.1",
- "commander": "2.9.0",
- "exists-stat": "1.0.0",
- "findup-sync": "0.4.3",
- "js-reporters": "1.2.0",
- "resolve": "1.3.2",
- "walk-sync": "0.3.1"
- },
- "dependencies": {
- "findup-sync": {
- "version": "0.4.3",
- "dev": true,
- "requires": {
- "detect-file": "^0.1.0",
- "is-glob": "^2.0.1",
- "micromatch": "^2.3.7",
- "resolve-dir": "^0.1.0"
- }
- },
- "is-extglob": {
- "version": "1.0.0",
- "dev": true
- },
- "is-glob": {
- "version": "2.0.1",
- "dev": true,
- "requires": {
- "is-extglob": "^1.0.0"
- }
- },
- "resolve": {
- "version": "1.3.2",
- "dev": true,
- "requires": {
- "path-parse": "^1.0.5"
- }
- }
- }
- },
- "randomatic": {
- "version": "3.1.1",
- "dev": true,
- "requires": {
- "is-number": "^4.0.0",
- "kind-of": "^6.0.0",
- "math-random": "^1.0.1"
- },
- "dependencies": {
- "is-number": {
- "version": "4.0.0",
- "dev": true
- },
- "kind-of": {
- "version": "6.0.3",
- "dev": true
- }
- }
- },
- "range-parser": {
- "version": "1.2.1",
- "dev": true
- },
- "raw-body": {
- "version": "1.1.7",
- "dev": true,
- "requires": {
- "bytes": "1",
- "string_decoder": "0.10"
- },
- "dependencies": {
- "string_decoder": {
- "version": "0.10.31",
- "dev": true
- }
- }
- },
- "readable-stream": {
- "version": "2.3.7",
- "dev": true,
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "readdir-glob": {
- "version": "1.1.1",
- "dev": true,
- "requires": {
- "minimatch": "^3.0.4"
- }
- },
- "readdirp": {
- "version": "2.2.1",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.11",
- "micromatch": "^3.1.10",
- "readable-stream": "^2.0.2"
- },
- "dependencies": {
- "arr-diff": {
- "version": "4.0.0",
- "dev": true
- },
- "array-unique": {
- "version": "0.3.2",
- "dev": true
- },
- "braces": {
- "version": "2.3.2",
- "dev": true,
- "requires": {
- "arr-flatten": "^1.1.0",
- "array-unique": "^0.3.2",
- "extend-shallow": "^2.0.1",
- "fill-range": "^4.0.0",
- "isobject": "^3.0.1",
- "repeat-element": "^1.1.2",
- "snapdragon": "^0.8.1",
- "snapdragon-node": "^2.0.1",
- "split-string": "^3.0.2",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
- "expand-brackets": {
- "version": "2.1.4",
- "dev": true,
- "requires": {
- "debug": "^2.3.3",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "posix-character-classes": "^0.1.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "dev": true,
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- },
- "extend-shallow": {
- "version": "2.0.1",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- },
- "is-accessor-descriptor": {
- "version": "0.1.6",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "is-data-descriptor": {
- "version": "0.1.4",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "is-descriptor": {
- "version": "0.1.6",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- }
- },
- "kind-of": {
- "version": "5.1.0",
- "dev": true
- }
- }
- },
- "extglob": {
- "version": "2.0.4",
- "dev": true,
- "requires": {
- "array-unique": "^0.3.2",
- "define-property": "^1.0.0",
- "expand-brackets": "^2.1.4",
- "extend-shallow": "^2.0.1",
- "fragment-cache": "^0.2.1",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "define-property": {
- "version": "1.0.0",
- "dev": true,
- "requires": {
- "is-descriptor": "^1.0.0"
- }
- },
- "extend-shallow": {
- "version": "2.0.1",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
- "fill-range": {
- "version": "4.0.0",
- "dev": true,
- "requires": {
- "extend-shallow": "^2.0.1",
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1",
- "to-regex-range": "^2.1.0"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- }
- },
- "is-number": {
- "version": "3.0.0",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "isobject": {
- "version": "3.0.1",
- "dev": true
- },
- "kind-of": {
- "version": "6.0.3",
- "dev": true
- },
- "micromatch": {
- "version": "3.1.10",
- "dev": true,
- "requires": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
- }
- }
- }
- },
- "rechoir": {
- "version": "0.7.1",
- "dev": true,
- "requires": {
- "resolve": "^1.9.0"
- }
- },
- "regex-cache": {
- "version": "0.4.4",
- "dev": true,
- "requires": {
- "is-equal-shallow": "^0.1.3"
- }
- },
- "regex-not": {
- "version": "1.0.2",
- "dev": true,
- "requires": {
- "extend-shallow": "^3.0.2",
- "safe-regex": "^1.1.0"
- }
- },
- "regexpp": {
- "version": "3.2.0",
- "dev": true
- },
- "remove-trailing-separator": {
- "version": "1.1.0",
- "dev": true
- },
- "repeat-element": {
- "version": "1.1.3",
- "dev": true
- },
- "repeat-string": {
- "version": "1.6.1",
- "dev": true
- },
- "resolve": {
- "version": "1.22.0",
- "dev": true,
- "requires": {
- "is-core-module": "^2.8.1",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- }
- },
- "resolve-dir": {
- "version": "0.1.1",
- "dev": true,
- "requires": {
- "expand-tilde": "^1.2.2",
- "global-modules": "^0.2.3"
- }
- },
- "resolve-from": {
- "version": "4.0.0",
- "dev": true
- },
- "resolve-url": {
- "version": "0.2.1",
- "dev": true
- },
- "ret": {
- "version": "0.1.15",
- "dev": true
- },
- "rimraf": {
- "version": "2.6.3",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- },
- "dependencies": {
- "glob": {
- "version": "7.1.6",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- }
- }
- },
- "safe-buffer": {
- "version": "5.1.2",
- "dev": true
- },
- "safe-json-parse": {
- "version": "1.0.1",
- "dev": true
- },
- "safe-regex": {
- "version": "1.1.0",
- "dev": true,
- "requires": {
- "ret": "~0.1.10"
- }
- },
- "safer-buffer": {
- "version": "2.1.2",
- "dev": true
- },
- "semver": {
- "version": "7.3.5",
- "dev": true,
- "requires": {
- "lru-cache": "^6.0.0"
- }
- },
- "send": {
- "version": "0.17.2",
- "dev": true,
- "requires": {
- "debug": "2.6.9",
- "depd": "~1.1.2",
- "destroy": "~1.0.4",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "1.8.1",
- "mime": "1.6.0",
- "ms": "2.1.3",
- "on-finished": "~2.3.0",
- "range-parser": "~1.2.1",
- "statuses": "~1.5.0"
- },
- "dependencies": {
- "depd": {
- "version": "1.1.2",
- "dev": true
- },
- "http-errors": {
- "version": "1.8.1",
- "dev": true,
- "requires": {
- "depd": "~1.1.2",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": ">= 1.5.0 < 2",
- "toidentifier": "1.0.1"
- }
- },
- "ms": {
- "version": "2.1.3",
- "dev": true
- },
- "setprototypeof": {
- "version": "1.2.0",
- "dev": true
- }
- }
- },
- "serve-index": {
- "version": "1.9.1",
- "dev": true,
- "requires": {
- "accepts": "~1.3.4",
- "batch": "0.6.1",
- "debug": "2.6.9",
- "escape-html": "~1.0.3",
- "http-errors": "~1.6.2",
- "mime-types": "~2.1.17",
- "parseurl": "~1.3.2"
- }
- },
- "serve-static": {
- "version": "1.14.2",
- "dev": true,
- "requires": {
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.17.2"
- }
- },
- "set-value": {
- "version": "2.0.1",
- "dev": true,
- "requires": {
- "extend-shallow": "^2.0.1",
- "is-extendable": "^0.1.1",
- "is-plain-object": "^2.0.3",
- "split-string": "^3.0.1"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
- "setimmediate": {
- "version": "1.0.5",
- "dev": true
- },
- "setprototypeof": {
- "version": "1.1.0",
- "dev": true
- },
- "shebang-command": {
- "version": "2.0.0",
- "dev": true,
- "requires": {
- "shebang-regex": "^3.0.0"
- }
- },
- "shebang-regex": {
- "version": "3.0.0",
- "dev": true
- },
- "side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
- }
- },
- "snapdragon": {
- "version": "0.8.2",
- "dev": true,
- "requires": {
- "base": "^0.11.1",
- "debug": "^2.2.0",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "map-cache": "^0.2.2",
- "source-map": "^0.5.6",
- "source-map-resolve": "^0.5.0",
- "use": "^3.1.0"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "dev": true,
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- },
- "extend-shallow": {
- "version": "2.0.1",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
- "snapdragon-node": {
- "version": "2.1.1",
- "dev": true,
- "requires": {
- "define-property": "^1.0.0",
- "isobject": "^3.0.0",
- "snapdragon-util": "^3.0.1"
- },
- "dependencies": {
- "define-property": {
- "version": "1.0.0",
- "dev": true,
- "requires": {
- "is-descriptor": "^1.0.0"
- }
- },
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- }
- },
- "isobject": {
- "version": "3.0.1",
- "dev": true
- },
- "kind-of": {
- "version": "6.0.3",
- "dev": true
- }
- }
- },
- "snapdragon-util": {
- "version": "3.0.1",
- "dev": true,
- "requires": {
- "kind-of": "^3.2.0"
- }
- },
- "source-map": {
- "version": "0.5.7",
- "dev": true
- },
- "source-map-resolve": {
- "version": "0.5.3",
- "dev": true,
- "requires": {
- "atob": "^2.1.2",
- "decode-uri-component": "^0.2.0",
- "resolve-url": "^0.2.1",
- "source-map-url": "^0.4.0",
- "urix": "^0.1.0"
- }
- },
- "source-map-url": {
- "version": "0.4.0",
- "dev": true
- },
- "split-string": {
- "version": "3.1.0",
- "dev": true,
- "requires": {
- "extend-shallow": "^3.0.0"
- }
- },
- "sprintf-js": {
- "version": "1.1.2",
- "dev": true
- },
- "static-extend": {
- "version": "0.1.2",
- "dev": true,
- "requires": {
- "define-property": "^0.2.5",
- "object-copy": "^0.1.0"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "dev": true,
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- }
- }
- },
- "statuses": {
- "version": "1.5.0",
- "dev": true
- },
- "stream-browserify": {
- "version": "2.0.1",
- "dev": true,
- "requires": {
- "inherits": "~2.0.1",
- "readable-stream": "^2.0.2"
- }
- },
- "stream-buffers": {
- "version": "3.0.2",
- "dev": true
- },
- "stream-shift": {
- "version": "1.0.1",
- "dev": true
- },
- "string_decoder": {
- "version": "1.1.1",
- "dev": true,
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- },
- "string-template": {
- "version": "0.2.1",
- "dev": true
- },
- "strip-ansi": {
- "version": "3.0.1",
- "dev": true,
- "requires": {
- "ansi-regex": "^2.0.0"
- }
- },
- "strip-json-comments": {
- "version": "3.1.1",
- "dev": true
- },
- "supports-color": {
- "version": "5.5.0",
- "dev": true,
- "requires": {
- "has-flag": "^3.0.0"
- }
- },
- "supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "dev": true
- },
- "tar-fs": {
- "version": "2.1.1",
- "dev": true,
- "requires": {
- "chownr": "^1.1.1",
- "mkdirp-classic": "^0.5.2",
- "pump": "^3.0.0",
- "tar-stream": "^2.1.4"
- }
- },
- "tar-stream": {
- "version": "2.2.0",
- "dev": true,
- "requires": {
- "bl": "^4.0.3",
- "end-of-stream": "^1.4.1",
- "fs-constants": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^3.1.1"
- },
- "dependencies": {
- "readable-stream": {
- "version": "3.6.0",
- "dev": true,
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- }
- }
- },
- "text-table": {
- "version": "0.2.0",
- "dev": true
- },
- "through": {
- "version": "2.3.8",
- "dev": true
- },
- "timers-browserify": {
- "version": "2.0.2",
- "dev": true,
- "requires": {
- "setimmediate": "^1.0.4"
- }
- },
- "tiny-lr": {
- "version": "1.1.1",
- "dev": true,
- "requires": {
- "body": "^5.1.0",
- "debug": "^3.1.0",
- "faye-websocket": "~0.10.0",
- "livereload-js": "^2.3.0",
- "object-assign": "^4.1.0",
- "qs": "^6.4.0"
- },
- "dependencies": {
- "debug": {
- "version": "3.2.6",
- "dev": true,
- "requires": {
- "ms": "^2.1.1"
- }
- },
- "ms": {
- "version": "2.1.2",
- "dev": true
- }
- }
- },
- "to-object-path": {
- "version": "0.3.0",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- }
- },
- "to-regex": {
- "version": "3.0.2",
- "dev": true,
- "requires": {
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "regex-not": "^1.0.2",
- "safe-regex": "^1.1.0"
- }
- },
- "to-regex-range": {
- "version": "2.1.1",
- "dev": true,
- "requires": {
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1"
- },
- "dependencies": {
- "is-number": {
- "version": "3.0.0",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- }
- }
- }
- },
- "toidentifier": {
- "version": "1.0.1",
- "dev": true
- },
- "tr46": {
- "version": "0.0.3",
- "dev": true
- },
- "type-check": {
- "version": "0.4.0",
- "dev": true,
- "requires": {
- "prelude-ls": "^1.2.1"
- }
- },
- "type-fest": {
- "version": "0.20.2",
- "dev": true
- },
- "uglify-js": {
- "version": "3.10.0",
- "dev": true,
- "optional": true
- },
- "ultron": {
- "version": "1.1.1",
- "dev": true
- },
- "unbzip2-stream": {
- "version": "1.4.3",
- "dev": true,
- "requires": {
- "buffer": "^5.2.1",
- "through": "^2.3.8"
- }
- },
- "unc-path-regex": {
- "version": "0.1.2",
- "dev": true
- },
- "underscore.string": {
- "version": "3.3.6",
- "dev": true,
- "requires": {
- "sprintf-js": "^1.1.1",
- "util-deprecate": "^1.0.2"
- }
- },
- "union-value": {
- "version": "1.0.1",
- "dev": true,
- "requires": {
- "arr-union": "^3.1.0",
- "get-value": "^2.0.6",
- "is-extendable": "^0.1.1",
- "set-value": "^2.0.1"
- }
- },
- "unpipe": {
- "version": "1.0.0",
- "dev": true
- },
- "unset-value": {
- "version": "1.0.0",
- "dev": true,
- "requires": {
- "has-value": "^0.3.1",
- "isobject": "^3.0.0"
- },
- "dependencies": {
- "has-value": {
- "version": "0.3.1",
- "dev": true,
- "requires": {
- "get-value": "^2.0.3",
- "has-values": "^0.1.4",
- "isobject": "^2.0.0"
- },
- "dependencies": {
- "isobject": {
- "version": "2.1.0",
- "dev": true,
- "requires": {
- "isarray": "1.0.0"
- }
- }
- }
- },
- "has-values": {
- "version": "0.1.4",
- "dev": true
- },
- "isobject": {
- "version": "3.0.1",
- "dev": true
- }
- }
- },
- "uri-js": {
- "version": "4.4.1",
- "dev": true,
- "requires": {
- "punycode": "^2.1.0"
- },
- "dependencies": {
- "punycode": {
- "version": "2.1.1",
- "dev": true
- }
- }
- },
- "uri-path": {
- "version": "1.0.0",
- "dev": true
- },
- "urix": {
- "version": "0.1.0",
- "dev": true
- },
- "url": {
- "version": "0.11.0",
- "dev": true,
- "requires": {
- "punycode": "1.3.2",
- "querystring": "0.2.0"
- }
- },
- "use": {
- "version": "3.1.1",
- "dev": true
- },
- "util": {
- "version": "0.10.3",
- "dev": true,
- "requires": {
- "inherits": "2.0.1"
- },
- "dependencies": {
- "inherits": {
- "version": "2.0.1",
- "dev": true
- }
- }
- },
- "util-deprecate": {
- "version": "1.0.2",
- "dev": true
- },
- "utils-merge": {
- "version": "1.0.1",
- "dev": true
- },
- "v8-compile-cache": {
- "version": "2.3.0",
- "dev": true
- },
- "v8flags": {
- "version": "3.2.0",
- "dev": true,
- "requires": {
- "homedir-polyfill": "^1.0.1"
- }
- },
- "walk-sync": {
- "version": "0.3.1",
- "dev": true,
- "requires": {
- "ensure-posix-path": "^1.0.0",
- "matcher-collection": "^1.0.0"
- }
- },
- "webidl-conversions": {
- "version": "3.0.1",
- "dev": true
- },
- "websocket-driver": {
- "version": "0.7.4",
- "dev": true,
- "requires": {
- "http-parser-js": ">=0.5.1",
- "safe-buffer": ">=5.1.0",
- "websocket-extensions": ">=0.1.1"
- }
- },
- "websocket-extensions": {
- "version": "0.1.4",
- "dev": true
- },
- "websocket-stream": {
- "version": "5.5.2",
- "dev": true,
- "requires": {
- "duplexify": "^3.5.1",
- "inherits": "^2.0.1",
- "readable-stream": "^2.3.3",
- "safe-buffer": "^5.1.2",
- "ws": "^3.2.0",
- "xtend": "^4.0.0"
- }
- },
- "whatwg-url": {
- "version": "5.0.0",
- "dev": true,
- "requires": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
- "which": {
- "version": "1.3.1",
- "dev": true,
- "requires": {
- "isexe": "^2.0.0"
- }
- },
- "word-wrap": {
- "version": "1.2.3",
- "dev": true
- },
- "wordwrap": {
- "version": "1.0.0",
- "dev": true
- },
- "wrappy": {
- "version": "1.0.2",
- "dev": true
- },
- "ws": {
- "version": "3.3.3",
- "dev": true,
- "requires": {
- "async-limiter": "~1.0.0",
- "safe-buffer": "~5.1.0",
- "ultron": "~1.1.0"
- }
- },
- "xtend": {
- "version": "4.0.2",
- "dev": true
- },
- "yallist": {
- "version": "4.0.0",
- "dev": true
- },
- "yauzl": {
- "version": "2.10.0",
- "dev": true,
- "requires": {
- "buffer-crc32": "~0.2.3",
- "fd-slicer": "~1.1.0"
- }
- },
- "zip-stream": {
- "version": "4.1.0",
- "dev": true,
- "requires": {
- "archiver-utils": "^2.1.0",
- "compress-commons": "^4.1.0",
- "readable-stream": "^3.6.0"
- },
- "dependencies": {
- "readable-stream": {
- "version": "3.6.0",
- "dev": true,
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- }
- }
- }
}
}
diff --git a/package.json b/package.json
index 05458ac3..b1228eba 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "openseadragon",
- "version": "3.1.0",
+ "version": "4.1.0",
"description": "Provides a smooth, zoomable user interface for HTML/Javascript.",
"keywords": [
"image",
@@ -29,19 +29,20 @@
"url": "https://github.com/openseadragon/openseadragon.git"
},
"devDependencies": {
- "grunt": "^1.4.1",
- "grunt-contrib-clean": "^2.0.0",
+ "eslint-plugin-compat": "^4.1.2",
+ "grunt": "^1.6.1",
+ "grunt-contrib-clean": "^2.0.1",
"grunt-contrib-compress": "^2.0.0",
- "grunt-contrib-concat": "^2.0.0",
+ "grunt-contrib-concat": "^2.1.0",
"grunt-contrib-connect": "^3.0.0",
- "grunt-contrib-qunit": "^6.2.0",
+ "grunt-contrib-qunit": "^7.0.1",
"grunt-contrib-uglify": "^5.0.1",
"grunt-contrib-watch": "^1.1.0",
- "grunt-eslint": "^24.0.0",
+ "grunt-eslint": "^24.0.1",
"grunt-git-describe": "^2.4.4",
"grunt-istanbul": "^0.8.0",
"grunt-text-replace": "^0.4.0",
- "qunitjs": "2.4.1"
+ "qunit": "^2.19.4"
},
"scripts": {
"test": "grunt test",
diff --git a/src/button.js b/src/button.js
index efa9eec3..e6c525d7 100644
--- a/src/button.js
+++ b/src/button.js
@@ -2,7 +2,7 @@
* OpenSeadragon - Button
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
diff --git a/src/buttongroup.js b/src/buttongroup.js
index 9947641b..6cab6395 100644
--- a/src/buttongroup.js
+++ b/src/buttongroup.js
@@ -2,7 +2,7 @@
* OpenSeadragon - ButtonGroup
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -112,6 +112,17 @@ $.ButtonGroup = function( options ) {
/** @lends OpenSeadragon.ButtonGroup.prototype */
$.ButtonGroup.prototype = {
+ /**
+ * Adds the given button to this button group.
+ *
+ * @function
+ * @param {OpenSeadragon.Button} button
+ */
+ addButton: function( button ){
+ this.buttons.push(button);
+ this.element.appendChild(button.element);
+ },
+
/**
* TODO: Figure out why this is used on the public API and if a more useful
* api can be created.
diff --git a/src/control.js b/src/control.js
index c9670ecc..3cba9943 100644
--- a/src/control.js
+++ b/src/control.js
@@ -2,7 +2,7 @@
* OpenSeadragon - Control
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
diff --git a/src/controldock.js b/src/controldock.js
index 16078833..84b178f5 100644
--- a/src/controldock.js
+++ b/src/controldock.js
@@ -2,7 +2,7 @@
* OpenSeadragon - ControlDock
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
diff --git a/src/displayrectangle.js b/src/displayrectangle.js
index 21b478b1..58610058 100644
--- a/src/displayrectangle.js
+++ b/src/displayrectangle.js
@@ -2,7 +2,7 @@
* OpenSeadragon - DisplayRect
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
diff --git a/src/drawer.js b/src/drawer.js
index 9a3578f9..2aa2c3ad 100644
--- a/src/drawer.js
+++ b/src/drawer.js
@@ -2,7 +2,7 @@
* OpenSeadragon - Drawer
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
diff --git a/src/dzitilesource.js b/src/dzitilesource.js
index f19d11ab..57b9f5a3 100644
--- a/src/dzitilesource.js
+++ b/src/dzitilesource.js
@@ -2,7 +2,7 @@
* OpenSeadragon - DziTileSource
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
diff --git a/src/eventsource.js b/src/eventsource.js
index 9bc29704..94949f0f 100644
--- a/src/eventsource.js
+++ b/src/eventsource.js
@@ -2,7 +2,7 @@
* OpenSeadragon - EventSource
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -58,7 +58,7 @@ $.EventSource.prototype = {
/**
* Add an event handler to be triggered only once (or a given number of times)
- * for a given event.
+ * for a given event. It is not removable with removeHandler().
* @function
* @param {String} eventName - Name of event to register.
* @param {OpenSeadragon.EventHandler} handler - Function to call when event
@@ -67,8 +67,9 @@ $.EventSource.prototype = {
* to the handler.
* @param {Number} [times=1] - The number of times to handle the event
* before removing it.
+ * @param {Number} [priority=0] - Handler priority. By default, all priorities are 0. Higher number = priority.
*/
- addOnceHandler: function(eventName, handler, userData, times) {
+ addOnceHandler: function(eventName, handler, userData, times, priority) {
var self = this;
times = times || 1;
var count = 0;
@@ -77,9 +78,9 @@ $.EventSource.prototype = {
if (count === times) {
self.removeHandler(eventName, onceHandler);
}
- handler(event);
+ return handler(event);
};
- this.addHandler(eventName, onceHandler, userData);
+ this.addHandler(eventName, onceHandler, userData, priority);
},
/**
@@ -88,14 +89,22 @@ $.EventSource.prototype = {
* @param {String} eventName - Name of event to register.
* @param {OpenSeadragon.EventHandler} handler - Function to call when event is triggered.
* @param {Object} [userData=null] - Arbitrary object to be passed unchanged to the handler.
+ * @param {Number} [priority=0] - Handler priority. By default, all priorities are 0. Higher number = priority.
*/
- addHandler: function ( eventName, handler, userData ) {
+ addHandler: function ( eventName, handler, userData, priority ) {
var events = this.events[ eventName ];
if ( !events ) {
this.events[ eventName ] = events = [];
}
if ( handler && $.isFunction( handler ) ) {
- events[ events.length ] = { handler: handler, userData: userData || null };
+ var index = events.length,
+ event = { handler: handler, userData: userData || null, priority: priority || 0 };
+ events[ index ] = event;
+ while ( index > 0 && events[ index - 1 ].priority < events[ index ].priority ) {
+ events[ index ] = events[ index - 1 ];
+ events[ index - 1 ] = event;
+ index--;
+ }
}
},
@@ -156,7 +165,7 @@ $.EventSource.prototype = {
* @function
* @param {String} eventName - Name of event to get handlers for.
*/
- getHandler: function ( eventName ) {
+ getHandler: function ( eventName) {
var events = this.events[ eventName ];
if ( !events || !events.length ) {
return null;
@@ -186,15 +195,12 @@ $.EventSource.prototype = {
raiseEvent: function( eventName, eventArgs ) {
//uncomment if you want to get a log of all events
//$.console.log( eventName );
+
var handler = this.getHandler( eventName );
-
if ( handler ) {
- if ( !eventArgs ) {
- eventArgs = {};
- }
-
- handler( this, eventArgs );
+ return handler( this, eventArgs || {} );
}
+ return undefined;
}
};
diff --git a/src/fullscreen.js b/src/fullscreen.js
index d5d75f29..1b80464c 100644
--- a/src/fullscreen.js
+++ b/src/fullscreen.js
@@ -2,7 +2,7 @@
* OpenSeadragon - full-screen support functions
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -67,10 +67,14 @@
return document.fullscreenElement;
};
fullScreenApi.requestFullScreen = function( element ) {
- return element.requestFullscreen();
+ return element.requestFullscreen().catch(function (msg) {
+ $.console.error('Fullscreen request failed: ', msg);
+ });
};
fullScreenApi.exitFullScreen = function() {
- document.exitFullscreen();
+ document.exitFullscreen().catch(function (msg) {
+ $.console.error('Error while exiting fullscreen: ', msg);
+ });
};
fullScreenApi.fullScreenEventName = "fullscreenchange";
fullScreenApi.fullScreenErrorEventName = "fullscreenerror";
diff --git a/src/iiiftilesource.js b/src/iiiftilesource.js
index 08932b56..6db4e321 100644
--- a/src/iiiftilesource.js
+++ b/src/iiiftilesource.js
@@ -2,7 +2,7 @@
* OpenSeadragon - IIIFTileSource
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -141,6 +141,18 @@ $.IIIFTileSource = function( options ){
}
}
+ // Create an array with our exact resolution sizes if these have been supplied
+ if( this.sizes ) {
+ var sizeLength = this.sizes.length;
+ if ( (sizeLength === options.maxLevel) || (sizeLength === options.maxLevel + 1) ) {
+ this.levelSizes = this.sizes;
+ // Need to take into account that the list may or may not include the full resolution size
+ if( sizeLength === options.maxLevel ) {
+ this.levelSizes.push( {width: this.width, height: this.height} );
+ }
+ }
+ }
+
$.TileSource.apply( this, [ options ] );
};
@@ -333,7 +345,17 @@ $.extend( $.IIIFTileSource.prototype, $.TileSource.prototype, /** @lends OpenSea
}
}
- return $.TileSource.prototype.getNumTiles.call(this, level);
+ // Use supplied list of scaled resolution sizes if these exist
+ if( this.levelSizes ) {
+ var levelSize = this.levelSizes[level];
+ var x = Math.ceil( levelSize.width / this.getTileWidth(level) ),
+ y = Math.ceil( levelSize.height / this.getTileHeight(level) );
+ return new $.Point( x, y );
+ }
+ // Otherwise call default TileSource->getNumTiles() function
+ else {
+ return $.TileSource.prototype.getNumTiles.call(this, level);
+ }
},
@@ -348,6 +370,34 @@ $.extend( $.IIIFTileSource.prototype, $.TileSource.prototype, /** @lends OpenSea
return new $.Point(0, 0);
}
+ // Use supplied list of scaled resolution sizes if these exist
+ if( this.levelSizes ) {
+
+ var validPoint = point.x >= 0 && point.x <= 1 &&
+ point.y >= 0 && point.y <= 1 / this.aspectRatio;
+ $.console.assert(validPoint, "[TileSource.getTileAtPoint] must be called with a valid point.");
+
+ var widthScaled = this.levelSizes[level].width;
+ var pixelX = point.x * widthScaled;
+ var pixelY = point.y * widthScaled;
+
+ var x = Math.floor(pixelX / this.getTileWidth(level));
+ var y = Math.floor(pixelY / this.getTileHeight(level));
+
+ // When point.x == 1 or point.y == 1 / this.aspectRatio we want to
+ // return the last tile of the row/column
+ if (point.x >= 1) {
+ x = this.getNumTiles(level).x - 1;
+ }
+ var EPSILON = 1e-15;
+ if (point.y >= 1 / this.aspectRatio - EPSILON) {
+ y = this.getNumTiles(level).y - 1;
+ }
+
+ return new $.Point(x, y);
+ }
+
+ // Otherwise call default TileSource->getTileAtPoint() function
return $.TileSource.prototype.getTileAtPoint.call(this, level, point);
},
@@ -375,10 +425,9 @@ $.extend( $.IIIFTileSource.prototype, $.TileSource.prototype, /** @lends OpenSea
var IIIF_ROTATION = '0',
//## get the scale (level as a decimal)
scale = Math.pow( 0.5, this.maxLevel - level ),
-
//# image dimensions at this level
- levelWidth = Math.round( this.width * scale ),
- levelHeight = Math.round( this.height * scale ),
+ levelWidth,
+ levelHeight,
//## iiif region
tileWidth,
@@ -396,6 +445,17 @@ $.extend( $.IIIFTileSource.prototype, $.TileSource.prototype, /** @lends OpenSea
iiifQuality,
uri;
+ // Use supplied list of scaled resolution sizes if these exist
+ if( this.levelSizes ) {
+ levelWidth = this.levelSizes[level].width;
+ levelHeight = this.levelSizes[level].height;
+ }
+ // Otherwise calculate the sizes ourselves
+ else {
+ levelWidth = Math.ceil( this.width * scale );
+ levelHeight = Math.ceil( this.height * scale );
+ }
+
tileWidth = this.getTileWidth(level);
tileHeight = this.getTileHeight(level);
iiifTileSizeWidth = Math.round( tileWidth / scale );
@@ -426,8 +486,8 @@ $.extend( $.IIIFTileSource.prototype, $.TileSource.prototype, /** @lends OpenSea
} else {
iiifRegion = [ iiifTileX, iiifTileY, iiifTileW, iiifTileH ].join( ',' );
}
- iiifSizeW = Math.round( iiifTileW * scale );
- iiifSizeH = Math.round( iiifTileH * scale );
+ iiifSizeW = Math.min( tileWidth, levelWidth - (x * tileWidth) );
+ iiifSizeH = Math.min( tileHeight, levelHeight - (y * tileHeight) );
if ( this.version === 2 && iiifSizeW === this.width ) {
iiifSize = "full";
} else if ( this.version === 3 && iiifSizeW === this.width && iiifSizeH === this.height ) {
diff --git a/src/imageloader.js b/src/imageloader.js
index 91d33b50..e66bd820 100644
--- a/src/imageloader.js
+++ b/src/imageloader.js
@@ -2,7 +2,7 @@
* OpenSeadragon - ImageLoader
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -50,17 +50,19 @@
* @param {Function} [options.callback] - Called once image has been downloaded.
* @param {Function} [options.abort] - Called when this image job is aborted.
* @param {Number} [options.timeout] - The max number of milliseconds that this image job may take to complete.
+ * @param {Number} [options.tries] - Actual number of the current try.
*/
$.ImageJob = function(options) {
$.extend(true, this, {
timeout: $.DEFAULT_SETTINGS.timeout,
- jobId: null
+ jobId: null,
+ tries: 0
}, options);
/**
* Data object which will contain downloaded image data.
- * @member {Image|*} image data object, by default an Image object (depends on TileSource)
+ * @member {Image|*} data data object, by default an Image object (depends on TileSource)
* @memberof OpenSeadragon.ImageJob#
*/
this.data = null;
@@ -87,6 +89,8 @@ $.ImageJob.prototype = {
* @method
*/
start: function() {
+ this.tries++;
+
var self = this;
var selfAbort = this.abort;
@@ -138,6 +142,7 @@ $.ImageLoader = function(options) {
jobLimit: $.DEFAULT_SETTINGS.imageLoaderLimit,
timeout: $.DEFAULT_SETTINGS.timeout,
jobQueue: [],
+ failedTiles: [],
jobsInProgress: 0
}, options);
@@ -220,7 +225,8 @@ $.ImageLoader.prototype = {
};
/**
- * Cleans up ImageJob once completed.
+ * Cleans up ImageJob once completed. Restarts job after tileRetryDelay seconds if failed
+ * but max tileRetryMax times
* @method
* @private
* @param loader - ImageLoader used to start job.
@@ -228,6 +234,9 @@ $.ImageLoader.prototype = {
* @param callback - Called once cleanup is finished.
*/
function completeJob(loader, job, callback) {
+ if (job.errorMsg !== '' && (job.data === null || job.data === undefined) && job.tries < 1 + loader.tileRetryMax) {
+ loader.failedTiles.push(job);
+ }
var nextJob;
loader.jobsInProgress--;
@@ -238,6 +247,16 @@ function completeJob(loader, job, callback) {
loader.jobsInProgress++;
}
+ if (loader.tileRetryMax > 0 && loader.jobQueue.length === 0) {
+ if ((!loader.jobLimit || loader.jobsInProgress < loader.jobLimit) && loader.failedTiles.length > 0) {
+ nextJob = loader.failedTiles.shift();
+ setTimeout(function () {
+ nextJob.start();
+ }, loader.tileRetryDelay);
+ loader.jobsInProgress++;
+ }
+ }
+
callback(job.data, job.errorMsg, job.request);
}
diff --git a/src/imagetilesource.js b/src/imagetilesource.js
index 5ff3cce6..e3b7a43b 100644
--- a/src/imagetilesource.js
+++ b/src/imagetilesource.js
@@ -2,7 +2,7 @@
* OpenSeadragon - ImageTileSource
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
diff --git a/src/legacytilesource.js b/src/legacytilesource.js
index 3b7d8f38..e80b931f 100644
--- a/src/legacytilesource.js
+++ b/src/legacytilesource.js
@@ -2,7 +2,7 @@
* OpenSeadragon - LegacyTileSource
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
diff --git a/src/mousetracker.js b/src/mousetracker.js
index 1f1f9919..0a1fb810 100644
--- a/src/mousetracker.js
+++ b/src/mousetracker.js
@@ -2,7 +2,7 @@
* OpenSeadragon - MouseTracker
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
diff --git a/src/navigator.js b/src/navigator.js
index e55b9c52..0665b58d 100644
--- a/src/navigator.js
+++ b/src/navigator.js
@@ -2,7 +2,7 @@
* OpenSeadragon - Navigator
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -125,7 +125,8 @@ $.Navigator = function( options ){
immediateRender: true,
blendTime: 0,
animationTime: options.animationTime,
- autoResize: options.autoResize,
+ // disable autoResize since resize behavior is implemented differently by the navigator
+ autoResize: false,
// prevent resizing the navigator from adding unwanted space around the image
minZoomImageRatio: 1.0,
background: options.background,
@@ -183,6 +184,7 @@ $.Navigator = function( options ){
style.styleFloat = 'left'; //IE
style.zIndex = 999999999;
style.cursor = 'default';
+ style.boxSizing = 'content-box';
}( this.displayRegion.style, this.borderWidth ));
$.setElementPointerEventsNone( this.displayRegion );
$.setElementTouchActionNone( this.displayRegion );
@@ -222,19 +224,19 @@ $.Navigator = function( options ){
this.displayRegionContainer.appendChild(this.displayRegion);
this.element.getElementsByTagName('div')[0].appendChild(this.displayRegionContainer);
- function rotate(degrees) {
+ function rotate(degrees, immediately) {
_setTransformRotate(_this.displayRegionContainer, degrees);
_setTransformRotate(_this.displayRegion, -degrees);
- _this.viewport.setRotation(degrees);
+ _this.viewport.setRotation(degrees, immediately);
}
if (options.navigatorRotate) {
var degrees = options.viewer.viewport ?
options.viewer.viewport.getRotation() :
options.viewer.degrees || 0;
- rotate(degrees);
+ rotate(degrees, true);
options.viewer.addHandler("rotate", function (args) {
- rotate(args.degrees);
+ rotate(args.degrees, args.immediately);
});
}
@@ -322,6 +324,7 @@ $.extend( $.Navigator.prototype, $.EventSource.prototype, $.Viewer.prototype, /*
this.width = width;
this.element.style.width = typeof (width) === "number" ? (width + 'px') : width;
this._resizeWithViewer = false;
+ this.updateSize();
},
/**
@@ -332,6 +335,7 @@ $.extend( $.Navigator.prototype, $.EventSource.prototype, $.Viewer.prototype, /*
this.height = height;
this.element.style.height = typeof (height) === "number" ? (height + 'px') : height;
this._resizeWithViewer = false;
+ this.updateSize();
},
/**
@@ -393,15 +397,20 @@ $.extend( $.Navigator.prototype, $.EventSource.prototype, $.Viewer.prototype, /*
bottomright = this.viewport.pixelFromPointNoRotate(bounds.getBottomRight(), false)
.minus( this.totalBorderWidths );
+ if (!this.navigatorRotate) {
+ var degrees = viewport.getRotation(true);
+ _setTransformRotate(this.displayRegion, -degrees);
+ }
+
//update style for navigator-box
var style = this.displayRegion.style;
style.display = this.world.getItemCount() ? 'block' : 'none';
- style.top = Math.round( topleft.y ) + 'px';
- style.left = Math.round( topleft.x ) + 'px';
+ style.top = topleft.y.toFixed(2) + "px";
+ style.left = topleft.x.toFixed(2) + "px";
- var width = Math.abs( topleft.x - bottomright.x );
- var height = Math.abs( topleft.y - bottomright.y );
+ var width = bottomright.x - topleft.x;
+ var height = bottomright.y - topleft.y;
// make sure width and height are non-negative so IE doesn't throw
style.width = Math.round( Math.max( width, 0 ) ) + 'px';
style.height = Math.round( Math.max( height, 0 ) ) + 'px';
diff --git a/src/openseadragon.js b/src/openseadragon.js
index a032aa04..bac85d3f 100644
--- a/src/openseadragon.js
+++ b/src/openseadragon.js
@@ -2,7 +2,7 @@
* OpenSeadragon
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -60,7 +60,7 @@
/*
* Portions of this source file taken from mattsnider.com:
*
- * Copyright (c) 2006-2022 Matt Snider
+ * Copyright (c) 2006-2013 Matt Snider
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -499,6 +499,12 @@
* @property {Number} [timeout=30000]
* The max number of milliseconds that an image job may take to complete.
*
+ * @property {Number} [tileRetryMax=0]
+ * The max number of retries when a tile download fails. By default it's 0, so retries are disabled.
+ *
+ * @property {Number} [tileRetryDelay=2500]
+ * Milliseconds to wait after each tile retry if tileRetryMax is set.
+ *
* @property {Boolean} [useCanvas=true]
* Set to false to not use an HTML canvas element for image rendering even if canvas is supported.
*
@@ -563,50 +569,50 @@
* viewing the first image and the 'next' button will wrap to the first
* image when viewing the last image.
*
- * @property {String} zoomInButton
- * Set the id of the custom 'Zoom in' button to use.
+ *@property {String|Element} zoomInButton
+ * Set the id or element of the custom 'Zoom in' button to use.
* This is useful to have a custom button anywhere in the web page.
* To only change the button images, consider using
* {@link OpenSeadragon.Options.navImages}
*
- * @property {String} zoomOutButton
- * Set the id of the custom 'Zoom out' button to use.
+ * @property {String|Element} zoomOutButton
+ * Set the id or element of the custom 'Zoom out' button to use.
* This is useful to have a custom button anywhere in the web page.
* To only change the button images, consider using
* {@link OpenSeadragon.Options.navImages}
*
- * @property {String} homeButton
- * Set the id of the custom 'Go home' button to use.
+ * @property {String|Element} homeButton
+ * Set the id or element of the custom 'Go home' button to use.
* This is useful to have a custom button anywhere in the web page.
* To only change the button images, consider using
* {@link OpenSeadragon.Options.navImages}
*
- * @property {String} fullPageButton
- * Set the id of the custom 'Toggle full page' button to use.
+ * @property {String|Element} fullPageButton
+ * Set the id or element of the custom 'Toggle full page' button to use.
* This is useful to have a custom button anywhere in the web page.
* To only change the button images, consider using
* {@link OpenSeadragon.Options.navImages}
*
- * @property {String} rotateLeftButton
- * Set the id of the custom 'Rotate left' button to use.
+ * @property {String|Element} rotateLeftButton
+ * Set the id or element of the custom 'Rotate left' button to use.
* This is useful to have a custom button anywhere in the web page.
* To only change the button images, consider using
* {@link OpenSeadragon.Options.navImages}
*
- * @property {String} rotateRightButton
- * Set the id of the custom 'Rotate right' button to use.
+ * @property {String|Element} rotateRightButton
+ * Set the id or element of the custom 'Rotate right' button to use.
* This is useful to have a custom button anywhere in the web page.
* To only change the button images, consider using
* {@link OpenSeadragon.Options.navImages}
*
- * @property {String} previousButton
- * Set the id of the custom 'Previous page' button to use.
+ * @property {String|Element} previousButton
+ * Set the id or element of the custom 'Previous page' button to use.
* This is useful to have a custom button anywhere in the web page.
* To only change the button images, consider using
* {@link OpenSeadragon.Options.navImages}
*
- * @property {String} nextButton
- * Set the id of the custom 'Next page' button to use.
+ * @property {String|Element} nextButton
+ * Set the id or element of the custom 'Next page' button to use.
* This is useful to have a custom button anywhere in the web page.
* To only change the button images, consider using
* {@link OpenSeadragon.Options.navImages}
@@ -830,14 +836,16 @@ function OpenSeadragon( options ){
* @private
*/
var class2type = {
- '[object Boolean]': 'boolean',
- '[object Number]': 'number',
- '[object String]': 'string',
- '[object Function]': 'function',
- '[object Array]': 'array',
- '[object Date]': 'date',
- '[object RegExp]': 'regexp',
- '[object Object]': 'object'
+ '[object Boolean]': 'boolean',
+ '[object Number]': 'number',
+ '[object String]': 'string',
+ '[object Function]': 'function',
+ '[object AsyncFunction]': 'function',
+ '[object Promise]': 'promise',
+ '[object Array]': 'array',
+ '[object Date]': 'date',
+ '[object RegExp]': 'regexp',
+ '[object Object]': 'object'
},
// Save a reference to some core methods
toString = Object.prototype.toString,
@@ -853,7 +861,6 @@ function OpenSeadragon( options ){
return $.type(obj) === "function";
};
-
/**
* Taken from jQuery 1.6.1
* @function isArray
@@ -1359,6 +1366,8 @@ function OpenSeadragon( options ){
maxImageCacheCount: 200,
timeout: 30000,
useCanvas: true, // Use canvas element for drawing if available
+ tileRetryMax: 0,
+ tileRetryDelay: 2500,
//INTERFACE RESOURCE SETTINGS
prefixUrl: "/images/",
@@ -2247,25 +2256,12 @@ function OpenSeadragon( options ){
event.stopPropagation();
},
-
- /**
- * Similar to OpenSeadragon.delegate, but it does not immediately call
- * the method on the object, returning a function which can be called
- * repeatedly to delegate the method. It also allows additional arguments
- * to be passed during construction which will be added during each
- * invocation, and each invocation can add additional arguments as well.
- *
- * @function
- * @param {Object} object
- * @param {Function} method
- * @param [args] any additional arguments are passed as arguments to the
- * created callback
- * @returns {Function}
- */
+ // Deprecated
createCallback: function( object, method ) {
//TODO: This pattern is painful to use and debug. It's much cleaner
// to use pinning plus anonymous functions. Get rid of this
// pattern!
+ console.error('The createCallback function is deprecated and will be removed in future versions. Please use alternativeFunction instead.');
var initialArgs = [],
i;
for ( i = 2; i < arguments.length; i++ ) {
diff --git a/src/osmtilesource.js b/src/osmtilesource.js
index 9cb7ef63..43e525ab 100644
--- a/src/osmtilesource.js
+++ b/src/osmtilesource.js
@@ -2,7 +2,7 @@
* OpenSeadragon - OsmTileSource
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
diff --git a/src/overlay.js b/src/overlay.js
index fa22494d..bc25a051 100644
--- a/src/overlay.js
+++ b/src/overlay.js
@@ -2,7 +2,7 @@
* OpenSeadragon - Overlay
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
diff --git a/src/point.js b/src/point.js
index 6ec883b1..8df11d63 100644
--- a/src/point.js
+++ b/src/point.js
@@ -2,7 +2,7 @@
* OpenSeadragon - Point
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
diff --git a/src/profiler.js b/src/profiler.js
index df39b75a..d0ffc2b2 100644
--- a/src/profiler.js
+++ b/src/profiler.js
@@ -2,7 +2,7 @@
* OpenSeadragon - Profiler
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
diff --git a/src/rectangle.js b/src/rectangle.js
index 0afef290..fdeab18f 100644
--- a/src/rectangle.js
+++ b/src/rectangle.js
@@ -2,7 +2,7 @@
* OpenSeadragon - Rect
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
diff --git a/src/referencestrip.js b/src/referencestrip.js
index c5d58c75..ab21da50 100644
--- a/src/referencestrip.js
+++ b/src/referencestrip.js
@@ -2,7 +2,7 @@
* OpenSeadragon - ReferenceStrip
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -300,7 +300,8 @@ function onStripClick( event ) {
var page;
if ( 'horizontal' === this.scroll ) {
- page = Math.floor(event.position.x / this.panelWidth);
+ // +4px fix to solve problem with precision on thumbnail selection if there is a lot of them
+ page = Math.floor(event.position.x / (this.panelWidth + 4));
} else {
page = Math.floor(event.position.y / this.panelHeight);
}
diff --git a/src/spring.js b/src/spring.js
index ce5ccd6b..12592889 100644
--- a/src/spring.js
+++ b/src/spring.js
@@ -2,7 +2,7 @@
* OpenSeadragon - Spring
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
diff --git a/src/strings.js b/src/strings.js
index c7c7315a..e423bef9 100644
--- a/src/strings.js
+++ b/src/strings.js
@@ -2,7 +2,7 @@
* OpenSeadragon - getString/setString
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
diff --git a/src/tile.js b/src/tile.js
index 33e0cee4..201034fe 100644
--- a/src/tile.js
+++ b/src/tile.js
@@ -2,7 +2,7 @@
* OpenSeadragon - Tile
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -44,7 +44,7 @@
* coordinates.
* @param {Boolean} exists Is this tile a part of a sparse image? ( Also has
* this tile failed to load? )
- * @param {String|() => String} url The URL of this tile's image or a function that returns a url.
+ * @param {String|Function} url The URL of this tile's image or a function that returns a url.
* @param {CanvasRenderingContext2D} context2D The context2D of this tile if it
* is provided directly by the tile source.
* @param {Boolean} loadWithAjax Whether this tile image should be loaded with an AJAX request .
@@ -98,7 +98,7 @@ $.Tile = function(level, x, y, bounds, exists, url, context2D, loadWithAjax, aja
* Private property to hold string url or url retriever function.
* Consumers should access via Tile.getUrl()
* @private
- * @member {String|() => String} url
+ * @member {String|Function} url
* @memberof OpenSeadragon.Tile#
*/
this._url = url;
diff --git a/src/tilecache.js b/src/tilecache.js
index cc15a74e..d890b8a8 100644
--- a/src/tilecache.js
+++ b/src/tilecache.js
@@ -2,7 +2,7 @@
* OpenSeadragon - TileCache
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
diff --git a/src/tiledimage.js b/src/tiledimage.js
index cbcdfc92..6ad0cf66 100644
--- a/src/tiledimage.js
+++ b/src/tiledimage.js
@@ -2,7 +2,7 @@
* OpenSeadragon - TiledImage
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -147,6 +147,9 @@ $.TiledImage = function( options ) {
var degrees = options.degrees || 0;
delete options.degrees;
+ var ajaxHeaders = options.ajaxHeaders;
+ delete options.ajaxHeaders;
+
$.extend( true, this, {
//internal state properties
@@ -238,6 +241,9 @@ $.TiledImage = function( options ) {
tiledImage: _this
}, args));
};
+
+ this._ownAjaxHeaders = {};
+ this.setAjaxHeaders(ajaxHeaders, false);
};
$.extend($.TiledImage.prototype, $.EventSource.prototype, /** @lends OpenSeadragon.TiledImage.prototype */{
@@ -1003,6 +1009,90 @@ $.extend($.TiledImage.prototype, $.EventSource.prototype, /** @lends OpenSeadrag
});
},
+ /**
+ * Update headers to include when making AJAX requests.
+ *
+ * Unless `propagate` is set to false (which is likely only useful in rare circumstances),
+ * the updated headers are propagated to all tiles and queued image loader jobs.
+ *
+ * Note that the rules for merging headers still apply, i.e. headers returned by
+ * {@link OpenSeadragon.TileSource#getTileAjaxHeaders} take precedence over
+ * the headers here in the tiled image (`TiledImage.ajaxHeaders`).
+ *
+ * @function
+ * @param {Object} ajaxHeaders Updated AJAX headers, which will be merged over any headers specified in {@link OpenSeadragon.Options}.
+ * @param {Boolean} [propagate=true] Whether to propagate updated headers to existing tiles and queued image loader jobs.
+ */
+ setAjaxHeaders: function(ajaxHeaders, propagate) {
+ if (ajaxHeaders === null) {
+ ajaxHeaders = {};
+ }
+ if (!$.isPlainObject(ajaxHeaders)) {
+ console.error('[TiledImage.setAjaxHeaders] Ignoring invalid headers, must be a plain object');
+ return;
+ }
+
+ this._ownAjaxHeaders = ajaxHeaders;
+ this._updateAjaxHeaders(propagate);
+ },
+
+ /**
+ * Update headers to include when making AJAX requests.
+ *
+ * This function has the same effect as calling {@link OpenSeadragon.TiledImage#setAjaxHeaders},
+ * except that the headers for this tiled image do not change. This is especially useful
+ * for propagating updated headers from {@link OpenSeadragon.TileSource#getTileAjaxHeaders}
+ * to existing tiles.
+ *
+ * @private
+ * @function
+ * @param {Boolean} [propagate=true] Whether to propagate updated headers to existing tiles and queued image loader jobs.
+ */
+ _updateAjaxHeaders: function(propagate) {
+ if (propagate === undefined) {
+ propagate = true;
+ }
+
+ // merge with viewer's headers
+ if ($.isPlainObject(this.viewer.ajaxHeaders)) {
+ this.ajaxHeaders = $.extend({}, this.viewer.ajaxHeaders, this._ownAjaxHeaders);
+ } else {
+ this.ajaxHeaders = this._ownAjaxHeaders;
+ }
+
+ // propagate header updates to all tiles and queued image loader jobs
+ if (propagate) {
+ var numTiles, xMod, yMod, tile;
+
+ for (var level in this.tilesMatrix) {
+ numTiles = this.source.getNumTiles(level);
+
+ for (var x in this.tilesMatrix[level]) {
+ xMod = ( numTiles.x + ( x % numTiles.x ) ) % numTiles.x;
+
+ for (var y in this.tilesMatrix[level][x]) {
+ yMod = ( numTiles.y + ( y % numTiles.y ) ) % numTiles.y;
+ tile = this.tilesMatrix[level][x][y];
+
+ tile.loadWithAjax = this.loadTilesWithAjax;
+ if (tile.loadWithAjax) {
+ var tileAjaxHeaders = this.source.getTileAjaxHeaders( level, xMod, yMod );
+ tile.ajaxHeaders = $.extend({}, this.ajaxHeaders, tileAjaxHeaders);
+ } else {
+ tile.ajaxHeaders = null;
+ }
+ }
+ }
+ }
+
+ for (var i = 0; i < this._imageLoader.jobQueue.length; i++) {
+ var job = this._imageLoader.jobQueue[i];
+ job.loadWithAjax = job.tile.loadWithAjax;
+ job.ajaxHeaders = job.tile.loadWithAjax ? job.tile.ajaxHeaders : null;
+ }
+ }
+ },
+
// private
_setScale: function(scale, immediately) {
var sameTarget = (this._scaleSpring.target.value === scale);
@@ -1621,6 +1711,8 @@ $.extend($.TiledImage.prototype, $.EventSource.prototype, /** @lends OpenSeadrag
tile.loading = false;
tile.exists = false;
return;
+ } else {
+ tile.exists = true;
}
if ( time < this.lastResetTime ) {
@@ -1656,9 +1748,14 @@ $.extend($.TiledImage.prototype, $.EventSource.prototype, /** @lends OpenSeadrag
*/
_setTileLoaded: function(tile, data, cutoff, tileRequest) {
var increment = 0,
+ eventFinished = false,
_this = this;
function getCompletionCallback() {
+ if (eventFinished) {
+ $.console.error("Event 'tile-loaded' argument getCompletionCallback must be called synchronously. " +
+ "Its return value should be called asynchronously.");
+ }
increment++;
return completionCallback;
}
@@ -1690,7 +1787,7 @@ $.extend($.TiledImage.prototype, $.EventSource.prototype, /** @lends OpenSeadrag
* @event tile-loaded
* @memberof OpenSeadragon.Viewer
* @type {object}
- * @property {Image || *} image - The image (data) of the tile. Deprecated.
+ * @property {Image|*} image - The image (data) of the tile. Deprecated.
* @property {*} data image data, the data sent to ImageJob.prototype.finish(), by default an Image object
* @property {OpenSeadragon.TiledImage} tiledImage - The tiled image of the loaded tile.
* @property {OpenSeadragon.Tile} tile - The tile which has been loaded.
@@ -1700,6 +1797,8 @@ $.extend($.TiledImage.prototype, $.EventSource.prototype, /** @lends OpenSeadrag
* marked as entirely loaded when the callback has been called once for each
* call to getCompletionCallback.
*/
+
+ var fallbackCompletion = getCompletionCallback();
this.viewer.raiseEvent("tile-loaded", {
tile: tile,
tiledImage: this,
@@ -1711,8 +1810,9 @@ $.extend($.TiledImage.prototype, $.EventSource.prototype, /** @lends OpenSeadrag
data: data,
getCompletionCallback: getCompletionCallback
});
+ eventFinished = true;
// In case the completion callback is never called, we at least force it once.
- getCompletionCallback()();
+ fallbackCompletion();
},
/**
@@ -1864,7 +1964,8 @@ $.extend($.TiledImage.prototype, $.EventSource.prototype, /** @lends OpenSeadrag
if (lastDrawn.length > 1 &&
imageZoom > this.smoothTileEdgesMinZoom &&
!this.iOSDevice &&
- this.getRotation(true) % 360 === 0 && // TODO: support tile edge smoothing with tiled image rotation.
+ this.getRotation(true) % 360 === 0 && // TODO: support tile edge smoothing with tiled image rotation (viewport rotation is not a problem).
+ this._drawer.viewer.viewport.getFlip() === false && // TODO: support tile edge smoothing with viewport flip (tiled image flip is not a problem).
$.supportsCanvas && this.viewer.useCanvas) {
// When zoomed in a lot (>100%) the tile edges are visible.
// So we have to composite them at ~100% and scale them up together.
@@ -1954,6 +2055,9 @@ $.extend($.TiledImage.prototype, $.EventSource.prototype, /** @lends OpenSeadrag
if (sketchScale) {
clipPoint = clipPoint.times(sketchScale);
}
+ if (sketchTranslate) {
+ clipPoint = clipPoint.plus(sketchTranslate);
+ }
return clipPoint;
});
});
diff --git a/src/tilesource.js b/src/tilesource.js
index 7875d23a..fefa0098 100644
--- a/src/tilesource.js
+++ b/src/tilesource.js
@@ -2,7 +2,7 @@
* OpenSeadragon - TileSource
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -618,7 +618,7 @@ $.TileSource.prototype = {
* @param {Number} level
* @param {Number} x
* @param {Number} y
- * @returns {String|() => string} url - A string for the url or a function that returns a url string.
+ * @returns {String|Function} url - A string for the url or a function that returns a url string.
* @throws {Error}
*/
getTileUrl: function( level, x, y ) {
@@ -663,6 +663,11 @@ $.TileSource.prototype = {
* The headers returned here will override headers specified at the Viewer or TiledImage level.
* Specifying a falsy value for a header will clear its existing value set at the Viewer or
* TiledImage level (if any).
+ *
+ * Note that the headers of existing tiles don't automatically change when this function
+ * returns updated headers. To do that, you need to call {@link OpenSeadragon.Viewer#setAjaxHeaders}
+ * and propagate the changes.
+ *
* @function
* @param {Number} level
* @param {Number} x
@@ -932,7 +937,7 @@ function processResponse( xhr ){
throw new Error( $.getString( "Errors.Status", status, statusText ) );
}
- if( responseText.match(/\s*<.*/) ){
+ if( responseText.match(/^\s*<.*/) ){
try{
data = ( xhr.responseXML && xhr.responseXML.documentElement ) ?
xhr.responseXML :
diff --git a/src/tilesourcecollection.js b/src/tilesourcecollection.js
index e1be695b..e1483184 100644
--- a/src/tilesourcecollection.js
+++ b/src/tilesourcecollection.js
@@ -2,7 +2,7 @@
* OpenSeadragon - TileSourceCollection
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
diff --git a/src/tmstilesource.js b/src/tmstilesource.js
index f6c8fbef..b6deeb03 100644
--- a/src/tmstilesource.js
+++ b/src/tmstilesource.js
@@ -2,7 +2,7 @@
* OpenSeadragon - TmsTileSource
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
diff --git a/src/viewer.js b/src/viewer.js
index 18bd1191..2d40b807 100644
--- a/src/viewer.js
+++ b/src/viewer.js
@@ -2,7 +2,7 @@
* OpenSeadragon - Viewer
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -204,6 +204,8 @@ $.Viewer = function( options ) {
prevContainerSize: null,
animating: false,
forceRedraw: false,
+ needsResize: false,
+ forceResize: false,
mouseInside: false,
group: null,
// whether we should be continuously zooming
@@ -306,7 +308,9 @@ $.Viewer = function( options ) {
nonPrimaryPressHandler: $.delegate( this, onCanvasNonPrimaryPress ),
nonPrimaryReleaseHandler: $.delegate( this, onCanvasNonPrimaryRelease ),
scrollHandler: $.delegate( this, onCanvasScroll ),
- pinchHandler: $.delegate( this, onCanvasPinch )
+ pinchHandler: $.delegate( this, onCanvasPinch ),
+ focusHandler: $.delegate( this, onCanvasFocus ),
+ blurHandler: $.delegate( this, onCanvasBlur ),
});
this.outerTracker = new $.MouseTracker({
@@ -330,6 +334,17 @@ $.Viewer = function( options ) {
THIS[ this.hash ].prevContainerSize = _getSafeElemSize( this.container );
+ if(window.ResizeObserver){
+ this._autoResizePolling = false;
+ this._resizeObserver = new ResizeObserver(function(){
+ THIS[_this.hash].needsResize = true;
+ });
+
+ this._resizeObserver.observe(this.container, {});
+ } else {
+ this._autoResizePolling = true;
+ }
+
// Create the world
this.world = new $.World({
viewer: this
@@ -395,7 +410,9 @@ $.Viewer = function( options ) {
// Create the image loader
this.imageLoader = new $.ImageLoader({
jobLimit: this.imageLoaderLimit,
- timeout: options.timeout
+ timeout: options.timeout,
+ tileRetryMax: this.tileRetryMax,
+ tileRetryDelay: this.tileRetryDelay
});
// Create the tile cache
@@ -788,6 +805,9 @@ $.extend( $.Viewer.prototype, $.EventSource.prototype, $.ControlDock.prototype,
//TODO: implement this...
//this.unbindSequenceControls()
//this.unbindStandardControls()
+ if (this._resizeObserver){
+ this._resizeObserver.disconnect();
+ }
if (this.referenceStrip) {
this.referenceStrip.destroy();
@@ -948,7 +968,7 @@ $.extend( $.Viewer.prototype, $.EventSource.prototype, $.ControlDock.prototype,
* Turns debugging mode on or off for this viewer.
*
* @function
- * @param {Boolean} true to turn debug on, false to turn debug off.
+ * @param {Boolean} debugMode true to turn debug on, false to turn debug off.
*/
setDebugMode: function(debugMode){
@@ -960,6 +980,63 @@ $.extend( $.Viewer.prototype, $.EventSource.prototype, $.ControlDock.prototype,
this.forceRedraw();
},
+ /**
+ * Update headers to include when making AJAX requests.
+ *
+ * Unless `propagate` is set to false (which is likely only useful in rare circumstances),
+ * the updated headers are propagated to all tiled images, each of which will subsequently
+ * propagate the changed headers to all their tiles.
+ * If applicable, the headers of the viewer's navigator and reference strip will also be updated.
+ *
+ * Note that the rules for merging headers still apply, i.e. headers returned by
+ * {@link OpenSeadragon.TileSource#getTileAjaxHeaders} take precedence over
+ * `TiledImage.ajaxHeaders`, which take precedence over the headers here in the viewer.
+ *
+ * @function
+ * @param {Object} ajaxHeaders Updated AJAX headers.
+ * @param {Boolean} [propagate=true] Whether to propagate updated headers to tiled images, etc.
+ */
+ setAjaxHeaders: function(ajaxHeaders, propagate) {
+ if (ajaxHeaders === null) {
+ ajaxHeaders = {};
+ }
+ if (!$.isPlainObject(ajaxHeaders)) {
+ console.error('[Viewer.setAjaxHeaders] Ignoring invalid headers, must be a plain object');
+ return;
+ }
+ if (propagate === undefined) {
+ propagate = true;
+ }
+
+ this.ajaxHeaders = ajaxHeaders;
+
+ if (propagate) {
+ for (var i = 0; i < this.world.getItemCount(); i++) {
+ this.world.getItemAt(i)._updateAjaxHeaders(true);
+ }
+
+ if (this.navigator) {
+ this.navigator.setAjaxHeaders(this.ajaxHeaders, true);
+ }
+
+ if (this.referenceStrip && this.referenceStrip.miniViewers) {
+ for (var key in this.referenceStrip.miniViewers) {
+ this.referenceStrip.miniViewers[key].setAjaxHeaders(this.ajaxHeaders, true);
+ }
+ }
+ }
+ },
+
+ /**
+ * Adds the given button to this viewer.
+ *
+ * @function
+ * @param {OpenSeadragon.Button} button
+ */
+ addButton: function( button ){
+ this.buttonGroup.addButton(button);
+ },
+
/**
* @function
* @returns {Boolean}
@@ -1374,7 +1451,6 @@ $.extend( $.Viewer.prototype, $.EventSource.prototype, $.ControlDock.prototype,
* A set of headers to include when making tile AJAX requests.
* Note that these headers will be merged over any headers specified in {@link OpenSeadragon.Options}.
* Specifying a falsy value for a header will clear its existing value set at the Viewer level (if any).
- * requests.
* @param {Function} [options.success] A function that gets called when the image is
* successfully added. It's passed the event object which contains a single property:
* "item", which is the resulting instance of TiledImage.
@@ -1422,10 +1498,8 @@ $.extend( $.Viewer.prototype, $.EventSource.prototype, $.ControlDock.prototype,
if (options.loadTilesWithAjax === undefined) {
options.loadTilesWithAjax = this.loadTilesWithAjax;
}
- if (options.ajaxHeaders === undefined || options.ajaxHeaders === null) {
- options.ajaxHeaders = this.ajaxHeaders;
- } else if ($.isPlainObject(options.ajaxHeaders) && $.isPlainObject(this.ajaxHeaders)) {
- options.ajaxHeaders = $.extend({}, this.ajaxHeaders, options.ajaxHeaders);
+ if (!$.isPlainObject(options.ajaxHeaders)) {
+ options.ajaxHeaders = {};
}
var myQueueItem = {
@@ -1682,6 +1756,14 @@ $.extend( $.Viewer.prototype, $.EventSource.prototype, $.ControlDock.prototype,
return this;
},
+ /**
+ * Force the viewer to reset its size to match its container.
+ */
+ forceResize: function() {
+ THIS[this.hash].needsResize = true;
+ THIS[this.hash].forceResize = true;
+ },
+
/**
* @function
* @returns {OpenSeadragon.Viewer} Chainable.
@@ -2733,7 +2815,7 @@ function onCanvasKeyDown( event ) {
if ( !canvasKeyDownEventArgs.preventDefaultAction && !event.ctrl && !event.alt && !event.meta ) {
switch( event.keyCode ){
- case 38://up arrow
+ case 38://up arrow/shift uparrow
if (!canvasKeyDownEventArgs.preventVerticalPan) {
if ( event.shift ) {
this.viewport.zoomBy(1.1);
@@ -2744,7 +2826,7 @@ function onCanvasKeyDown( event ) {
}
event.preventDefault = true;
break;
- case 40://down arrow
+ case 40://down arrow/shift downarrow
if (!canvasKeyDownEventArgs.preventVerticalPan) {
if ( event.shift ) {
this.viewport.zoomBy(0.9);
@@ -2769,35 +2851,12 @@ function onCanvasKeyDown( event ) {
}
event.preventDefault = true;
break;
- default:
- //console.log( 'navigator keycode %s', event.keyCode );
- event.preventDefault = false;
- break;
- }
- } else {
- event.preventDefault = false;
- }
-}
-function onCanvasKeyPress( event ) {
- var canvasKeyPressEventArgs = {
- originalEvent: event.originalEvent,
- preventDefaultAction: false,
- preventVerticalPan: event.preventVerticalPan || !this.panVertical,
- preventHorizontalPan: event.preventHorizontalPan || !this.panHorizontal
- };
-
- // This event is documented in onCanvasKeyDown
- this.raiseEvent('canvas-key', canvasKeyPressEventArgs);
-
- if ( !canvasKeyPressEventArgs.preventDefaultAction && !event.ctrl && !event.alt && !event.meta ) {
- switch( event.keyCode ){
- case 43://=|+
- case 61://=|+
+ case 187://=|+
this.viewport.zoomBy(1.1);
this.viewport.applyConstraints();
event.preventDefault = true;
break;
- case 45://-|_
+ case 189://-|_
this.viewport.zoomBy(0.9);
this.viewport.applyConstraints();
event.preventDefault = true;
@@ -2807,74 +2866,71 @@ function onCanvasKeyPress( event ) {
this.viewport.applyConstraints();
event.preventDefault = true;
break;
- case 119://w
- case 87://W
- if (!canvasKeyPressEventArgs.preventVerticalPan) {
+ case 87://W/w
+ if (!canvasKeyDownEventArgs.preventVerticalPan) {
if ( event.shift ) {
this.viewport.zoomBy(1.1);
} else {
this.viewport.panBy(this.viewport.deltaPointsFromPixels(new $.Point(0, -40)));
}
this.viewport.applyConstraints();
- }
- event.preventDefault = true;
- break;
- case 115://s
- case 83://S
- if (!canvasKeyPressEventArgs.preventVerticalPan) {
- if ( event.shift ) {
- this.viewport.zoomBy(0.9);
- } else {
- this.viewport.panBy(this.viewport.deltaPointsFromPixels(new $.Point(0, 40)));
- }
- this.viewport.applyConstraints();
}
event.preventDefault = true;
break;
- case 97://a
- if (!canvasKeyPressEventArgs.preventHorizontalPan) {
+ case 83://S/s
+ if (!canvasKeyDownEventArgs.preventVerticalPan) {
+ if ( event.shift ) {
+ this.viewport.zoomBy(0.9);
+ } else {
+ this.viewport.panBy(this.viewport.deltaPointsFromPixels(new $.Point(0, 40)));
+ }
+ this.viewport.applyConstraints();
+ }
+ event.preventDefault = true;
+ break;
+ case 65://a/A
+ if (!canvasKeyDownEventArgs.preventHorizontalPan) {
this.viewport.panBy(this.viewport.deltaPointsFromPixels(new $.Point(-40, 0)));
this.viewport.applyConstraints();
}
event.preventDefault = true;
break;
- case 100://d
- if (!canvasKeyPressEventArgs.preventHorizontalPan) {
- this.viewport.panBy(this.viewport.deltaPointsFromPixels(new $.Point(40, 0)));
- this.viewport.applyConstraints();
+ case 68://d/D
+ if (!canvasKeyDownEventArgs.preventHorizontalPan) {
+ this.viewport.panBy(this.viewport.deltaPointsFromPixels(new $.Point(40, 0)));
+ this.viewport.applyConstraints();
}
event.preventDefault = true;
break;
- case 114: //r - clockwise rotation
- if(this.viewport.flipped){
- this.viewport.setRotation(this.viewport.getRotation() - this.rotationIncrement);
- } else{
- this.viewport.setRotation(this.viewport.getRotation() + this.rotationIncrement);
- }
- this.viewport.applyConstraints();
- event.preventDefault = true;
- break;
- case 82: //R - counterclockwise rotation
- if(this.viewport.flipped){
- this.viewport.setRotation(this.viewport.getRotation() + this.rotationIncrement);
- } else{
- this.viewport.setRotation(this.viewport.getRotation() - this.rotationIncrement);
- }
- this.viewport.applyConstraints();
- event.preventDefault = true;
- break;
- case 102: //f
- this.viewport.toggleFlip();
- event.preventDefault = true;
- break;
- case 106: //j - previous image source
- this.goToPreviousPage();
- break;
- case 107: //k - next image source
- this.goToNextPage();
- break;
+ case 82: //r - clockwise rotation/R - counterclockwise rotation
+ if(event.shift){
+ if(this.viewport.flipped){
+ this.viewport.setRotation(this.viewport.getRotation() + this.rotationIncrement);
+ } else{
+ this.viewport.setRotation(this.viewport.getRotation() - this.rotationIncrement);
+ }
+ }else{
+ if(this.viewport.flipped){
+ this.viewport.setRotation(this.viewport.getRotation() - this.rotationIncrement);
+ } else{
+ this.viewport.setRotation(this.viewport.getRotation() + this.rotationIncrement);
+ }
+ }
+ this.viewport.applyConstraints();
+ event.preventDefault = true;
+ break;
+ case 70: //f/F
+ this.viewport.toggleFlip();
+ event.preventDefault = true;
+ break;
+ case 74: //j - previous image source
+ this.goToPreviousPage();
+ break;
+ case 75: //k - next image source
+ this.goToNextPage();
+ break;
default:
- // console.log( 'navigator keycode %s', event.keyCode );
+ //console.log( 'navigator keycode %s', event.keyCode );
event.preventDefault = false;
break;
}
@@ -2883,7 +2939,24 @@ function onCanvasKeyPress( event ) {
}
}
+function onCanvasKeyPress( event ) {
+ var canvasKeyPressEventArgs = {
+ originalEvent: event.originalEvent,
+ };
+ /**
+ * Raised when a keyboard key is pressed and the focus is on the {@link OpenSeadragon.Viewer#canvas} element.
+ *
+ * @event canvas-key-press
+ * @memberof OpenSeadragon.Viewer
+ * @type {object}
+ * @property {OpenSeadragon.Viewer} eventSource - A reference to the Viewer which raised this event.
+ * @property {Object} originalEvent - The original DOM event.
+ * @property {?Object} userData - Arbitrary subscriber-defined object.
+ */
+
+ this.raiseEvent('canvas-key-press', canvasKeyPressEventArgs);
+}
function onCanvasClick( event ) {
var gestureSettings;
@@ -3051,17 +3124,16 @@ function onCanvasDrag( event ) {
this.viewport.centerSpringX.target.value += delta.x;
this.viewport.centerSpringY.target.value += delta.y;
- var bounds = this.viewport.getBounds();
var constrainedBounds = this.viewport.getConstrainedBounds();
this.viewport.centerSpringX.target.value -= delta.x;
this.viewport.centerSpringY.target.value -= delta.y;
- if (bounds.x !== constrainedBounds.x) {
+ if (constrainedBounds.xConstrained) {
event.delta.x = 0;
}
- if (bounds.y !== constrainedBounds.y) {
+ if (constrainedBounds.yConstrained) {
event.delta.y = 0;
}
}
@@ -3396,11 +3468,49 @@ function onCanvasPinch( event ) {
event.gesturePoints[0].currentPos.x - event.gesturePoints[1].currentPos.x);
var angle2 = Math.atan2(event.gesturePoints[0].lastPos.y - event.gesturePoints[1].lastPos.y,
event.gesturePoints[0].lastPos.x - event.gesturePoints[1].lastPos.x);
- this.viewport.setRotation(this.viewport.getRotation() + ((angle1 - angle2) * (180 / Math.PI)));
+ centerPt = this.viewport.pointFromPixel( event.center, true );
+ this.viewport.rotateTo(this.viewport.getRotation(true) + ((angle1 - angle2) * (180 / Math.PI)), centerPt, true);
}
}
}
+function onCanvasFocus( event ) {
+
+ /**
+ * Raised when the {@link OpenSeadragon.Viewer#canvas} element gets keyboard focus.
+ *
+ * @event canvas-focus
+ * @memberof OpenSeadragon.Viewer
+ * @type {object}
+ * @property {OpenSeadragon.Viewer} eventSource - A reference to the Viewer which raised this event.
+ * @property {OpenSeadragon.MouseTracker} tracker - A reference to the MouseTracker which originated this event.
+ * @property {Object} originalEvent - The original DOM event.
+ * @property {?Object} userData - Arbitrary subscriber-defined object.
+ */
+ this.raiseEvent( 'canvas-focus', {
+ tracker: event.eventSource,
+ originalEvent: event.originalEvent
+ });
+}
+
+function onCanvasBlur( event ) {
+ /**
+ * Raised when the {@link OpenSeadragon.Viewer#canvas} element loses keyboard focus.
+ *
+ * @event canvas-blur
+ * @memberof OpenSeadragon.Viewer
+ * @type {object}
+ * @property {OpenSeadragon.Viewer} eventSource - A reference to the Viewer which raised this event.
+ * @property {OpenSeadragon.MouseTracker} tracker - A reference to the MouseTracker which originated this event.
+ * @property {Object} originalEvent - The original DOM event.
+ * @property {?Object} userData - Arbitrary subscriber-defined object.
+ */
+ this.raiseEvent( 'canvas-blur', {
+ tracker: event.eventSource,
+ originalEvent: event.originalEvent
+ });
+}
+
function onCanvasScroll( event ) {
var canvasScrollEventArgs,
gestureSettings,
@@ -3550,6 +3660,27 @@ function updateMulti( viewer ) {
}
}
+function doViewerResize(viewer, containerSize){
+ var viewport = viewer.viewport;
+ var zoom = viewport.getZoom();
+ var center = viewport.getCenter();
+ viewport.resize(containerSize, viewer.preserveImageSizeOnResize);
+ viewport.panTo(center, true);
+ var resizeRatio;
+ if (viewer.preserveImageSizeOnResize) {
+ resizeRatio = THIS[viewer.hash].prevContainerSize.x / containerSize.x;
+ } else {
+ var origin = new $.Point(0, 0);
+ var prevDiag = new $.Point(THIS[viewer.hash].prevContainerSize.x, THIS[viewer.hash].prevContainerSize.y).distanceTo(origin);
+ var newDiag = new $.Point(containerSize.x, containerSize.y).distanceTo(origin);
+ resizeRatio = newDiag / prevDiag * THIS[viewer.hash].prevContainerSize.x / containerSize.x;
+ }
+ viewport.zoomTo(zoom * resizeRatio, null, true);
+ THIS[viewer.hash].prevContainerSize = containerSize;
+ THIS[viewer.hash].forceRedraw = true;
+ THIS[viewer.hash].needsResize = false;
+ THIS[viewer.hash].forceResize = false;
+}
function updateOnce( viewer ) {
//viewer.profiler.beginUpdate();
@@ -3557,30 +3688,23 @@ function updateOnce( viewer ) {
if (viewer._opening || !THIS[viewer.hash]) {
return;
}
-
- if (viewer.autoResize) {
- var containerSize = _getSafeElemSize(viewer.container);
- var prevContainerSize = THIS[viewer.hash].prevContainerSize;
- if (!containerSize.equals(prevContainerSize)) {
- var viewport = viewer.viewport;
- if (viewer.preserveImageSizeOnResize) {
- var resizeRatio = prevContainerSize.x / containerSize.x;
- var zoom = viewport.getZoom() * resizeRatio;
- var center = viewport.getCenter();
- viewport.resize(containerSize, false);
- viewport.zoomTo(zoom, null, true);
- viewport.panTo(center, true);
- } else {
- // maintain image position
- var oldBounds = viewport.getBounds();
- viewport.resize(containerSize, true);
- viewport.fitBoundsWithConstraints(oldBounds, true);
+ if (viewer.autoResize || THIS[viewer.hash].forceResize){
+ var containerSize;
+ if(viewer._autoResizePolling){
+ containerSize = _getSafeElemSize(viewer.container);
+ var prevContainerSize = THIS[viewer.hash].prevContainerSize;
+ if (!containerSize.equals(prevContainerSize)) {
+ THIS[viewer.hash].needsResize = true;
}
- THIS[viewer.hash].prevContainerSize = containerSize;
- THIS[viewer.hash].forceRedraw = true;
}
+ if(THIS[viewer.hash].needsResize){
+ doViewerResize(viewer, containerSize || _getSafeElemSize(viewer.container));
+ }
+
}
+
+
var viewportChange = viewer.viewport.update();
var animated = viewer.world.update() || viewportChange;
diff --git a/src/viewport.js b/src/viewport.js
index 77d02f2c..02e173f0 100644
--- a/src/viewport.js
+++ b/src/viewport.js
@@ -2,7 +2,7 @@
* OpenSeadragon - Viewport
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -483,7 +483,7 @@ $.Viewport.prototype = {
);
newZoomPixel = this._pixelFromPoint(this.zoomPoint, bounds);
- deltaZoomPixels = newZoomPixel.minus( oldZoomPixel );
+ deltaZoomPixels = newZoomPixel.minus( oldZoomPixel ).rotate(-this.getRotation(true));
deltaZoomPoints = deltaZoomPixels.divide( this._containerInnerSize.x * zoom );
return centerTarget.plus( deltaZoomPoints );
@@ -514,34 +514,37 @@ $.Viewport.prototype = {
* @param {OpenSeadragon.Rect} bounds
* @returns {OpenSeadragon.Rect} constrained bounds.
*/
- _applyBoundaryConstraints: function(bounds) {
- var newBounds = new $.Rect(
- bounds.x,
- bounds.y,
- bounds.width,
- bounds.height);
+ _applyBoundaryConstraints: function(bounds) {
+ var newBounds = this.viewportToViewerElementRectangle(bounds).getBoundingBox();
+ var cb = this.viewportToViewerElementRectangle(this._contentBoundsNoRotate).getBoundingBox();
+
+ var xConstrained = false;
+ var yConstrained = false;
if (this.wrapHorizontal) {
//do nothing
} else {
var boundsRight = newBounds.x + newBounds.width;
- var contentRight = this._contentBoundsNoRotate.x + this._contentBoundsNoRotate.width;
+ var contentRight = cb.x + cb.width;
var horizontalThreshold, leftDx, rightDx;
- if (newBounds.width > this._contentBoundsNoRotate.width) {
- horizontalThreshold = this.visibilityRatio * this._contentBoundsNoRotate.width;
+ if (newBounds.width > cb.width) {
+ horizontalThreshold = this.visibilityRatio * cb.width;
} else {
horizontalThreshold = this.visibilityRatio * newBounds.width;
}
- leftDx = this._contentBoundsNoRotate.x - boundsRight + horizontalThreshold;
+ leftDx = cb.x - boundsRight + horizontalThreshold;
rightDx = contentRight - newBounds.x - horizontalThreshold;
- if (horizontalThreshold > this._contentBoundsNoRotate.width) {
+ if (horizontalThreshold > cb.width) {
newBounds.x += (leftDx + rightDx) / 2;
+ xConstrained = true;
} else if (rightDx < 0) {
newBounds.x += rightDx;
+ xConstrained = true;
} else if (leftDx > 0) {
newBounds.x += leftDx;
+ xConstrained = true;
}
}
@@ -550,28 +553,37 @@ $.Viewport.prototype = {
//do nothing
} else {
var boundsBottom = newBounds.y + newBounds.height;
- var contentBottom = this._contentBoundsNoRotate.y + this._contentBoundsNoRotate.height;
+ var contentBottom = cb.y + cb.height;
var verticalThreshold, topDy, bottomDy;
- if (newBounds.height > this._contentBoundsNoRotate.height) {
- verticalThreshold = this.visibilityRatio * this._contentBoundsNoRotate.height;
+ if (newBounds.height > cb.height) {
+ verticalThreshold = this.visibilityRatio * cb.height;
} else{
verticalThreshold = this.visibilityRatio * newBounds.height;
}
- topDy = this._contentBoundsNoRotate.y - boundsBottom + verticalThreshold;
+ topDy = cb.y - boundsBottom + verticalThreshold;
bottomDy = contentBottom - newBounds.y - verticalThreshold;
- if (verticalThreshold > this._contentBoundsNoRotate.height) {
+ if (verticalThreshold > cb.height) {
newBounds.y += (topDy + bottomDy) / 2;
+ yConstrained = true;
} else if (bottomDy < 0) {
newBounds.y += bottomDy;
+ yConstrained = true;
} else if (topDy > 0) {
newBounds.y += topDy;
+ yConstrained = true;
}
}
- return newBounds;
+ var constraintApplied = xConstrained || yConstrained;
+ var newViewportBounds = constraintApplied ? this.viewerElementToViewportRectangle(newBounds) : bounds.clone();
+ newViewportBounds.xConstrained = xConstrained;
+ newViewportBounds.yConstrained = yConstrained;
+ newViewportBounds.constraintApplied = constraintApplied;
+
+ return newViewportBounds;
},
/**
@@ -605,7 +617,7 @@ $.Viewport.prototype = {
* @function
* @param {Boolean} [immediately=false]
* @returns {OpenSeadragon.Viewport} Chainable.
- * @fires OpenSeadragon.Viewer.event:constrain
+ * @fires OpenSeadragon.Viewer.event:constrain if constraints were applied
*/
applyConstraints: function(immediately) {
var actualZoom = this.getZoom();
@@ -615,17 +627,13 @@ $.Viewport.prototype = {
this.zoomTo(constrainedZoom, this.zoomPoint, immediately);
}
- var bounds = this.getBoundsNoRotate();
- var constrainedBounds = this._applyBoundaryConstraints(bounds);
- this._raiseConstraintsEvent(immediately);
+ var constrainedBounds = this.getConstrainedBounds(false);
- if (bounds.x !== constrainedBounds.x ||
- bounds.y !== constrainedBounds.y ||
- immediately) {
- this.fitBounds(
- constrainedBounds.rotate(-this.getRotation(true)),
- immediately);
+ if(constrainedBounds.constraintApplied){
+ this.fitBounds(constrainedBounds, immediately);
+ this._raiseConstraintsEvent(immediately);
}
+
return this;
},
@@ -675,45 +683,53 @@ $.Viewport.prototype = {
newBounds.y = center.y - newBounds.height / 2;
var newZoom = 1.0 / newBounds.width;
- if (constraints) {
- var newBoundsAspectRatio = newBounds.getAspectRatio();
- var newConstrainedZoom = this._applyZoomConstraints(newZoom);
-
- if (newZoom !== newConstrainedZoom) {
- newZoom = newConstrainedZoom;
- newBounds.width = 1.0 / newZoom;
- newBounds.x = center.x - newBounds.width / 2;
- newBounds.height = newBounds.width / newBoundsAspectRatio;
- newBounds.y = center.y - newBounds.height / 2;
- }
-
- newBounds = this._applyBoundaryConstraints(newBounds);
- center = newBounds.getCenter();
- this._raiseConstraintsEvent(immediately);
- }
-
if (immediately) {
this.panTo(center, true);
- return this.zoomTo(newZoom, null, true);
+ this.zoomTo(newZoom, null, true);
+ if(constraints){
+ this.applyConstraints(true);
+ }
+ return this;
}
- this.panTo(this.getCenter(true), true);
- this.zoomTo(this.getZoom(true), null, true);
+ var currentCenter = this.getCenter(true);
+ var currentZoom = this.getZoom(true);
+ this.panTo(currentCenter, true);
+ this.zoomTo(currentZoom, null, true);
var oldBounds = this.getBounds();
var oldZoom = this.getZoom();
if (oldZoom === 0 || Math.abs(newZoom / oldZoom - 1) < 0.00000001) {
- this.zoomTo(newZoom, true);
- return this.panTo(center, immediately);
+ this.zoomTo(newZoom, null, true);
+ this.panTo(center, immediately);
+ if(constraints){
+ this.applyConstraints(false);
+ }
+ return this;
}
- newBounds = newBounds.rotate(-this.getRotation());
- var referencePoint = newBounds.getTopLeft().times(newZoom)
- .minus(oldBounds.getTopLeft().times(oldZoom))
- .divide(newZoom - oldZoom);
+ if(constraints){
+ this.panTo(center, false);
- return this.zoomTo(newZoom, referencePoint, immediately);
+ newZoom = this._applyZoomConstraints(newZoom);
+ this.zoomTo(newZoom, null, false);
+
+ var constrainedBounds = this.getConstrainedBounds();
+
+ this.panTo(currentCenter, true);
+ this.zoomTo(currentZoom, null, true);
+
+ this.fitBounds(constrainedBounds);
+ } else {
+ var rotatedNewBounds = newBounds.rotate(-this.getRotation());
+ var referencePoint = rotatedNewBounds.getTopLeft().times(newZoom)
+ .minus(oldBounds.getTopLeft().times(oldZoom))
+ .divide(newZoom - oldZoom);
+
+ this.zoomTo(newZoom, referencePoint, immediately);
+ }
+ return this;
},
/**
@@ -787,7 +803,10 @@ $.Viewport.prototype = {
* Returns bounds taking constraints into account
* Added to improve constrained panning
* @param {Boolean} current - Pass true for the current location; defaults to false (target location).
- * @returns {OpenSeadragon.Viewport} Chainable.
+ * @returns {OpenSeadragon.Rect} The bounds in viewport coordinates after applying constraints. The returned $.Rect
+ * contains additional properties constraintsApplied, xConstrained and yConstrained.
+ * These flags indicate whether the viewport bounds were modified by the constraints
+ * of the viewer rectangle, and in which dimension(s).
*/
getConstrainedBounds: function(current) {
var bounds,
@@ -1059,7 +1078,10 @@ $.Viewport.prototype = {
if( this.viewer ){
/**
- * Raised when the viewer is resized (see {@link OpenSeadragon.Viewport#resize}).
+ * Raised when a viewer resize operation is initiated (see {@link OpenSeadragon.Viewport#resize}).
+ * This event happens before the viewport bounds have been updated.
+ * See also {@link OpenSeadragon.Viewer#after-resize} which reflects
+ * the new viewport bounds following the resize action.
*
* @event resize
* @memberof OpenSeadragon.Viewer
@@ -1075,7 +1097,29 @@ $.Viewport.prototype = {
});
}
- return this.fitBounds( newBounds, true );
+ var output = this.fitBounds( newBounds, true );
+
+ if( this.viewer ){
+ /**
+ * Raised after the viewer is resized (see {@link OpenSeadragon.Viewport#resize}).
+ * See also {@link OpenSeadragon.Viewer#resize} event which happens
+ * before the new bounds have been calculated and applied.
+ *
+ * @event after-resize
+ * @memberof OpenSeadragon.Viewer
+ * @type {object}
+ * @property {OpenSeadragon.Viewer} eventSource - A reference to the Viewer which raised this event.
+ * @property {OpenSeadragon.Point} newContainerSize
+ * @property {Boolean} maintain
+ * @property {?Object} userData - Arbitrary subscriber-defined object.
+ */
+ this.viewer.raiseEvent( 'after-resize', {
+ newContainerSize: newContainerSize,
+ maintain: maintain
+ });
+ }
+
+ return output;
},
// private
diff --git a/src/world.js b/src/world.js
index c0fea25c..a525997b 100644
--- a/src/world.js
+++ b/src/world.js
@@ -2,7 +2,7 @@
* OpenSeadragon - World
*
* Copyright (C) 2009 CodePlex Foundation
- * Copyright (C) 2010-2022 OpenSeadragon contributors
+ * Copyright (C) 2010-2023 OpenSeadragon contributors
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
diff --git a/test/coverage.html b/test/coverage.html
index 6d392209..e4046459 100644
--- a/test/coverage.html
+++ b/test/coverage.html
@@ -3,7 +3,7 @@
viewport.fitBounds(bounds); //Ignores constraints+
viewport.fitBoundsWithConstraints(bounds);+
viewport.fitBoundsWithConstraints(bounds, true); //immediate+
//Initially ignore constraints +viewport.fitBounds(bounds); + +//Apply constraints after 1 second delay +setTimeout(() => viewport.applyConstraints(), 1000);+
Pick an overlay above to show the bounds+
diff --git a/test/demo/fitboundswithconstraints.html b/test/demo/fitboundswithconstraints.html index 51889d88..617b139c 100644 --- a/test/demo/fitboundswithconstraints.html +++ b/test/demo/fitboundswithconstraints.html @@ -3,111 +3,163 @@
+