the texture loader system was externalized into a set of libs webgltexture-loader*
This commit is contained in:
Gaëtan Renaudeau 2017-09-05 17:15:15 +02:00
parent 4e66168e5e
commit f8e462233d
47 changed files with 474 additions and 7487 deletions

View File

@ -528,8 +528,8 @@ core-js@^1.0.0:
resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
core-js@^2.4.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.0.tgz#569c050918be6486b3837552028ae0466b717086"
version "2.5.1"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b"
create-react-class@^15.5.1:
version "15.6.0"
@ -754,8 +754,8 @@ react-mixin@^3.0.5:
smart-mixin "^2.0.0"
react-motion@^0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/react-motion/-/react-motion-0.5.0.tgz#1708fc2aee552900d21c1e6bed28346863e017b6"
version "0.5.1"
resolved "https://registry.yarnpkg.com/react-motion/-/react-motion-0.5.1.tgz#b90631408175ab1668e173caccd66d41a44f4592"
dependencies:
performance-now "^0.2.0"
prop-types "^15.5.8"

View File

@ -477,7 +477,6 @@
isa = PBXNativeTarget;
buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "cookbookrn" */;
buildPhases = (
AD0CE2C91E925489006FC317 /* Integrate Haul with React Native */,
13B07F871A680F5B00A75B9A /* Sources */,
13B07F8C1A680F5B00A75B9A /* Frameworks */,
13B07F8E1A680F5B00A75B9A /* Resources */,
@ -814,20 +813,6 @@
shellPath = /bin/sh;
shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh";
};
AD0CE2C91E925489006FC317 /* Integrate Haul with React Native */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "Integrate Haul with React Native";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "bash ../node_modules/haul-cli/src/utils/haul-integrate.sh";
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */

View File

@ -3,7 +3,7 @@
"version": "3.13.0",
"private": true,
"scripts": {
"start": "haul start"
"start": "react-native start"
},
"dependencies": {
"@expo/ex-navigation": "^2.11.0",
@ -12,11 +12,10 @@
"gl-react-native": "^3.13.0",
"prop-types": "^15.5.8",
"react": "16.0.0-alpha.12",
"react-native": "0.47.2",
"react-native": "0.48.x",
"react-native-webgl": "0.x"
},
"devDependencies": {
"babel-preset-react-native": "~1.9.1",
"haul-cli": "github:callstack-io/haul#870753d1df5f2d6f878584adb95a370bc2b5b169"
"babel-preset-react-native": "~1.9.1"
}
}

View File

@ -1,3 +0,0 @@
module.exports = ({ platform }) => ({
entry: `./index.${platform}.js`,
});

File diff suppressed because it is too large Load Diff

View File

@ -13,8 +13,6 @@
"gl-react": "^3.13.0",
"gl-react-dom": "^3.13.0",
"gl-shader": "^4.2.1",
"gl-format-compiler-error":
"github:gre/gl-format-compiler-error#fix-null-ending-character",
"gl-texture2d": "^2.1.0",
"gl-transitions": "^1.19.0",
"hoist-non-react-statics": "^1.2.0",

View File

@ -51,8 +51,8 @@ acorn@^4.0.3, acorn@^4.0.4:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787"
acorn@^5.0.0, acorn@^5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.1.tgz#53fe161111f912ab999ee887a90a0bc52822fd75"
version "5.1.2"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.2.tgz#911cb53e036807cf0fa778dc5d370fbd864246d7"
add-line-numbers@^1.0.1:
version "1.0.1"
@ -1029,7 +1029,7 @@ babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24
lodash "^4.17.4"
to-fast-properties "^1.0.3"
babylon@^6.17.0, babylon@^6.17.2, babylon@^6.17.4, babylon@^6.18.0:
babylon@^6.17.0, babylon@^6.17.2, babylon@^6.18.0:
version "6.18.0"
resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
@ -1146,14 +1146,15 @@ browser-resolve@^1.11.2:
resolve "1.1.7"
browserify-aes@^1.0.0, browserify-aes@^1.0.4:
version "1.0.6"
resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.6.tgz#5e7725dbdef1fd5930d4ebab48567ce451c48a0a"
version "1.0.8"
resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.8.tgz#c8fa3b1b7585bb7ba77c5560b60996ddec6d5309"
dependencies:
buffer-xor "^1.0.2"
buffer-xor "^1.0.3"
cipher-base "^1.0.0"
create-hash "^1.1.0"
evp_bytestokey "^1.0.0"
evp_bytestokey "^1.0.3"
inherits "^2.0.1"
safe-buffer "^5.0.1"
browserify-cipher@^1.0.0:
version "1.0.0"
@ -1226,7 +1227,7 @@ buffer-indexof@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c"
buffer-xor@^1.0.2:
buffer-xor@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
@ -1300,12 +1301,12 @@ caniuse-api@^1.5.2:
lodash.uniq "^4.5.0"
caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639:
version "1.0.30000721"
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000721.tgz#cdc52efe8f82dd13916615b78e86f704ece61802"
version "1.0.30000725"
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000725.tgz#20f2313d79401e02f61840f39698bc8c558811a6"
caniuse-lite@^1.0.30000670, caniuse-lite@^1.0.30000718:
version "1.0.30000721"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000721.tgz#931a21a7bd85016300328d21f126d84b73437d35"
version "1.0.30000725"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000725.tgz#4fa66372323c6ff46c8a1ba03f9dcd73d7a1cb39"
capture-stack-trace@^1.0.0:
version "1.0.0"
@ -1380,8 +1381,8 @@ chokidar@^1.6.0, chokidar@^1.7.0:
fsevents "^1.0.0"
ci-info@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.0.0.tgz#dc5285f2b4e251821683681c381c3388f46ec534"
version "1.1.1"
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.1.tgz#47b44df118c48d2597b56d342e7e25791060171a"
cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
version "1.0.4"
@ -1401,8 +1402,8 @@ clap@^1.0.9:
chalk "^1.1.3"
clean-css@4.1.x:
version "4.1.7"
resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.7.tgz#b9aea4f85679889cf3eae8b40349ec4ebdfdd032"
version "4.1.8"
resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.8.tgz#061455b2494a750ac98f46d8d5ebb17c679ea9d1"
dependencies:
source-map "0.5.x"
@ -2035,8 +2036,8 @@ detect-port-alt@1.1.3:
debug "^2.6.0"
diff@^3.2.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.0.tgz#056695150d7aa93237ca7e378ac3b1682b7963b9"
version "3.3.1"
resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75"
diffie-hellman@^5.0.0:
version "5.0.2"
@ -2229,8 +2230,8 @@ error-ex@^1.2.0:
is-arrayish "^0.2.1"
es-abstract@^1.7.0:
version "1.8.1"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.8.1.tgz#fd85a3bdfa67786ce7be7e1584678e119cd70c04"
version "1.8.2"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.8.2.tgz#25103263dc4decbda60e0c737ca32313518027ee"
dependencies:
es-to-primitive "^1.1.1"
function-bind "^1.1.1"
@ -2506,9 +2507,9 @@ eventsource@0.1.6:
dependencies:
original ">=0.0.5"
evp_bytestokey@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.2.tgz#f66bb88ecd57f71a766821e20283ea38c68bf80a"
evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
dependencies:
md5.js "^1.3.4"
safe-buffer "^5.1.1"
@ -2912,17 +2913,8 @@ gl-constants@^1.0.0:
resolved "https://registry.yarnpkg.com/gl-constants/-/gl-constants-1.0.0.tgz#597a504e364750ff50253aa35f8dea7af4a5d233"
gl-format-compiler-error@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/gl-format-compiler-error/-/gl-format-compiler-error-1.0.2.tgz#34397d2ae613e2d83a58f35d571de1be7d3080fa"
dependencies:
add-line-numbers "^1.0.1"
gl-constants "^1.0.0"
glsl-shader-name "^1.0.0"
sprintf-js "^1.0.3"
"gl-format-compiler-error@github:gre/gl-format-compiler-error#fix-null-ending-character":
version "1.0.2"
resolved "https://codeload.github.com/gre/gl-format-compiler-error/tar.gz/33d71896fca0f738c31c66f0f985093f48bb255c"
version "1.0.3"
resolved "https://registry.yarnpkg.com/gl-format-compiler-error/-/gl-format-compiler-error-1.0.3.tgz#0c79b1751899ce9732e86240f090aa41e98471a8"
dependencies:
add-line-numbers "^1.0.1"
gl-constants "^1.0.0"
@ -3727,14 +3719,14 @@ isstream@~0.1.2:
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
istanbul-api@^1.1.1:
version "1.1.13"
resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.13.tgz#7197f64413600ebdfec6347a2dc3d4e03f97ed5a"
version "1.1.14"
resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.14.tgz#25bc5701f7c680c0ffff913de46e3619a3a6e680"
dependencies:
async "^2.1.4"
fileset "^2.0.2"
istanbul-lib-coverage "^1.1.1"
istanbul-lib-hook "^1.0.7"
istanbul-lib-instrument "^1.7.5"
istanbul-lib-instrument "^1.8.0"
istanbul-lib-report "^1.1.1"
istanbul-lib-source-maps "^1.2.1"
istanbul-reports "^1.1.2"
@ -3752,15 +3744,15 @@ istanbul-lib-hook@^1.0.7:
dependencies:
append-transform "^0.4.0"
istanbul-lib-instrument@^1.4.2, istanbul-lib-instrument@^1.7.2, istanbul-lib-instrument@^1.7.5:
version "1.7.5"
resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.5.tgz#adb596f8f0cb8b95e739206351a38a586af21b1e"
istanbul-lib-instrument@^1.4.2, istanbul-lib-instrument@^1.7.2, istanbul-lib-instrument@^1.8.0:
version "1.8.0"
resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.8.0.tgz#66f6c9421cc9ec4704f76f2db084ba9078a2b532"
dependencies:
babel-generator "^6.18.0"
babel-template "^6.16.0"
babel-traverse "^6.18.0"
babel-types "^6.18.0"
babylon "^6.17.4"
babylon "^6.18.0"
istanbul-lib-coverage "^1.1.1"
semver "^5.3.0"
@ -4515,19 +4507,15 @@ miller-rabin@^4.0.0:
bn.js "^4.0.0"
brorand "^1.0.1"
"mime-db@>= 1.29.0 < 2":
"mime-db@>= 1.29.0 < 2", mime-db@~1.30.0:
version "1.30.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
mime-db@~1.29.0:
version "1.29.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878"
mime-types@^2.1.12, mime-types@~2.1.15, mime-types@~2.1.16, mime-types@~2.1.7:
version "2.1.16"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.16.tgz#2b858a52e5ecd516db897ac2be87487830698e23"
version "2.1.17"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
dependencies:
mime-db "~1.29.0"
mime-db "~1.30.0"
mime@1.3.4:
version "1.3.4"
@ -6327,8 +6315,8 @@ source-list-map@^2.0.0:
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085"
source-map-support@^0.4.15:
version "0.4.16"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.16.tgz#16fecf98212467d017d586a2af68d628b9421cd8"
version "0.4.17"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.17.tgz#6f2150553e6375375d0ccb3180502b78c18ba430"
dependencies:
source-map "^0.5.6"
@ -6668,8 +6656,8 @@ test-exclude@^4.1.1:
require-main-filename "^1.0.1"
text-extensions@^1.0.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.5.0.tgz#d1cb2d14b5d0bc45bfdca8a08a473f68c7eb0cbc"
version "1.6.0"
resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.6.0.tgz#771561b26022783a45f5b6c2e78ad6e7de9fe322"
text-table@0.2.0, text-table@~0.2.0:
version "0.2.0"

View File

@ -35,9 +35,10 @@
resolved "https://registry.yarnpkg.com/@expo/react-native-touchable-native-feedback-safe/-/react-native-touchable-native-feedback-safe-1.1.2.tgz#7ef501d5d32140eed657f75f0de145d4a96244d8"
"@expo/vector-icons@^5.0.0":
version "5.1.0"
resolved "https://registry.yarnpkg.com/@expo/vector-icons/-/vector-icons-5.1.0.tgz#bea328a58ee60659bd566978f035d0001cca60b3"
version "5.2.0"
resolved "https://registry.yarnpkg.com/@expo/vector-icons/-/vector-icons-5.2.0.tgz#877f75c00bf21313cdb231c92cbcfd40e46ee2a1"
dependencies:
lodash "^4.17.4"
react-native-vector-icons "4.1.1"
abbrev@1:
@ -1106,10 +1107,10 @@ braces@^1.8.2:
repeat-element "^1.1.2"
browserslist@^2.1.2:
version "2.3.3"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.3.3.tgz#2b0cabc4d28489f682598605858a0782f14b154c"
version "2.4.0"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.4.0.tgz#693ee93d01e66468a6348da5498e011f578f87f8"
dependencies:
caniuse-lite "^1.0.30000715"
caniuse-lite "^1.0.30000718"
electron-to-chromium "^1.3.18"
bser@1.0.2:
@ -1159,9 +1160,9 @@ camelcase@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"
caniuse-lite@^1.0.30000715:
version "1.0.30000718"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000718.tgz#0dd24290beb11310b2d80f6b70a823c2a65a6fad"
caniuse-lite@^1.0.30000718:
version "1.0.30000725"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000725.tgz#4fa66372323c6ff46c8a1ba03f9dcd73d7a1cb39"
caseless@~0.12.0:
version "0.12.0"
@ -1374,8 +1375,8 @@ core-js@^1.0.0:
resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
core-js@^2.2.2, core-js@^2.4.0, core-js@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.0.tgz#569c050918be6486b3837552028ae0466b717086"
version "2.5.1"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b"
core-util-is@1.0.2, core-util-is@~1.0.0:
version "1.0.2"
@ -1515,8 +1516,8 @@ ee-first@1.1.1:
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
electron-to-chromium@^1.3.18:
version "1.3.18"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.18.tgz#3dcc99da3e6b665f6abbc71c28ad51a2cd731a9c"
version "1.3.20"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.20.tgz#2eedd5ccbae7ddc557f68ad1fce9c172e915e4e5"
encoding@^0.1.11:
version "0.1.12"
@ -1802,8 +1803,8 @@ fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2:
rimraf "2"
function-bind@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771"
version "1.1.1"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
gauge@~1.2.5:
version "1.2.7"
@ -2481,9 +2482,9 @@ micromatch@^2.1.5, micromatch@^2.3.11:
parse-glob "^3.0.4"
regex-cache "^0.4.2"
"mime-db@>= 1.29.0 < 2", mime-db@~1.29.0:
version "1.29.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878"
"mime-db@>= 1.29.0 < 2", mime-db@~1.30.0:
version "1.30.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
mime-db@~1.23.0:
version "1.23.0"
@ -2496,18 +2497,18 @@ mime-types@2.1.11:
mime-db "~1.23.0"
mime-types@^2.1.12, mime-types@~2.1.15, mime-types@~2.1.16, mime-types@~2.1.6, mime-types@~2.1.7, mime-types@~2.1.9:
version "2.1.16"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.16.tgz#2b858a52e5ecd516db897ac2be87487830698e23"
version "2.1.17"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
dependencies:
mime-db "~1.29.0"
mime-db "~1.30.0"
mime@1.3.4:
version "1.3.4"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53"
mime@^1.3.4:
version "1.3.6"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0"
version "1.4.0"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.0.tgz#69e9e0db51d44f2a3b56e48b7817d7d137f1a343"
min-document@^2.19.0:
version "2.19.0"
@ -3240,11 +3241,10 @@ regenerator-transform@^0.10.0:
private "^0.1.6"
regex-cache@^0.4.2:
version "0.4.3"
resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145"
version "0.4.4"
resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd"
dependencies:
is-equal-shallow "^0.1.3"
is-primitive "^2.0.0"
regexpu-core@^2.0.0:
version "2.0.0"
@ -3497,8 +3497,8 @@ sntp@1.x.x:
hoek "2.x.x"
source-map-support@^0.4.15:
version "0.4.16"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.16.tgz#16fecf98212467d017d586a2af68d628b9421cd8"
version "0.4.17"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.17.tgz#6f2150553e6375375d0ccb3180502b78c18ba430"
dependencies:
source-map "^0.5.6"

View File

@ -3,7 +3,8 @@
"version": "3.13.0",
"license": "MIT",
"author": "Gaëtan Renaudeau <renaudeau.gaetan@gmail.com>",
"description": "DOM implementation of gl-react, an universal React library to write and compose WebGL shaders",
"description":
"DOM implementation of gl-react, an universal React library to write and compose WebGL shaders",
"keywords": [
"gl-react",
"gl",
@ -35,10 +36,13 @@
"dependencies": {
"invariant": "^2.2.1",
"prop-types": "^15.5.8",
"raf": "^3.3.0"
"raf": "^3.3.0",
"webgltexture-loader-dom": "^0.6.0"
},
"scripts": {
"prepublish": "cd ../.. && export PATH=$(npm bin):$PATH && cd - && rm -rf lib gl-react-dom.js && babel --source-maps -d lib src && flow-copy-source -v src lib && browserify lib/index.js -t [ browserify-shim ] --standalone GLReactDOM > gl-react-dom.js",
"watch": "cd ../.. && export PATH=$(npm bin):$PATH && cd - && babel --watch --source-maps -d lib src"
"prepublish":
"cd ../.. && export PATH=$(npm bin):$PATH && cd - && rm -rf lib gl-react-dom.js && babel --source-maps -d lib src && flow-copy-source -v src lib && browserify lib/index.js -t [ browserify-shim ] --standalone GLReactDOM > gl-react-dom.js",
"watch":
"cd ../.. && export PATH=$(npm bin):$PATH && cd - && babel --watch --source-maps -d lib src"
}
}

View File

@ -1,11 +0,0 @@
//@flow
import { TextureLoaderRawObject } from "gl-react";
export default class CanvasTextureLoader
extends TextureLoaderRawObject<HTMLCanvasElement> {
canLoad(input: any) {
return input instanceof HTMLCanvasElement;
}
mapInputSize(canvas: HTMLCanvasElement) {
return [canvas.width, canvas.height];
}
}

View File

@ -1,77 +0,0 @@
//@flow
import { TextureLoader } from "gl-react";
import { disposeObjectMap } from "gl-react/lib/helpers/disposable";
import type { DisposablePromise } from "gl-react/lib/helpers/disposable";
function loadImage(
src: string,
success: (img: Image) => void,
failure: (e: Error) => void
) {
let img = new window.Image();
if (src.slice(0, 5) !== "data:") {
img.crossOrigin = true;
}
img.onload = function() {
if (img) {
success(img);
}
img = null;
};
img.onabort = img.onerror = failure;
img.src = src;
return function() {
if (img) {
img.onload = null;
img.onerror = null;
img.onabort = null;
img.src = "";
img = null;
}
};
}
export default class ImageTextureLoader extends TextureLoader<string> {
loads: { [key: string]: DisposablePromise<*> } = {};
textures: { [key: string]: WebGLTexture } = {};
sizes: { [key: string]: [number, number] } = {};
dispose() {
disposeObjectMap(this.loads);
const { gl } = this;
for (let k in this.textures) {
gl.deleteTexture(this.textures[k]);
delete this.textures[k];
}
}
canLoad(input: any) {
return typeof input === "string";
}
load(input: string) {
const src = input;
if (src in this.loads) {
return this.loads[src];
}
let dispose = () => {};
const promise = new Promise(
(success, failure) => (dispose = loadImage(src, success, failure))
).then(img => {
const { gl } = this;
const texture = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, texture);
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, img);
this.textures[src] = texture;
this.sizes[src] = [img.width, img.height];
delete this.loads[src];
return texture;
});
const d = { promise, dispose };
this.loads[src] = d;
return d;
}
get(input: string) {
return this.textures[input];
}
getSize(input: string) {
return this.sizes[input];
}
}

View File

@ -1,16 +0,0 @@
//@flow
import { TextureLoaderRawObject } from "gl-react";
export default class VideoTextureLoader
extends TextureLoaderRawObject<HTMLVideoElement> {
canLoad(input: any) {
return input instanceof HTMLVideoElement;
}
mapInput(video: HTMLVideoElement) {
if (video.videoWidth === 0) return null;
return video;
}
mapInputSize(video: HTMLVideoElement) {
return [video.videoWidth, video.videoHeight];
}
}

View File

@ -1,19 +1,11 @@
//@flow
import { createSurface, TextureLoaders } from "gl-react";
import { createSurface } from "gl-react";
import raf from "raf";
import GLView from "./GLViewDOM";
import ImageTextureLoader from "./ImageTextureLoader";
import CanvasTextureLoader from "./CanvasTextureLoader";
import VideoTextureLoader from "./VideoTextureLoader";
TextureLoaders.add(ImageTextureLoader);
TextureLoaders.add(CanvasTextureLoader);
TextureLoaders.add(VideoTextureLoader);
import "webgltexture-loader-dom";
const RenderLessElement = "span";
export * from "./legacy";
const mapRenderableContent = (el: mixed) =>
el instanceof Element ? el.firstElementChild : null;

View File

@ -1,22 +0,0 @@
import { TextureLoaders } from "gl-react";
import ImageTextureLoader from "./ImageTextureLoader";
class DeprecatedUriImageTextureLoader extends ImageTextureLoader {
canLoad(obj: any) {
return typeof obj === "object" && typeof obj.uri === "string";
}
get(obj: any) {
return super.get(obj.uri);
}
getSize(obj: any) {
return super.getSize(obj.uri);
}
load(obj: any) {
console.warn(
"gl-react-dom: usage of {uri} format in texture uniform is deprecated. Directly give an image URL instead."
);
return super.load(obj.uri);
}
}
TextureLoaders.add(DeprecatedUriImageTextureLoader);

View File

@ -1,106 +0,0 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
asap@~2.0.3:
version "2.0.6"
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
core-js@^1.0.0:
version "1.2.7"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
encoding@^0.1.11:
version "0.1.12"
resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
dependencies:
iconv-lite "~0.4.13"
fbjs@^0.8.9:
version "0.8.14"
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.14.tgz#d1dbe2be254c35a91e09f31f9cd50a40b2a0ed1c"
dependencies:
core-js "^1.0.0"
isomorphic-fetch "^2.1.1"
loose-envify "^1.0.0"
object-assign "^4.1.0"
promise "^7.1.1"
setimmediate "^1.0.5"
ua-parser-js "^0.7.9"
iconv-lite@~0.4.13:
version "0.4.18"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2"
invariant@^2.2.1:
version "2.2.2"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360"
dependencies:
loose-envify "^1.0.0"
is-stream@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
isomorphic-fetch@^2.1.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
dependencies:
node-fetch "^1.0.1"
whatwg-fetch ">=0.10.0"
js-tokens@^3.0.0:
version "3.0.2"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
loose-envify@^1.0.0, loose-envify@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
dependencies:
js-tokens "^3.0.0"
node-fetch@^1.0.1:
version "1.7.2"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.2.tgz#c54e9aac57e432875233525f3c891c4159ffefd7"
dependencies:
encoding "^0.1.11"
is-stream "^1.0.1"
object-assign@^4.1.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
performance-now@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
promise@^7.1.1:
version "7.3.1"
resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
dependencies:
asap "~2.0.3"
prop-types@^15.5.8:
version "15.5.10"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154"
dependencies:
fbjs "^0.8.9"
loose-envify "^1.3.1"
raf@^3.3.0:
version "3.3.2"
resolved "https://registry.yarnpkg.com/raf/-/raf-3.3.2.tgz#0c13be0b5b49b46f76d6669248d527cf2b02fe27"
dependencies:
performance-now "^2.1.0"
setimmediate@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
ua-parser-js@^0.7.9:
version "0.7.14"
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.14.tgz#110d53fa4c3f326c121292bbeac904d2e03387ca"
whatwg-fetch@>=0.10.0:
version "2.0.3"
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84"

View File

@ -3,7 +3,8 @@
"version": "3.13.0",
"license": "MIT",
"author": "Gaëtan Renaudeau <renaudeau.gaetan@gmail.com>",
"description": "React Native via Expo implementation of gl-react, an universal React library to write and compose WebGL shaders",
"description":
"React Native via Expo implementation of gl-react, an universal React library to write and compose WebGL shaders",
"keywords": [
"gl-react",
"gl",
@ -14,13 +15,7 @@
"react-component"
],
"main": "lib/index.js",
"files": [
"src",
"lib",
".flowconfig",
"README.md",
"LICENSE"
],
"files": ["src", "lib", ".flowconfig", "README.md", "LICENSE"],
"peerDependencies": {
"expo": "*",
"gl-react": "^3.13.0",
@ -32,10 +27,13 @@
},
"dependencies": {
"invariant": "^2.2.1",
"prop-types": "^15.5.8"
"prop-types": "^15.5.8",
"webgltexture-loader-expo": "^0.6.1"
},
"scripts": {
"prepublish": "cd ../.. && export PATH=$(npm bin):$PATH && cd - &&rm -rf lib && babel --source-maps -d lib src && flow-copy-source -v src lib",
"watch": "cd ../.. && export PATH=$(npm bin):$PATH && cd - && babel --watch --source-maps -d lib src"
"prepublish":
"cd ../.. && export PATH=$(npm bin):$PATH && cd - &&rm -rf lib && babel --source-maps -d lib src && flow-copy-source -v src lib",
"watch":
"cd ../.. && export PATH=$(npm bin):$PATH && cd - && babel --watch --source-maps -d lib src"
}
}

View File

@ -1,58 +0,0 @@
//@flow
import { NativeModules, Image } from "react-native";
import Expo from "expo";
import { TextureLoader } from "gl-react";
import type { DisposablePromise } from "gl-react/lib/helpers/disposable";
function hash(obj) {
return JSON.stringify(obj); // FIXME ikr XD
}
export default class ExponentGLObjectTextureLoader
extends TextureLoader<Object> {
loads: Map<string, DisposablePromise<*>> = new Map();
textures: Map<string, *> = new Map();
dispose() {}
canLoad(input: any) {
if (
!NativeModules.ExponentGLObjectManager ||
!NativeModules.ExponentGLObjectManager.createObjectAsync
) {
return false;
}
return input && typeof input === "object" && input.camera;
}
load(texture: Object): DisposablePromise<*> {
const key = hash(texture);
const load = this.loads.get(key);
if (load) return load;
const { gl } = this;
// $FlowFixMe
const { __exglCtxId: exglCtxId } = gl;
let disposed = false;
const d = {
dispose: () => {
disposed = true;
},
promise: NativeModules.ExponentGLObjectManager
.createObjectAsync({
exglCtxId,
texture
})
.then(({ exglObjId }) => {
if (disposed) return;
const webglTexture = new WebGLTexture(exglObjId);
this.textures.set(key, webglTexture);
return webglTexture;
})
};
this.loads.set(key, d);
return d;
}
get(texture: Object) {
return this.textures.get(hash(texture));
}
getSize(texture: Object) {
return null; // FIXME there is currently no way to yield that ( related https://github.com/gre/gl-react/issues/131)
}
}

View File

@ -1,112 +0,0 @@
//@flow
import { Image } from "react-native";
import Expo from "expo";
import { TextureLoader } from "gl-react";
import type { DisposablePromise } from "gl-react/lib/helpers/disposable";
import md5 from "./md5";
type Asset = {
width: number,
height: number,
uri: string,
localUri: string
};
const hash = (module: number | { uri: string }) =>
typeof module === "number" ? module : module.uri;
const localAsset = (module: number) => {
const asset = Expo.Asset.fromModule(module);
return asset.downloadAsync().then(() => asset);
};
const remoteAssetCache = {};
const remoteAsset = (uri: string) => {
const i = uri.lastIndexOf(".");
const ext = i !== -1 ? uri.slice(i) : ".jpg";
const key = md5(uri);
if (key in remoteAssetCache) {
return Promise.resolve(remoteAssetCache[key]);
}
const promise = Promise.all([
new Promise((success, failure) =>
Image.getSize(uri, (width, height) => success({ width, height }), failure)
),
Expo.FileSystem.downloadAsync(
uri,
Expo.FileSystem.documentDirectory + `ExponentAsset-${key}${ext}`,
{
cache: true
}
)
]).then(([size, asset]) => ({ ...size, uri, localUri: asset.uri }));
remoteAssetCache[key] = promise;
return promise;
};
export const loadAsset = (module: number | { uri: string }): Promise<Asset> =>
typeof module === "number" ? localAsset(module) : remoteAsset(module.uri);
export default class ExponentTextureLoader extends TextureLoader<*> {
loads: Map<number | string, DisposablePromise<*>> = new Map();
textures: Map<number | string, *> = new Map();
assetSizes: Map<number | string, *> = new Map();
dispose() {
const { loads } = this;
loads.forEach(d => {
d.dispose();
});
loads.clear();
}
canLoad(input: any) {
return (
typeof input === "number" ||
(input && typeof input === "object" && typeof input.uri === "string")
);
}
load(module: number | { uri: string }): DisposablePromise<*> {
const key = hash(module);
if (this.loads.has(key)) {
return this.loads.get(key);
}
let dispose = () => {};
let ignored = false;
const promise = loadAsset(module).then(asset => {
if (ignored) return;
const { gl } = this;
const { width, height } = asset;
const texture = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, texture);
gl.texImage2D(
gl.TEXTURE_2D,
0,
gl.RGBA,
width,
height,
0,
gl.RGBA,
gl.UNSIGNED_BYTE,
asset
);
this.textures.set(key, texture);
this.assetSizes.set(key, [width, height]);
this.loads.delete(key);
return texture;
});
const d = {
dispose() {
ignored = true;
},
promise
};
this.loads.set(key, d);
return d;
}
get(module: number) {
return this.textures.get(hash(module));
}
getSize(texture: Object) {
return this.assetSizes.get(hash(module));
}
}

View File

@ -1,6 +1,7 @@
import { loadAsset } from "./ExponentTextureLoader";
import { loadAsset } from "webgltexture-loader-expo/lib/ExponentTextureLoader";
export default function GLImage() {
console.warn("Usage of gl-react-expo Image is deprecated");
if (!(this instanceof GLImage))
throw new Error(
"Failed to construct 'Image': Please use the 'new' operator."

View File

@ -1,12 +1,8 @@
//@flow
import { View } from "react-native";
import { createSurface, TextureLoaders } from "gl-react";
import { createSurface } from "gl-react";
import GLView from "./GLViewNative";
import ExponentTextureLoader from "./ExponentTextureLoader";
import ExponentGLObjectTextureLoader from "./ExponentGLObjectTextureLoader";
TextureLoaders.add(ExponentTextureLoader);
TextureLoaders.add(ExponentGLObjectTextureLoader);
import "webgltexture-loader-expo";
const RenderLessElement = View;

View File

@ -1,96 +0,0 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
asap@~2.0.3:
version "2.0.6"
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
core-js@^1.0.0:
version "1.2.7"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
encoding@^0.1.11:
version "0.1.12"
resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
dependencies:
iconv-lite "~0.4.13"
fbjs@^0.8.9:
version "0.8.14"
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.14.tgz#d1dbe2be254c35a91e09f31f9cd50a40b2a0ed1c"
dependencies:
core-js "^1.0.0"
isomorphic-fetch "^2.1.1"
loose-envify "^1.0.0"
object-assign "^4.1.0"
promise "^7.1.1"
setimmediate "^1.0.5"
ua-parser-js "^0.7.9"
iconv-lite@~0.4.13:
version "0.4.18"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2"
invariant@^2.2.1:
version "2.2.2"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360"
dependencies:
loose-envify "^1.0.0"
is-stream@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
isomorphic-fetch@^2.1.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
dependencies:
node-fetch "^1.0.1"
whatwg-fetch ">=0.10.0"
js-tokens@^3.0.0:
version "3.0.2"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
loose-envify@^1.0.0, loose-envify@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
dependencies:
js-tokens "^3.0.0"
node-fetch@^1.0.1:
version "1.7.2"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.2.tgz#c54e9aac57e432875233525f3c891c4159ffefd7"
dependencies:
encoding "^0.1.11"
is-stream "^1.0.1"
object-assign@^4.1.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
promise@^7.1.1:
version "7.3.1"
resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
dependencies:
asap "~2.0.3"
prop-types@^15.5.8:
version "15.5.10"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154"
dependencies:
fbjs "^0.8.9"
loose-envify "^1.3.1"
setimmediate@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
ua-parser-js@^0.7.9:
version "0.7.14"
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.14.tgz#110d53fa4c3f326c121292bbeac904d2e03387ca"
whatwg-fetch@>=0.10.0:
version "2.0.3"
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84"

View File

@ -3,15 +3,10 @@
"version": "3.13.0",
"license": "MIT",
"author": "Gaëtan Renaudeau <renaudeau.gaetan@gmail.com>",
"description": "headless-gl implementation of gl-react, an universal React library to write and compose WebGL shaders",
"description":
"headless-gl implementation of gl-react, an universal React library to write and compose WebGL shaders",
"main": "lib/index.js",
"files": [
"src",
"lib",
".flowconfig",
"README.md",
"LICENSE"
],
"files": ["src", "lib", ".flowconfig", "README.md", "LICENSE"],
"peerDependencies": {
"gl-react": "^3.13.0",
"react": "*"
@ -26,7 +21,9 @@
"gl-react": "^3.13.0"
},
"scripts": {
"prepublish": "cd ../.. && export PATH=$(npm bin):$PATH && cd - &&rm -rf lib && babel --source-maps -d lib src && flow-copy-source -v src lib",
"watch": "cd ../.. && export PATH=$(npm bin):$PATH && cd - && babel --watch --source-maps -d lib src"
"prepublish":
"cd ../.. && export PATH=$(npm bin):$PATH && cd - &&rm -rf lib && babel --source-maps -d lib src && flow-copy-source -v src lib",
"watch":
"cd ../.. && export PATH=$(npm bin):$PATH && cd - && babel --watch --source-maps -d lib src"
}
}

View File

@ -1,847 +0,0 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
abbrev@1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f"
ajv@^4.9.1:
version "4.11.8"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
dependencies:
co "^4.6.0"
json-stable-stringify "^1.0.1"
ansi-regex@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
aproba@^1.0.3:
version "1.1.2"
resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1"
are-we-there-yet@~1.1.2:
version "1.1.4"
resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d"
dependencies:
delegates "^1.0.0"
readable-stream "^2.0.6"
asap@~2.0.3:
version "2.0.6"
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
asn1@~0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
assert-plus@1.0.0, assert-plus@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
assert-plus@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
aws-sign2@~0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
aws4@^1.2.1:
version "1.6.0"
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
balanced-match@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
bcrypt-pbkdf@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
dependencies:
tweetnacl "^0.14.3"
bindings@^1.2.1:
version "1.3.0"
resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.3.0.tgz#b346f6ecf6a95f5a815c5839fc7cdb22502f1ed7"
bit-twiddle@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/bit-twiddle/-/bit-twiddle-1.0.2.tgz#0c6c1fabe2b23d17173d9a61b7b7093eb9e1769e"
bl@^1.0.0:
version "1.2.1"
resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.1.tgz#cac328f7bee45730d404b692203fcb590e172d5e"
dependencies:
readable-stream "^2.0.5"
block-stream@*:
version "0.0.9"
resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
dependencies:
inherits "~2.0.0"
boom@2.x.x:
version "2.10.1"
resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
dependencies:
hoek "2.x.x"
brace-expansion@^1.1.7:
version "1.1.8"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292"
dependencies:
balanced-match "^1.0.0"
concat-map "0.0.1"
caseless@~0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
chownr@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181"
co@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
code-point-at@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
combined-stream@^1.0.5, combined-stream@~1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
dependencies:
delayed-stream "~1.0.0"
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
console-control-strings@^1.0.0, console-control-strings@~1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
core-js@^1.0.0:
version "1.2.7"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
core-util-is@1.0.2, core-util-is@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
cryptiles@2.x.x:
version "2.0.5"
resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
dependencies:
boom "2.x.x"
dashdash@^1.12.0:
version "1.14.1"
resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
dependencies:
assert-plus "^1.0.0"
deep-extend@~0.4.0:
version "0.4.2"
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f"
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
delegates@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
ecc-jsbn@~0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
dependencies:
jsbn "~0.1.0"
encoding@^0.1.11:
version "0.1.12"
resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
dependencies:
iconv-lite "~0.4.13"
end-of-stream@^1.0.0, end-of-stream@^1.1.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.0.tgz#7a90d833efda6cfa6eac0f4949dbb0fad3a63206"
dependencies:
once "^1.4.0"
expand-template@^1.0.2:
version "1.1.0"
resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-1.1.0.tgz#e09efba977bf98f9ee0ed25abd0c692e02aec3fc"
extend@~3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
extsprintf@1.3.0, extsprintf@^1.2.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
fbjs@^0.8.9:
version "0.8.14"
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.14.tgz#d1dbe2be254c35a91e09f31f9cd50a40b2a0ed1c"
dependencies:
core-js "^1.0.0"
isomorphic-fetch "^2.1.1"
loose-envify "^1.0.0"
object-assign "^4.1.0"
promise "^7.1.1"
setimmediate "^1.0.5"
ua-parser-js "^0.7.9"
forever-agent@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
form-data@~2.1.1:
version "2.1.4"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
dependencies:
asynckit "^0.4.0"
combined-stream "^1.0.5"
mime-types "^2.1.12"
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
fstream@^1.0.0, fstream@^1.0.2:
version "1.0.11"
resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171"
dependencies:
graceful-fs "^4.1.2"
inherits "~2.0.0"
mkdirp ">=0.5 0"
rimraf "2"
gauge@~2.7.3:
version "2.7.4"
resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
dependencies:
aproba "^1.0.3"
console-control-strings "^1.0.0"
has-unicode "^2.0.0"
object-assign "^4.1.0"
signal-exit "^3.0.0"
string-width "^1.0.1"
strip-ansi "^3.0.1"
wide-align "^1.1.0"
getpass@^0.1.1:
version "0.1.7"
resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
dependencies:
assert-plus "^1.0.0"
github-from-package@0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce"
gl@^4.0.2:
version "4.0.4"
resolved "https://registry.yarnpkg.com/gl/-/gl-4.0.4.tgz#46745f365a230672b2f988d85018f737e64c3343"
dependencies:
bindings "^1.2.1"
bit-twiddle "^1.0.2"
glsl-tokenizer "^2.0.2"
nan "^2.6.2"
node-gyp "^3.6.2"
prebuild-install "^2.1.1"
glob@^7.0.3, glob@^7.0.5:
version "7.1.2"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
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"
glsl-tokenizer@^2.0.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/glsl-tokenizer/-/glsl-tokenizer-2.1.2.tgz#720307522e03c57af35c00551950c4a70ef2dfb9"
dependencies:
through2 "^0.6.3"
graceful-fs@^4.1.2:
version "4.1.11"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
har-schema@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e"
har-validator@~4.2.1:
version "4.2.1"
resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a"
dependencies:
ajv "^4.9.1"
har-schema "^1.0.5"
has-unicode@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
hawk@~3.1.3:
version "3.1.3"
resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
dependencies:
boom "2.x.x"
cryptiles "2.x.x"
hoek "2.x.x"
sntp "1.x.x"
hoek@2.x.x:
version "2.16.3"
resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
http-signature@~1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
dependencies:
assert-plus "^0.2.0"
jsprim "^1.2.2"
sshpk "^1.7.0"
iconv-lite@~0.4.13:
version "0.4.18"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2"
inflight@^1.0.4:
version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
dependencies:
once "^1.3.0"
wrappy "1"
inherits@2, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
ini@~1.3.0:
version "1.3.4"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e"
invariant@^2.2.1:
version "2.2.2"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360"
dependencies:
loose-envify "^1.0.0"
is-fullwidth-code-point@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
dependencies:
number-is-nan "^1.0.0"
is-stream@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
is-typedarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
isarray@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
isarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
isexe@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
isomorphic-fetch@^2.1.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
dependencies:
node-fetch "^1.0.1"
whatwg-fetch ">=0.10.0"
isstream@~0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
js-tokens@^3.0.0:
version "3.0.2"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
jsbn@~0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
json-schema@0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
json-stable-stringify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
dependencies:
jsonify "~0.0.0"
json-stringify-safe@~5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
jsonify@~0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
jsprim@^1.2.2:
version "1.4.1"
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
dependencies:
assert-plus "1.0.0"
extsprintf "1.3.0"
json-schema "0.2.3"
verror "1.10.0"
loose-envify@^1.0.0, loose-envify@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
dependencies:
js-tokens "^3.0.0"
mime-db@~1.29.0:
version "1.29.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878"
mime-types@^2.1.12, mime-types@~2.1.7:
version "2.1.16"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.16.tgz#2b858a52e5ecd516db897ac2be87487830698e23"
dependencies:
mime-db "~1.29.0"
minimatch@^3.0.2, minimatch@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
dependencies:
brace-expansion "^1.1.7"
minimist@0.0.8:
version "0.0.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
minimist@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
dependencies:
minimist "0.0.8"
nan@^2.6.2:
version "2.6.2"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45"
node-abi@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.1.0.tgz#50ad834affcf17440e12bfc5f9ba0946f572d10c"
node-fetch@^1.0.1:
version "1.7.2"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.2.tgz#c54e9aac57e432875233525f3c891c4159ffefd7"
dependencies:
encoding "^0.1.11"
is-stream "^1.0.1"
node-gyp@^3.6.2:
version "3.6.2"
resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.6.2.tgz#9bfbe54562286284838e750eac05295853fa1c60"
dependencies:
fstream "^1.0.0"
glob "^7.0.3"
graceful-fs "^4.1.2"
minimatch "^3.0.2"
mkdirp "^0.5.0"
nopt "2 || 3"
npmlog "0 || 1 || 2 || 3 || 4"
osenv "0"
request "2"
rimraf "2"
semver "~5.3.0"
tar "^2.0.0"
which "1"
noop-logger@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2"
"nopt@2 || 3":
version "3.0.6"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
dependencies:
abbrev "1"
"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.1:
version "4.1.2"
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
dependencies:
are-we-there-yet "~1.1.2"
console-control-strings "~1.1.0"
gauge "~2.7.3"
set-blocking "~2.0.0"
number-is-nan@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
oauth-sign@~0.8.1:
version "0.8.2"
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
object-assign@^4.1.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
once@^1.3.0, once@^1.3.1, once@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
dependencies:
wrappy "1"
os-homedir@^1.0.0, os-homedir@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
os-tmpdir@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
osenv@0:
version "0.1.4"
resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644"
dependencies:
os-homedir "^1.0.0"
os-tmpdir "^1.0.0"
path-is-absolute@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
performance-now@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
performance-now@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
prebuild-install@^2.1.1:
version "2.2.2"
resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-2.2.2.tgz#dd47c4d61f3754fb17bbf601759e5922e16e0671"
dependencies:
expand-template "^1.0.2"
github-from-package "0.0.0"
minimist "^1.2.0"
mkdirp "^0.5.1"
node-abi "^2.0.0"
noop-logger "^0.1.1"
npmlog "^4.0.1"
os-homedir "^1.0.1"
pump "^1.0.1"
rc "^1.1.6"
simple-get "^1.4.2"
tar-fs "^1.13.0"
tunnel-agent "^0.6.0"
xtend "4.0.1"
process-nextick-args@~1.0.6:
version "1.0.7"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
promise@^7.1.1:
version "7.3.1"
resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
dependencies:
asap "~2.0.3"
prop-types@^15.5.8:
version "15.5.10"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154"
dependencies:
fbjs "^0.8.9"
loose-envify "^1.3.1"
pump@^1.0.0, pump@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.2.tgz#3b3ee6512f94f0e575538c17995f9f16990a5d51"
dependencies:
end-of-stream "^1.1.0"
once "^1.3.1"
punycode@^1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
qs@~6.4.0:
version "6.4.0"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
raf@^3.3.0:
version "3.3.2"
resolved "https://registry.yarnpkg.com/raf/-/raf-3.3.2.tgz#0c13be0b5b49b46f76d6669248d527cf2b02fe27"
dependencies:
performance-now "^2.1.0"
rc@^1.1.6:
version "1.2.1"
resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95"
dependencies:
deep-extend "~0.4.0"
ini "~1.3.0"
minimist "^1.2.0"
strip-json-comments "~2.0.1"
"readable-stream@>=1.0.33-1 <1.1.0-0":
version "1.0.34"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.1"
isarray "0.0.1"
string_decoder "~0.10.x"
readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.0.6:
version "2.3.3"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c"
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.3"
isarray "~1.0.0"
process-nextick-args "~1.0.6"
safe-buffer "~5.1.1"
string_decoder "~1.0.3"
util-deprecate "~1.0.1"
request@2:
version "2.81.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
dependencies:
aws-sign2 "~0.6.0"
aws4 "^1.2.1"
caseless "~0.12.0"
combined-stream "~1.0.5"
extend "~3.0.0"
forever-agent "~0.6.1"
form-data "~2.1.1"
har-validator "~4.2.1"
hawk "~3.1.3"
http-signature "~1.1.0"
is-typedarray "~1.0.0"
isstream "~0.1.2"
json-stringify-safe "~5.0.1"
mime-types "~2.1.7"
oauth-sign "~0.8.1"
performance-now "^0.2.0"
qs "~6.4.0"
safe-buffer "^5.0.1"
stringstream "~0.0.4"
tough-cookie "~2.3.0"
tunnel-agent "^0.6.0"
uuid "^3.0.0"
rimraf@2:
version "2.6.1"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d"
dependencies:
glob "^7.0.5"
safe-buffer@^5.0.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
semver@~5.3.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
set-blocking@~2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
setimmediate@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
signal-exit@^3.0.0:
version "3.0.2"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
simple-get@^1.4.2:
version "1.4.3"
resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-1.4.3.tgz#e9755eda407e96da40c5e5158c9ea37b33becbeb"
dependencies:
once "^1.3.1"
unzip-response "^1.0.0"
xtend "^4.0.0"
sntp@1.x.x:
version "1.0.9"
resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
dependencies:
hoek "2.x.x"
sshpk@^1.7.0:
version "1.13.1"
resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3"
dependencies:
asn1 "~0.2.3"
assert-plus "^1.0.0"
dashdash "^1.12.0"
getpass "^0.1.1"
optionalDependencies:
bcrypt-pbkdf "^1.0.0"
ecc-jsbn "~0.1.1"
jsbn "~0.1.0"
tweetnacl "~0.14.0"
string-width@^1.0.1, string-width@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
dependencies:
code-point-at "^1.0.0"
is-fullwidth-code-point "^1.0.0"
strip-ansi "^3.0.0"
string_decoder@~0.10.x:
version "0.10.31"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
string_decoder@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
dependencies:
safe-buffer "~5.1.0"
stringstream@~0.0.4:
version "0.0.5"
resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
strip-ansi@^3.0.0, strip-ansi@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
dependencies:
ansi-regex "^2.0.0"
strip-json-comments@~2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
tar-fs@^1.13.0:
version "1.15.3"
resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.15.3.tgz#eccf935e941493d8151028e636e51ce4c3ca7f20"
dependencies:
chownr "^1.0.1"
mkdirp "^0.5.1"
pump "^1.0.0"
tar-stream "^1.1.2"
tar-stream@^1.1.2:
version "1.5.4"
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.4.tgz#36549cf04ed1aee9b2a30c0143252238daf94016"
dependencies:
bl "^1.0.0"
end-of-stream "^1.0.0"
readable-stream "^2.0.0"
xtend "^4.0.0"
tar@^2.0.0:
version "2.2.1"
resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
dependencies:
block-stream "*"
fstream "^1.0.2"
inherits "2"
through2@^0.6.3:
version "0.6.5"
resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48"
dependencies:
readable-stream ">=1.0.33-1 <1.1.0-0"
xtend ">=4.0.0 <4.1.0-0"
tough-cookie@~2.3.0:
version "2.3.2"
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a"
dependencies:
punycode "^1.4.1"
tunnel-agent@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
dependencies:
safe-buffer "^5.0.1"
tweetnacl@^0.14.3, tweetnacl@~0.14.0:
version "0.14.5"
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
ua-parser-js@^0.7.9:
version "0.7.14"
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.14.tgz#110d53fa4c3f326c121292bbeac904d2e03387ca"
unzip-response@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe"
util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
uuid@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
verror@1.10.0:
version "1.10.0"
resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
dependencies:
assert-plus "^1.0.0"
core-util-is "1.0.2"
extsprintf "^1.2.0"
whatwg-fetch@>=0.10.0:
version "2.0.3"
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84"
which@1:
version "1.3.0"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
dependencies:
isexe "^2.0.0"
wide-align@^1.1.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710"
dependencies:
string-width "^1.0.2"
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
xtend@4.0.1, "xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"

View File

@ -3,7 +3,8 @@
"version": "3.13.0",
"license": "MIT",
"author": "Gaëtan Renaudeau <renaudeau.gaetan@gmail.com>",
"description": "React Native standalone implementation of gl-react, an universal React library to write and compose WebGL shaders",
"description":
"React Native standalone implementation of gl-react, an universal React library to write and compose WebGL shaders",
"keywords": [
"gl-react",
"gl",
@ -34,12 +35,13 @@
"gl-react": "^3.13.0"
},
"scripts": {
"prepublish": "cd ../.. && export PATH=$(npm bin):$PATH && cd - && rm -rf lib && babel --source-maps -d lib src && flow-copy-source -v src lib",
"watch": "cd ../.. && export PATH=$(npm bin):$PATH && cd - && babel --watch --source-maps -d lib src"
"prepublish":
"cd ../.. && export PATH=$(npm bin):$PATH && cd - && rm -rf lib && babel --source-maps -d lib src && flow-copy-source -v src lib",
"watch":
"cd ../.. && export PATH=$(npm bin):$PATH && cd - && babel --watch --source-maps -d lib src"
},
"dependencies": {
"events": "^1.1.1",
"lru": "^3.1.0",
"prop-types": "^15.5.8"
"prop-types": "^15.5.8",
"webgltexture-loader-react-native": "^0.6.0"
}
}

View File

@ -1,73 +0,0 @@
//@flow
import { TextureLoader } from "gl-react";
import type { DisposablePromise } from "gl-react/lib/helpers/disposable";
type ImageSource = Object | "number";
type ImageSourceHash = string | number;
type Asset = { texture: WebGLTexture, width: number, height: number };
function imageSourceHash(imageSource: ImageSource): ImageSourceHash {
if (typeof imageSource === "number") return imageSource;
const { uri } = imageSource;
if (!uri) {
throw new Error(
"GLImages: unsupported imageSource: {uri} needs to be defined"
);
}
return uri;
}
export default class ImageSourceTextureLoader extends TextureLoader<
ImageSource
> {
loads: Map<*, DisposablePromise<WebGLTexture>> = new Map();
textureAssets: Map<*, Asset> = new Map();
dispose() {
this.loads.forEach(d => {
d.dispose();
});
this.loads.clear();
const { gl } = this;
const rngl = gl.getExtension("RN");
this.textureAssets.forEach(({ texture }) => {
rngl.unloadTexture(texture);
});
this.textureAssets.clear();
}
canLoad(input: any) {
return (
typeof input === "number" ||
(input && typeof input === "object" && typeof input.uri === "string")
);
}
load(imageSource: ImageSource): DisposablePromise<*> {
const hash = imageSourceHash(imageSource);
const load = this.loads.get(hash);
if (load) return load;
let ignored = false;
let dispose = () => {
ignored = true;
};
const promise = this.gl
.getExtension("RN")
.loadTexture({ yflip: true, image: imageSource })
.then(data => {
this.textureAssets.set(hash, data);
return data.texture;
});
const d = { dispose, promise };
this.loads.set(hash, d);
return d;
}
get(imageSource: ImageSource) {
const asset = this.textureAssets.get(imageSourceHash(imageSource));
return asset && asset.texture;
}
getSize(imageSource: ImageSource) {
const asset = this.textureAssets.get(imageSourceHash(imageSource));
if (!asset) return;
return [asset.width, asset.height];
}
}

View File

@ -1,9 +1,8 @@
//@flow
import { View } from "react-native";
import { createSurface, TextureLoaders } from "gl-react";
import { createSurface } from "gl-react";
import GLView from "./GLViewNative";
import ImageSourceTextureLoader from "./ImageSourceTextureLoader";
TextureLoaders.add(ImageSourceTextureLoader);
import "webgltexture-loader-react-native";
const RenderLessElement = View;

View File

@ -1,104 +0,0 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
asap@~2.0.3:
version "2.0.6"
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
core-js@^1.0.0:
version "1.2.7"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
encoding@^0.1.11:
version "0.1.12"
resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
dependencies:
iconv-lite "~0.4.13"
events@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924"
fbjs@^0.8.9:
version "0.8.14"
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.14.tgz#d1dbe2be254c35a91e09f31f9cd50a40b2a0ed1c"
dependencies:
core-js "^1.0.0"
isomorphic-fetch "^2.1.1"
loose-envify "^1.0.0"
object-assign "^4.1.0"
promise "^7.1.1"
setimmediate "^1.0.5"
ua-parser-js "^0.7.9"
iconv-lite@~0.4.13:
version "0.4.18"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2"
inherits@^2.0.1:
version "2.0.3"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
is-stream@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
isomorphic-fetch@^2.1.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
dependencies:
node-fetch "^1.0.1"
whatwg-fetch ">=0.10.0"
js-tokens@^3.0.0:
version "3.0.2"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
loose-envify@^1.0.0, loose-envify@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
dependencies:
js-tokens "^3.0.0"
lru@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/lru/-/lru-3.1.0.tgz#ea7fb8546d83733396a13091d76cfeb4c06837d5"
dependencies:
inherits "^2.0.1"
node-fetch@^1.0.1:
version "1.7.2"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.2.tgz#c54e9aac57e432875233525f3c891c4159ffefd7"
dependencies:
encoding "^0.1.11"
is-stream "^1.0.1"
object-assign@^4.1.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
promise@^7.1.1:
version "7.3.1"
resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
dependencies:
asap "~2.0.3"
prop-types@^15.5.8:
version "15.5.10"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154"
dependencies:
fbjs "^0.8.9"
loose-envify "^1.3.1"
setimmediate@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
ua-parser-js@^0.7.9:
version "0.7.14"
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.14.tgz#110d53fa4c3f326c121292bbeac904d2e03387ca"
whatwg-fetch@>=0.10.0:
version "2.0.3"
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84"

View File

@ -23,14 +23,13 @@
"react": "*"
},
"dependencies": {
"gl-format-compiler-error":
"github:gre/gl-format-compiler-error#fix-null-ending-character",
"gl-shader": "^4.2.1",
"invariant": "^2.2.1",
"ndarray": "^1.0.18",
"ndarray-ops": "^1.2.2",
"prop-types": "^15.5.8",
"typedarray-pool": "^1.1.0"
"typedarray-pool": "^1.1.0",
"webgltexture-loader": "^0.6.0",
"webgltexture-loader-ndarray": "^0.6.0"
},
"scripts": {
"prepublish":

View File

@ -609,7 +609,9 @@ export default class Node extends Component {
const pixels: Uint8Array = this._captureAlloc(size);
this._bind();
gl.readPixels(x, y, w, h, gl.RGBA, gl.UNSIGNED_BYTE, pixels);
return ndarray(pixels, [h, w, 4]).step(-1, 1, 1).transpose(1, 0, 2);
return ndarray(pixels, [h, w, 4])
.step(-1, 1, 1)
.transpose(1, 0, 2);
}
/**
@ -829,7 +831,7 @@ export default class Node extends Component {
const { types } = shader;
const glRedrawableDependencies: Array<Node | Bus> = [];
const pendingTextures: Array<Promise<*>> = [];
const pendingTextures: Array<*> = [];
let units = 0;
const usedUniforms = Object.keys(types.uniforms);
const providedUniforms = Object.keys(uniforms);
@ -942,14 +944,15 @@ export default class Node extends Component {
} else {
const t = loader.get(input);
if (t) {
loader.update(input);
result = {
directTexture: t,
directTextureSize: loader.getSize(input)
directTexture: t.texture,
directTextureSize: [t.width, t.height]
};
} else {
// otherwise, we will have to load it and postpone the rendering.
const d = loader.load(input);
pendingTextures.push(d.promise);
const p = loader.load(input);
pendingTextures.push(p);
}
}
}

View File

@ -1,54 +0,0 @@
//@flow
import type { DisposablePromise } from "./helpers/disposable";
const noop = () => {};
/**
* A texture loader is an extensible way to add more "renderable texture" into gl-react.
*/
export default class TextureLoader<T> {
/**
* @property {WebGLRenderingContext} gl - the contextual rendering context
*/
gl: WebGLRenderingContext;
/**
*
*/
constructor(gl: WebGLRenderingContext) {
this.gl = gl;
}
/**
* You must free everything you have done and stop all pending load() calls.
*/
+dispose: () => void;
/**
* Check if the loader should handle a given input
*/
+canLoad: (input: any) => boolean;
/**
* Load the resource by its input. it returns a promise and a dispose function.
* If load() is called twice with the same input, same disposable object is expected (implementations needs to cache it).
*/
load(input: T): DisposablePromise<WebGLTexture> {
// noop default implementation
return {
promise: new Promise(noop),
dispose: noop
};
}
/**
* try to get in sync the texture for a given input. otherwise null.
* If null is returned, load() can be called in order to load the resource that will later be available in a future get().
*/
+get: (input: T) => ?WebGLTexture;
/**
* try to get in sync the texture size for a given input. otherwise null.
*/
+getSize: (input: T) => ?[number, number];
}

View File

@ -1,33 +0,0 @@
//@flow
import { disposeObjectMap } from "./helpers/disposable";
import TextureLoader from "./TextureLoader";
import type { NDArray } from "ndarray";
import drawNDArrayTexture from "./helpers/drawNDArrayTexture";
export default class TextureLoaderNDArray extends TextureLoader<NDArray> {
textures: WeakMap<NDArray, WebGLTexture>;
constructor(gl: WebGLRenderingContext) {
super(gl);
this.textures = new WeakMap();
}
canLoad(obj: *) {
return obj.shape && obj.data && obj.stride;
}
dispose() {
disposeObjectMap(this.textures);
}
get(array: NDArray) {
const { gl } = this;
let texture = this.textures.get(array);
if (!texture) {
texture = gl.createTexture();
this.textures.set(array, texture);
}
gl.bindTexture(gl.TEXTURE_2D, texture);
drawNDArrayTexture(gl, texture, array);
return texture;
}
getSize(array: NDArray) {
return array.shape.slice(0, 2);
}
}

View File

@ -1,58 +0,0 @@
//@flow
import TextureLoader from "./TextureLoader";
export default class TextureLoaderRawObject<T> extends TextureLoader<T> {
textureMemoized: WeakMap<T, WebGLTexture> = new WeakMap();
textures: Array<WebGLTexture> = [];
+mapInput: (t: T) => any;
+mapInputSize: (t: T) => ?[number, number];
dispose() {
const { gl } = this;
this.textures.forEach(t => gl.deleteTexture(t));
this.textureMemoized = new WeakMap();
this.textures = [];
}
getSize(obj: T) {
let texture = this.textureMemoized.get(obj);
if (!texture) return null;
return this.mapInputSize(obj);
}
get(obj: T) {
const { gl } = this;
let texture = this.textureMemoized.get(obj);
if (!texture) {
texture = gl.createTexture();
this.textureMemoized.set(obj, texture);
this.textures.push(texture);
}
gl.bindTexture(gl.TEXTURE_2D, texture);
const value = this.mapInput ? this.mapInput(obj) : obj;
if (value) {
// $FlowFixMe we are loosely on types here because we allow more that browser WebGL impl
gl.texImage2D(
gl.TEXTURE_2D,
0,
gl.RGBA,
gl.RGBA,
gl.UNSIGNED_BYTE,
value
);
} else {
gl.texImage2D(
gl.TEXTURE_2D,
0,
gl.RGBA,
2,
2,
0,
gl.RGBA,
gl.UNSIGNED_BYTE,
null
);
}
return texture;
}
}

View File

@ -1,33 +0,0 @@
//@flow
import type TextureLoader from "./TextureLoader";
import TextureLoaderNDArray from "./TextureLoaderNDArray";
const loaderClasses: Array<Class<TextureLoader<any>>> = [TextureLoaderNDArray];
/**
* Extensible way to support more sampler2D uniform texture formats.
* You must call the methods statically before the `<Surface>` is instanciated.
* @namespace
*/
const TextureLoaders = {
/**
* Add a TextureLoader class to extend texture format support.
* @memberof TextureLoaders
*/
add(loader: Class<TextureLoader<any>>) {
loaderClasses.push(loader);
},
/**
* Remove a previously added TextureLoader class.
* @memberof TextureLoaders
*/
remove(loader: Class<TextureLoader<any>>) {
const i = loaderClasses.indexOf(loader);
if (i !== -1) loaderClasses.splice(i, 1);
},
get() {
return loaderClasses;
}
};
export default TextureLoaders;

View File

@ -3,17 +3,15 @@ import invariant from "invariant";
import React, { Component } from "react";
import PropTypes from "prop-types";
import createShader from "gl-shader";
import { disposeArray, disposeObjectMap } from "./helpers/disposable";
import Bus from "./Bus";
import Shaders from "./Shaders";
import TextureLoaders from "./TextureLoaders";
import Visitors from "./Visitors";
import type { DisposablePromise } from "./helpers/disposable";
import { LoaderResolver } from "webgltexture-loader";
import type { NDArray } from "ndarray";
import type { ShaderIdentifier, ShaderInfo } from "./Shaders";
import type { Shader } from "gl-shader";
import type { VisitorLike } from "./Visitor";
import type TextureLoader from "./TextureLoader";
import type { WebGLTextureLoader } from "webgltexture-loader";
import type Node from "./Node";
const __DEV__ = process.env.NODE_ENV === "development";
@ -62,7 +60,7 @@ interface ISurface extends Component<void, SurfaceProps, any> {
+_removeGLNodeChild: (node: Node) => void,
+_resolveTextureLoader: (
raw: any
) => { loader: ?TextureLoader<*>, input: mixed },
) => { loader: ?WebGLTextureLoader<*>, input: mixed },
+_getShader: (shaderId: ShaderIdentifier) => Shader,
+_makeShader: (shaderInfo: ShaderInfo) => Shader,
+_draw: () => void,
@ -168,11 +166,11 @@ export default ({
id: number = ++surfaceId;
gl: ?WebGLRenderingContext;
buffer: WebGLBuffer;
loaders: ?Array<TextureLoader<*>>;
loaderResolver: ?LoaderResolver;
glView: ReactClass<*>;
root: ?Node;
shaders: { [key: string]: Shader } = {};
_preparingGL: Array<DisposablePromise<*>> = [];
_preparingGL: Array<*> = [];
_needsRedraw: boolean = false;
state: {
ready: boolean,
@ -413,9 +411,13 @@ export default ({
gl.deleteTexture(this._emptyTexture);
this._emptyTexture = null;
}
if (this.loaders) disposeArray(this.loaders);
disposeArray(this._preparingGL);
disposeObjectMap(this.shaders);
if (this.loaderResolver) {
this.loaderResolver.dispose();
}
for (let k in this.shaders) {
this.shaders[k].dispose();
}
this.shaders = {};
gl.deleteBuffer(this.buffer);
this.getVisitors().map(v => v.onSurfaceGLContextChange(this, null));
}
@ -429,7 +431,7 @@ export default ({
this.gl = gl;
this.getVisitors().map(v => v.onSurfaceGLContextChange(this, gl));
this.loaders = TextureLoaders.get().map(L => new L(gl));
this.loaderResolver = new LoaderResolver(gl);
gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, 1);
@ -444,7 +446,7 @@ export default ({
const { preload } = this.props;
const all: Array<DisposablePromise<*>> = [];
const all: Array<Promise<*>> = [];
(preload || []).forEach(raw => {
if (!raw) {
@ -461,11 +463,10 @@ export default ({
all.push(loader.load(input));
});
disposeArray(this._preparingGL);
this._preparingGL = all;
if (all.length > 0) {
Promise.all(all.map(d => d.promise)).then(onSuccess, onError); // FIXME make sure this never finish if _prepareGL is called again.
Promise.all(all).then(onSuccess, onError); // FIXME make sure this never finish if _prepareGL is called again.
} else {
onSuccess();
}
@ -524,10 +525,10 @@ export default ({
_resolveTextureLoader(
raw: mixed
): { loader: ?TextureLoader<*>, input: any } {
): { loader: ?WebGLTextureLoader<*>, input: any } {
let input = raw;
let loader: ?TextureLoader<*> =
this.loaders && this.loaders.find(loader => loader.canLoad(input));
let loader: ?WebGLTextureLoader<*> =
this.loaderResolver && this.loaderResolver.resolve(input);
return { loader, input };
}

View File

@ -1,44 +0,0 @@
//@flow
// Some utility for the disposable pattern
/**
* @private
* An object that have a dispose() function
*/
export type Disposable = {
+dispose: () => void,
};
/**
* An object with a `promise` and a `dispose` function to cancel the promise (making a pending promise to never ends).
*/
type DisposablePromise<A> = {|
+dispose: () => void,
promise: Promise<A>,
|};
export type { DisposablePromise };
/**
* @private
* destroy an object of disposable.
* NB the object gets emptied as a way to help the GC.
*/
export function disposeObjectMap<T: Disposable>(objmap: { [key: string]: T }) {
for (const k in objmap) {
if (objmap.hasOwnProperty(k)) {
objmap[k].dispose();
delete objmap[k];
}
}
}
/**
* @private
* destroy a array of disposable.
* NB the array gets emptied as a way to help the GC.
*/
export function disposeArray<T: Disposable>(arr: Array<T>) {
let d;
while ((d = arr.pop()))
d.dispose();
}

View File

@ -1,125 +0,0 @@
//@flow
import type { NDArray } from "ndarray";
import ndarray from "ndarray";
import ops from "ndarray-ops";
import pool from "typedarray-pool";
if (typeof Buffer === "undefined") {
global.Buffer = class Buffer {
// mock shim so pool don't crash..
static isBuffer = b => b instanceof Buffer;
};
}
// code is partly taken from https://github.com/stackgl/gl-texture2d/blob/master/texture.js
function isPacked(shape, stride) {
if (shape.length === 3) {
return (
stride[2] === 1 &&
stride[1] === shape[0] * shape[2] &&
stride[0] === shape[2]
);
}
return stride[0] === 1 && stride[1] === shape[0];
}
function convertFloatToUint8(out, inp) {
ops.muls(out, inp, 255.0);
}
export default (
gl: WebGLRenderingContext,
texture: WebGLTexture,
array: NDArray
) => {
let dtype = array.dtype;
let shape = array.shape.slice();
let maxSize = gl.getParameter(gl.MAX_TEXTURE_SIZE);
if (
shape[0] < 0 ||
shape[0] > maxSize ||
shape[1] < 0 ||
shape[1] > maxSize
) {
throw new Error("gl-react: Invalid texture size");
}
let packed = isPacked(shape, array.stride.slice());
let type = 0;
if (dtype === "float32") {
type = gl.FLOAT;
} else if (dtype === "float64") {
type = gl.FLOAT;
packed = false;
dtype = "float32";
} else if (dtype === "uint8") {
type = gl.UNSIGNED_BYTE;
} else {
type = gl.UNSIGNED_BYTE;
packed = false;
dtype = "uint8";
}
let format = 0;
if (shape.length === 2) {
format = gl.LUMINANCE;
shape = [shape[0], shape[1], 1];
array = ndarray(
array.data,
shape,
[array.stride[0], array.stride[1], 1],
array.offset
);
} else if (shape.length === 3) {
if (shape[2] === 1) {
format = gl.ALPHA;
} else if (shape[2] === 2) {
format = gl.LUMINANCE_ALPHA;
} else if (shape[2] === 3) {
format = gl.RGB;
} else if (shape[2] === 4) {
format = gl.RGBA;
} else {
throw new Error("gl-texture2d: Invalid shape for pixel coords");
}
} else {
throw new Error("gl-texture2d: Invalid shape for texture");
}
if (type === gl.FLOAT && !gl.getExtension("OES_texture_float")) {
type = gl.UNSIGNED_BYTE;
packed = false;
}
let buffer, buf_store;
let size = array.size;
if (!packed) {
let stride = [shape[2], shape[2] * shape[0], 1];
buf_store = pool.malloc(size, dtype);
let buf_array = ndarray(buf_store, shape, stride, 0);
if (
(dtype === "float32" || dtype === "float64") &&
type === gl.UNSIGNED_BYTE
) {
convertFloatToUint8(buf_array, array);
} else {
ops.assign(buf_array, array);
}
buffer = buf_store.subarray(0, size);
} else if (array.offset === 0 && array.data.length === size) {
buffer = array.data;
} else {
buffer = array.data.subarray(array.offset, array.offset + size);
}
gl.texImage2D(
gl.TEXTURE_2D,
0,
format,
shape[0],
shape[1],
0,
format,
type,
buffer
);
if (buf_store) {
pool.free(buf_store);
}
};

View File

@ -7,14 +7,13 @@ import LinearCopy from "./LinearCopy";
import NearestCopy from "./NearestCopy";
import Node from "./Node";
import Shaders from "./Shaders";
import TextureLoader from "./TextureLoader";
import TextureLoaderRawObject from "./TextureLoaderRawObject";
import TextureLoaders from "./TextureLoaders";
import Uniform from "./Uniform";
import Visitor from "./Visitor";
import VisitorLogger from "./VisitorLogger";
import Visitors from "./Visitors";
import "webgltexture-loader-ndarray";
export {
Bus,
connectSize,
@ -25,9 +24,6 @@ export {
NearestCopy,
Node,
Shaders,
TextureLoader,
TextureLoaderRawObject,
TextureLoaders,
Uniform,
Visitor,
VisitorLogger,

View File

@ -1,239 +0,0 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
add-line-numbers@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/add-line-numbers/-/add-line-numbers-1.0.1.tgz#48dbbdea47dbd234deafeac6c93cea6f70b4b7e3"
dependencies:
pad-left "^1.0.2"
asap@~2.0.3:
version "2.0.6"
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
atob-lite@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/atob-lite/-/atob-lite-1.0.0.tgz#b88dca6006922b962094f7556826bab31c4a296b"
bit-twiddle@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/bit-twiddle/-/bit-twiddle-1.0.2.tgz#0c6c1fabe2b23d17173d9a61b7b7093eb9e1769e"
core-js@^1.0.0:
version "1.2.7"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
core-util-is@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
cwise-compiler@^1.0.0:
version "1.1.3"
resolved "https://registry.yarnpkg.com/cwise-compiler/-/cwise-compiler-1.1.3.tgz#f4d667410e850d3a313a7d2db7b1e505bb034cc5"
dependencies:
uniq "^1.0.0"
dup@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/dup/-/dup-1.0.0.tgz#51fc5ac685f8196469df0b905e934b20af5b4029"
encoding@^0.1.11:
version "0.1.12"
resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
dependencies:
iconv-lite "~0.4.13"
fbjs@^0.8.9:
version "0.8.14"
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.14.tgz#d1dbe2be254c35a91e09f31f9cd50a40b2a0ed1c"
dependencies:
core-js "^1.0.0"
isomorphic-fetch "^2.1.1"
loose-envify "^1.0.0"
object-assign "^4.1.0"
promise "^7.1.1"
setimmediate "^1.0.5"
ua-parser-js "^0.7.9"
gl-constants@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/gl-constants/-/gl-constants-1.0.0.tgz#597a504e364750ff50253aa35f8dea7af4a5d233"
gl-format-compiler-error@^1.0.2, "gl-format-compiler-error@github:gre/gl-format-compiler-error#fix-null-ending-character":
version "1.0.2"
resolved "https://codeload.github.com/gre/gl-format-compiler-error/tar.gz/33d71896fca0f738c31c66f0f985093f48bb255c"
dependencies:
add-line-numbers "^1.0.1"
gl-constants "^1.0.0"
glsl-shader-name "^1.0.0"
sprintf-js "^1.0.3"
gl-shader@^4.2.1:
version "4.2.1"
resolved "https://registry.yarnpkg.com/gl-shader/-/gl-shader-4.2.1.tgz#bc9b808e9293c51b668e88de615b0c113708dc2f"
dependencies:
gl-format-compiler-error "^1.0.2"
weakmap-shim "^1.1.0"
glsl-shader-name@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/glsl-shader-name/-/glsl-shader-name-1.0.0.tgz#a2c30b3ba73499befb0cc7184d7c7733dd4b487d"
dependencies:
atob-lite "^1.0.0"
glsl-tokenizer "^2.0.2"
glsl-tokenizer@^2.0.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/glsl-tokenizer/-/glsl-tokenizer-2.1.2.tgz#720307522e03c57af35c00551950c4a70ef2dfb9"
dependencies:
through2 "^0.6.3"
iconv-lite@~0.4.13:
version "0.4.18"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2"
inherits@~2.0.1:
version "2.0.3"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
invariant@^2.2.1:
version "2.2.2"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360"
dependencies:
loose-envify "^1.0.0"
iota-array@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/iota-array/-/iota-array-1.0.0.tgz#81ef57fe5d05814cd58c2483632a99c30a0e8087"
is-buffer@^1.0.2:
version "1.1.5"
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc"
is-stream@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
isarray@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
isomorphic-fetch@^2.1.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
dependencies:
node-fetch "^1.0.1"
whatwg-fetch ">=0.10.0"
js-tokens@^3.0.0:
version "3.0.2"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
loose-envify@^1.0.0, loose-envify@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
dependencies:
js-tokens "^3.0.0"
ndarray-ops@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/ndarray-ops/-/ndarray-ops-1.2.2.tgz#59e88d2c32a7eebcb1bc690fae141579557a614e"
dependencies:
cwise-compiler "^1.0.0"
ndarray@^1.0.18:
version "1.0.18"
resolved "https://registry.yarnpkg.com/ndarray/-/ndarray-1.0.18.tgz#b60d3a73224ec555d0faa79711e502448fd3f793"
dependencies:
iota-array "^1.0.0"
is-buffer "^1.0.2"
node-fetch@^1.0.1:
version "1.7.2"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.2.tgz#c54e9aac57e432875233525f3c891c4159ffefd7"
dependencies:
encoding "^0.1.11"
is-stream "^1.0.1"
object-assign@^4.1.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
pad-left@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/pad-left/-/pad-left-1.0.2.tgz#19e5735ea98395a26cedc6ab926ead10f3100d4c"
dependencies:
repeat-string "^1.3.0"
promise@^7.1.1:
version "7.3.1"
resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
dependencies:
asap "~2.0.3"
prop-types@^15.5.8:
version "15.5.10"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154"
dependencies:
fbjs "^0.8.9"
loose-envify "^1.3.1"
"readable-stream@>=1.0.33-1 <1.1.0-0":
version "1.0.34"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.1"
isarray "0.0.1"
string_decoder "~0.10.x"
repeat-string@^1.3.0:
version "1.6.1"
resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
setimmediate@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
sprintf-js@^1.0.3:
version "1.1.1"
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.1.tgz#36be78320afe5801f6cea3ee78b6e5aab940ea0c"
string_decoder@~0.10.x:
version "0.10.31"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
through2@^0.6.3:
version "0.6.5"
resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48"
dependencies:
readable-stream ">=1.0.33-1 <1.1.0-0"
xtend ">=4.0.0 <4.1.0-0"
typedarray-pool@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/typedarray-pool/-/typedarray-pool-1.1.0.tgz#d114f484801489f53ecab5e8088aa23044f498d9"
dependencies:
bit-twiddle "^1.0.0"
dup "^1.0.0"
ua-parser-js@^0.7.9:
version "0.7.14"
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.14.tgz#110d53fa4c3f326c121292bbeac904d2e03387ca"
uniq@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
weakmap-shim@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/weakmap-shim/-/weakmap-shim-1.1.1.tgz#d65afd784109b2166e00ff571c33150ec2a40b49"
whatwg-fetch@>=0.10.0:
version "2.0.3"
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84"
"xtend@>=4.0.0 <4.1.0-0":
version "4.0.1"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"

View File

@ -8,7 +8,6 @@ undefined {
"dispose": 0,
"get": 1,
"load": 1,
"textureDispose": 0,
}
`;
@ -20,7 +19,6 @@ undefined {
"dispose": 0,
"get": 2,
"load": 1,
"textureDispose": 0,
}
`;
@ -32,6 +30,5 @@ undefined {
"dispose": 1,
"get": 2,
"load": 1,
"textureDispose": 0,
}
`;

View File

@ -17,16 +17,14 @@ import {
GLSL,
Visitor,
Visitors,
TextureLoader,
TextureLoaders,
Uniform,
Bus,
VisitorLogger,
connectSize
} from "gl-react";
import { globalRegistry } from "webgltexture-loader";
import { Surface } from "gl-react-headless";
import loseGL from "gl-react-headless/lib/loseGL";
import type { DisposablePromise } from "gl-react/lib/helpers/disposable";
import React from "react";
import renderer from "react-test-renderer";
import baboon from "baboon-image";
@ -544,7 +542,7 @@ test("Surface can be resized", () => {
}`
}
});
const renderForSize = (width, height) =>
const renderForSize = (width, height) => (
<Surface
width={width}
height={height}
@ -553,7 +551,8 @@ test("Surface can be resized", () => {
<LinearCopy>
<Node shader={shaders.red} backbuffering />
</LinearCopy>
</Surface>;
</Surface>
);
const inst = create(renderForSize(1, 1));
const surface = inst.getInstance();
inst.update(renderForSize(20, 20));
@ -639,9 +638,7 @@ test("bus example 1", () => {
<Bus ref="bus">
<Node shader={shaders.red} />
</Bus>
<LinearCopy>
{() => this.refs.bus}
</LinearCopy>
<LinearCopy>{() => this.refs.bus}</LinearCopy>
</Surface>
);
}
@ -678,13 +675,9 @@ test("bus example 2", () => {
<Node width={1} height={2} shader={shaders.red} />
</Bus>
<Bus ref="bus2">
<LinearCopy>
{() => this.refs.bus1}
</LinearCopy>
<LinearCopy>{() => this.refs.bus1}</LinearCopy>
</Bus>
<LinearCopy>
{() => this.refs.bus2}
</LinearCopy>
<LinearCopy>{() => this.refs.bus2}</LinearCopy>
</Surface>
);
}
@ -727,9 +720,7 @@ test("bus example 3", () => {
<Bus ref="bus">
<Red />
</Bus>
<LinearCopy>
{() => this.refs.bus}
</LinearCopy>
<LinearCopy>{() => this.refs.bus}</LinearCopy>
</Surface>
);
}
@ -1006,12 +997,13 @@ test("a surface can be captured and resized", () => {
}`
}
});
const render = (w, h) =>
const render = (w, h) => (
<Surface width={w} height={h}>
<LinearCopy>
<Node shader={shaders.helloGL} width={2} height={2} />
</LinearCopy>
</Surface>;
</Surface>
);
const inst = create(render(2, 2));
const surface = inst.getInstance();
expectToBeCloseToColorArray(
@ -1039,7 +1031,7 @@ test("a node can be captured and resized", () => {
}
});
let node;
const render = (w, h) =>
const render = (w, h) => (
<Surface width={20} height={20}>
<LinearCopy>
<Node
@ -1049,7 +1041,8 @@ test("a node can be captured and resized", () => {
height={h}
/>
</LinearCopy>
</Surface>;
</Surface>
);
const inst = create(render(2, 2));
const surface = inst.getInstance();
invariant(node, "node is defined");
@ -1100,11 +1093,12 @@ test("Uniform children redraw=>el function", () => {
>
<NearestCopy>
<LinearCopy>
{redraw =>
{redraw => (
<UpdatingTexture
ref={ref => (updatingTexture = ref)}
redraw={redraw}
/>}
/>
)}
</LinearCopy>
</NearestCopy>
</Surface>
@ -1189,19 +1183,18 @@ test("Bus redraw=>el function", () => {
webglContextAttributes={{ preserveDrawingBuffer: true }}
>
<Bus ref="bus">
{redraw =>
{redraw => (
<UpdatingTexture
initialPixels={yellow3x3}
initialWidth={3}
initialHeight={3}
ref={ref => (updatingTexture = ref)}
redraw={redraw}
/>}
/>
)}
</Bus>
<NearestCopy>
<LinearCopy>
{() => this.refs.bus}
</LinearCopy>
<LinearCopy>{() => this.refs.bus}</LinearCopy>
</NearestCopy>
</Surface>
);
@ -1237,7 +1230,7 @@ test("many Surface updates don't result of many redraws", () => {
});
const visitor = new CountersVisitor();
const wrap = children =>
const wrap = children => (
<Surface
visitor={visitor}
width={2}
@ -1245,9 +1238,11 @@ test("many Surface updates don't result of many redraws", () => {
webglContextAttributes={{ preserveDrawingBuffer: true }}
>
{children}
</Surface>;
const JustBlue = ({ blue }) =>
<Node shader={shaders.justBlue} uniforms={{ blue }} />;
</Surface>
);
const JustBlue = ({ blue }) => (
<Node shader={shaders.justBlue} uniforms={{ blue }} />
);
const inst = create(wrap(<JustBlue blue={0} />));
const surface = inst.getInstance();
@ -1287,7 +1282,7 @@ test("many Surface flush() don't result of extra redraws", () => {
});
const visitor = new CountersVisitor();
const wrap = children =>
const wrap = children => (
<Surface
visitor={visitor}
width={2}
@ -1295,9 +1290,11 @@ test("many Surface flush() don't result of extra redraws", () => {
webglContextAttributes={{ preserveDrawingBuffer: true }}
>
{children}
</Surface>;
const JustBlue = ({ blue }) =>
<Node shader={shaders.justBlue} uniforms={{ blue }} />;
</Surface>
);
const JustBlue = ({ blue }) => (
<Node shader={shaders.justBlue} uniforms={{ blue }} />
);
const inst = create(wrap(<JustBlue blue={0} />));
const surface = inst.getInstance();
@ -1334,16 +1331,15 @@ test("GL Components that implement shouldComponentUpdate shortcut Surface redraw
const visitor = new CountersVisitor();
Visitors.add(visitor);
const wrap = children =>
const wrap = children => (
<Surface
width={2}
height={2}
webglContextAttributes={{ preserveDrawingBuffer: true }}
>
<LinearCopy>
{children}
</LinearCopy>
</Surface>;
<LinearCopy>{children}</LinearCopy>
</Surface>
);
class JustBlue extends React.PureComponent {
render() {
const { blue } = this.props;
@ -1584,7 +1580,7 @@ test("Node `backbuffering`", () => {
}`
}
});
const render = t =>
const render = t => (
<Surface
width={10}
height={10}
@ -1593,7 +1589,8 @@ test("Node `backbuffering`", () => {
<LinearCopy>
<Node shader={shaders.colorShift} uniforms={{ t }} backbuffering />
</LinearCopy>
</Surface>;
</Surface>
);
const inst = create(render(red2x2)); // init with red
const surface = inst.getInstance();
expectToBeCloseToColorArray(
@ -1644,7 +1641,7 @@ test("Node `backbuffering` in `sync`", () => {
}`
}
});
const render = t =>
const render = t => (
<Surface
width={10}
height={10}
@ -1660,7 +1657,8 @@ test("Node `backbuffering` in `sync`", () => {
/>
</LinearCopy>
</LinearCopy>
</Surface>;
</Surface>
);
const inst = create(render(red2x2)); // init with red
const surface = inst.getInstance();
// since node was drawn once, there were a first shift.
@ -1946,7 +1944,7 @@ test("can be extended with addTextureLoaderClass", async () => {
gl => createNDArrayTexture(gl, red2x2),
[2, 2]
);
TextureLoaders.add(loader.Loader);
globalRegistry.add(loader.Loader);
const inst = create(
<Surface
width={64}
@ -1972,7 +1970,7 @@ test("can be extended with addTextureLoaderClass", async () => {
expect(loader.counters).toMatchSnapshot();
inst.unmount();
expect(loader.counters).toMatchSnapshot();
TextureLoaders.remove(loader.Loader);
globalRegistry.remove(loader.Loader);
});
test("Surface `preload` prevent to draw anything", async () => {
@ -1994,7 +1992,7 @@ test("Surface `preload` prevent to draw anything", async () => {
gl => createNDArrayTexture(gl, red2x2),
[2, 2]
);
TextureLoaders.add(loader.Loader);
globalRegistry.add(loader.Loader);
const el = (
<Surface
width={64}
@ -2028,7 +2026,7 @@ test("Surface `preload` prevent to draw anything", async () => {
new Uint8Array([255, 0, 0, 255])
);
inst.unmount();
TextureLoaders.remove(loader.Loader);
globalRegistry.remove(loader.Loader);
});
test("Uniform.textureSizeRatio allows to send the ratio of a texture in uniform", async () => {
@ -2052,7 +2050,7 @@ test("Uniform.textureSizeRatio allows to send the ratio of a texture in uniform"
gl => createNDArrayTexture(gl, yellow3x2),
[3, 2]
);
TextureLoaders.add(loader.Loader);
globalRegistry.add(loader.Loader);
const el = (
<Surface
width={64}
@ -2085,7 +2083,7 @@ test("Uniform.textureSizeRatio allows to send the ratio of a texture in uniform"
new Uint8Array([0, 0, 0, 0])
);
inst.unmount();
TextureLoaders.remove(loader.Loader);
globalRegistry.remove(loader.Loader);
});
test("Surface `preload` that fails will trigger onLoadError", async () => {
@ -2107,12 +2105,11 @@ test("Surface `preload` that fails will trigger onLoadError", async () => {
gl => createNDArrayTexture(gl, red2x2),
[2, 2]
);
TextureLoaders.add(loader.Loader);
globalRegistry.add(loader.Loader);
const el = (
<Surface
width={64}
height={64}
preload={[loader.textureId, Symbol("wrong_preload"), null]}
onLoad={() => {
++onLoadCounter;
}}
@ -2130,10 +2127,10 @@ test("Surface `preload` that fails will trigger onLoadError", async () => {
await loader.reject(new Error("simulate texture fail"));
expect(onLoadCounter).toEqual(0);
expect(onLoadErrorCounter).toEqual(1);
TextureLoaders.remove(loader.Loader);
globalRegistry.remove(loader.Loader);
inst.unmount();
TextureLoaders.remove(loader.Loader);
TextureLoaders.remove(loader.Loader);
globalRegistry.remove(loader.Loader);
globalRegistry.remove(loader.Loader);
});
test("renders a shader inline in the Node", () => {
@ -2357,14 +2354,15 @@ void main() {
}
}
const wrap = children =>
const wrap = children => (
<Surface
width={4}
height={4}
webglContextAttributes={{ preserveDrawingBuffer: true }}
>
{children}
</Surface>;
</Surface>
);
const inst = create(wrap(<WeirdSwapping i={0} />));
const surface = inst.getInstance();
@ -2445,12 +2443,11 @@ test("VisitorLogger + bunch of funky extreme tests", () => {
let justBlueNode;
const visitor = new VisitorLogger();
const wrap = children =>
const wrap = children => (
<Surface visitor={visitor} width={2} height={2}>
<LinearCopy>
{children}
</LinearCopy>
</Surface>;
<LinearCopy>{children}</LinearCopy>
</Surface>
);
class JustBlue extends React.PureComponent {
render() {
@ -2484,14 +2481,15 @@ test("VisitorLogger + bunch of funky extreme tests", () => {
);
}
}
const MissingOrInvalidUniforms = () =>
const MissingOrInvalidUniforms = () => (
<Node
ref={ref => {
justBlueNode = ref;
}}
shader={shaders.justBlue}
uniforms={{ nope: [1, 2] }}
/>;
/>
);
class TreeWithZombiesDontBreak extends React.Component {
render() {
@ -2721,9 +2719,7 @@ test("VisitorLogger + bunch of funky extreme tests", () => {
<Bus ref="bus">
<JustBlue blue={0.2} />
</Bus>
<LinearCopy>
{() => this.refs.bus}
</LinearCopy>
<LinearCopy>{() => this.refs.bus}</LinearCopy>
</Surface>
);
}

View File

@ -7,8 +7,6 @@ import {
NearestCopy,
GLSL,
Visitor,
TextureLoader,
TextureLoaders,
Uniform,
Bus,
VisitorLogger,
@ -73,7 +71,7 @@ class A extends React.Component {
}
}
const N = connectSize(({ width, height }) =>
const N = connectSize(({ width, height }) => (
<Node
sync
clear={null}
@ -82,9 +80,9 @@ const N = connectSize(({ width, height }) =>
blendFunc={{ src: "one", dst: "zero" }}
shader={shaders.b}
/>
);
));
const B = () =>
const B = () => (
<Surface
width={100}
height={200}
@ -95,4 +93,5 @@ const B = () =>
<NearestCopy>
<N width={10} height={10} />
</NearestCopy>
</Surface>;
</Surface>
);

View File

@ -7,8 +7,6 @@ import {
NearestCopy,
GLSL,
Visitor,
TextureLoader,
TextureLoaders,
Backbuffer,
Bus,
VisitorLogger,
@ -61,7 +59,7 @@ class A extends React.Component {
connectSize();
const N = connectSize(() =>
const N = connectSize(() => (
// these are all wrong props
<Node
sync={1}
@ -77,4 +75,4 @@ const N = connectSize(() =>
visitor={false}
shader={false}
/>
);
));

View File

@ -1,25 +1,25 @@
Error: ../all.test.js:2651
Error: ../all.test.js:2649
v----
2651: <Node
2652: shader={shaders.helloTexture}
2653: uniformsOptions={{ t: { interpolation: "nope" } }}
2654: uniforms={{ t: <JustBlue blue={1} /> }}
2655: />
2649: <Node
2650: shader={shaders.helloTexture}
2651: uniformsOptions={{ t: { interpolation: "nope" } }}
2652: uniforms={{ t: <JustBlue blue={1} /> }}
2653: />
-^ props of React element `Node`
2653: uniformsOptions={{ t: { interpolation: "nope" } }}
2651: uniformsOptions={{ t: { interpolation: "nope" } }}
^^^^^^ string. This type is incompatible with
65: interpolation: Interpolation,
^^^^^^^^^^^^^ string enum. See: ../node_modules/gl-react/lib/Node.js.flow:65
Error: ../all.test.js:2663
Error: ../all.test.js:2661
v----
2663: <Node
2664: shader={shaders.helloTexture}
2665: uniformsOptions={{ t: { wrap: "nope" } }}
2666: uniforms={{ t: <JustBlue blue={1} /> }}
2667: />
2661: <Node
2662: shader={shaders.helloTexture}
2663: uniformsOptions={{ t: { wrap: "nope" } }}
2664: uniforms={{ t: <JustBlue blue={1} /> }}
2665: />
-^ props of React element `Node`
2665: uniformsOptions={{ t: { wrap: "nope" } }}
2663: uniformsOptions={{ t: { wrap: "nope" } }}
^^^^^^ string. This type is incompatible with
66: wrap: [WrapMode, WrapMode] | WrapMode
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ union: tuple type | WrapMode. See: ../node_modules/gl-react/lib/Node.js.flow:66
@ -27,7 +27,7 @@ Error: ../all.test.js:2663
66: wrap: [WrapMode, WrapMode] | WrapMode
^^^^^^^^^^^^^^^^^^^^ tuple type. See: ../node_modules/gl-react/lib/Node.js.flow:66
Error:
2665: uniformsOptions={{ t: { wrap: "nope" } }}
2663: uniformsOptions={{ t: { wrap: "nope" } }}
^^^^^^ string. This type is incompatible with
66: wrap: [WrapMode, WrapMode] | WrapMode
^^^^^^^^^^^^^^^^^^^^ tuple type. See: ../node_modules/gl-react/lib/Node.js.flow:66
@ -35,20 +35,20 @@ Error: ../all.test.js:2663
66: wrap: [WrapMode, WrapMode] | WrapMode
^^^^^^^^ WrapMode. See: ../node_modules/gl-react/lib/Node.js.flow:66
Error:
2665: uniformsOptions={{ t: { wrap: "nope" } }}
2663: uniformsOptions={{ t: { wrap: "nope" } }}
^^^^^^ string. This type is incompatible with
66: wrap: [WrapMode, WrapMode] | WrapMode
^^^^^^^^ string enum. See: ../node_modules/gl-react/lib/Node.js.flow:66
Error: ../all.test.js:2675
Error: ../all.test.js:2673
v----
2675: <Node
2676: shader={shaders.helloTexture}
2677: uniformsOptions={{ t: { wrap: ["nope", "nope"] } }}
2678: uniforms={{ t: <JustBlue blue={1} /> }}
2679: />
2673: <Node
2674: shader={shaders.helloTexture}
2675: uniformsOptions={{ t: { wrap: ["nope", "nope"] } }}
2676: uniforms={{ t: <JustBlue blue={1} /> }}
2677: />
-^ props of React element `Node`
2677: uniformsOptions={{ t: { wrap: ["nope", "nope"] } }}
2675: uniformsOptions={{ t: { wrap: ["nope", "nope"] } }}
^^^^^^^^^^^^^^^^ array literal. This type is incompatible with
66: wrap: [WrapMode, WrapMode] | WrapMode
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ union: tuple type | WrapMode. See: ../node_modules/gl-react/lib/Node.js.flow:66
@ -56,7 +56,7 @@ Error: ../all.test.js:2675
66: wrap: [WrapMode, WrapMode] | WrapMode
^^^^^^^^^^^^^^^^^^^^ tuple type. See: ../node_modules/gl-react/lib/Node.js.flow:66
Error:
2677: uniformsOptions={{ t: { wrap: ["nope", "nope"] } }}
2675: uniformsOptions={{ t: { wrap: ["nope", "nope"] } }}
^^^^^^ string. This type is incompatible with
66: wrap: [WrapMode, WrapMode] | WrapMode
^^^^^^^^ string enum. See: ../node_modules/gl-react/lib/Node.js.flow:66
@ -64,198 +64,198 @@ Error: ../all.test.js:2675
66: wrap: [WrapMode, WrapMode] | WrapMode
^^^^^^^^ WrapMode. See: ../node_modules/gl-react/lib/Node.js.flow:66
Error:
2677: uniformsOptions={{ t: { wrap: ["nope", "nope"] } }}
2675: uniformsOptions={{ t: { wrap: ["nope", "nope"] } }}
^^^^^^^^^^^^^^^^ array literal. This type is incompatible with
66: wrap: [WrapMode, WrapMode] | WrapMode
^^^^^^^^ string enum. See: ../node_modules/gl-react/lib/Node.js.flow:66
Error: ../all.test.js:2687
Error: ../all.test.js:2685
v----
2687: <Node
2688: blendFunc="nope"
2689: shader={shaders.helloTexture}
2690: uniforms={{ t: <JustBlue blue={1} /> }}
2691: />
2685: <Node
2686: blendFunc="nope"
2687: shader={shaders.helloTexture}
2688: uniforms={{ t: <JustBlue blue={1} /> }}
2689: />
-^ props of React element `Node`
2688: blendFunc="nope"
2686: blendFunc="nope"
^^^^^^ string. Inexact type is incompatible with exact type
177: blendFunc: BlendFuncSrcDst,
^^^^^^^^^^^^^^^ exact type: object type. See: ../node_modules/gl-react/lib/Node.js.flow:177
Error: incorrect.js:19
19: <Node />;
Error: incorrect.js:17
17: <Node />;
^^^^^^^^ React element `Node`
392: props: Props;
^^^^^ property `shader`. Property not found in. See: ../node_modules/gl-react/lib/Node.js.flow:392
19: <Node />;
17: <Node />;
^^^^^^^^ props of React element `Node`
Error: incorrect.js:25
25: <Node nope />;
Error: incorrect.js:23
23: <Node nope />;
^^^^^^^^^^^^^ React element `Node`
25: <Node nope />;
23: <Node nope />;
^^^^^^^^^^^^^ property `nope`. Property not found in
392: props: Props;
^^^^^ object type. See: ../node_modules/gl-react/lib/Node.js.flow:392
Error: incorrect.js:25
25: <Node nope />;
Error: incorrect.js:23
23: <Node nope />;
^^^^^^^^^^^^^ React element `Node`
392: props: Props;
^^^^^ property `shader`. Property not found in. See: ../node_modules/gl-react/lib/Node.js.flow:392
25: <Node nope />;
23: <Node nope />;
^^^^^^^^^^^^^ props of React element `Node`
Error: incorrect.js:27
27: <Bus nope />;
Error: incorrect.js:25
25: <Bus nope />;
^^^^^^^^^^^^ React element `Bus`
27: <Bus nope />;
25: <Bus nope />;
^^^^^^^^^^^^ property `nope`. Property not found in
45: export default class Bus extends Component<{ index: number }, Props, void> {
^^^^^ object type. See: ../node_modules/gl-react/lib/Bus.js.flow:45
Error: incorrect.js:29
Error: incorrect.js:27
v---------------
29: const shaders = Shaders.create({
30: valid: {
31: frag: GLSL`...`
27: const shaders = Shaders.create({
28: valid: {
29: frag: GLSL`...`
...:
36: });
34: });
-^ call of method `create`
33: a: null,
31: a: null,
^^^^ null. Inexact type is incompatible with exact type
46: [key: string]: ShaderDefinition
^^^^^^^^^^^^^^^^ exact type: object type. See: ../node_modules/gl-react/lib/Shaders.js.flow:46
Error: incorrect.js:29
Error: incorrect.js:27
v---------------
29: const shaders = Shaders.create({
30: valid: {
31: frag: GLSL`...`
27: const shaders = Shaders.create({
28: valid: {
29: frag: GLSL`...`
...:
36: });
34: });
-^ call of method `create`
46: [key: string]: ShaderDefinition
^^^^^^^^^^^^^^^^ property `frag`. Property not found in. See: ../node_modules/gl-react/lib/Shaders.js.flow:46
34: b: {},
32: b: {},
^^ object literal
Error: incorrect.js:35
35: c: { frag: true }
Error: incorrect.js:33
33: c: { frag: true }
^^^^^^^^^^^^^^ object literal. This type is incompatible with
46: [key: string]: ShaderDefinition
^^^^^^^^^^^^^^^^ object type. See: ../node_modules/gl-react/lib/Shaders.js.flow:46
Property `frag` is incompatible:
35: c: { frag: true }
33: c: { frag: true }
^^^^ boolean. This type is incompatible with
16: frag: GLSLCode,
^^^^^^^^ string. See: ../node_modules/gl-react/lib/Shaders.js.flow:16
Error: incorrect.js:44
44: surface.nope();
Error: incorrect.js:42
42: surface.nope();
^^^^ property `nope`. Property not found in
44: surface.nope();
42: surface.nope();
^^^^^^^ ISurface
Error: incorrect.js:45
45: node.nope();
Error: incorrect.js:43
43: node.nope();
^^^^ property `nope`. Property not found in
45: node.nope();
43: node.nope();
^^^^ Node
Error: incorrect.js:51
51: <Bus ref="o" notexists>
Error: incorrect.js:49
49: <Bus ref="o" notexists>
^^^^^^^^^^^^^^^^^^^^^^^ React element `Bus`
51: <Bus ref="o" notexists>
49: <Bus ref="o" notexists>
^^^^^^^^^^^^^^^^^^^^^^^ property `notexists`. Property not found in
45: export default class Bus extends Component<{ index: number }, Props, void> {
^^^^^ object type. See: ../node_modules/gl-react/lib/Bus.js.flow:45
Error: incorrect.js:52
52: <Node />
Error: incorrect.js:50
50: <Node />
^^^^^^^^ React element `Node`
392: props: Props;
^^^^^ property `shader`. Property not found in. See: ../node_modules/gl-react/lib/Node.js.flow:392
52: <Node />
50: <Node />
^^^^^^^^ props of React element `Node`
Error: incorrect.js:55
55: <Node shaders={shaders.valid} notexists />
Error: incorrect.js:53
53: <Node shaders={shaders.valid} notexists />
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ React element `Node`
55: <Node shaders={shaders.valid} notexists />
53: <Node shaders={shaders.valid} notexists />
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ property `notexists`. Property not found in
392: props: Props;
^^^^^ object type. See: ../node_modules/gl-react/lib/Node.js.flow:392
Error: incorrect.js:55
55: <Node shaders={shaders.valid} notexists />
Error: incorrect.js:53
53: <Node shaders={shaders.valid} notexists />
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ React element `Node`
55: <Node shaders={shaders.valid} notexists />
53: <Node shaders={shaders.valid} notexists />
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ property `shaders`. Property not found in
392: props: Props;
^^^^^ object type. See: ../node_modules/gl-react/lib/Node.js.flow:392
Error: incorrect.js:55
55: <Node shaders={shaders.valid} notexists />
Error: incorrect.js:53
53: <Node shaders={shaders.valid} notexists />
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ React element `Node`
392: props: Props;
^^^^^ property `shader`. Property not found in. See: ../node_modules/gl-react/lib/Node.js.flow:392
55: <Node shaders={shaders.valid} notexists />
53: <Node shaders={shaders.valid} notexists />
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ props of React element `Node`
Error: incorrect.js:62
62: connectSize();
Error: incorrect.js:60
60: connectSize();
^^^^^^^^^^^^^ function call
62: connectSize();
60: connectSize();
^^^^^^^^^^^^^ undefined (too few arguments, expected default/rest parameters). This type is incompatible with
19: const connectSize = (GLComponent: ReactClass<*>) =>
^^^^^^^^^^^^^ class type: C. See: ../node_modules/gl-react/lib/connectSize.js.flow:19
Error: incorrect.js:66
Error: incorrect.js:64
v----
66: <Node
67: sync={1}
68: clear={42}
64: <Node
65: sync={1}
66: clear={42}
...:
79: />
77: />
-^ React element `Node`
v----
66: <Node
67: sync={1}
68: clear={42}
64: <Node
65: sync={1}
66: clear={42}
...:
79: />
77: />
-^ property `preload`. Property not found in
392: props: Props;
^^^^^ object type. See: ../node_modules/gl-react/lib/Node.js.flow:392
Error: incorrect.js:66
Error: incorrect.js:64
v----
66: <Node
67: sync={1}
68: clear={42}
64: <Node
65: sync={1}
66: clear={42}
...:
79: />
77: />
-^ React element `Node`
v----
66: <Node
67: sync={1}
68: clear={42}
64: <Node
65: sync={1}
66: clear={42}
...:
79: />
77: />
-^ property `visitor`. Property not found in
392: props: Props;
^^^^^ object type. See: ../node_modules/gl-react/lib/Node.js.flow:392
Error: incorrect.js:66
Error: incorrect.js:64
v----
66: <Node
67: sync={1}
68: clear={42}
64: <Node
65: sync={1}
66: clear={42}
...:
79: />
77: />
-^ React element `Node`
78: shader={false}
76: shader={false}
^^^^^ boolean. This type is incompatible with
160: shader: ShaderIdentifier | ShaderDefinition,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ union: ShaderIdentifier | ShaderDefinition. See: ../node_modules/gl-react/lib/Node.js.flow:160
@ -263,7 +263,7 @@ Error: incorrect.js:66
160: shader: ShaderIdentifier | ShaderDefinition,
^^^^^^^^^^^^^^^^ ShaderIdentifier. See: ../node_modules/gl-react/lib/Node.js.flow:160
Error:
78: shader={false}
76: shader={false}
^^^^^ boolean. This type is incompatible with
160: shader: ShaderIdentifier | ShaderDefinition,
^^^^^^^^^^^^^^^^ object type. See: ../node_modules/gl-react/lib/Node.js.flow:160
@ -271,141 +271,141 @@ Error: incorrect.js:66
160: shader: ShaderIdentifier | ShaderDefinition,
^^^^^^^^^^^^^^^^ ShaderDefinition. See: ../node_modules/gl-react/lib/Node.js.flow:160
Error:
78: shader={false}
76: shader={false}
^^^^^ boolean. Inexact type is incompatible with exact type
160: shader: ShaderIdentifier | ShaderDefinition,
^^^^^^^^^^^^^^^^ exact type: object type. See: ../node_modules/gl-react/lib/Node.js.flow:160
Error: incorrect.js:66
Error: incorrect.js:64
v----
66: <Node
67: sync={1}
68: clear={42}
64: <Node
65: sync={1}
66: clear={42}
...:
79: />
77: />
-^ props of React element `Node`. This type is incompatible with
392: props: Props;
^^^^^ object type. See: ../node_modules/gl-react/lib/Node.js.flow:392
Property `height` is incompatible:
70: height={false}
68: height={false}
^^^^^ boolean. This type is incompatible with
165: height?: number,
^^^^^^ number. See: ../node_modules/gl-react/lib/Node.js.flow:165
Error: incorrect.js:66
Error: incorrect.js:64
v----
66: <Node
67: sync={1}
68: clear={42}
64: <Node
65: sync={1}
66: clear={42}
...:
79: />
77: />
-^ props of React element `Node`. This type is incompatible with
392: props: Props;
^^^^^ object type. See: ../node_modules/gl-react/lib/Node.js.flow:392
Property `sync` is incompatible:
67: sync={1}
65: sync={1}
^ number. This type is incompatible with
163: sync?: boolean,
^^^^^^^ boolean. See: ../node_modules/gl-react/lib/Node.js.flow:163
Error: incorrect.js:66
Error: incorrect.js:64
v----
66: <Node
67: sync={1}
68: clear={42}
64: <Node
65: sync={1}
66: clear={42}
...:
79: />
77: />
-^ props of React element `Node`. This type is incompatible with
392: props: Props;
^^^^^ object type. See: ../node_modules/gl-react/lib/Node.js.flow:392
Property `width` is incompatible:
69: width={false}
67: width={false}
^^^^^ boolean. This type is incompatible with
164: width?: number,
^^^^^^ number. See: ../node_modules/gl-react/lib/Node.js.flow:164
Error: incorrect.js:66
Error: incorrect.js:64
v----
66: <Node
67: sync={1}
68: clear={42}
64: <Node
65: sync={1}
66: clear={42}
...:
79: />
77: />
-^ props of React element `Node`
68: clear={42}
66: clear={42}
^^ number. Inexact type is incompatible with exact type
178: clear: ?Clear
^^^^^ exact type: object type. See: ../node_modules/gl-react/lib/Node.js.flow:178
Error: incorrect.js:66
Error: incorrect.js:64
v----
66: <Node
67: sync={1}
68: clear={42}
64: <Node
65: sync={1}
66: clear={42}
...:
79: />
77: />
-^ props of React element `Node`
v
71: blendFunc={{
72: src: "nope",
73: interpolation: "interpolation_nope",
74: wrap: "wrap_nope"
75: }}
69: blendFunc={{
70: src: "nope",
71: interpolation: "interpolation_nope",
72: wrap: "wrap_nope"
73: }}
^ property `interpolation`. Property not found in
177: blendFunc: BlendFuncSrcDst,
^^^^^^^^^^^^^^^ object type. See: ../node_modules/gl-react/lib/Node.js.flow:177
Error: incorrect.js:66
Error: incorrect.js:64
v----
66: <Node
67: sync={1}
68: clear={42}
64: <Node
65: sync={1}
66: clear={42}
...:
79: />
77: />
-^ props of React element `Node`
v
71: blendFunc={{
72: src: "nope",
73: interpolation: "interpolation_nope",
74: wrap: "wrap_nope"
75: }}
69: blendFunc={{
70: src: "nope",
71: interpolation: "interpolation_nope",
72: wrap: "wrap_nope"
73: }}
^ property `wrap`. Property not found in
177: blendFunc: BlendFuncSrcDst,
^^^^^^^^^^^^^^^ object type. See: ../node_modules/gl-react/lib/Node.js.flow:177
Error: incorrect.js:66
Error: incorrect.js:64
v----
66: <Node
67: sync={1}
68: clear={42}
64: <Node
65: sync={1}
66: clear={42}
...:
79: />
77: />
-^ props of React element `Node`
72: src: "nope",
70: src: "nope",
^^^^^^ property `nope`. Property not found in
95: src: BlendFunc,
^^^^^^^^^ object literal. See: ../node_modules/gl-react/lib/Node.js.flow:95
Error: incorrect.js:66
Error: incorrect.js:64
v----
66: <Node
67: sync={1}
68: clear={42}
64: <Node
65: sync={1}
66: clear={42}
...:
79: />
77: />
-^ props of React element `Node`
177: blendFunc: BlendFuncSrcDst,
^^^^^^^^^^^^^^^ property `dst`. Property not found in. See: ../node_modules/gl-react/lib/Node.js.flow:177
v
71: blendFunc={{
72: src: "nope",
73: interpolation: "interpolation_nope",
74: wrap: "wrap_nope"
75: }}
69: blendFunc={{
70: src: "nope",
71: interpolation: "interpolation_nope",
72: wrap: "wrap_nope"
73: }}
^ object literal
Error: ../utils.js:42
42: expect(actual).toBeInstanceOf(Uint8Array);
Error: ../utils.js:43
43: expect(actual).toBeInstanceOf(Uint8Array);
^^^^^^ identifier `expect`. Could not resolve name

View File

@ -21,7 +21,8 @@
"ndpack-image": "github:gre/ndpack-image",
"promise-defer": "^1.0.0",
"react": "16.0.0-alpha.12",
"react-test-renderer": "16.0.0-alpha.12"
"react-test-renderer": "16.0.0-alpha.12",
"webgltexture-loader": "^0.6.0"
},
"version": "3.13.0",
"dependencies": {

View File

@ -1,6 +1,7 @@
//@flow
import React from "react";
import { Visitor, TextureLoader, TextureLoaders } from "gl-react";
import { Visitor } from "gl-react";
import { globalRegistry, WebGLTextureLoader } from "webgltexture-loader";
import invariant from "invariant";
import type { Surface, Node } from "gl-react";
import type { Texture } from "gl-texture2d";
@ -287,7 +288,6 @@ export function createOneTextureLoader(
const counters = {
constructor: 0,
dispose: 0,
textureDispose: 0,
canLoad: 0,
get: 0,
load: 0,
@ -302,7 +302,7 @@ export function createOneTextureLoader(
d.reject(e);
return delay(50); // FIXME this is a hack.
}
class Loader extends TextureLoader<typeof textureId> {
class Loader extends WebGLTextureLoader<typeof textureId> {
texture: ?Texture = null;
constructor(gl: WebGLRenderingContext) {
super(gl);
@ -317,25 +317,26 @@ export function createOneTextureLoader(
}
get() {
++counters.get;
return this.texture;
}
getSize() {
return size;
return (
this.texture && {
texture: this.texture,
width: size[0],
height: size[1]
}
);
}
load() {
++counters.load;
const promise = d.promise.then(() => {
++counters.createTexture;
this.texture = makeTexture(this.gl);
return this.texture;
return {
texture: this.texture,
width: size[0],
height: size[1]
};
});
function dispose() {
++counters.textureDispose;
}
return {
promise,
dispose
};
return promise;
}
}
return {
@ -347,14 +348,14 @@ export function createOneTextureLoader(
};
}
import drawNDArrayTexture from "gl-react/lib/helpers/drawNDArrayTexture";
import drawNDArrayTexture from "webgltexture-loader-ndarray/lib/drawNDArrayTexture";
export function createNDArrayTexture(gl: WebGLRenderingContext, ndarray: *) {
const texture = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, texture);
drawNDArrayTexture(gl, texture, ndarray);
return texture;
}
class FakeTextureLoader extends TextureLoader<FakeTexture> {
class FakeTextureLoader extends WebGLTextureLoader<FakeTexture> {
textures: Array<WebGLTexture>;
constructor(gl: WebGLRenderingContext) {
super(gl);
@ -367,17 +368,22 @@ class FakeTextureLoader extends TextureLoader<FakeTexture> {
canLoad(input: any) {
return input instanceof FakeTexture;
}
getSize(ft: FakeTexture) {
return [ft.width, ft.height];
}
get(ft: FakeTexture) {
const array = ft.getPixels();
if (array) {
const t = createNDArrayTexture(this.gl, array);
this.textures.push(t);
return t;
return {
texture: t,
width: ft.width,
height: ft.height
};
}
}
load(ft: FakeTexture) {
const res = this.get(ft);
return res ? Promise.resolve(res) : Promise.reject();
}
}
TextureLoaders.add(FakeTextureLoader);
globalRegistry.add(FakeTextureLoader);

View File

@ -853,7 +853,7 @@ babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26
dependencies:
ndpack-image "^3.0.0"
babylon@^6.17.4, babylon@^6.18.0:
babylon@^6.18.0:
version "6.18.0"
resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
@ -977,8 +977,8 @@ chokidar@^1.6.1, chokidar@^1.7.0:
fsevents "^1.0.0"
ci-info@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.0.0.tgz#dc5285f2b4e251821683681c381c3388f46ec534"
version "1.1.1"
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.1.tgz#47b44df118c48d2597b56d342e7e25791060171a"
cliui@^2.1.0:
version "2.1.0"
@ -1059,8 +1059,8 @@ core-js@^1.0.0:
resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
core-js@^2.4.0, core-js@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.0.tgz#569c050918be6486b3837552028ae0466b717086"
version "2.5.1"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b"
core-util-is@1.0.2, core-util-is@~1.0.0:
version "1.0.2"
@ -1153,8 +1153,8 @@ detect-indent@^4.0.0:
repeating "^2.0.0"
diff@^3.0.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.0.tgz#056695150d7aa93237ca7e378ac3b1682b7963b9"
version "3.3.1"
resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75"
dup@^1.0.0:
version "1.0.0"
@ -1724,17 +1724,17 @@ isstream@~0.1.2:
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
istanbul-api@^1.1.0-alpha.1:
version "1.1.12"
resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.12.tgz#92d67e9d8f9ea87349a64a70ddf5a7a8cdf97f21"
version "1.1.14"
resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.14.tgz#25bc5701f7c680c0ffff913de46e3619a3a6e680"
dependencies:
async "^2.1.4"
fileset "^2.0.2"
istanbul-lib-coverage "^1.1.1"
istanbul-lib-hook "^1.0.7"
istanbul-lib-instrument "^1.7.5"
istanbul-lib-instrument "^1.8.0"
istanbul-lib-report "^1.1.1"
istanbul-lib-source-maps "^1.2.1"
istanbul-reports "^1.1.1"
istanbul-reports "^1.1.2"
js-yaml "^3.7.0"
mkdirp "^0.5.1"
once "^1.4.0"
@ -1749,15 +1749,15 @@ istanbul-lib-hook@^1.0.7:
dependencies:
append-transform "^0.4.0"
istanbul-lib-instrument@^1.1.1, istanbul-lib-instrument@^1.7.2, istanbul-lib-instrument@^1.7.5:
version "1.7.5"
resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.5.tgz#adb596f8f0cb8b95e739206351a38a586af21b1e"
istanbul-lib-instrument@^1.1.1, istanbul-lib-instrument@^1.7.2, istanbul-lib-instrument@^1.8.0:
version "1.8.0"
resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.8.0.tgz#66f6c9421cc9ec4704f76f2db084ba9078a2b532"
dependencies:
babel-generator "^6.18.0"
babel-template "^6.16.0"
babel-traverse "^6.18.0"
babel-types "^6.18.0"
babylon "^6.17.4"
babylon "^6.18.0"
istanbul-lib-coverage "^1.1.1"
semver "^5.3.0"
@ -1780,9 +1780,9 @@ istanbul-lib-source-maps@^1.2.1:
rimraf "^2.6.1"
source-map "^0.5.3"
istanbul-reports@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.1.tgz#042be5c89e175bc3f86523caab29c014e77fee4e"
istanbul-reports@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.2.tgz#0fb2e3f6aa9922bd3ce45d05d8ab4d5e8e07bd4f"
dependencies:
handlebars "^4.0.3"
@ -2200,15 +2200,15 @@ micromatch@^2.1.5, micromatch@^2.3.11:
parse-glob "^3.0.4"
regex-cache "^0.4.2"
mime-db@~1.29.0:
version "1.29.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878"
mime-db@~1.30.0:
version "1.30.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
mime-types@^2.0.1, mime-types@^2.1.12, mime-types@~2.1.7:
version "2.1.16"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.16.tgz#2b858a52e5ecd516db897ac2be87487830698e23"
version "2.1.17"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
dependencies:
mime-db "~1.29.0"
mime-db "~1.30.0"
mimic-fn@^1.0.0:
version "1.1.0"
@ -2243,8 +2243,8 @@ ms@2.0.0:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
nan@^2.3.0:
version "2.6.2"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45"
version "2.7.0"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.7.0.tgz#d95bf721ec877e08db276ed3fc6eb78f9083ad46"
natural-compare@^1.4.0:
version "1.4.0"
@ -2732,11 +2732,10 @@ regenerator-transform@^0.10.0:
private "^0.1.6"
regex-cache@^0.4.2:
version "0.4.3"
resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145"
version "0.4.4"
resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd"
dependencies:
is-equal-shallow "^0.1.3"
is-primitive "^2.0.0"
regexpu-core@^2.0.0:
version "2.0.0"
@ -2908,8 +2907,8 @@ sntp@1.x.x:
hoek "2.x.x"
source-map-support@^0.4.15:
version "0.4.16"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.16.tgz#16fecf98212467d017d586a2af68d628b9421cd8"
version "0.4.17"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.17.tgz#6f2150553e6375375d0ccb3180502b78c18ba430"
dependencies:
source-map "^0.5.6"
@ -3204,6 +3203,10 @@ watch@~0.10.0:
version "0.10.0"
resolved "https://registry.yarnpkg.com/watch/-/watch-0.10.0.tgz#77798b2da0f9910d595f1ace5b0c2258521f21dc"
webgltexture-loader@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/webgltexture-loader/-/webgltexture-loader-0.6.0.tgz#95368723999dcc4c24024115375ab3ec18baf3fd"
webidl-conversions@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"

View File

@ -1024,14 +1024,15 @@ browser-resolve@^1.11.0, browser-resolve@^1.7.0:
resolve "1.1.7"
browserify-aes@^1.0.0, browserify-aes@^1.0.4:
version "1.0.6"
resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.6.tgz#5e7725dbdef1fd5930d4ebab48567ce451c48a0a"
version "1.0.8"
resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.8.tgz#c8fa3b1b7585bb7ba77c5560b60996ddec6d5309"
dependencies:
buffer-xor "^1.0.2"
buffer-xor "^1.0.3"
cipher-base "^1.0.0"
create-hash "^1.1.0"
evp_bytestokey "^1.0.0"
evp_bytestokey "^1.0.3"
inherits "^2.0.1"
safe-buffer "^5.0.1"
browserify-cipher@^1.0.0:
version "1.0.0"
@ -1140,7 +1141,7 @@ buffer-shims@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51"
buffer-xor@^1.0.2:
buffer-xor@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
@ -1259,8 +1260,8 @@ chokidar@^1.2.0, chokidar@^1.6.1, chokidar@^1.7.0:
fsevents "^1.0.0"
ci-info@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.0.0.tgz#dc5285f2b4e251821683681c381c3388f46ec534"
version "1.1.1"
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.1.tgz#47b44df118c48d2597b56d342e7e25791060171a"
cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
version "1.0.4"
@ -1983,9 +1984,9 @@ events@~1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924"
evp_bytestokey@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.2.tgz#f66bb88ecd57f71a766821e20283ea38c68bf80a"
evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
dependencies:
md5.js "^1.3.4"
safe-buffer "^5.1.1"
@ -3280,15 +3281,15 @@ miller-rabin@^4.0.0:
bn.js "^4.0.0"
brorand "^1.0.1"
mime-db@~1.29.0:
version "1.29.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878"
mime-db@~1.30.0:
version "1.30.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
mime-types@^2.1.12, mime-types@~2.1.7:
version "2.1.16"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.16.tgz#2b858a52e5ecd516db897ac2be87487830698e23"
version "2.1.17"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
dependencies:
mime-db "~1.29.0"
mime-db "~1.30.0"
mime@^1.3.4:
version "1.4.0"
@ -4322,8 +4323,8 @@ sort-keys@^2.0.0:
is-plain-obj "^1.0.0"
source-map-support@^0.4.15:
version "0.4.16"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.16.tgz#16fecf98212467d017d586a2af68d628b9421cd8"
version "0.4.17"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.17.tgz#6f2150553e6375375d0ccb3180502b78c18ba430"
dependencies:
source-map "^0.5.6"
@ -4607,8 +4608,8 @@ ternary@~1.0.0:
resolved "https://registry.yarnpkg.com/ternary/-/ternary-1.0.0.tgz#45702725608c9499d46a9610e9b0e49ff26f789e"
text-extensions@^1.0.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.5.0.tgz#d1cb2d14b5d0bc45bfdca8a08a473f68c7eb0cbc"
version "1.6.0"
resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.6.0.tgz#771561b26022783a45f5b6c2e78ad6e7de9fe322"
through2-filter@^2.0.0:
version "2.0.0"