diff --git a/.changeset/little-pumas-check.md b/.changeset/little-pumas-check.md
new file mode 100644
index 0000000000..5cf4124ec5
--- /dev/null
+++ b/.changeset/little-pumas-check.md
@@ -0,0 +1,5 @@
+---
+"app-builder-lib": minor
+---
+
+feat: allow `onNodeModuleFile` to return a boolean to force include the package to be copied
diff --git a/docs/configuration/configuration.md b/docs/configuration/configuration.md
index b085c28228..2210f751c6 100644
--- a/docs/configuration/configuration.md
+++ b/docs/configuration/configuration.md
@@ -169,7 +169,7 @@ Env file `electron-builder.env` in the current dir ([example](https://github.com
appxManifestCreated
module:app-builder-lib/out/configuration.__type | String | “undefined” - Appx manifest created on disk - not packed into .appx package yet.
-onNodeModuleFile
- The function (or path to file or module id) to be run on each node module file.
+onNodeModuleFile
- The function (or path to file or module id) to be run on each node module file. Returning true
/false
will determine whether to force include or to use the default copier logic
beforeBuild
(context: BeforeBuildContext) => Promise | null - The function (or path to file or module id) to be run before dependencies are installed or rebuilt. Works when npmRebuild
is set to true
. Resolving to false
will skip dependencies install or rebuild.
diff --git a/packages/app-builder-lib/scheme.json b/packages/app-builder-lib/scheme.json
index 441adba73d..98c0bfe76c 100644
--- a/packages/app-builder-lib/scheme.json
+++ b/packages/app-builder-lib/scheme.json
@@ -7529,7 +7529,7 @@
]
}
],
- "description": "The function (or path to file or module id) to be [run on each node module](#onnodemodulefile) file."
+ "description": "The function (or path to file or module id) to be [run on each node module](#onnodemodulefile) file. Returning `true`/`false` will determine whether to force include or to use the default copier logic"
},
"p5p": {
"anyOf": [
diff --git a/packages/app-builder-lib/src/configuration.ts b/packages/app-builder-lib/src/configuration.ts
index 147f8e61da..a4344fb239 100644
--- a/packages/app-builder-lib/src/configuration.ts
+++ b/packages/app-builder-lib/src/configuration.ts
@@ -245,9 +245,9 @@ export interface Configuration extends PlatformSpecificBuildOptions {
*/
readonly appxManifestCreated?: ((path: string) => Promise | any) | string | null
/**
- * The function (or path to file or module id) to be [run on each node module](#onnodemodulefile) file.
+ * The function (or path to file or module id) to be [run on each node module](#onnodemodulefile) file. Returning `true`/`false` will determine whether to force include or to use the default copier logic
*/
- readonly onNodeModuleFile?: ((file: string) => void) | string | null
+ readonly onNodeModuleFile?: ((path: string) => void | boolean) | string | null
/**
* The function (or path to file or module id) to be run before dependencies are installed or rebuilt. Works when `npmRebuild` is set to `true`. Resolving to `false` will skip dependencies install or rebuild.
*
diff --git a/packages/app-builder-lib/src/util/NodeModuleCopyHelper.ts b/packages/app-builder-lib/src/util/NodeModuleCopyHelper.ts
index beb3523f0d..5988fe61f1 100644
--- a/packages/app-builder-lib/src/util/NodeModuleCopyHelper.ts
+++ b/packages/app-builder-lib/src/util/NodeModuleCopyHelper.ts
@@ -23,8 +23,8 @@ const topLevelExcludedFiles = new Set([
"Readme",
"readme",
"test",
- "__tests__",
"tests",
+ "__tests__",
"powered-test",
"example",
"examples",
@@ -64,38 +64,39 @@ export class NodeModuleCopyHelper extends FileCopyHelper {
const sortedFilePaths = await BluebirdPromise.map(
childNames,
name => {
- if (onNodeModuleFile != null) {
- onNodeModuleFile(dirPath + path.sep + name)
- }
+ const filePath = dirPath + path.sep + name
+
+ const forceIncluded = onNodeModuleFile != null && !!onNodeModuleFile(filePath)
if (excludedFiles.has(name) || name.startsWith("._")) {
return null
}
- for (const ext of nodeModuleExcludedExts) {
- if (name.endsWith(ext)) {
- return null
+ if (!forceIncluded) {
+ for (const ext of nodeModuleExcludedExts) {
+ if (name.endsWith(ext)) {
+ return null
+ }
}
- }
- // noinspection SpellCheckingInspection
- if (isTopLevel && (topLevelExcludedFiles.has(name) || (moduleName === "libui-node" && (name === "build" || name === "docs" || name === "src")))) {
- return null
- }
+ // noinspection SpellCheckingInspection
+ if (isTopLevel && (topLevelExcludedFiles.has(name) || (moduleName === "libui-node" && (name === "build" || name === "docs" || name === "src")))) {
+ return null
+ }
- if (dirPath.endsWith("build")) {
- if (name === "gyp-mac-tool" || name === "Makefile" || name.endsWith(".mk") || name.endsWith(".gypi") || name.endsWith(".Makefile")) {
+ if (dirPath.endsWith("build")) {
+ if (name === "gyp-mac-tool" || name === "Makefile" || name.endsWith(".mk") || name.endsWith(".gypi") || name.endsWith(".Makefile")) {
+ return null
+ }
+ } else if (dirPath.endsWith("Release") && (name === ".deps" || name === "obj.target")) {
+ return null
+ } else if (name === "src" && (dirPath.endsWith("keytar") || dirPath.endsWith("keytar-prebuild"))) {
+ return null
+ } else if (dirPath.endsWith("lzma-native") && (name === "build" || name === "deps")) {
return null
}
- } else if (dirPath.endsWith("Release") && (name === ".deps" || name === "obj.target")) {
- return null
- } else if (name === "src" && (dirPath.endsWith("keytar") || dirPath.endsWith("keytar-prebuild"))) {
- return null
- } else if (dirPath.endsWith("lzma-native") && (name === "build" || name === "deps")) {
- return null
}
- const filePath = dirPath + path.sep + name
return lstat(filePath).then(stat => {
if (filter != null && !filter(filePath, stat)) {
return null
diff --git a/test/snapshots/BuildTest.js.snap b/test/snapshots/BuildTest.js.snap
index 5550a5b016..5a699bc78e 100644
--- a/test/snapshots/BuildTest.js.snap
+++ b/test/snapshots/BuildTest.js.snap
@@ -219,6 +219,348 @@ Object {
`;
exports[`posix smart unpack 2`] = `
+Object {
+ "data": Array [
+ 35,
+ 35,
+ 32,
+ 77,
+ 103,
+ 79,
+ 112,
+ 101,
+ 110,
+ 32,
+ 116,
+ 121,
+ 112,
+ 101,
+ 102,
+ 97,
+ 99,
+ 101,
+ 115,
+ 10,
+ 10,
+ 35,
+ 32,
+ 83,
+ 111,
+ 117,
+ 114,
+ 99,
+ 101,
+ 32,
+ 97,
+ 110,
+ 100,
+ 32,
+ 76,
+ 105,
+ 99,
+ 101,
+ 110,
+ 115,
+ 101,
+ 10,
+ 10,
+ 104,
+ 116,
+ 116,
+ 112,
+ 115,
+ 58,
+ 47,
+ 47,
+ 119,
+ 101,
+ 98,
+ 46,
+ 97,
+ 114,
+ 99,
+ 104,
+ 105,
+ 118,
+ 101,
+ 46,
+ 111,
+ 114,
+ 103,
+ 47,
+ 119,
+ 101,
+ 98,
+ 47,
+ 50,
+ 48,
+ 48,
+ 53,
+ 48,
+ 53,
+ 50,
+ 56,
+ 49,
+ 49,
+ 52,
+ 49,
+ 52,
+ 48,
+ 47,
+ 104,
+ 116,
+ 116,
+ 112,
+ 115,
+ 58,
+ 47,
+ 47,
+ 101,
+ 108,
+ 108,
+ 97,
+ 107,
+ 46,
+ 103,
+ 114,
+ 47,
+ 102,
+ 111,
+ 110,
+ 116,
+ 115,
+ 47,
+ 109,
+ 103,
+ 111,
+ 112,
+ 101,
+ 110,
+ 47,
+ 105,
+ 110,
+ 100,
+ 101,
+ 120,
+ 46,
+ 101,
+ 110,
+ 10,
+ 10,
+ 35,
+ 32,
+ 85,
+ 115,
+ 97,
+ 103,
+ 101,
+ 10,
+ 10,
+ 85,
+ 115,
+ 101,
+ 32,
+ 70,
+ 97,
+ 99,
+ 101,
+ 116,
+ 121,
+ 112,
+ 101,
+ 46,
+ 106,
+ 115,
+ 32,
+ 116,
+ 111,
+ 32,
+ 103,
+ 101,
+ 110,
+ 101,
+ 114,
+ 97,
+ 116,
+ 101,
+ 32,
+ 116,
+ 121,
+ 112,
+ 101,
+ 102,
+ 97,
+ 99,
+ 101,
+ 46,
+ 106,
+ 115,
+ 111,
+ 110,
+ 32,
+ 102,
+ 111,
+ 110,
+ 116,
+ 115,
+ 58,
+ 32,
+ 104,
+ 116,
+ 116,
+ 112,
+ 115,
+ 58,
+ 47,
+ 47,
+ 103,
+ 101,
+ 114,
+ 111,
+ 51,
+ 46,
+ 103,
+ 105,
+ 116,
+ 104,
+ 117,
+ 98,
+ 46,
+ 105,
+ 111,
+ 47,
+ 102,
+ 97,
+ 99,
+ 101,
+ 116,
+ 121,
+ 112,
+ 101,
+ 46,
+ 106,
+ 115,
+ 47,
+ 10,
+ 10,
+ 67,
+ 111,
+ 108,
+ 108,
+ 101,
+ 99,
+ 116,
+ 105,
+ 111,
+ 110,
+ 32,
+ 111,
+ 102,
+ 32,
+ 71,
+ 111,
+ 111,
+ 103,
+ 108,
+ 101,
+ 32,
+ 102,
+ 111,
+ 110,
+ 116,
+ 115,
+ 32,
+ 97,
+ 115,
+ 32,
+ 116,
+ 121,
+ 112,
+ 101,
+ 102,
+ 97,
+ 99,
+ 101,
+ 32,
+ 100,
+ 97,
+ 116,
+ 97,
+ 32,
+ 102,
+ 111,
+ 114,
+ 32,
+ 117,
+ 115,
+ 97,
+ 103,
+ 101,
+ 32,
+ 119,
+ 105,
+ 116,
+ 104,
+ 32,
+ 116,
+ 104,
+ 114,
+ 101,
+ 101,
+ 46,
+ 106,
+ 115,
+ 58,
+ 32,
+ 104,
+ 116,
+ 116,
+ 112,
+ 115,
+ 58,
+ 47,
+ 47,
+ 103,
+ 105,
+ 116,
+ 104,
+ 117,
+ 98,
+ 46,
+ 99,
+ 111,
+ 109,
+ 47,
+ 99,
+ 111,
+ 109,
+ 112,
+ 111,
+ 110,
+ 101,
+ 110,
+ 116,
+ 115,
+ 45,
+ 97,
+ 105,
+ 47,
+ 116,
+ 121,
+ 112,
+ 101,
+ 102,
+ 97,
+ 99,
+ 101,
+ 115,
+ 10,
+ ],
+ "type": "Buffer",
+}
+`;
+
+exports[`posix smart unpack 3`] = `
Object {
"files": Object {
"app": Object {
@@ -1427,77 +1769,3330 @@ Object {
},
},
},
- "tunnel-agent": Object {
- "files": Object {
- "LICENSE": Object {
- "size": "",
- },
- "index.js": Object {
- "size": "",
- },
- "package.json": Object {
- "size": "",
- },
- },
- },
- "util-deprecate": Object {
- "files": Object {
- "History.md": Object {
- "size": "",
- },
- "LICENSE": Object {
- "size": "",
- },
- "browser.js": Object {
- "size": "",
- },
- "node.js": Object {
- "size": "",
- },
- "package.json": Object {
- "size": "",
- },
- },
- },
- "wrappy": Object {
- "files": Object {
- "LICENSE": Object {
- "size": "",
- },
- "package.json": Object {
- "size": "",
- },
- "wrappy.js": Object {
- "size": "",
- },
- },
- },
- "yallist": Object {
+ "three": Object {
"files": Object {
"LICENSE": Object {
"size": "",
},
- "iterator.js": Object {
- "size": "",
- },
- "package.json": Object {
- "size": "",
- },
- "yallist.js": Object {
- "size": "",
+ "build": Object {
+ "files": Object {
+ "three.cjs": Object {
+ "size": "",
+ },
+ "three.js": Object {
+ "size": "",
+ },
+ "three.min.js": Object {
+ "size": "",
+ },
+ "three.module.js": Object {
+ "size": "",
+ },
+ "three.module.min.js": Object {
+ "size": "",
+ },
+ },
},
- },
- },
- },
- },
- "package.json": Object {
- "size": "",
- },
- },
-}
-`;
-
-exports[`posix smart unpack 3`] = `
+ "examples": Object {
+ "files": Object {
+ "fonts": Object {
+ "files": Object {
+ "LICENSE": Object {
+ "size": "",
+ },
+ "README.md": Object {
+ "size": "",
+ },
+ "droid": Object {
+ "files": Object {
+ "NOTICE": Object {
+ "size": "",
+ },
+ "README.txt": Object {
+ "size": "",
+ },
+ "droid_sans_bold.typeface.json": Object {
+ "size": "",
+ },
+ "droid_sans_mono_regular.typeface.json": Object {
+ "size": "",
+ },
+ "droid_sans_regular.typeface.json": Object {
+ "size": "",
+ },
+ "droid_serif_bold.typeface.json": Object {
+ "size": "",
+ },
+ "droid_serif_regular.typeface.json": Object {
+ "size": "",
+ },
+ },
+ },
+ "gentilis_bold.typeface.json": Object {
+ "size": "",
+ },
+ "gentilis_regular.typeface.json": Object {
+ "size": "",
+ },
+ "helvetiker_bold.typeface.json": Object {
+ "size": "",
+ },
+ "helvetiker_regular.typeface.json": Object {
+ "size": "",
+ },
+ "optimer_bold.typeface.json": Object {
+ "size": "",
+ },
+ "optimer_regular.typeface.json": Object {
+ "size": "",
+ },
+ "ttf": Object {
+ "files": Object {
+ "README.md": Object {
+ "size": "",
+ },
+ "kenpixel.ttf": Object {
+ "size": "",
+ },
+ },
+ },
+ },
+ },
+ "jsm": Object {
+ "files": Object {
+ "Addons.js": Object {
+ "size": "",
+ },
+ "animation": Object {
+ "files": Object {
+ "AnimationClipCreator.js": Object {
+ "size": "",
+ },
+ "CCDIKSolver.js": Object {
+ "size": "",
+ },
+ "MMDAnimationHelper.js": Object {
+ "size": "",
+ },
+ "MMDPhysics.js": Object {
+ "size": "",
+ },
+ },
+ },
+ "cameras": Object {
+ "files": Object {
+ "CinematicCamera.js": Object {
+ "size": "",
+ },
+ },
+ },
+ "capabilities": Object {
+ "files": Object {
+ "WebGL.js": Object {
+ "size": "",
+ },
+ "WebGPU.js": Object {
+ "size": "",
+ },
+ },
+ },
+ "controls": Object {
+ "files": Object {
+ "ArcballControls.js": Object {
+ "size": "",
+ },
+ "DragControls.js": Object {
+ "size": "",
+ },
+ "FirstPersonControls.js": Object {
+ "size": "",
+ },
+ "FlyControls.js": Object {
+ "size": "",
+ },
+ "MapControls.js": Object {
+ "size": "",
+ },
+ "OrbitControls.js": Object {
+ "size": "",
+ },
+ "PointerLockControls.js": Object {
+ "size": "",
+ },
+ "TrackballControls.js": Object {
+ "size": "",
+ },
+ "TransformControls.js": Object {
+ "size": "",
+ },
+ },
+ },
+ "csm": Object {
+ "files": Object {
+ "CSM.js": Object {
+ "size": "",
+ },
+ "CSMFrustum.js": Object {
+ "size": "",
+ },
+ "CSMHelper.js": Object {
+ "size": "",
+ },
+ "CSMShader.js": Object {
+ "size": "",
+ },
+ },
+ },
+ "curves": Object {
+ "files": Object {
+ "CurveExtras.js": Object {
+ "size": "",
+ },
+ "NURBSCurve.js": Object {
+ "size": "",
+ },
+ "NURBSSurface.js": Object {
+ "size": "",
+ },
+ "NURBSUtils.js": Object {
+ "size": "",
+ },
+ },
+ },
+ "effects": Object {
+ "files": Object {
+ "AnaglyphEffect.js": Object {
+ "size": "",
+ },
+ "AsciiEffect.js": Object {
+ "size": "",
+ },
+ "OutlineEffect.js": Object {
+ "size": "",
+ },
+ "ParallaxBarrierEffect.js": Object {
+ "size": "",
+ },
+ "PeppersGhostEffect.js": Object {
+ "size": "",
+ },
+ "StereoEffect.js": Object {
+ "size": "",
+ },
+ },
+ },
+ "environments": Object {
+ "files": Object {
+ "DebugEnvironment.js": Object {
+ "size": "",
+ },
+ "RoomEnvironment.js": Object {
+ "size": "",
+ },
+ },
+ },
+ "exporters": Object {
+ "files": Object {
+ "DRACOExporter.js": Object {
+ "size": "",
+ },
+ "EXRExporter.js": Object {
+ "size": "",
+ },
+ "GLTFExporter.js": Object {
+ "size": "",
+ },
+ "KTX2Exporter.js": Object {
+ "size": "",
+ },
+ "MMDExporter.js": Object {
+ "size": "",
+ },
+ "OBJExporter.js": Object {
+ "size": "",
+ },
+ "PLYExporter.js": Object {
+ "size": "",
+ },
+ "STLExporter.js": Object {
+ "size": "",
+ },
+ "USDZExporter.js": Object {
+ "size": "",
+ },
+ },
+ },
+ "geometries": Object {
+ "files": Object {
+ "BoxLineGeometry.js": Object {
+ "size": "",
+ },
+ "ConvexGeometry.js": Object {
+ "size": "",
+ },
+ "DecalGeometry.js": Object {
+ "size": "",
+ },
+ "InstancedPointsGeometry.js": Object {
+ "size": "",
+ },
+ "ParametricGeometries.js": Object {
+ "size": "",
+ },
+ "ParametricGeometry.js": Object {
+ "size": "",
+ },
+ "RoundedBoxGeometry.js": Object {
+ "size": "",
+ },
+ "SDFGeometryGenerator.js": Object {
+ "size": "",
+ },
+ "TeapotGeometry.js": Object {
+ "size": "",
+ },
+ "TextGeometry.js": Object {
+ "size": "",
+ },
+ },
+ },
+ "helpers": Object {
+ "files": Object {
+ "LightProbeHelper.js": Object {
+ "size": "",
+ },
+ "OctreeHelper.js": Object {
+ "size": "",
+ },
+ "PositionalAudioHelper.js": Object {
+ "size": "",
+ },
+ "RectAreaLightHelper.js": Object {
+ "size": "",
+ },
+ "TextureHelper.js": Object {
+ "size": "",
+ },
+ "VertexNormalsHelper.js": Object {
+ "size": "",
+ },
+ "VertexTangentsHelper.js": Object {
+ "size": "",
+ },
+ "ViewHelper.js": Object {
+ "size": "",
+ },
+ },
+ },
+ "interactive": Object {
+ "files": Object {
+ "HTMLMesh.js": Object {
+ "size": "",
+ },
+ "InteractiveGroup.js": Object {
+ "size": "",
+ },
+ "SelectionBox.js": Object {
+ "size": "",
+ },
+ "SelectionHelper.js": Object {
+ "size": "",
+ },
+ },
+ },
+ "libs": Object {
+ "files": Object {
+ "ammo.wasm.js": Object {
+ "size": "",
+ },
+ "ammo.wasm.wasm": Object {
+ "size": "",
+ },
+ "basis": Object {
+ "files": Object {
+ "README.md": Object {
+ "size": "",
+ },
+ "basis_transcoder.js": Object {
+ "size": "",
+ },
+ "basis_transcoder.wasm": Object {
+ "size": "",
+ },
+ },
+ },
+ "chevrotain.module.min.js": Object {
+ "size": "",
+ },
+ "draco": Object {
+ "files": Object {
+ "README.md": Object {
+ "size": "",
+ },
+ "draco_decoder.js": Object {
+ "size": "",
+ },
+ "draco_decoder.wasm": Object {
+ "size": "",
+ },
+ "draco_encoder.js": Object {
+ "size": "",
+ },
+ "draco_wasm_wrapper.js": Object {
+ "size": "",
+ },
+ "gltf": Object {
+ "files": Object {
+ "draco_decoder.js": Object {
+ "size": "",
+ },
+ "draco_decoder.wasm": Object {
+ "size": "",
+ },
+ "draco_encoder.js": Object {
+ "executable": true,
+ "size": "",
+ },
+ "draco_wasm_wrapper.js": Object {
+ "size": "",
+ },
+ },
+ },
+ },
+ },
+ "ecsy.module.js": Object {
+ "size": "",
+ },
+ "fflate.module.js": Object {
+ "size": "",
+ },
+ "ktx-parse.module.js": Object {
+ "size": "",
+ },
+ "lil-gui.module.min.js": Object {
+ "size": "",
+ },
+ "lottie_canvas.module.js": Object {
+ "size": "",
+ },
+ "meshopt_decoder.module.js": Object {
+ "size": "",
+ },
+ "mikktspace.module.js": Object {
+ "size": "",
+ },
+ "mmdparser.module.js": Object {
+ "size": "",
+ },
+ "motion-controllers.module.js": Object {
+ "size": "",
+ },
+ "opentype.module.js": Object {
+ "size": "",
+ },
+ "potpack.module.js": Object {
+ "size": "",
+ },
+ "rhino3dm": Object {
+ "files": Object {
+ "rhino3dm.js": Object {
+ "size": "",
+ },
+ "rhino3dm.module.js": Object {
+ "size": "",
+ },
+ "rhino3dm.wasm": Object {
+ "size": "",
+ },
+ },
+ },
+ "stats.module.js": Object {
+ "size": "",
+ },
+ "surfaceNet.js": Object {
+ "size": "",
+ },
+ "tween.module.js": Object {
+ "size": "",
+ },
+ "utif.module.js": Object {
+ "size": "",
+ },
+ "zstddec.module.js": Object {
+ "size": "",
+ },
+ },
+ },
+ "lights": Object {
+ "files": Object {
+ "IESSpotLight.js": Object {
+ "size": "",
+ },
+ "LightProbeGenerator.js": Object {
+ "size": "",
+ },
+ "RectAreaLightUniformsLib.js": Object {
+ "size": "",
+ },
+ },
+ },
+ "lines": Object {
+ "files": Object {
+ "Line2.js": Object {
+ "size": "",
+ },
+ "LineGeometry.js": Object {
+ "size": "",
+ },
+ "LineMaterial.js": Object {
+ "size": "",
+ },
+ "LineSegments2.js": Object {
+ "size": "",
+ },
+ "LineSegmentsGeometry.js": Object {
+ "size": "",
+ },
+ "Wireframe.js": Object {
+ "size": "",
+ },
+ "WireframeGeometry2.js": Object {
+ "size": "",
+ },
+ },
+ },
+ "loaders": Object {
+ "files": Object {
+ "3DMLoader.js": Object {
+ "size": "",
+ },
+ "3MFLoader.js": Object {
+ "size": "",
+ },
+ "AMFLoader.js": Object {
+ "size": "",
+ },
+ "BVHLoader.js": Object {
+ "size": "",
+ },
+ "ColladaLoader.js": Object {
+ "size": "",
+ },
+ "DDSLoader.js": Object {
+ "size": "",
+ },
+ "DRACOLoader.js": Object {
+ "size": "",
+ },
+ "EXRLoader.js": Object {
+ "size": "",
+ },
+ "FBXLoader.js": Object {
+ "size": "",
+ },
+ "FontLoader.js": Object {
+ "size": "",
+ },
+ "GCodeLoader.js": Object {
+ "size": "",
+ },
+ "GLTFLoader.js": Object {
+ "size": "",
+ },
+ "HDRCubeTextureLoader.js": Object {
+ "size": "",
+ },
+ "IESLoader.js": Object {
+ "size": "",
+ },
+ "KMZLoader.js": Object {
+ "size": "",
+ },
+ "KTX2Loader.js": Object {
+ "size": "",
+ },
+ "KTXLoader.js": Object {
+ "size": "",
+ },
+ "LDrawLoader.js": Object {
+ "size": "",
+ },
+ "LUT3dlLoader.js": Object {
+ "size": "",
+ },
+ "LUTCubeLoader.js": Object {
+ "size": "",
+ },
+ "LUTImageLoader.js": Object {
+ "size": "",
+ },
+ "LWOLoader.js": Object {
+ "size": "",
+ },
+ "LogLuvLoader.js": Object {
+ "size": "",
+ },
+ "LottieLoader.js": Object {
+ "size": "",
+ },
+ "MD2Loader.js": Object {
+ "size": "",
+ },
+ "MDDLoader.js": Object {
+ "size": "",
+ },
+ "MMDLoader.js": Object {
+ "size": "",
+ },
+ "MTLLoader.js": Object {
+ "size": "",
+ },
+ "MaterialXLoader.js": Object {
+ "size": "",
+ },
+ "NRRDLoader.js": Object {
+ "size": "",
+ },
+ "OBJLoader.js": Object {
+ "size": "",
+ },
+ "PCDLoader.js": Object {
+ "size": "",
+ },
+ "PDBLoader.js": Object {
+ "size": "",
+ },
+ "PLYLoader.js": Object {
+ "size": "",
+ },
+ "PVRLoader.js": Object {
+ "size": "",
+ },
+ "RGBELoader.js": Object {
+ "size": "",
+ },
+ "RGBMLoader.js": Object {
+ "size": "",
+ },
+ "STLLoader.js": Object {
+ "size": "",
+ },
+ "SVGLoader.js": Object {
+ "size": "",
+ },
+ "TDSLoader.js": Object {
+ "size": "",
+ },
+ "TGALoader.js": Object {
+ "size": "",
+ },
+ "TIFFLoader.js": Object {
+ "size": "",
+ },
+ "TTFLoader.js": Object {
+ "size": "",
+ },
+ "TiltLoader.js": Object {
+ "size": "",
+ },
+ "USDZLoader.js": Object {
+ "size": "",
+ },
+ "VOXLoader.js": Object {
+ "size": "",
+ },
+ "VRMLLoader.js": Object {
+ "size": "",
+ },
+ "VTKLoader.js": Object {
+ "size": "",
+ },
+ "XYZLoader.js": Object {
+ "size": "",
+ },
+ "lwo": Object {
+ "files": Object {
+ "IFFParser.js": Object {
+ "size": "",
+ },
+ "LWO2Parser.js": Object {
+ "size": "",
+ },
+ "LWO3Parser.js": Object {
+ "size": "",
+ },
+ },
+ },
+ },
+ },
+ "materials": Object {
+ "files": Object {
+ "MeshGouraudMaterial.js": Object {
+ "size": "",
+ },
+ },
+ },
+ "math": Object {
+ "files": Object {
+ "Capsule.js": Object {
+ "size": "",
+ },
+ "ColorConverter.js": Object {
+ "size": "",
+ },
+ "ConvexHull.js": Object {
+ "size": "",
+ },
+ "ImprovedNoise.js": Object {
+ "size": "",
+ },
+ "Lut.js": Object {
+ "size": "",
+ },
+ "MeshSurfaceSampler.js": Object {
+ "size": "",
+ },
+ "OBB.js": Object {
+ "size": "",
+ },
+ "Octree.js": Object {
+ "size": "",
+ },
+ "SimplexNoise.js": Object {
+ "size": "",
+ },
+ },
+ },
+ "misc": Object {
+ "files": Object {
+ "ConvexObjectBreaker.js": Object {
+ "size": "",
+ },
+ "GPUComputationRenderer.js": Object {
+ "size": "",
+ },
+ "Gyroscope.js": Object {
+ "size": "",
+ },
+ "MD2Character.js": Object {
+ "size": "",
+ },
+ "MD2CharacterComplex.js": Object {
+ "size": "",
+ },
+ "MorphAnimMesh.js": Object {
+ "size": "",
+ },
+ "MorphBlendMesh.js": Object {
+ "size": "",
+ },
+ "ProgressiveLightMap.js": Object {
+ "size": "",
+ },
+ "RollerCoaster.js": Object {
+ "size": "",
+ },
+ "Timer.js": Object {
+ "size": "",
+ },
+ "TubePainter.js": Object {
+ "size": "",
+ },
+ "Volume.js": Object {
+ "size": "",
+ },
+ "VolumeSlice.js": Object {
+ "size": "",
+ },
+ },
+ },
+ "modifiers": Object {
+ "files": Object {
+ "CurveModifier.js": Object {
+ "size": "",
+ },
+ "EdgeSplitModifier.js": Object {
+ "size": "",
+ },
+ "SimplifyModifier.js": Object {
+ "size": "",
+ },
+ "TessellateModifier.js": Object {
+ "size": "",
+ },
+ },
+ },
+ "nodes": Object {
+ "files": Object {
+ "Nodes.js": Object {
+ "size": "",
+ },
+ "accessors": Object {
+ "files": Object {
+ "BitangentNode.js": Object {
+ "size": "",
+ },
+ "BufferAttributeNode.js": Object {
+ "size": "",
+ },
+ "BufferNode.js": Object {
+ "size": "",
+ },
+ "CameraNode.js": Object {
+ "size": "",
+ },
+ "CubeTextureNode.js": Object {
+ "size": "",
+ },
+ "InstanceNode.js": Object {
+ "size": "",
+ },
+ "InstancedPointsMaterialNode.js": Object {
+ "size": "",
+ },
+ "MaterialNode.js": Object {
+ "size": "",
+ },
+ "MaterialReferenceNode.js": Object {
+ "size": "",
+ },
+ "ModelNode.js": Object {
+ "size": "",
+ },
+ "ModelViewProjectionNode.js": Object {
+ "size": "",
+ },
+ "MorphNode.js": Object {
+ "size": "",
+ },
+ "NormalNode.js": Object {
+ "size": "",
+ },
+ "Object3DNode.js": Object {
+ "size": "",
+ },
+ "PointUVNode.js": Object {
+ "size": "",
+ },
+ "PositionNode.js": Object {
+ "size": "",
+ },
+ "ReferenceNode.js": Object {
+ "size": "",
+ },
+ "ReflectVectorNode.js": Object {
+ "size": "",
+ },
+ "SceneNode.js": Object {
+ "size": "",
+ },
+ "SkinningNode.js": Object {
+ "size": "",
+ },
+ "StorageBufferNode.js": Object {
+ "size": "",
+ },
+ "TangentNode.js": Object {
+ "size": "",
+ },
+ "TextureBicubicNode.js": Object {
+ "size": "",
+ },
+ "TextureNode.js": Object {
+ "size": "",
+ },
+ "TextureSizeNode.js": Object {
+ "size": "",
+ },
+ "TextureStoreNode.js": Object {
+ "size": "