diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9074a99 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,5 @@ +*.glb filter=lfs diff=lfs merge=lfs -text +*.fbx filter=lfs diff=lfs merge=lfs -text +*.tga filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.jpg filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore index 64abcfb..7ae5cdd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ -npm/bin/Darwin/FBX2glTF -npm/bin/Linux/FBX2glTF -npm/bin/Windows_NT/FBX2glTF.exe -npm/node_modules/ -sdk/ +npm/fbx2gltf/bin/Darwin/FBX2glTF +npm/fbx2gltf/bin/Linux/FBX2glTF +npm/fbx2gltf/bin/Windows_NT/FBX2glTF.exe +npm/fbx2gltf/node_modules/ +npm/tests/node_modules/ +npm/tests/test/*.js +npm/tests/test/*.js.map diff --git a/npm/LICENSE b/npm/fbx2gltf/LICENSE similarity index 100% rename from npm/LICENSE rename to npm/fbx2gltf/LICENSE diff --git a/npm/PATENTS b/npm/fbx2gltf/PATENTS similarity index 100% rename from npm/PATENTS rename to npm/fbx2gltf/PATENTS diff --git a/npm/README.md b/npm/fbx2gltf/README.md similarity index 100% rename from npm/README.md rename to npm/fbx2gltf/README.md diff --git a/npm/bin/Darwin/.keep b/npm/fbx2gltf/bin/Darwin/.keep similarity index 100% rename from npm/bin/Darwin/.keep rename to npm/fbx2gltf/bin/Darwin/.keep diff --git a/npm/bin/Linux/.keep b/npm/fbx2gltf/bin/Linux/.keep similarity index 100% rename from npm/bin/Linux/.keep rename to npm/fbx2gltf/bin/Linux/.keep diff --git a/npm/bin/README b/npm/fbx2gltf/bin/README similarity index 100% rename from npm/bin/README rename to npm/fbx2gltf/bin/README diff --git a/npm/bin/Windows_NT/.keep b/npm/fbx2gltf/bin/Windows_NT/.keep similarity index 100% rename from npm/bin/Windows_NT/.keep rename to npm/fbx2gltf/bin/Windows_NT/.keep diff --git a/npm/index.js b/npm/fbx2gltf/index.js similarity index 100% rename from npm/index.js rename to npm/fbx2gltf/index.js diff --git a/npm/package.json b/npm/fbx2gltf/package.json similarity index 96% rename from npm/package.json rename to npm/fbx2gltf/package.json index 5d25630..a9e35df 100644 --- a/npm/package.json +++ b/npm/fbx2gltf/package.json @@ -1,6 +1,6 @@ { "name": "fbx2gltf", - "version": "0.9.5", + "version": "0.9.6", "description": "Node wrapper around FBX2glTF tools.", "main": "index.js", "repository": { diff --git a/npm/fbx2gltf/yarn.lock b/npm/fbx2gltf/yarn.lock new file mode 100644 index 0000000..3a842ef --- /dev/null +++ b/npm/fbx2gltf/yarn.lock @@ -0,0 +1,70 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +glob@^7.0.5: + version "7.1.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" + 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" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.3" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +rimraf@^2.6.2: + version "2.6.2" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" + dependencies: + glob "^7.0.5" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" diff --git a/npm/tests/.npmignore b/npm/tests/.npmignore new file mode 100644 index 0000000..bd6c7fe --- /dev/null +++ b/npm/tests/.npmignore @@ -0,0 +1,2 @@ +*.ts +!*.d.ts \ No newline at end of file diff --git a/npm/tests/README.md b/npm/tests/README.md new file mode 100644 index 0000000..c153b05 --- /dev/null +++ b/npm/tests/README.md @@ -0,0 +1,24 @@ +# FBX2glTF Regression Suite + +It's imperative that as we add new functionality to FBX2glTF and refactor code, +that old behaviour does not change underfoot in unexpected and detrimental ways. + +This is a very simple first beginnings of a test suite for converting FBX files +and ensuring the consistency of the GLB. At present all we do is make sure that +the generated GLB is valid. We will have to add other integrity checks here for +the tests to accomplish what we intend. + +We will also want to test the same file with a variety of command line switches, +e.g. with Draco compression and different materials. + +## Setting up + +We recommend using Yarn rather than NPM. Installation instructions can be found +[here](https://yarnpkg.com/lang/en/docs/install/). + +> yarn install + +## Running tests + +> yarn test + diff --git a/npm/tests/models/fromFacebook/Jon/jon_morph.fbx b/npm/tests/models/fromFacebook/Jon/jon_morph.fbx new file mode 100644 index 0000000..21edfcb --- /dev/null +++ b/npm/tests/models/fromFacebook/Jon/jon_morph.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c2a5e85e167c1b9d91dbfe29a44cad80afab7f95a97f42c69a40dbd573265df +size 68128 diff --git a/npm/tests/models/fromFacebook/Jon/troll-final.fbx b/npm/tests/models/fromFacebook/Jon/troll-final.fbx new file mode 100644 index 0000000..3360922 --- /dev/null +++ b/npm/tests/models/fromFacebook/Jon/troll-final.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84732464cd4c52e813a6ec7c0b5bff50290a2e8e05b6ecc38c2b98e474eaafcf +size 14302496 diff --git a/npm/tests/models/fromFacebook/Natalie/GlitchRobot.fbx b/npm/tests/models/fromFacebook/Natalie/GlitchRobot.fbx new file mode 100644 index 0000000..a7e72ce --- /dev/null +++ b/npm/tests/models/fromFacebook/Natalie/GlitchRobot.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:afcc80ed8ce4a5cd62e5b14fa91c1ae69188211d973dd9a8c0300e21e91d1f8f +size 219872 diff --git a/npm/tests/models/fromFacebook/Ocean/blackvan/blackvan_diffuse.png b/npm/tests/models/fromFacebook/Ocean/blackvan/blackvan_diffuse.png new file mode 100644 index 0000000..d0d9126 --- /dev/null +++ b/npm/tests/models/fromFacebook/Ocean/blackvan/blackvan_diffuse.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9361b0de05056e7208ba5a8f44f27273c20594967617d4965acdac091e4e63e8 +size 3634331 diff --git a/npm/tests/models/fromFacebook/Ocean/blackvan/blackvan_emissive.png b/npm/tests/models/fromFacebook/Ocean/blackvan/blackvan_emissive.png new file mode 100644 index 0000000..91f85a1 --- /dev/null +++ b/npm/tests/models/fromFacebook/Ocean/blackvan/blackvan_emissive.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:982d00006d786a95eb76b41973119a179009f546cbe720a416640ce680a32e67 +size 36280 diff --git a/npm/tests/models/fromFacebook/Ocean/blackvan/blackvan_gloss.png b/npm/tests/models/fromFacebook/Ocean/blackvan/blackvan_gloss.png new file mode 100644 index 0000000..e06853d --- /dev/null +++ b/npm/tests/models/fromFacebook/Ocean/blackvan/blackvan_gloss.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:37e79b91ec0eefaeccaf1235be8f96fda7e8b8cb9bb1074cb987a20ea8d1f164 +size 1856211 diff --git a/npm/tests/models/fromFacebook/Ocean/blackvan/blackvan_normals.png b/npm/tests/models/fromFacebook/Ocean/blackvan/blackvan_normals.png new file mode 100644 index 0000000..88c1545 --- /dev/null +++ b/npm/tests/models/fromFacebook/Ocean/blackvan/blackvan_normals.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1eb84a76fe8faa5c375a9fcabee4239b5e23cd5d9a08489c985a7379d754cdca +size 2562707 diff --git a/npm/tests/models/fromFacebook/Ocean/blackvan/blackvan_specular.png b/npm/tests/models/fromFacebook/Ocean/blackvan/blackvan_specular.png new file mode 100644 index 0000000..4a6e6fa --- /dev/null +++ b/npm/tests/models/fromFacebook/Ocean/blackvan/blackvan_specular.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:039686eea30aaa2ecddc425e2adc54d942566298c9a3c790fb1d513838c9a305 +size 1916685 diff --git a/npm/tests/models/fromFacebook/Ocean/blackvan/blackvan_windows.png b/npm/tests/models/fromFacebook/Ocean/blackvan/blackvan_windows.png new file mode 100644 index 0000000..1d3bbe2 --- /dev/null +++ b/npm/tests/models/fromFacebook/Ocean/blackvan/blackvan_windows.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f41122ebb23597fdaaa44d66c93b5b95675abd5e379d1b27917f1ec4119c2576 +size 4092711 diff --git a/npm/tests/models/fromFacebook/Ocean/blackvan/blackvan_with_windows.fbx b/npm/tests/models/fromFacebook/Ocean/blackvan/blackvan_with_windows.fbx new file mode 100644 index 0000000..5d460a9 --- /dev/null +++ b/npm/tests/models/fromFacebook/Ocean/blackvan/blackvan_with_windows.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52cb225bad9cc9c74bc80c2c9f15a44cddf738d08e2194df4bd1259b830b17c7 +size 1072432 diff --git a/npm/tests/models/fromFacebook/Ocean/zell_van_vertex_color.fbx b/npm/tests/models/fromFacebook/Ocean/zell_van_vertex_color.fbx new file mode 100644 index 0000000..99fc979 --- /dev/null +++ b/npm/tests/models/fromFacebook/Ocean/zell_van_vertex_color.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a56249c6d7a953f4dac9fd823324ac948c348ae5b306fa020667ee5b8e9c4f2f +size 2295056 diff --git a/npm/tests/models/fromFacebook/RAZ/RAZ_ape.fbx b/npm/tests/models/fromFacebook/RAZ/RAZ_ape.fbx new file mode 100644 index 0000000..5954a28 --- /dev/null +++ b/npm/tests/models/fromFacebook/RAZ/RAZ_ape.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a5ae59378d0e90957bce9f766e4e5b41212af8ca2835902391b3d31c0181a056 +size 564048 diff --git a/npm/tests/models/fromFbxSDK/Box.fbx b/npm/tests/models/fromFbxSDK/Box.fbx new file mode 100644 index 0000000..d78a3cb --- /dev/null +++ b/npm/tests/models/fromFbxSDK/Box.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:862247f82d91dab7a998c6110775eaed0bd7196368e40f3bf6115f9221bf1875 +size 12128 diff --git a/npm/tests/models/fromFbxSDK/Camera.fbx b/npm/tests/models/fromFbxSDK/Camera.fbx new file mode 100644 index 0000000..361bda7 --- /dev/null +++ b/npm/tests/models/fromFbxSDK/Camera.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4c6de8e9b23c05bd0bd2c227e9d817deb30efea5779db5afe03752a2869e2cd +size 23180 diff --git a/npm/tests/models/fromFbxSDK/Humanoid.fbx b/npm/tests/models/fromFbxSDK/Humanoid.fbx new file mode 100644 index 0000000..57d0733 --- /dev/null +++ b/npm/tests/models/fromFbxSDK/Humanoid.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ce40cb9b86d0bcdfb66a3382a80349b70037d65197906be34eab0db6eb9418c +size 8983744 diff --git a/npm/tests/models/fromFbxSDK/Normals.fbx b/npm/tests/models/fromFbxSDK/Normals.fbx new file mode 100644 index 0000000..801a458 --- /dev/null +++ b/npm/tests/models/fromFbxSDK/Normals.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a783718dd72e3d1acd76b6e41c950ca1f9f04743a4c7f3dd4e571169ff464d4 +size 704532 diff --git a/npm/tests/models/fromGltfSamples/BoxVertexColors/BoxVertexColors.fbx b/npm/tests/models/fromGltfSamples/BoxVertexColors/BoxVertexColors.fbx new file mode 100644 index 0000000..d672f76 --- /dev/null +++ b/npm/tests/models/fromGltfSamples/BoxVertexColors/BoxVertexColors.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:03ed8da4f2b5b6a5309fa52b2b700e49215f8ba680789b5f210688615232625b +size 17424 diff --git a/npm/tests/models/fromGltfSamples/WaterBottle/NewWaterBottle.fbx b/npm/tests/models/fromGltfSamples/WaterBottle/NewWaterBottle.fbx new file mode 100644 index 0000000..a6aee69 --- /dev/null +++ b/npm/tests/models/fromGltfSamples/WaterBottle/NewWaterBottle.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36f5082165900ce7c0e53d8638c12aa55ef79d80983b65c024a468d210b4c1ff +size 159532 diff --git a/npm/tests/models/fromGltfSamples/WaterBottle/README.md b/npm/tests/models/fromGltfSamples/WaterBottle/README.md new file mode 100644 index 0000000..c1888fa --- /dev/null +++ b/npm/tests/models/fromGltfSamples/WaterBottle/README.md @@ -0,0 +1,26 @@ +# Water Bottle + +## FBX2glTF Changes + +Imported into Blender, texture files explicitly re-attached to material, +metallic & smoothness separated into distinct textures, smoothness negated +into roughmess, then re-exported as FBX. + +## Original Description + +Authored with PBR metallic/smoothness intended for import into Unity3D. + +Binary FBX contains only the geometry. Textures are in separate files. + +|Name|Map| +|----|---| +|`WaterBottle_BaseColor`|Albedo| +|`WaterBottle_MetalSmooth`|Metallic/Smoothness| +|`WaterBottle_Emissive`|Emissive| +|`WaterBottle_Normal`|Normal| +|`WaterBottle_Occlusion`|Occlusion| + +## License Information + +[![CC0](http://i.creativecommons.org/p/zero/1.0/88x31.png)](http://creativecommons.org/publicdomain/zero/1.0/) +To the extent possible under law, Microsoft has waived all copyright and related or neighboring rights to this asset. diff --git a/npm/tests/models/fromGltfSamples/WaterBottle/WaterBottle_BaseColor.png b/npm/tests/models/fromGltfSamples/WaterBottle/WaterBottle_BaseColor.png new file mode 100644 index 0000000..4170ac1 --- /dev/null +++ b/npm/tests/models/fromGltfSamples/WaterBottle/WaterBottle_BaseColor.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1bf6b6c6f87085e3d880f6b2d4c0350b2582b1f5a36cafa689cdebdc65720908 +size 1538074 diff --git a/npm/tests/models/fromGltfSamples/WaterBottle/WaterBottle_Metallic.png b/npm/tests/models/fromGltfSamples/WaterBottle/WaterBottle_Metallic.png new file mode 100644 index 0000000..10d531e --- /dev/null +++ b/npm/tests/models/fromGltfSamples/WaterBottle/WaterBottle_Metallic.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e0b4d7567a663838d4e58a9d7ca145b560a19c7ee3b2fbe9cbc446f8a221a5f +size 279918 diff --git a/npm/tests/models/fromGltfSamples/WaterBottle/WaterBottle_Normal.png b/npm/tests/models/fromGltfSamples/WaterBottle/WaterBottle_Normal.png new file mode 100644 index 0000000..60221c8 --- /dev/null +++ b/npm/tests/models/fromGltfSamples/WaterBottle/WaterBottle_Normal.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e539a182f42071f47585bf34e4f035fb008a38c3942752e7147e5b281d1e55a +size 2301362 diff --git a/npm/tests/models/fromGltfSamples/WaterBottle/WaterBottle_Roughness.png b/npm/tests/models/fromGltfSamples/WaterBottle/WaterBottle_Roughness.png new file mode 100644 index 0000000..26b94d2 --- /dev/null +++ b/npm/tests/models/fromGltfSamples/WaterBottle/WaterBottle_Roughness.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:915d320f5e8660b32e64524cede52ab9591b693c7dc7d7088fc973dae38f0875 +size 1633811 diff --git a/npm/tests/package.json b/npm/tests/package.json new file mode 100644 index 0000000..1df3497 --- /dev/null +++ b/npm/tests/package.json @@ -0,0 +1,42 @@ +{ + "name": "fbx2gltf-tests", + "version": "0.9.6", + "description": "Test suite for FBX2glTF", + "main": "index.js", + "repository": { + "type": "git", + "url": "git+https://github.com/facebookincubator/FBX2glTF.git" + }, + "contributors": [ + "Pär Winzell ", + "Michael Bayne", + "J.M.P. van Waveren", + "Amanda Watson" + ], + "license": "BSD-3-Clause", + "bugs": { + "url": "https://github.com/facebookincubator/FBX2glTF/issues" + }, + "homepage": "https://github.com/facebookincubator/FBX2glTF", + "scripts": { + "pretest": "tsc", + "test": "mocha", + "watch": "mocha-typescript-watch", + "prepare": "tsc" + }, + "dependencies": { + "fbx2gltf": "file:../fbx2gltf", + "gltf-validator": "^2.0.0-dev.2.6", + "tmp": "^0.0.33" + }, + "devDependencies": { + "@types/chai": "^4.1.7", + "@types/mocha": "^5.2.5", + "@types/node": "^10.12.12", + "chai": "^4.2.0", + "mocha": "^5.2.0", + "mocha-typescript": "^1.1.17", + "source-map-support": "^0.5.9", + "typescript": "^3.2.2" + } +} diff --git a/npm/tests/test/fbx2gltf.ts b/npm/tests/test/fbx2gltf.ts new file mode 100644 index 0000000..ea88cf2 --- /dev/null +++ b/npm/tests/test/fbx2gltf.ts @@ -0,0 +1,76 @@ +import { readFileSync } from 'fs'; +import * as tmp from 'tmp'; +import * as path from 'path'; +import * as fbx2gltf from 'fbx2gltf'; +import { assert, expect } from 'chai'; +import { validateBytes } from 'gltf-validator'; + +interface Model { + path: string; + ignoredIssues?: Array; + args?: Array; +} + +const MODELS :Array = [ + { path: 'fromFacebook/Jon/jon_morph' }, + { + path: 'fromFacebook/Jon/troll-final', + ignoredIssues: [ 'ACCESSOR_NON_UNIT' ], + }, + { path: 'fromFacebook/Natalie/GlitchRobot' }, + { path: 'fromFacebook/Ocean/blackvan/blackvan_with_windows' }, + { path: 'fromFacebook/Ocean/zell_van_vertex_color' }, + { path: 'fromFacebook/RAZ/RAZ_ape' }, + { path: 'fromFbxSDK/Box' }, + { + path: 'fromFbxSDK/Humanoid', + ignoredIssues: [ 'UNSUPPORTED_EXTENSION' ], + }, + { + path: 'fromFbxSDK/Camera', + ignoredIssues: [ 'UNSUPPORTED_EXTENSION' ], + }, + { path: 'fromFbxSDK/Normals' }, + { path: 'fromGltfSamples/BoxVertexColors/BoxVertexColors' }, + { path: 'fromGltfSamples/WaterBottle/NewWaterBottle' }, +]; + +const CONVERSION_TIMEOUT_MS = 50000; + +describe('FBX2glTF', () => { + const tmpobj = tmp.dirSync(); + for(let model of MODELS) { + const modelName = path.basename(model.path); + describe('Model: ' + modelName, () => { + const fbxPath = path.join('models', model.path + '.fbx'); + let glbBytes; + it('should convert fbx to glb', async () => { + const glbPath = path.join(tmpobj.name, modelName + '.glb'); + + try { + const destPath = await fbx2gltf(fbxPath, glbPath, model.args || []); + assert.isNotNull(destPath); + glbBytes = readFileSync(destPath); + } catch (err) { + throw new Error('Conversion failed: ' + err); + } + }).timeout(CONVERSION_TIMEOUT_MS); + + it('resulting glb should be valid', async() => { + try { + let options = {}; + if (model.ignoredIssues) { + options.ignoredIssues = model.ignoredIssues; + } + const report = await validateBytes(glbBytes, options); + expect(report.issues.numErrors).to.equal(0); + expect(report.issues.numWarnings).to.equal(0); + + } catch (err) { + throw new Error('Validation failed: ' + err); + } + }); + }); + } + console.log('GLB files may be inspected in: ' + tmpobj.name); +}); diff --git a/npm/tests/test/mocha.opts b/npm/tests/test/mocha.opts new file mode 100644 index 0000000..bb4e390 --- /dev/null +++ b/npm/tests/test/mocha.opts @@ -0,0 +1,3 @@ +--ui mocha-typescript +--require source-map-support/register +--recursive test diff --git a/npm/tests/tsconfig.json b/npm/tests/tsconfig.json new file mode 100644 index 0000000..75d60af --- /dev/null +++ b/npm/tests/tsconfig.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "target": "es6", + "module": "commonjs", + "sourceMap": true, + "experimentalDecorators": true, + "lib": [ "es6" ] + } +} \ No newline at end of file diff --git a/npm/tests/yarn.lock b/npm/tests/yarn.lock new file mode 100644 index 0000000..d68c154 --- /dev/null +++ b/npm/tests/yarn.lock @@ -0,0 +1,564 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@types/chai@^4.1.7": + version "4.1.7" + resolved "https://registry.npmjs.org/@types/chai/-/chai-4.1.7.tgz#1b8e33b61a8c09cbe1f85133071baa0dbf9fa71a" + +"@types/mocha@^5.2.0", "@types/mocha@^5.2.5": + version "5.2.5" + resolved "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.5.tgz#8a4accfc403c124a0bafe8a9fc61a05ec1032073" + +"@types/node@^10.12.12": + version "10.12.12" + resolved "https://registry.npmjs.org/@types/node/-/node-10.12.12.tgz#e15a9d034d9210f00320ef718a50c4a799417c47" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + dependencies: + color-convert "^1.9.0" + +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + +camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + +chai@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz#760aa72cf20e3795e84b12877ce0e83737aa29e5" + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.2" + deep-eql "^3.0.1" + get-func-name "^2.0.0" + pathval "^1.1.0" + type-detect "^4.0.5" + +chalk@^2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +check-error@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + +cliui@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi "^2.0.0" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + +commander@2.15.1: + version "2.15.1" + resolved "http://registry.npmjs.org/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +debug@3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + dependencies: + ms "2.0.0" + +decamelize@^1.1.1: + version "1.2.0" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + +deep-eql@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + dependencies: + type-detect "^4.0.0" + +diff@3.5.0: + version "3.5.0" + resolved "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +"fbx2gltf@file:../fbx2gltf": + version "0.9.6" + dependencies: + rimraf "^2.6.2" + +find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + dependencies: + locate-path "^2.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +get-caller-file@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + +get-stream@^3.0.0: + version "3.0.0" + resolved "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + +glob@7.1.2: + version "7.1.2" + resolved "https://registry.npmjs.org/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" + +glob@^7.0.5: + version "7.1.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" + 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" + +gltf-validator@^2.0.0-dev.2.6: + version "2.0.0-dev.2.6" + resolved "https://registry.npmjs.org/gltf-validator/-/gltf-validator-2.0.0-dev.2.6.tgz#ca99a2c2ee44eb7b1401ffa8d72d3af20cb48e3a" + +growl@1.10.5: + version "1.10.5" + resolved "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + +he@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.3" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + dependencies: + invert-kv "^1.0.0" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +lru-cache@^4.0.1: + version "4.1.5" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +mem@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + dependencies: + mimic-fn "^1.0.0" + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + +minimatch@3.0.4, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +mkdirp@0.5.1: + version "0.5.1" + resolved "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +mocha-typescript@^1.1.17: + version "1.1.17" + resolved "https://registry.npmjs.org/mocha-typescript/-/mocha-typescript-1.1.17.tgz#f78b29ad4f87fce8c25f657883e3eca39fb026c9" + dependencies: + "@types/mocha" "^5.2.0" + chalk "^2.4.1" + cross-spawn "^6.0.5" + yargs "^11.0.0" + +mocha@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz#6d8ae508f59167f940f2b5b3c4a612ae50c90ae6" + dependencies: + browser-stdout "1.3.1" + commander "2.15.1" + debug "3.1.0" + diff "3.5.0" + escape-string-regexp "1.0.5" + glob "7.1.2" + growl "1.10.5" + he "1.1.1" + minimatch "3.0.4" + mkdirp "0.5.1" + supports-color "5.4.0" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + dependencies: + path-key "^2.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +os-locale@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + dependencies: + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + dependencies: + p-try "^1.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + dependencies: + p-limit "^1.1.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + +pathval@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + +rimraf@^2.6.2: + version "2.6.2" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" + dependencies: + glob "^7.0.5" + +semver@^5.5.0: + version "5.6.0" + resolved "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + +signal-exit@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +source-map-support@^0.5.9: + version "0.5.9" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f" + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/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-width@^2.0.0, string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + dependencies: + ansi-regex "^3.0.0" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + +supports-color@5.4.0: + version "5.4.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" + dependencies: + has-flag "^3.0.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + dependencies: + has-flag "^3.0.0" + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + dependencies: + os-tmpdir "~1.0.2" + +type-detect@^4.0.0, type-detect@^4.0.5: + version "4.0.8" + resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + +typescript@^3.2.2: + version "3.2.2" + resolved "https://registry.npmjs.org/typescript/-/typescript-3.2.2.tgz#fe8101c46aa123f8353523ebdcf5730c2ae493e5" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + +which@^1.2.9: + version "1.3.1" + resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + dependencies: + isexe "^2.0.0" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + +yargs-parser@^9.0.2: + version "9.0.2" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" + dependencies: + camelcase "^4.1.0" + +yargs@^11.0.0: + version "11.1.0" + resolved "http://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77" + dependencies: + cliui "^4.0.0" + decamelize "^1.1.1" + find-up "^2.1.0" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^9.0.2" diff --git a/npm/yarn.lock b/npm/yarn.lock deleted file mode 100644 index c30aedc..0000000 --- a/npm/yarn.lock +++ /dev/null @@ -1,70 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - -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" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - -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" - -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: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - -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" - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - dependencies: - wrappy "1" - -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" - -rimraf@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" - dependencies: - glob "^7.0.5" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"