@needle-tools/three 0.162.12 → 0.169.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/build/three.cjs +29789 -1941
- package/build/three.module.js +29095 -1933
- package/build/three.module.min.js +2 -2
- package/build/three.webgpu.js +80003 -0
- package/build/three.webgpu.min.js +6 -0
- package/build/three.webgpu.nodes.js +79951 -0
- package/build/three.webgpu.nodes.min.js +6 -0
- package/examples/jsm/Addons.js +2 -5
- package/examples/jsm/animation/AnimationClipCreator.js +1 -1
- package/examples/jsm/animation/CCDIKSolver.js +4 -2
- package/examples/jsm/capabilities/WebGL.js +27 -21
- package/examples/jsm/controls/ArcballControls.js +174 -158
- package/examples/jsm/controls/DragControls.js +260 -132
- package/examples/jsm/controls/FirstPersonControls.js +175 -163
- package/examples/jsm/controls/FlyControls.js +194 -188
- package/examples/jsm/controls/OrbitControls.js +790 -797
- package/examples/jsm/controls/PointerLockControls.js +24 -15
- package/examples/jsm/controls/TrackballControls.js +469 -448
- package/examples/jsm/controls/TransformControls.js +98 -63
- package/examples/jsm/csm/CSMShader.js +4 -4
- package/examples/jsm/effects/AnaglyphEffect.js +6 -13
- package/examples/jsm/effects/ParallaxBarrierEffect.js +17 -11
- package/examples/jsm/effects/StereoEffect.js +6 -1
- package/examples/jsm/environments/RoomEnvironment.js +2 -6
- package/examples/jsm/exporters/DRACOExporter.js +4 -2
- package/examples/jsm/exporters/EXRExporter.js +19 -11
- package/examples/jsm/exporters/GLTFExporter.js +77 -8
- package/examples/jsm/exporters/KTX2Exporter.js +21 -13
- package/examples/jsm/exporters/OBJExporter.js +5 -1
- package/examples/jsm/exporters/PLYExporter.js +9 -7
- package/examples/jsm/exporters/USDZExporter.js +55 -11
- package/examples/jsm/geometries/DecalGeometry.js +4 -1
- package/examples/jsm/geometries/InstancedPointsGeometry.js +1 -1
- package/examples/jsm/geometries/TeapotGeometry.js +1 -1
- package/examples/jsm/geometries/TextGeometry.js +10 -2
- package/examples/jsm/helpers/LightProbeHelper.js +43 -44
- package/examples/jsm/helpers/LightProbeHelperGPU.js +65 -0
- package/examples/jsm/helpers/ViewHelper.js +75 -61
- package/examples/jsm/interactive/HTMLMesh.js +7 -9
- package/examples/jsm/libs/basis/basis_transcoder.js +8 -10
- package/examples/jsm/libs/basis/basis_transcoder.wasm +0 -0
- package/examples/jsm/libs/draco/README.md +2 -2
- package/examples/jsm/libs/fflate.module.js +694 -496
- package/examples/jsm/libs/ktx-parse.module.js +1 -1
- package/examples/jsm/lights/LightProbeGenerator.js +24 -10
- package/examples/jsm/lights/RectAreaLightTexturesLib.js +91 -0
- package/examples/jsm/lights/RectAreaLightUniformsLib.js +8 -63
- package/examples/jsm/lines/LineMaterial.js +1 -17
- package/examples/jsm/lines/LineSegments2.js +15 -0
- package/examples/jsm/lines/Wireframe.js +16 -1
- package/examples/jsm/lines/webgpu/Line2.js +20 -0
- package/examples/jsm/lines/webgpu/LineSegments2.js +376 -0
- package/examples/jsm/loaders/3MFLoader.js +2 -0
- package/examples/jsm/loaders/ColladaLoader.js +9 -6
- package/examples/jsm/loaders/DRACOLoader.js +4 -2
- package/examples/jsm/loaders/EXRLoader.js +351 -97
- package/examples/jsm/loaders/FBXLoader.js +77 -78
- package/examples/jsm/loaders/GLTFLoader.js +76 -14
- package/examples/jsm/loaders/KTX2Loader.js +30 -22
- package/examples/jsm/loaders/LDrawLoader.js +3 -2
- package/examples/jsm/loaders/LUT3dlLoader.js +0 -15
- package/examples/jsm/loaders/LUTCubeLoader.js +0 -14
- package/examples/jsm/loaders/LUTImageLoader.js +0 -14
- package/examples/jsm/loaders/MMDLoader.js +31 -12
- package/examples/jsm/loaders/MTLLoader.js +4 -3
- package/examples/jsm/loaders/MaterialXLoader.js +45 -21
- package/examples/jsm/loaders/OBJLoader.js +5 -3
- package/examples/jsm/loaders/PCDLoader.js +14 -13
- package/examples/jsm/loaders/PDBLoader.js +3 -2
- package/examples/jsm/loaders/PLYLoader.js +8 -5
- package/examples/jsm/loaders/RGBMLoader.js +16 -0
- package/examples/jsm/loaders/STLLoader.js +3 -2
- package/examples/jsm/loaders/USDZLoader.js +124 -76
- package/examples/jsm/loaders/UltraHDRLoader.js +583 -0
- package/examples/jsm/loaders/VRMLLoader.js +11 -11
- package/examples/jsm/loaders/VTKLoader.js +80 -6
- package/examples/jsm/loaders/XYZLoader.js +3 -2
- package/examples/jsm/loaders/lwo/IFFParser.js +8 -5
- package/examples/jsm/materials/MeshGouraudMaterial.js +7 -1
- package/examples/jsm/math/Octree.js +26 -20
- package/examples/jsm/misc/GPUComputationRenderer.js +9 -25
- package/examples/jsm/misc/Timer.js +1 -1
- package/examples/jsm/modifiers/CurveModifier.js +11 -9
- package/examples/jsm/modifiers/CurveModifierGPU.js +233 -0
- package/examples/jsm/modifiers/SimplifyModifier.js +2 -1
- package/examples/jsm/objects/InstancedPoints.js +2 -2
- package/examples/jsm/objects/Lensflare.js +2 -2
- package/examples/jsm/objects/LensflareMesh.js +322 -0
- package/examples/jsm/objects/SkyMesh.js +187 -0
- package/examples/jsm/objects/Water2Mesh.js +158 -0
- package/examples/jsm/objects/WaterMesh.js +101 -0
- package/examples/jsm/physics/JoltPhysics.js +281 -0
- package/examples/jsm/physics/RapierPhysics.js +25 -5
- package/examples/jsm/postprocessing/GlitchPass.js +0 -3
- package/examples/jsm/postprocessing/LUTPass.js +5 -71
- package/examples/jsm/postprocessing/OutlinePass.js +31 -46
- package/examples/jsm/postprocessing/RenderPass.js +1 -1
- package/examples/jsm/postprocessing/RenderTransitionPass.js +168 -0
- package/examples/jsm/postprocessing/SAOPass.js +0 -1
- package/examples/jsm/postprocessing/SSAARenderPass.js +3 -1
- package/examples/jsm/postprocessing/SSAOPass.js +6 -12
- package/examples/jsm/postprocessing/UnrealBloomPass.js +4 -4
- package/examples/jsm/renderers/CSS2DRenderer.js +25 -5
- package/examples/jsm/renderers/CSS3DRenderer.js +24 -3
- package/examples/jsm/renderers/webgl-legacy/nodes/GLSL1NodeBuilder.js +1 -3
- package/examples/jsm/renderers/webgl-legacy/nodes/SlotNode.js +1 -1
- package/examples/jsm/renderers/webgl-legacy/nodes/WebGLNodeBuilder.js +7 -4
- package/examples/jsm/renderers/webgl-legacy/nodes/WebGLNodes.js +19 -5
- package/examples/jsm/shaders/BleachBypassShader.js +1 -2
- package/examples/jsm/shaders/ColorifyShader.js +1 -2
- package/examples/jsm/shaders/FXAAShader.js +0 -2
- package/examples/jsm/shaders/GTAOShader.js +1 -1
- package/examples/jsm/shaders/LuminosityHighPassShader.js +1 -3
- package/examples/jsm/shaders/OutputShader.js +1 -1
- package/examples/jsm/transpiler/GLSLDecoder.js +47 -5
- package/examples/jsm/transpiler/ShaderToyDecoder.js +2 -2
- package/examples/jsm/transpiler/TSLEncoder.js +24 -22
- package/examples/jsm/utils/BufferGeometryUtils.js +18 -16
- package/examples/jsm/utils/GeometryCompressionUtils.js +37 -122
- package/examples/jsm/utils/SceneUtils.js +60 -1
- package/examples/jsm/utils/ShadowMapViewer.js +3 -8
- package/examples/jsm/utils/ShadowMapViewerGPU.js +201 -0
- package/examples/jsm/utils/SkeletonUtils.js +84 -66
- package/examples/jsm/utils/SortUtils.js +8 -5
- package/examples/jsm/utils/TextureUtils.js +3 -2
- package/examples/jsm/utils/TextureUtilsGPU.js +63 -0
- package/examples/jsm/webxr/OculusHandModel.js +3 -2
- package/examples/jsm/webxr/XRControllerModelFactory.js +1 -1
- package/examples/jsm/webxr/XRHandModelFactory.js +4 -2
- package/package.json +11 -8
- package/src/Three.WebGPU.Nodes.js +200 -0
- package/src/Three.WebGPU.js +201 -0
- package/src/Three.js +23 -1
- package/src/animation/AnimationClip.js +1 -1
- package/src/animation/tracks/BooleanKeyframeTrack.js +10 -1
- package/src/animation/tracks/QuaternionKeyframeTrack.js +1 -2
- package/src/animation/tracks/StringKeyframeTrack.js +10 -1
- package/src/audio/Audio.js +2 -2
- package/src/constants.js +6 -7
- package/src/core/BufferAttribute.js +0 -9
- package/src/core/Clock.js +1 -1
- package/src/core/InterleavedBuffer.js +0 -9
- package/src/core/Object3D.js +34 -29
- package/src/core/Raycaster.js +6 -2
- package/src/core/RenderTarget.js +8 -0
- package/src/extras/Controls.js +32 -0
- package/src/extras/PMREMGenerator.js +12 -11
- package/src/extras/TextureUtils.js +210 -0
- package/src/geometries/CylinderGeometry.js +11 -4
- package/src/lights/Light.js +1 -0
- package/src/lights/LightShadow.js +5 -0
- package/{examples/jsm/lights → src/lights/webgpu}/IESSpotLight.js +1 -1
- package/src/loaders/FileLoader.js +5 -1
- package/src/loaders/LoaderUtils.js +3 -1
- package/src/loaders/MaterialLoader.js +8 -1
- package/src/loaders/ObjectLoader.js +36 -2
- package/{examples/jsm/nodes/loaders → src/loaders/nodes}/NodeLoader.js +27 -5
- package/{examples/jsm/nodes/loaders → src/loaders/nodes}/NodeMaterialLoader.js +22 -18
- package/{examples/jsm/nodes/loaders → src/loaders/nodes}/NodeObjectLoader.js +21 -1
- package/src/materials/Material.js +4 -0
- package/src/materials/MeshPhysicalMaterial.js +20 -0
- package/src/materials/ShaderMaterial.js +0 -4
- package/src/materials/nodes/InstancedPointsNodeMaterial.js +156 -0
- package/{examples/jsm/nodes/materials → src/materials/nodes}/Line2NodeMaterial.js +69 -68
- package/src/materials/nodes/LineBasicNodeMaterial.js +31 -0
- package/{examples/jsm/nodes/materials → src/materials/nodes}/LineDashedNodeMaterial.js +15 -12
- package/src/materials/nodes/MeshBasicNodeMaterial.js +77 -0
- package/src/materials/nodes/MeshLambertNodeMaterial.js +47 -0
- package/src/materials/nodes/MeshMatcapNodeMaterial.js +57 -0
- package/src/materials/nodes/MeshNormalNodeMaterial.js +44 -0
- package/src/materials/nodes/MeshPhongNodeMaterial.js +78 -0
- package/src/materials/nodes/MeshPhysicalNodeMaterial.js +248 -0
- package/{examples/jsm/nodes/materials → src/materials/nodes}/MeshSSSNodeMaterial.js +10 -7
- package/src/materials/nodes/MeshStandardNodeMaterial.js +108 -0
- package/src/materials/nodes/MeshToonNodeMaterial.js +38 -0
- package/{examples/jsm/nodes/materials → src/materials/nodes}/NodeMaterial.js +198 -157
- package/{examples/jsm/nodes/materials/Materials.js → src/materials/nodes/NodeMaterials.js} +7 -1
- package/{examples/jsm/nodes/materials → src/materials/nodes}/PointsNodeMaterial.js +10 -7
- package/src/materials/nodes/ShadowNodeMaterial.js +38 -0
- package/src/materials/nodes/SpriteNodeMaterial.js +123 -0
- package/src/materials/nodes/VolumeNodeMaterial.js +108 -0
- package/src/materials/nodes/manager/NodeMaterialObserver.js +302 -0
- package/src/math/Box2.js +4 -4
- package/src/math/Box3.js +6 -6
- package/src/math/ColorManagement.js +10 -0
- package/src/math/Matrix2.js +54 -0
- package/src/math/Spherical.js +4 -5
- package/src/math/Triangle.js +24 -0
- package/src/math/Vector4.js +13 -0
- package/src/nodes/Nodes.js +164 -0
- package/src/nodes/TSL.js +179 -0
- package/src/nodes/accessors/AccessorsUtils.js +25 -0
- package/src/nodes/accessors/BatchNode.js +128 -0
- package/src/nodes/accessors/Bitangent.js +13 -0
- package/{examples/jsm → src}/nodes/accessors/BufferAttributeNode.js +44 -6
- package/{examples/jsm → src}/nodes/accessors/BufferNode.js +13 -4
- package/src/nodes/accessors/Camera.js +13 -0
- package/{examples/jsm → src}/nodes/accessors/ClippingNode.js +22 -15
- package/src/nodes/accessors/CubeTextureNode.js +79 -0
- package/src/nodes/accessors/InstanceNode.js +144 -0
- package/src/nodes/accessors/InstancedPointsMaterialNode.js +24 -0
- package/src/nodes/accessors/Lights.js +51 -0
- package/src/nodes/accessors/MaterialNode.js +441 -0
- package/src/nodes/accessors/MaterialProperties.js +3 -0
- package/{examples/jsm → src}/nodes/accessors/MaterialReferenceNode.js +10 -5
- package/src/nodes/accessors/ModelNode.js +72 -0
- package/src/nodes/accessors/ModelViewProjectionNode.js +42 -0
- package/{examples/jsm → src}/nodes/accessors/MorphNode.js +51 -33
- package/src/nodes/accessors/Normal.js +88 -0
- package/{examples/jsm → src}/nodes/accessors/Object3DNode.js +18 -34
- package/src/nodes/accessors/PointUVNode.js +30 -0
- package/src/nodes/accessors/Position.js +10 -0
- package/src/nodes/accessors/ReferenceBaseNode.js +171 -0
- package/{examples/jsm → src}/nodes/accessors/ReferenceNode.js +58 -9
- package/src/nodes/accessors/ReflectVector.js +10 -0
- package/src/nodes/accessors/RendererReferenceNode.js +35 -0
- package/{examples/jsm → src}/nodes/accessors/SceneNode.js +9 -6
- package/src/nodes/accessors/SkinningNode.js +191 -0
- package/src/nodes/accessors/StorageBufferNode.js +147 -0
- package/{examples/jsm/nodes/accessors/TextureStoreNode.js → src/nodes/accessors/StorageTextureNode.js} +35 -10
- package/src/nodes/accessors/Tangent.js +22 -0
- package/src/nodes/accessors/Texture3DNode.js +103 -0
- package/{examples/jsm/nodes/accessors/TextureBicubicNode.js → src/nodes/accessors/TextureBicubic.js} +3 -32
- package/{examples/jsm → src}/nodes/accessors/TextureNode.js +123 -39
- package/src/nodes/accessors/TextureSizeNode.js +36 -0
- package/src/nodes/accessors/UV.js +3 -0
- package/{examples/jsm/nodes/accessors/UniformsNode.js → src/nodes/accessors/UniformArrayNode.js} +33 -15
- package/{examples/jsm → src}/nodes/accessors/UserDataNode.js +10 -7
- package/src/nodes/accessors/VelocityNode.js +134 -0
- package/{examples/jsm → src}/nodes/accessors/VertexColorNode.js +9 -5
- package/{examples/jsm → src}/nodes/code/CodeNode.js +9 -5
- package/{examples/jsm → src}/nodes/code/ExpressionNode.js +10 -6
- package/{examples/jsm → src}/nodes/code/FunctionCallNode.js +8 -5
- package/{examples/jsm → src}/nodes/code/FunctionNode.js +8 -31
- package/{examples/jsm → src}/nodes/code/ScriptableNode.js +24 -7
- package/{examples/jsm → src}/nodes/code/ScriptableValueNode.js +11 -8
- package/{examples/jsm → src}/nodes/core/AssignNode.js +12 -9
- package/{examples/jsm → src}/nodes/core/AttributeNode.js +29 -12
- package/{examples/jsm → src}/nodes/core/BypassNode.js +11 -7
- package/src/nodes/core/CacheNode.js +50 -0
- package/{examples/jsm → src}/nodes/core/ConstNode.js +6 -3
- package/{examples/jsm → src}/nodes/core/ContextNode.js +27 -11
- package/src/nodes/core/IndexNode.js +99 -0
- package/{examples/jsm → src}/nodes/core/InputNode.js +7 -3
- package/{examples/jsm → src}/nodes/core/LightingModel.js +2 -2
- package/src/nodes/core/MRTNode.js +85 -0
- package/{examples/jsm → src}/nodes/core/Node.js +114 -57
- package/{examples/jsm → src}/nodes/core/NodeBuilder.js +327 -90
- package/src/nodes/core/NodeCache.js +36 -0
- package/{examples/jsm → src}/nodes/core/NodeFrame.js +52 -10
- package/{examples/jsm → src}/nodes/core/NodeFunction.js +2 -2
- package/{examples/jsm → src}/nodes/core/NodeUniform.js +1 -2
- package/{examples/jsm → src}/nodes/core/NodeUtils.js +56 -8
- package/{examples/jsm → src}/nodes/core/OutputStructNode.js +13 -12
- package/{examples/jsm → src}/nodes/core/ParameterNode.js +7 -4
- package/src/nodes/core/PropertyNode.js +88 -0
- package/{examples/jsm → src}/nodes/core/StackNode.js +31 -11
- package/{examples/jsm → src}/nodes/core/StructTypeNode.js +7 -3
- package/{examples/jsm → src}/nodes/core/TempNode.js +10 -6
- package/src/nodes/core/UniformGroupNode.js +59 -0
- package/{examples/jsm → src}/nodes/core/UniformNode.js +37 -5
- package/{examples/jsm → src}/nodes/core/VarNode.js +14 -14
- package/src/nodes/core/VaryingNode.js +108 -0
- package/{examples/jsm → src}/nodes/display/AfterImageNode.js +38 -28
- package/src/nodes/display/AnaglyphPassNode.js +67 -0
- package/{examples/jsm → src}/nodes/display/AnamorphicNode.js +33 -30
- package/src/nodes/display/BleachBypass.js +26 -0
- package/src/nodes/display/BlendMode.js +54 -0
- package/src/nodes/display/BloomNode.js +341 -0
- package/{examples/jsm → src}/nodes/display/BumpMapNode.js +20 -38
- package/src/nodes/display/ColorAdjustment.js +46 -0
- package/src/nodes/display/ColorSpaceFunctions.js +38 -0
- package/src/nodes/display/ColorSpaceNode.js +114 -0
- package/src/nodes/display/DenoiseNode.js +204 -0
- package/src/nodes/display/DepthOfFieldNode.js +124 -0
- package/src/nodes/display/DotScreenNode.js +66 -0
- package/src/nodes/display/FXAANode.js +332 -0
- package/src/nodes/display/FilmNode.js +56 -0
- package/src/nodes/display/FrontFacingNode.js +45 -0
- package/src/nodes/display/GTAONode.js +331 -0
- package/{examples/jsm → src}/nodes/display/GaussianBlurNode.js +47 -24
- package/src/nodes/display/Lut3DNode.js +57 -0
- package/src/nodes/display/MotionBlur.js +25 -0
- package/{examples/jsm → src}/nodes/display/NormalMapNode.js +14 -14
- package/src/nodes/display/ParallaxBarrierPassNode.js +58 -0
- package/src/nodes/display/PassNode.js +378 -0
- package/src/nodes/display/PixelationPassNode.js +213 -0
- package/{examples/jsm → src}/nodes/display/PosterizeNode.js +8 -7
- package/src/nodes/display/RGBShiftNode.js +53 -0
- package/src/nodes/display/RenderOutputNode.js +60 -0
- package/src/nodes/display/SSAAPassNode.js +287 -0
- package/src/nodes/display/ScreenNode.js +181 -0
- package/src/nodes/display/Sepia.js +17 -0
- package/src/nodes/display/SobelOperatorNode.js +126 -0
- package/src/nodes/display/StereoCompositePassNode.js +110 -0
- package/src/nodes/display/StereoPassNode.js +83 -0
- package/src/nodes/display/ToneMappingFunctions.js +190 -0
- package/src/nodes/display/ToneMappingNode.js +67 -0
- package/src/nodes/display/ToonOutlinePassNode.js +111 -0
- package/src/nodes/display/TransitionNode.js +80 -0
- package/src/nodes/display/ViewportDepthNode.js +125 -0
- package/src/nodes/display/ViewportDepthTextureNode.js +33 -0
- package/src/nodes/display/ViewportSharedTextureNode.js +39 -0
- package/{examples/jsm → src}/nodes/display/ViewportTextureNode.js +20 -14
- package/src/nodes/fog/FogExp2Node.js +35 -0
- package/src/nodes/fog/FogNode.js +50 -0
- package/src/nodes/fog/FogRangeNode.js +36 -0
- package/src/nodes/functions/BSDF/BRDF_GGX.js +59 -0
- package/{examples/jsm → src}/nodes/functions/BSDF/BRDF_Lambert.js +2 -2
- package/{examples/jsm → src}/nodes/functions/BSDF/BRDF_Sheen.js +6 -6
- package/{examples/jsm → src}/nodes/functions/BSDF/DFGApprox.js +2 -2
- package/{examples/jsm → src}/nodes/functions/BSDF/D_GGX.js +2 -2
- package/src/nodes/functions/BSDF/D_GGX_Anisotropic.js +28 -0
- package/{examples/jsm → src}/nodes/functions/BSDF/EnvironmentBRDF.js +2 -2
- package/{examples/jsm → src}/nodes/functions/BSDF/F_Schlick.js +2 -2
- package/src/nodes/functions/BSDF/LTC.js +131 -0
- package/{examples/jsm → src}/nodes/functions/BSDF/Schlick_to_F0.js +2 -2
- package/{examples/jsm → src}/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +2 -4
- package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.js +29 -0
- package/src/nodes/functions/BasicLightingModel.js +78 -0
- package/{examples/jsm → src}/nodes/functions/PhongLightingModel.js +11 -9
- package/src/nodes/functions/PhysicalLightingModel.js +633 -0
- package/src/nodes/functions/ShadowMaskModel.js +31 -0
- package/src/nodes/functions/ToonLightingModel.js +51 -0
- package/src/nodes/functions/material/getGeometryRoughness.js +13 -0
- package/{examples/jsm → src}/nodes/functions/material/getRoughness.js +2 -2
- package/src/nodes/functions/material/getShIrradianceAt.js +28 -0
- package/{examples/jsm → src}/nodes/geometry/RangeNode.js +28 -11
- package/src/nodes/gpgpu/AtomicFunctionNode.js +99 -0
- package/src/nodes/gpgpu/BarrierNode.js +40 -0
- package/src/nodes/gpgpu/ComputeBuiltinNode.js +98 -0
- package/{examples/jsm → src}/nodes/gpgpu/ComputeNode.js +10 -6
- package/src/nodes/gpgpu/WorkgroupInfoNode.js +100 -0
- package/src/nodes/lighting/AONode.js +27 -0
- package/{examples/jsm → src}/nodes/lighting/AmbientLightNode.js +6 -8
- package/src/nodes/lighting/AnalyticLightNode.js +522 -0
- package/src/nodes/lighting/BasicEnvironmentNode.js +30 -0
- package/src/nodes/lighting/BasicLightMapNode.js +32 -0
- package/{examples/jsm → src}/nodes/lighting/DirectionalLightNode.js +7 -9
- package/src/nodes/lighting/EnvironmentNode.js +138 -0
- package/{examples/jsm → src}/nodes/lighting/HemisphereLightNode.js +12 -11
- package/{examples/jsm → src}/nodes/lighting/IESSpotLightNode.js +7 -9
- package/src/nodes/lighting/IrradianceNode.js +27 -0
- package/src/nodes/lighting/LightProbeNode.js +53 -0
- package/{examples/jsm → src}/nodes/lighting/LightUtils.js +3 -3
- package/src/nodes/lighting/LightingContextNode.js +67 -0
- package/{examples/jsm → src}/nodes/lighting/LightingNode.js +9 -3
- package/src/nodes/lighting/LightsNode.js +250 -0
- package/{examples/jsm → src}/nodes/lighting/PointLightNode.js +12 -13
- package/src/nodes/lighting/RectAreaLightNode.js +97 -0
- package/{examples/jsm → src}/nodes/lighting/SpotLightNode.js +14 -16
- package/{examples/jsm → src}/nodes/materialx/MaterialXNodes.js +2 -2
- package/src/nodes/materialx/lib/mx_hsv.js +127 -0
- package/{examples/jsm → src}/nodes/materialx/lib/mx_noise.js +500 -603
- package/{examples/jsm → src}/nodes/materialx/lib/mx_transform_color.js +3 -9
- package/{examples/jsm/nodes/math/CondNode.js → src/nodes/math/ConditionalNode.js} +48 -13
- package/src/nodes/math/Hash.js +13 -0
- package/src/nodes/math/MathNode.js +407 -0
- package/{examples/jsm → src}/nodes/math/MathUtils.js +0 -7
- package/src/nodes/math/OperatorNode.js +319 -0
- package/{examples/jsm → src}/nodes/math/TriNoise3D.js +19 -29
- package/{examples/jsm → src}/nodes/parsers/GLSLNodeFunction.js +7 -7
- package/src/nodes/pmrem/PMREMNode.js +240 -0
- package/src/nodes/pmrem/PMREMUtils.js +288 -0
- package/src/nodes/procedural/Checker.js +14 -0
- package/src/nodes/tsl/TSLBase.js +30 -0
- package/{examples/jsm/nodes/shadernode/ShaderNode.js → src/nodes/tsl/TSLCore.js} +122 -96
- package/{examples/jsm → src}/nodes/utils/ArrayElementNode.js +9 -5
- package/{examples/jsm → src}/nodes/utils/ConvertNode.js +7 -3
- package/src/nodes/utils/CubeMapNode.js +160 -0
- package/src/nodes/utils/Discard.js +8 -0
- package/src/nodes/utils/EquirectUVNode.js +36 -0
- package/src/nodes/utils/FlipNode.js +68 -0
- package/{examples/jsm → src}/nodes/utils/FunctionOverloadingNode.js +11 -5
- package/{examples/jsm → src}/nodes/utils/JoinNode.js +6 -3
- package/{examples/jsm → src}/nodes/utils/LoopNode.js +23 -12
- package/src/nodes/utils/MatcapUVNode.js +33 -0
- package/{examples/jsm → src}/nodes/utils/MaxMipLevelNode.js +16 -7
- package/{examples/jsm → src}/nodes/utils/OscNode.js +12 -8
- package/src/nodes/utils/Packing.js +4 -0
- package/src/nodes/utils/RTTNode.js +133 -0
- package/{examples/jsm → src}/nodes/utils/ReflectorNode.js +21 -5
- package/{examples/jsm → src}/nodes/utils/RemapNode.js +12 -8
- package/{examples/jsm → src}/nodes/utils/RotateNode.js +8 -13
- package/{examples/jsm → src}/nodes/utils/SetNode.js +7 -4
- package/{examples/jsm → src}/nodes/utils/SplitNode.js +7 -3
- package/{examples/jsm → src}/nodes/utils/SpriteSheetUVNode.js +10 -6
- package/src/nodes/utils/SpriteUtils.js +47 -0
- package/{examples/jsm → src}/nodes/utils/StorageArrayElementNode.js +11 -12
- package/{examples/jsm → src}/nodes/utils/TimerNode.js +8 -5
- package/{examples/jsm → src}/nodes/utils/TriplanarTexturesNode.js +11 -9
- package/src/nodes/utils/UVUtils.js +19 -0
- package/src/nodes/utils/ViewportUtils.js +14 -0
- package/src/objects/BatchedMesh.js +302 -144
- package/src/objects/InstancedMesh.js +11 -1
- package/src/objects/LOD.js +21 -0
- package/src/objects/Line.js +67 -43
- package/src/objects/Mesh.js +7 -23
- package/src/objects/Points.js +2 -0
- package/src/renderers/WebGLRenderer.js +473 -224
- package/{examples/jsm → src}/renderers/common/Animation.js +3 -0
- package/{examples/jsm → src}/renderers/common/Attributes.js +4 -1
- package/{examples/jsm → src}/renderers/common/Backend.js +30 -27
- package/{examples/jsm → src}/renderers/common/Background.js +18 -10
- package/src/renderers/common/BindGroup.js +18 -0
- package/src/renderers/common/Bindings.js +203 -0
- package/src/renderers/common/BundleGroup.js +26 -0
- package/src/renderers/common/ChainMap.js +59 -0
- package/{examples/jsm → src}/renderers/common/ClippingContext.js +24 -12
- package/{examples/jsm → src}/renderers/common/Color4.js +1 -1
- package/{examples/jsm → src}/renderers/common/CubeRenderTarget.js +16 -4
- package/{examples/jsm → src}/renderers/common/Geometries.js +37 -5
- package/{examples/jsm → src}/renderers/common/Info.js +35 -15
- package/{examples/jsm → src}/renderers/common/Pipelines.js +2 -2
- package/src/renderers/common/PostProcessing.js +90 -0
- package/src/renderers/common/QuadMesh.js +55 -0
- package/src/renderers/common/RenderBundle.js +18 -0
- package/src/renderers/common/RenderBundles.js +38 -0
- package/{examples/jsm → src}/renderers/common/RenderContext.js +25 -2
- package/{examples/jsm → src}/renderers/common/RenderContexts.js +1 -1
- package/{examples/jsm → src}/renderers/common/RenderList.js +11 -2
- package/src/renderers/common/RenderObject.js +413 -0
- package/{examples/jsm → src}/renderers/common/RenderObjects.js +9 -2
- package/{examples/jsm → src}/renderers/common/Renderer.js +431 -83
- package/{examples/jsm → src}/renderers/common/SampledTexture.js +14 -5
- package/{examples/jsm → src}/renderers/common/StorageBufferAttribute.js +1 -1
- package/{examples/jsm → src}/renderers/common/StorageInstancedBufferAttribute.js +1 -1
- package/{examples/jsm → src}/renderers/common/StorageTexture.js +2 -1
- package/{examples/jsm → src}/renderers/common/Textures.js +15 -15
- package/{examples/jsm → src}/renderers/common/Uniform.js +10 -5
- package/{examples/jsm → src}/renderers/common/UniformsGroup.js +69 -31
- package/src/renderers/common/extras/PMREMGenerator.js +771 -0
- package/src/renderers/common/nodes/NodeBuilderState.js +58 -0
- package/src/renderers/common/nodes/NodeLibrary.js +118 -0
- package/src/renderers/common/nodes/NodeSampledTexture.js +64 -0
- package/{examples/jsm → src}/renderers/common/nodes/NodeSampler.js +8 -1
- package/{examples/jsm → src}/renderers/common/nodes/NodeStorageBuffer.js +5 -1
- package/{examples/jsm → src}/renderers/common/nodes/NodeUniform.js +3 -3
- package/{examples/jsm → src}/renderers/common/nodes/NodeUniformBuffer.js +2 -1
- package/{examples/jsm → src}/renderers/common/nodes/NodeUniformsGroup.js +2 -8
- package/{examples/jsm → src}/renderers/common/nodes/Nodes.js +106 -68
- package/src/renderers/shaders/ShaderChunk/batching_pars_vertex.glsl.js +31 -1
- package/src/renderers/shaders/ShaderChunk/batching_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/color_pars_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/color_vertex.glsl.js +9 -1
- package/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js +0 -9
- package/src/renderers/shaders/ShaderChunk/common.glsl.js +0 -10
- package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +3 -3
- package/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js +8 -22
- package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +6 -0
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +1 -0
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl.js +2 -10
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl.js +2 -16
- package/src/renderers/shaders/ShaderChunk/morphcolor_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/morphinstance_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/morphnormal_vertex.glsl.js +3 -14
- package/src/renderers/shaders/ShaderChunk/morphtarget_pars_vertex.glsl.js +10 -31
- package/src/renderers/shaders/ShaderChunk/morphtarget_vertex.glsl.js +3 -23
- package/src/renderers/shaders/ShaderChunk/packing.glsl.js +45 -13
- package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +38 -25
- package/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl.js +3 -0
- package/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js +3 -3
- package/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +19 -11
- package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +47 -13
- package/src/renderers/shaders/ShaderChunk.js +0 -2
- package/src/renderers/shaders/ShaderLib/depth.glsl.js +8 -0
- package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +4 -0
- package/src/renderers/shaders/ShaderLib/sprite.glsl.js +2 -4
- package/src/renderers/shaders/ShaderLib.js +2 -1
- package/src/renderers/shaders/UniformsLib.js +3 -0
- package/src/renderers/shaders/UniformsUtils.js +10 -1
- package/src/renderers/webgl/WebGLAttributes.js +42 -38
- package/src/renderers/webgl/WebGLBackground.js +24 -3
- package/src/renderers/webgl/WebGLBindingStates.js +14 -51
- package/src/renderers/webgl/WebGLBufferRenderer.js +23 -22
- package/src/renderers/webgl/WebGLCapabilities.js +44 -13
- package/src/renderers/webgl/WebGLCubeUVMaps.js +10 -6
- package/src/renderers/webgl/WebGLExtensions.js +7 -20
- package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +23 -21
- package/src/renderers/webgl/WebGLLights.js +21 -44
- package/src/renderers/webgl/WebGLMaterials.js +9 -8
- package/src/renderers/webgl/WebGLMorphtargets.js +78 -217
- package/src/renderers/webgl/WebGLProgram.js +46 -78
- package/src/renderers/webgl/WebGLPrograms.js +37 -40
- package/src/renderers/webgl/WebGLProperties.js +7 -0
- package/src/renderers/webgl/WebGLRenderStates.js +15 -9
- package/src/renderers/webgl/WebGLShadowMap.js +25 -25
- package/src/renderers/webgl/WebGLState.js +35 -58
- package/src/renderers/webgl/WebGLTextures.js +313 -358
- package/src/renderers/webgl/WebGLUniforms.js +12 -2
- package/src/renderers/webgl/WebGLUniformsGroups.js +8 -8
- package/src/renderers/webgl/WebGLUtils.js +9 -78
- package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/WebGLBackend.js +389 -152
- package/src/renderers/webgl-fallback/WebGLBufferRenderer.js +145 -0
- package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/nodes/GLSLNodeBuilder.js +245 -44
- package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLAttributeUtils.js +7 -1
- package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLConstants.js +2 -0
- package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLExtensions.js +2 -0
- package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLState.js +21 -3
- package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLTextureUtils.js +271 -43
- package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLUtils.js +6 -23
- package/{examples/jsm → src}/renderers/webgpu/WebGPUBackend.js +318 -141
- package/src/renderers/webgpu/WebGPURenderer.Nodes.js +42 -0
- package/{examples/jsm → src}/renderers/webgpu/WebGPURenderer.js +10 -7
- package/src/renderers/webgpu/nodes/BasicNodeLibrary.js +59 -0
- package/src/renderers/webgpu/nodes/StandardNodeLibrary.js +105 -0
- package/{examples/jsm → src}/renderers/webgpu/nodes/WGSLNodeBuilder.js +424 -95
- package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +159 -0
- package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUAttributeUtils.js +37 -18
- package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUBindingUtils.js +86 -32
- package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUConstants.js +10 -1
- package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUPipelineUtils.js +68 -27
- package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUTexturePassUtils.js +62 -5
- package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUTextureUtils.js +235 -68
- package/{examples/jsm → src}/renderers/webgpu/utils/WebGPUUtils.js +43 -5
- package/src/renderers/webxr/WebXRDepthSensing.js +11 -6
- package/src/renderers/webxr/WebXRManager.js +53 -38
- package/src/scenes/Scene.js +7 -1
- package/src/textures/CompressedArrayTexture.js +14 -0
- package/src/textures/DataArrayTexture.js +14 -0
- package/src/textures/DepthTexture.js +1 -3
- package/src/textures/Texture.js +12 -2
- package/src/utils.js +62 -1
- package/examples/jsm/geometries/SDFGeometryGenerator.js +0 -144
- package/examples/jsm/loaders/LogLuvLoader.js +0 -606
- package/examples/jsm/loaders/TiltLoader.js +0 -520
- package/examples/jsm/nodes/Nodes.js +0 -195
- package/examples/jsm/nodes/accessors/AccessorsUtils.js +0 -10
- package/examples/jsm/nodes/accessors/BitangentNode.js +0 -89
- package/examples/jsm/nodes/accessors/CameraNode.js +0 -119
- package/examples/jsm/nodes/accessors/CubeTextureNode.js +0 -61
- package/examples/jsm/nodes/accessors/InstanceNode.js +0 -71
- package/examples/jsm/nodes/accessors/InstancedPointsMaterialNode.js +0 -21
- package/examples/jsm/nodes/accessors/MaterialNode.js +0 -314
- package/examples/jsm/nodes/accessors/ModelNode.js +0 -33
- package/examples/jsm/nodes/accessors/ModelViewProjectionNode.js +0 -39
- package/examples/jsm/nodes/accessors/NormalNode.js +0 -96
- package/examples/jsm/nodes/accessors/PointUVNode.js +0 -26
- package/examples/jsm/nodes/accessors/PositionNode.js +0 -104
- package/examples/jsm/nodes/accessors/ReflectVectorNode.js +0 -35
- package/examples/jsm/nodes/accessors/SkinningNode.js +0 -124
- package/examples/jsm/nodes/accessors/StorageBufferNode.js +0 -72
- package/examples/jsm/nodes/accessors/TangentNode.js +0 -109
- package/examples/jsm/nodes/accessors/TextureSizeNode.js +0 -35
- package/examples/jsm/nodes/accessors/UVNode.js +0 -47
- package/examples/jsm/nodes/core/CacheNode.js +0 -49
- package/examples/jsm/nodes/core/IndexNode.js +0 -66
- package/examples/jsm/nodes/core/NodeCache.js +0 -26
- package/examples/jsm/nodes/core/NodeKeywords.js +0 -80
- package/examples/jsm/nodes/core/PropertyNode.js +0 -72
- package/examples/jsm/nodes/core/UniformGroupNode.js +0 -36
- package/examples/jsm/nodes/core/VaryingNode.js +0 -65
- package/examples/jsm/nodes/display/BlendModeNode.js +0 -128
- package/examples/jsm/nodes/display/ColorAdjustmentNode.js +0 -99
- package/examples/jsm/nodes/display/ColorSpaceNode.js +0 -108
- package/examples/jsm/nodes/display/FrontFacingNode.js +0 -27
- package/examples/jsm/nodes/display/PassNode.js +0 -183
- package/examples/jsm/nodes/display/ToneMappingNode.js +0 -184
- package/examples/jsm/nodes/display/ViewportDepthNode.js +0 -97
- package/examples/jsm/nodes/display/ViewportDepthTextureNode.js +0 -31
- package/examples/jsm/nodes/display/ViewportNode.js +0 -134
- package/examples/jsm/nodes/display/ViewportSharedTextureNode.js +0 -31
- package/examples/jsm/nodes/fog/FogExp2Node.js +0 -35
- package/examples/jsm/nodes/fog/FogNode.js +0 -38
- package/examples/jsm/nodes/fog/FogRangeNode.js +0 -34
- package/examples/jsm/nodes/functions/BSDF/BRDF_GGX.js +0 -40
- package/examples/jsm/nodes/functions/PhysicalLightingModel.js +0 -393
- package/examples/jsm/nodes/functions/material/getGeometryRoughness.js +0 -13
- package/examples/jsm/nodes/lighting/AONode.js +0 -27
- package/examples/jsm/nodes/lighting/AnalyticLightNode.js +0 -241
- package/examples/jsm/nodes/lighting/EnvironmentNode.js +0 -181
- package/examples/jsm/nodes/lighting/LightNode.js +0 -57
- package/examples/jsm/nodes/lighting/LightingContextNode.js +0 -66
- package/examples/jsm/nodes/lighting/LightsNode.js +0 -188
- package/examples/jsm/nodes/materials/InstancedPointsNodeMaterial.js +0 -162
- package/examples/jsm/nodes/materials/LineBasicNodeMaterial.js +0 -28
- package/examples/jsm/nodes/materials/MeshBasicNodeMaterial.js +0 -28
- package/examples/jsm/nodes/materials/MeshLambertNodeMaterial.js +0 -34
- package/examples/jsm/nodes/materials/MeshNormalNodeMaterial.js +0 -40
- package/examples/jsm/nodes/materials/MeshPhongNodeMaterial.js +0 -65
- package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +0 -155
- package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +0 -80
- package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +0 -90
- package/examples/jsm/nodes/materialx/lib/mx_hsv.js +0 -130
- package/examples/jsm/nodes/math/HashNode.js +0 -34
- package/examples/jsm/nodes/math/MathNode.js +0 -391
- package/examples/jsm/nodes/math/OperatorNode.js +0 -274
- package/examples/jsm/nodes/procedural/CheckerNode.js +0 -42
- package/examples/jsm/nodes/utils/DiscardNode.js +0 -27
- package/examples/jsm/nodes/utils/EquirectUVNode.js +0 -33
- package/examples/jsm/nodes/utils/MatcapUVNode.js +0 -30
- package/examples/jsm/nodes/utils/PackingNode.js +0 -55
- package/examples/jsm/nodes/utils/RotateUVNode.js +0 -35
- package/examples/jsm/nodes/utils/SpecularMIPLevelNode.js +0 -37
- package/examples/jsm/objects/QuadMesh.js +0 -66
- package/examples/jsm/renderers/common/Bindings.js +0 -173
- package/examples/jsm/renderers/common/ChainMap.js +0 -89
- package/examples/jsm/renderers/common/PostProcessing.js +0 -25
- package/examples/jsm/renderers/common/RenderObject.js +0 -221
- package/examples/jsm/renderers/common/nodes/NodeBuilderState.js +0 -44
- package/examples/jsm/renderers/common/nodes/NodeSampledTexture.js +0 -49
- package/examples/jsm/renderers/webgpu/nodes/WGSLNodeFunction.js +0 -104
- package/examples/jsm/utils/GPUStatsPanel.js +0 -128
- package/examples/jsm/utils/PackedPhongMaterial.js +0 -178
- package/src/renderers/WebGL1Renderer.js +0 -7
- package/src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl.js +0 -10
- /package/{examples/jsm → src}/nodes/core/NodeAttribute.js +0 -0
- /package/{examples/jsm → src}/nodes/core/NodeCode.js +0 -0
- /package/{examples/jsm → src}/nodes/core/NodeFunctionInput.js +0 -0
- /package/{examples/jsm → src}/nodes/core/NodeParser.js +0 -0
- /package/{examples/jsm → src}/nodes/core/NodeVar.js +0 -0
- /package/{examples/jsm → src}/nodes/core/NodeVarying.js +0 -0
- /package/{examples/jsm → src}/nodes/core/UniformGroup.js +0 -0
- /package/{examples/jsm → src}/nodes/core/constants.js +0 -0
- /package/{examples/jsm → src}/nodes/materialx/DISCLAIMER.md +0 -0
- /package/{examples/jsm → src}/nodes/parsers/GLSLNodeParser.js +0 -0
- /package/{examples/jsm → src}/renderers/common/Binding.js +0 -0
- /package/{examples/jsm → src}/renderers/common/Buffer.js +0 -0
- /package/{examples/jsm → src}/renderers/common/BufferUtils.js +0 -0
- /package/{examples/jsm → src}/renderers/common/ComputePipeline.js +0 -0
- /package/{examples/jsm → src}/renderers/common/Constants.js +0 -0
- /package/{examples/jsm → src}/renderers/common/DataMap.js +0 -0
- /package/{examples/jsm → src}/renderers/common/Pipeline.js +0 -0
- /package/{examples/jsm → src}/renderers/common/ProgrammableStage.js +0 -0
- /package/{examples/jsm → src}/renderers/common/RenderLists.js +0 -0
- /package/{examples/jsm → src}/renderers/common/RenderPipeline.js +0 -0
- /package/{examples/jsm → src}/renderers/common/Sampler.js +0 -0
- /package/{examples/jsm → src}/renderers/common/StorageBuffer.js +0 -0
- /package/{examples/jsm → src}/renderers/common/UniformBuffer.js +0 -0
- /package/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/utils/WebGLCapabilities.js +0 -0
- /package/{examples/jsm → src}/renderers/webgpu/nodes/WGSLNodeParser.js +0 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
fflate - fast JavaScript compression/decompression
|
|
3
3
|
<https://101arrowz.github.io/fflate>
|
|
4
4
|
Licensed under MIT. https://github.com/101arrowz/fflate/blob/master/LICENSE
|
|
5
|
-
version 0.
|
|
5
|
+
version 0.8.2
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
// DEFLATE is a complex format; to read this code, you should probably check the RFC first:
|
|
@@ -15,31 +15,30 @@ version 0.6.9
|
|
|
15
15
|
// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint
|
|
16
16
|
// is better for memory in most engines (I *think*).
|
|
17
17
|
var ch2 = {};
|
|
18
|
-
var durl = function (c) { return URL.createObjectURL(new Blob([c], { type: 'text/javascript' })); };
|
|
19
|
-
var cwk = function (u) { return new Worker(u); };
|
|
20
|
-
try {
|
|
21
|
-
URL.revokeObjectURL(durl(''));
|
|
22
|
-
}
|
|
23
|
-
catch (e) {
|
|
24
|
-
// We're in Deno or a very old browser
|
|
25
|
-
durl = function (c) { return 'data:application/javascript;charset=UTF-8,' + encodeURI(c); };
|
|
26
|
-
// If Deno, this is necessary; if not, this changes nothing
|
|
27
|
-
cwk = function (u) { return new Worker(u, { type: 'module' }); };
|
|
28
|
-
}
|
|
29
18
|
var wk = (function (c, id, msg, transfer, cb) {
|
|
30
|
-
var w =
|
|
31
|
-
|
|
32
|
-
|
|
19
|
+
var w = new Worker(ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([
|
|
20
|
+
c + ';addEventListener("error",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'
|
|
21
|
+
], { type: 'text/javascript' }))));
|
|
22
|
+
w.onmessage = function (e) {
|
|
23
|
+
var d = e.data, ed = d.$e$;
|
|
24
|
+
if (ed) {
|
|
25
|
+
var err = new Error(ed[0]);
|
|
26
|
+
err['code'] = ed[1];
|
|
27
|
+
err.stack = ed[2];
|
|
28
|
+
cb(err, null);
|
|
29
|
+
}
|
|
30
|
+
else
|
|
31
|
+
cb(null, d);
|
|
32
|
+
};
|
|
33
33
|
w.postMessage(msg, transfer);
|
|
34
34
|
return w;
|
|
35
35
|
});
|
|
36
36
|
|
|
37
37
|
// aliases for shorter compressed code (most minifers don't do this)
|
|
38
|
-
var u8 = Uint8Array, u16 = Uint16Array,
|
|
38
|
+
var u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array;
|
|
39
39
|
// fixed length extra bits
|
|
40
40
|
var fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);
|
|
41
41
|
// fixed distance extra bits
|
|
42
|
-
// see fleb note
|
|
43
42
|
var fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);
|
|
44
43
|
// code length index map
|
|
45
44
|
var clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);
|
|
@@ -50,26 +49,26 @@ var freb = function (eb, start) {
|
|
|
50
49
|
b[i] = start += 1 << eb[i - 1];
|
|
51
50
|
}
|
|
52
51
|
// numbers here are at max 18 bits
|
|
53
|
-
var r = new
|
|
52
|
+
var r = new i32(b[30]);
|
|
54
53
|
for (var i = 1; i < 30; ++i) {
|
|
55
54
|
for (var j = b[i]; j < b[i + 1]; ++j) {
|
|
56
55
|
r[j] = ((j - b[i]) << 5) | i;
|
|
57
56
|
}
|
|
58
57
|
}
|
|
59
|
-
return
|
|
58
|
+
return { b: b, r: r };
|
|
60
59
|
};
|
|
61
|
-
var _a = freb(fleb, 2), fl = _a
|
|
60
|
+
var _a = freb(fleb, 2), fl = _a.b, revfl = _a.r;
|
|
62
61
|
// we can ignore the fact that the other numbers are wrong; they never happen anyway
|
|
63
62
|
fl[28] = 258, revfl[258] = 28;
|
|
64
|
-
var _b = freb(fdeb, 0), fd = _b
|
|
63
|
+
var _b = freb(fdeb, 0), fd = _b.b, revfd = _b.r;
|
|
65
64
|
// map of value to reverse (assuming 16 bits)
|
|
66
65
|
var rev = new u16(32768);
|
|
67
66
|
for (var i = 0; i < 32768; ++i) {
|
|
68
67
|
// reverse table algorithm from SO
|
|
69
|
-
var x = ((i & 0xAAAA)
|
|
70
|
-
x = ((x & 0xCCCC)
|
|
71
|
-
x = ((x & 0xF0F0)
|
|
72
|
-
rev[i] = (((x & 0xFF00)
|
|
68
|
+
var x = ((i & 0xAAAA) >> 1) | ((i & 0x5555) << 1);
|
|
69
|
+
x = ((x & 0xCCCC) >> 2) | ((x & 0x3333) << 2);
|
|
70
|
+
x = ((x & 0xF0F0) >> 4) | ((x & 0x0F0F) << 4);
|
|
71
|
+
rev[i] = (((x & 0xFF00) >> 8) | ((x & 0x00FF) << 8)) >> 1;
|
|
73
72
|
}
|
|
74
73
|
// create huffman tree from u8 "map": index -> code length for code index
|
|
75
74
|
// mb (max bits) must be at most 15
|
|
@@ -81,11 +80,13 @@ var hMap = (function (cd, mb, r) {
|
|
|
81
80
|
// u16 "map": index -> # of codes with bit length = index
|
|
82
81
|
var l = new u16(mb);
|
|
83
82
|
// length of cd must be 288 (total # of codes)
|
|
84
|
-
for (; i < s; ++i)
|
|
85
|
-
|
|
83
|
+
for (; i < s; ++i) {
|
|
84
|
+
if (cd[i])
|
|
85
|
+
++l[cd[i] - 1];
|
|
86
|
+
}
|
|
86
87
|
// u16 "map": index -> minimum code for bit length = index
|
|
87
88
|
var le = new u16(mb);
|
|
88
|
-
for (i =
|
|
89
|
+
for (i = 1; i < mb; ++i) {
|
|
89
90
|
le[i] = (le[i - 1] + l[i - 1]) << 1;
|
|
90
91
|
}
|
|
91
92
|
var co;
|
|
@@ -106,7 +107,7 @@ var hMap = (function (cd, mb, r) {
|
|
|
106
107
|
// m is end value
|
|
107
108
|
for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {
|
|
108
109
|
// every 16 bit value starting with the code yields the same result
|
|
109
|
-
co[rev[v]
|
|
110
|
+
co[rev[v] >> rvb] = sv;
|
|
110
111
|
}
|
|
111
112
|
}
|
|
112
113
|
}
|
|
@@ -115,7 +116,7 @@ var hMap = (function (cd, mb, r) {
|
|
|
115
116
|
co = new u16(s);
|
|
116
117
|
for (i = 0; i < s; ++i) {
|
|
117
118
|
if (cd[i]) {
|
|
118
|
-
co[i] = rev[le[cd[i] - 1]++]
|
|
119
|
+
co[i] = rev[le[cd[i] - 1]++] >> (15 - cd[i]);
|
|
119
120
|
}
|
|
120
121
|
}
|
|
121
122
|
}
|
|
@@ -159,7 +160,7 @@ var bits16 = function (d, p) {
|
|
|
159
160
|
return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7));
|
|
160
161
|
};
|
|
161
162
|
// get end of byte
|
|
162
|
-
var shft = function (p) { return ((p / 8) | 0
|
|
163
|
+
var shft = function (p) { return ((p + 7) / 8) | 0; };
|
|
163
164
|
// typed array slice - allows garbage collector to free original reference,
|
|
164
165
|
// while being more compatible than .slice
|
|
165
166
|
var slc = function (v, s, e) {
|
|
@@ -168,24 +169,69 @@ var slc = function (v, s, e) {
|
|
|
168
169
|
if (e == null || e > v.length)
|
|
169
170
|
e = v.length;
|
|
170
171
|
// can't use .constructor in case user-supplied
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
172
|
+
return new u8(v.subarray(s, e));
|
|
173
|
+
};
|
|
174
|
+
/**
|
|
175
|
+
* Codes for errors generated within this library
|
|
176
|
+
*/
|
|
177
|
+
export var FlateErrorCode = {
|
|
178
|
+
UnexpectedEOF: 0,
|
|
179
|
+
InvalidBlockType: 1,
|
|
180
|
+
InvalidLengthLiteral: 2,
|
|
181
|
+
InvalidDistance: 3,
|
|
182
|
+
StreamFinished: 4,
|
|
183
|
+
NoStreamHandler: 5,
|
|
184
|
+
InvalidHeader: 6,
|
|
185
|
+
NoCallback: 7,
|
|
186
|
+
InvalidUTF8: 8,
|
|
187
|
+
ExtraFieldTooLong: 9,
|
|
188
|
+
InvalidDate: 10,
|
|
189
|
+
FilenameTooLong: 11,
|
|
190
|
+
StreamFinishing: 12,
|
|
191
|
+
InvalidZipData: 13,
|
|
192
|
+
UnknownCompressionMethod: 14
|
|
193
|
+
};
|
|
194
|
+
// error codes
|
|
195
|
+
var ec = [
|
|
196
|
+
'unexpected EOF',
|
|
197
|
+
'invalid block type',
|
|
198
|
+
'invalid length/literal',
|
|
199
|
+
'invalid distance',
|
|
200
|
+
'stream finished',
|
|
201
|
+
'no stream handler',
|
|
202
|
+
,
|
|
203
|
+
'no callback',
|
|
204
|
+
'invalid UTF-8 data',
|
|
205
|
+
'extra field too long',
|
|
206
|
+
'date not in range 1980-2099',
|
|
207
|
+
'filename too long',
|
|
208
|
+
'stream finishing',
|
|
209
|
+
'invalid zip data'
|
|
210
|
+
// determined by unknown compression method
|
|
211
|
+
];
|
|
212
|
+
;
|
|
213
|
+
var err = function (ind, msg, nt) {
|
|
214
|
+
var e = new Error(msg || ec[ind]);
|
|
215
|
+
e.code = ind;
|
|
216
|
+
if (Error.captureStackTrace)
|
|
217
|
+
Error.captureStackTrace(e, err);
|
|
218
|
+
if (!nt)
|
|
219
|
+
throw e;
|
|
220
|
+
return e;
|
|
174
221
|
};
|
|
175
222
|
// expands raw DEFLATE data
|
|
176
|
-
var inflt = function (dat, buf,
|
|
177
|
-
// source length
|
|
178
|
-
var sl = dat.length;
|
|
179
|
-
if (!sl ||
|
|
223
|
+
var inflt = function (dat, st, buf, dict) {
|
|
224
|
+
// source length dict length
|
|
225
|
+
var sl = dat.length, dl = dict ? dict.length : 0;
|
|
226
|
+
if (!sl || st.f && !st.l)
|
|
180
227
|
return buf || new u8(0);
|
|
228
|
+
var noBuf = !buf;
|
|
181
229
|
// have to estimate size
|
|
182
|
-
var
|
|
230
|
+
var resize = noBuf || st.i != 2;
|
|
183
231
|
// no state
|
|
184
|
-
var noSt =
|
|
185
|
-
if (!st)
|
|
186
|
-
st = {};
|
|
232
|
+
var noSt = st.i;
|
|
187
233
|
// Assumes roughly 33% compression ratio average
|
|
188
|
-
if (
|
|
234
|
+
if (noBuf)
|
|
189
235
|
buf = new u8(sl * 3);
|
|
190
236
|
// ensure buffer can fit at least l elements
|
|
191
237
|
var cbuf = function (l) {
|
|
@@ -205,7 +251,7 @@ var inflt = function (dat, buf, st) {
|
|
|
205
251
|
do {
|
|
206
252
|
if (!lm) {
|
|
207
253
|
// BFINAL - this is only 1 when last chunk is next
|
|
208
|
-
|
|
254
|
+
final = bits(dat, pos, 1);
|
|
209
255
|
// type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman
|
|
210
256
|
var type = bits(dat, pos + 1, 3);
|
|
211
257
|
pos += 3;
|
|
@@ -214,16 +260,16 @@ var inflt = function (dat, buf, st) {
|
|
|
214
260
|
var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;
|
|
215
261
|
if (t > sl) {
|
|
216
262
|
if (noSt)
|
|
217
|
-
|
|
263
|
+
err(0);
|
|
218
264
|
break;
|
|
219
265
|
}
|
|
220
266
|
// ensure size
|
|
221
|
-
if (
|
|
267
|
+
if (resize)
|
|
222
268
|
cbuf(bt + l);
|
|
223
269
|
// Copy over uncompressed data
|
|
224
270
|
buf.set(dat.subarray(s, t), bt);
|
|
225
271
|
// Get new bitpos, update byte count
|
|
226
|
-
st.b = bt += l, st.p = pos = t * 8;
|
|
272
|
+
st.b = bt += l, st.p = pos = t * 8, st.f = final;
|
|
227
273
|
continue;
|
|
228
274
|
}
|
|
229
275
|
else if (type == 1)
|
|
@@ -251,7 +297,7 @@ var inflt = function (dat, buf, st) {
|
|
|
251
297
|
// bits read
|
|
252
298
|
pos += r & 15;
|
|
253
299
|
// symbol
|
|
254
|
-
var s = r
|
|
300
|
+
var s = r >> 4;
|
|
255
301
|
// code length to copy
|
|
256
302
|
if (s < 16) {
|
|
257
303
|
ldt[i++] = s;
|
|
@@ -279,30 +325,30 @@ var inflt = function (dat, buf, st) {
|
|
|
279
325
|
dm = hMap(dt, dbt, 1);
|
|
280
326
|
}
|
|
281
327
|
else
|
|
282
|
-
|
|
328
|
+
err(1);
|
|
283
329
|
if (pos > tbts) {
|
|
284
330
|
if (noSt)
|
|
285
|
-
|
|
331
|
+
err(0);
|
|
286
332
|
break;
|
|
287
333
|
}
|
|
288
334
|
}
|
|
289
335
|
// Make sure the buffer can hold this + the largest possible addition
|
|
290
|
-
// Maximum chunk size (practically, theoretically infinite) is 2^17
|
|
291
|
-
if (
|
|
336
|
+
// Maximum chunk size (practically, theoretically infinite) is 2^17
|
|
337
|
+
if (resize)
|
|
292
338
|
cbuf(bt + 131072);
|
|
293
339
|
var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;
|
|
294
340
|
var lpos = pos;
|
|
295
341
|
for (;; lpos = pos) {
|
|
296
342
|
// bits read, code
|
|
297
|
-
var c = lm[bits16(dat, pos) & lms], sym = c
|
|
343
|
+
var c = lm[bits16(dat, pos) & lms], sym = c >> 4;
|
|
298
344
|
pos += c & 15;
|
|
299
345
|
if (pos > tbts) {
|
|
300
346
|
if (noSt)
|
|
301
|
-
|
|
347
|
+
err(0);
|
|
302
348
|
break;
|
|
303
349
|
}
|
|
304
350
|
if (!c)
|
|
305
|
-
|
|
351
|
+
err(2);
|
|
306
352
|
if (sym < 256)
|
|
307
353
|
buf[bt++] = sym;
|
|
308
354
|
else if (sym == 256) {
|
|
@@ -319,52 +365,55 @@ var inflt = function (dat, buf, st) {
|
|
|
319
365
|
pos += b;
|
|
320
366
|
}
|
|
321
367
|
// dist
|
|
322
|
-
var d = dm[bits16(dat, pos) & dms], dsym = d
|
|
368
|
+
var d = dm[bits16(dat, pos) & dms], dsym = d >> 4;
|
|
323
369
|
if (!d)
|
|
324
|
-
|
|
370
|
+
err(3);
|
|
325
371
|
pos += d & 15;
|
|
326
372
|
var dt = fd[dsym];
|
|
327
373
|
if (dsym > 3) {
|
|
328
374
|
var b = fdeb[dsym];
|
|
329
|
-
dt += bits16(dat, pos) & (
|
|
375
|
+
dt += bits16(dat, pos) & (1 << b) - 1, pos += b;
|
|
330
376
|
}
|
|
331
377
|
if (pos > tbts) {
|
|
332
378
|
if (noSt)
|
|
333
|
-
|
|
379
|
+
err(0);
|
|
334
380
|
break;
|
|
335
381
|
}
|
|
336
|
-
if (
|
|
382
|
+
if (resize)
|
|
337
383
|
cbuf(bt + 131072);
|
|
338
384
|
var end = bt + add;
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
385
|
+
if (bt < dt) {
|
|
386
|
+
var shift = dl - dt, dend = Math.min(dt, end);
|
|
387
|
+
if (shift + bt < 0)
|
|
388
|
+
err(3);
|
|
389
|
+
for (; bt < dend; ++bt)
|
|
390
|
+
buf[bt] = dict[shift + bt];
|
|
344
391
|
}
|
|
345
|
-
bt
|
|
392
|
+
for (; bt < end; ++bt)
|
|
393
|
+
buf[bt] = buf[bt - dt];
|
|
346
394
|
}
|
|
347
395
|
}
|
|
348
|
-
st.l = lm, st.p = lpos, st.b = bt;
|
|
396
|
+
st.l = lm, st.p = lpos, st.b = bt, st.f = final;
|
|
349
397
|
if (lm)
|
|
350
398
|
final = 1, st.m = lbt, st.d = dm, st.n = dbt;
|
|
351
399
|
} while (!final);
|
|
352
|
-
|
|
400
|
+
// don't reallocate for streams or user buffers
|
|
401
|
+
return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt);
|
|
353
402
|
};
|
|
354
403
|
// starting at p, write the minimum number of bits that can hold v to d
|
|
355
404
|
var wbits = function (d, p, v) {
|
|
356
405
|
v <<= p & 7;
|
|
357
406
|
var o = (p / 8) | 0;
|
|
358
407
|
d[o] |= v;
|
|
359
|
-
d[o + 1] |= v
|
|
408
|
+
d[o + 1] |= v >> 8;
|
|
360
409
|
};
|
|
361
410
|
// starting at p, write the minimum number of bits (>8) that can hold v to d
|
|
362
411
|
var wbits16 = function (d, p, v) {
|
|
363
412
|
v <<= p & 7;
|
|
364
413
|
var o = (p / 8) | 0;
|
|
365
414
|
d[o] |= v;
|
|
366
|
-
d[o + 1] |= v
|
|
367
|
-
d[o + 2] |= v
|
|
415
|
+
d[o + 1] |= v >> 8;
|
|
416
|
+
d[o + 2] |= v >> 16;
|
|
368
417
|
};
|
|
369
418
|
// creates code lengths from a frequency table
|
|
370
419
|
var hTree = function (d, mb) {
|
|
@@ -377,11 +426,11 @@ var hTree = function (d, mb) {
|
|
|
377
426
|
var s = t.length;
|
|
378
427
|
var t2 = t.slice();
|
|
379
428
|
if (!s)
|
|
380
|
-
return
|
|
429
|
+
return { t: et, l: 0 };
|
|
381
430
|
if (s == 1) {
|
|
382
431
|
var v = new u8(t[0].s + 1);
|
|
383
432
|
v[t[0].s] = 1;
|
|
384
|
-
return
|
|
433
|
+
return { t: v, l: 1 };
|
|
385
434
|
}
|
|
386
435
|
t.sort(function (a, b) { return a.f - b.f; });
|
|
387
436
|
// after i2 reaches last ind, will be stopped
|
|
@@ -425,7 +474,7 @@ var hTree = function (d, mb) {
|
|
|
425
474
|
else
|
|
426
475
|
break;
|
|
427
476
|
}
|
|
428
|
-
dt
|
|
477
|
+
dt >>= lft;
|
|
429
478
|
while (dt > 0) {
|
|
430
479
|
var i2_2 = t2[i].s;
|
|
431
480
|
if (tr[i2_2] < mb)
|
|
@@ -442,7 +491,7 @@ var hTree = function (d, mb) {
|
|
|
442
491
|
}
|
|
443
492
|
mbt = mb;
|
|
444
493
|
}
|
|
445
|
-
return
|
|
494
|
+
return { t: new u8(tr), l: mbt };
|
|
446
495
|
};
|
|
447
496
|
// get the max length and assign length codes
|
|
448
497
|
var ln = function (n, l, d) {
|
|
@@ -485,7 +534,7 @@ var lc = function (c) {
|
|
|
485
534
|
cln = c[i];
|
|
486
535
|
}
|
|
487
536
|
}
|
|
488
|
-
return
|
|
537
|
+
return { c: cl.subarray(0, cli), n: s };
|
|
489
538
|
};
|
|
490
539
|
// calculate the length of output from tree, code lengths
|
|
491
540
|
var clen = function (cf, cl) {
|
|
@@ -501,7 +550,7 @@ var wfblk = function (out, pos, dat) {
|
|
|
501
550
|
var s = dat.length;
|
|
502
551
|
var o = shft(pos + 2);
|
|
503
552
|
out[o] = s & 255;
|
|
504
|
-
out[o + 1] = s
|
|
553
|
+
out[o + 1] = s >> 8;
|
|
505
554
|
out[o + 2] = out[o] ^ 255;
|
|
506
555
|
out[o + 3] = out[o + 1] ^ 255;
|
|
507
556
|
for (var i = 0; i < s; ++i)
|
|
@@ -512,23 +561,23 @@ var wfblk = function (out, pos, dat) {
|
|
|
512
561
|
var wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {
|
|
513
562
|
wbits(out, p++, final);
|
|
514
563
|
++lf[256];
|
|
515
|
-
var _a = hTree(lf, 15), dlt = _a
|
|
516
|
-
var _b = hTree(df, 15), ddt = _b
|
|
517
|
-
var _c = lc(dlt), lclt = _c
|
|
518
|
-
var _d = lc(ddt), lcdt = _d
|
|
564
|
+
var _a = hTree(lf, 15), dlt = _a.t, mlb = _a.l;
|
|
565
|
+
var _b = hTree(df, 15), ddt = _b.t, mdb = _b.l;
|
|
566
|
+
var _c = lc(dlt), lclt = _c.c, nlc = _c.n;
|
|
567
|
+
var _d = lc(ddt), lcdt = _d.c, ndc = _d.n;
|
|
519
568
|
var lcfreq = new u16(19);
|
|
520
569
|
for (var i = 0; i < lclt.length; ++i)
|
|
521
|
-
lcfreq[lclt[i] & 31]
|
|
570
|
+
++lcfreq[lclt[i] & 31];
|
|
522
571
|
for (var i = 0; i < lcdt.length; ++i)
|
|
523
|
-
lcfreq[lcdt[i] & 31]
|
|
524
|
-
var _e = hTree(lcfreq, 7), lct = _e
|
|
572
|
+
++lcfreq[lcdt[i] & 31];
|
|
573
|
+
var _e = hTree(lcfreq, 7), lct = _e.t, mlcb = _e.l;
|
|
525
574
|
var nlcc = 19;
|
|
526
575
|
for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)
|
|
527
576
|
;
|
|
528
577
|
var flen = (bl + 5) << 3;
|
|
529
578
|
var ftlen = clen(lf, flt) + clen(df, fdt) + eb;
|
|
530
|
-
var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) +
|
|
531
|
-
if (flen <= ftlen && flen <= dtlen)
|
|
579
|
+
var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + 2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18];
|
|
580
|
+
if (bs >= 0 && flen <= ftlen && flen <= dtlen)
|
|
532
581
|
return wfblk(out, p, dat.subarray(bs, bs + bl));
|
|
533
582
|
var lm, ll, dm, dl;
|
|
534
583
|
wbits(out, p, 1 + (dtlen < ftlen)), p += 2;
|
|
@@ -549,7 +598,7 @@ var wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {
|
|
|
549
598
|
var len = clct[i] & 31;
|
|
550
599
|
wbits(out, p, llm[len]), p += lct[len];
|
|
551
600
|
if (len > 15)
|
|
552
|
-
wbits(out, p, (clct[i]
|
|
601
|
+
wbits(out, p, (clct[i] >> 5) & 127), p += clct[i] >> 12;
|
|
553
602
|
}
|
|
554
603
|
}
|
|
555
604
|
}
|
|
@@ -557,67 +606,55 @@ var wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {
|
|
|
557
606
|
lm = flm, ll = flt, dm = fdm, dl = fdt;
|
|
558
607
|
}
|
|
559
608
|
for (var i = 0; i < li; ++i) {
|
|
560
|
-
|
|
561
|
-
|
|
609
|
+
var sym = syms[i];
|
|
610
|
+
if (sym > 255) {
|
|
611
|
+
var len = (sym >> 18) & 31;
|
|
562
612
|
wbits16(out, p, lm[len + 257]), p += ll[len + 257];
|
|
563
613
|
if (len > 7)
|
|
564
|
-
wbits(out, p, (
|
|
565
|
-
var dst =
|
|
614
|
+
wbits(out, p, (sym >> 23) & 31), p += fleb[len];
|
|
615
|
+
var dst = sym & 31;
|
|
566
616
|
wbits16(out, p, dm[dst]), p += dl[dst];
|
|
567
617
|
if (dst > 3)
|
|
568
|
-
wbits16(out, p, (
|
|
618
|
+
wbits16(out, p, (sym >> 5) & 8191), p += fdeb[dst];
|
|
569
619
|
}
|
|
570
620
|
else {
|
|
571
|
-
wbits16(out, p, lm[
|
|
621
|
+
wbits16(out, p, lm[sym]), p += ll[sym];
|
|
572
622
|
}
|
|
573
623
|
}
|
|
574
624
|
wbits16(out, p, lm[256]);
|
|
575
625
|
return p + ll[256];
|
|
576
626
|
};
|
|
577
627
|
// deflate options (nice << 13) | chain
|
|
578
|
-
var deo = /*#__PURE__*/ new
|
|
628
|
+
var deo = /*#__PURE__*/ new i32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);
|
|
579
629
|
// empty
|
|
580
630
|
var et = /*#__PURE__*/ new u8(0);
|
|
581
631
|
// compresses data into a raw DEFLATE buffer
|
|
582
|
-
var dflt = function (dat, lvl, plvl, pre, post,
|
|
583
|
-
var s = dat.length;
|
|
632
|
+
var dflt = function (dat, lvl, plvl, pre, post, st) {
|
|
633
|
+
var s = st.z || dat.length;
|
|
584
634
|
var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);
|
|
585
635
|
// writing to this writes to the output buffer
|
|
586
636
|
var w = o.subarray(pre, o.length - post);
|
|
587
|
-
var
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
if (e < s) {
|
|
593
|
-
// write full block
|
|
594
|
-
pos = wfblk(w, pos, dat.subarray(i, e));
|
|
595
|
-
}
|
|
596
|
-
else {
|
|
597
|
-
// write final block
|
|
598
|
-
w[i] = lst;
|
|
599
|
-
pos = wfblk(w, pos, dat.subarray(i, s));
|
|
600
|
-
}
|
|
601
|
-
}
|
|
602
|
-
}
|
|
603
|
-
else {
|
|
637
|
+
var lst = st.l;
|
|
638
|
+
var pos = (st.r || 0) & 7;
|
|
639
|
+
if (lvl) {
|
|
640
|
+
if (pos)
|
|
641
|
+
w[0] = st.r >> 3;
|
|
604
642
|
var opt = deo[lvl - 1];
|
|
605
|
-
var n = opt
|
|
643
|
+
var n = opt >> 13, c = opt & 8191;
|
|
606
644
|
var msk_1 = (1 << plvl) - 1;
|
|
607
645
|
// prev 2-byte val map curr 2-byte val map
|
|
608
|
-
var prev = new u16(32768), head = new u16(msk_1 + 1);
|
|
646
|
+
var prev = st.p || new u16(32768), head = st.h || new u16(msk_1 + 1);
|
|
609
647
|
var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;
|
|
610
648
|
var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };
|
|
611
649
|
// 24576 is an arbitrary number of maximum symbols per block
|
|
612
650
|
// 424 buffer for last block
|
|
613
|
-
var syms = new
|
|
651
|
+
var syms = new i32(25000);
|
|
614
652
|
// length/literal freq distance freq
|
|
615
653
|
var lf = new u16(288), df = new u16(32);
|
|
616
|
-
// l/lcnt exbits index
|
|
617
|
-
var lc_1 = 0, eb = 0, i = 0, li = 0, wi = 0, bs = 0;
|
|
618
|
-
for (; i < s; ++i) {
|
|
654
|
+
// l/lcnt exbits index l/lind waitdx blkpos
|
|
655
|
+
var lc_1 = 0, eb = 0, i = st.i || 0, li = 0, wi = st.w || 0, bs = 0;
|
|
656
|
+
for (; i + 2 < s; ++i) {
|
|
619
657
|
// hash value
|
|
620
|
-
// deopt when i > s - 3 - at end, deopt acceptable
|
|
621
658
|
var hv = hsh(i);
|
|
622
659
|
// index mod 32768 previous index mod
|
|
623
660
|
var imod = i & 32767, pimod = head[hv];
|
|
@@ -628,7 +665,7 @@ var dflt = function (dat, lvl, plvl, pre, post, lst) {
|
|
|
628
665
|
if (wi <= i) {
|
|
629
666
|
// bytes remaining
|
|
630
667
|
var rem = s - i;
|
|
631
|
-
if ((lc_1 > 7000 || li > 24576) && rem > 423) {
|
|
668
|
+
if ((lc_1 > 7000 || li > 24576) && (rem > 423 || !lst)) {
|
|
632
669
|
pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);
|
|
633
670
|
li = lc_1 = eb = 0, bs = i;
|
|
634
671
|
for (var j = 0; j < 286; ++j)
|
|
@@ -637,7 +674,7 @@ var dflt = function (dat, lvl, plvl, pre, post, lst) {
|
|
|
637
674
|
df[j] = 0;
|
|
638
675
|
}
|
|
639
676
|
// len dist chain
|
|
640
|
-
var l = 2, d = 0, ch_1 = c, dif =
|
|
677
|
+
var l = 2, d = 0, ch_1 = c, dif = imod - pimod & 32767;
|
|
641
678
|
if (rem > 2 && hv == hsh(i - dif)) {
|
|
642
679
|
var maxn = Math.min(n, rem) - 1;
|
|
643
680
|
var maxd = Math.min(32767, i);
|
|
@@ -660,9 +697,9 @@ var dflt = function (dat, lvl, plvl, pre, post, lst) {
|
|
|
660
697
|
var mmd = Math.min(dif, nl - 2);
|
|
661
698
|
var md = 0;
|
|
662
699
|
for (var j = 0; j < mmd; ++j) {
|
|
663
|
-
var ti =
|
|
700
|
+
var ti = i - dif + j & 32767;
|
|
664
701
|
var pti = prev[ti];
|
|
665
|
-
var cd =
|
|
702
|
+
var cd = ti - pti & 32767;
|
|
666
703
|
if (cd > md)
|
|
667
704
|
md = cd, pimod = ti;
|
|
668
705
|
}
|
|
@@ -670,12 +707,12 @@ var dflt = function (dat, lvl, plvl, pre, post, lst) {
|
|
|
670
707
|
}
|
|
671
708
|
// check the previous match
|
|
672
709
|
imod = pimod, pimod = prev[imod];
|
|
673
|
-
dif +=
|
|
710
|
+
dif += imod - pimod & 32767;
|
|
674
711
|
}
|
|
675
712
|
}
|
|
676
713
|
// d will be nonzero only when a match was found
|
|
677
714
|
if (d) {
|
|
678
|
-
// store both dist and len data in one
|
|
715
|
+
// store both dist and len data in one int32
|
|
679
716
|
// Make sure this is recognized as a len/dist with 28th bit (2^28)
|
|
680
717
|
syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];
|
|
681
718
|
var lin = revfl[l] & 31, din = revfd[d] & 31;
|
|
@@ -691,20 +728,40 @@ var dflt = function (dat, lvl, plvl, pre, post, lst) {
|
|
|
691
728
|
}
|
|
692
729
|
}
|
|
693
730
|
}
|
|
731
|
+
for (i = Math.max(i, wi); i < s; ++i) {
|
|
732
|
+
syms[li++] = dat[i];
|
|
733
|
+
++lf[dat[i]];
|
|
734
|
+
}
|
|
694
735
|
pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
pos
|
|
736
|
+
if (!lst) {
|
|
737
|
+
st.r = (pos & 7) | w[(pos / 8) | 0] << 3;
|
|
738
|
+
// shft(pos) now 1 less if pos & 7 != 0
|
|
739
|
+
pos -= 7;
|
|
740
|
+
st.h = head, st.p = prev, st.i = i, st.w = wi;
|
|
741
|
+
}
|
|
742
|
+
}
|
|
743
|
+
else {
|
|
744
|
+
for (var i = st.w || 0; i < s + lst; i += 65535) {
|
|
745
|
+
// end
|
|
746
|
+
var e = i + 65535;
|
|
747
|
+
if (e >= s) {
|
|
748
|
+
// write final block
|
|
749
|
+
w[(pos / 8) | 0] = lst;
|
|
750
|
+
e = s;
|
|
751
|
+
}
|
|
752
|
+
pos = wfblk(w, pos + 1, dat.subarray(i, e));
|
|
753
|
+
}
|
|
754
|
+
st.i = s;
|
|
698
755
|
}
|
|
699
756
|
return slc(o, 0, pre + shft(pos) + post);
|
|
700
757
|
};
|
|
701
758
|
// CRC32 table
|
|
702
759
|
var crct = /*#__PURE__*/ (function () {
|
|
703
|
-
var t = new
|
|
760
|
+
var t = new Int32Array(256);
|
|
704
761
|
for (var i = 0; i < 256; ++i) {
|
|
705
762
|
var c = i, k = 9;
|
|
706
763
|
while (--k)
|
|
707
|
-
c = ((c & 1) &&
|
|
764
|
+
c = ((c & 1) && -306674912) ^ (c >>> 1);
|
|
708
765
|
t[i] = c;
|
|
709
766
|
}
|
|
710
767
|
return t;
|
|
@@ -723,14 +780,14 @@ var crc = function () {
|
|
|
723
780
|
d: function () { return ~c; }
|
|
724
781
|
};
|
|
725
782
|
};
|
|
726
|
-
//
|
|
783
|
+
// Adler32
|
|
727
784
|
var adler = function () {
|
|
728
785
|
var a = 1, b = 0;
|
|
729
786
|
return {
|
|
730
787
|
p: function (d) {
|
|
731
788
|
// closures have awful performance
|
|
732
789
|
var n = a, m = b;
|
|
733
|
-
var l = d.length;
|
|
790
|
+
var l = d.length | 0;
|
|
734
791
|
for (var i = 0; i != l;) {
|
|
735
792
|
var e = Math.min(i + 2655, l);
|
|
736
793
|
for (; i < e; ++i)
|
|
@@ -741,14 +798,25 @@ var adler = function () {
|
|
|
741
798
|
},
|
|
742
799
|
d: function () {
|
|
743
800
|
a %= 65521, b %= 65521;
|
|
744
|
-
return (a & 255) << 24 | (a
|
|
801
|
+
return (a & 255) << 24 | (a & 0xFF00) << 8 | (b & 255) << 8 | (b >> 8);
|
|
745
802
|
}
|
|
746
803
|
};
|
|
747
804
|
};
|
|
748
805
|
;
|
|
749
806
|
// deflate with opts
|
|
750
807
|
var dopt = function (dat, opt, pre, post, st) {
|
|
751
|
-
|
|
808
|
+
if (!st) {
|
|
809
|
+
st = { l: 1 };
|
|
810
|
+
if (opt.dictionary) {
|
|
811
|
+
var dict = opt.dictionary.subarray(-32768);
|
|
812
|
+
var newDat = new u8(dict.length + dat.length);
|
|
813
|
+
newDat.set(dict);
|
|
814
|
+
newDat.set(dat, dict.length);
|
|
815
|
+
dat = newDat;
|
|
816
|
+
st.w = dict.length;
|
|
817
|
+
}
|
|
818
|
+
}
|
|
819
|
+
return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? (st.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 20) : (12 + opt.mem), pre, post, st);
|
|
752
820
|
};
|
|
753
821
|
// Walmart object spread
|
|
754
822
|
var mrg = function (a, b) {
|
|
@@ -769,7 +837,7 @@ var mrg = function (a, b) {
|
|
|
769
837
|
var wcln = function (fn, fnStr, td) {
|
|
770
838
|
var dt = fn();
|
|
771
839
|
var st = fn.toString();
|
|
772
|
-
var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(
|
|
840
|
+
var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/\s+/g, '').split(',');
|
|
773
841
|
for (var i = 0; i < dt.length; ++i) {
|
|
774
842
|
var v = dt[i], k = ks[i];
|
|
775
843
|
if (typeof v == 'function') {
|
|
@@ -793,33 +861,33 @@ var wcln = function (fn, fnStr, td) {
|
|
|
793
861
|
else
|
|
794
862
|
td[k] = v;
|
|
795
863
|
}
|
|
796
|
-
return
|
|
864
|
+
return fnStr;
|
|
797
865
|
};
|
|
798
866
|
var ch = [];
|
|
799
867
|
// clone bufs
|
|
800
868
|
var cbfs = function (v) {
|
|
801
869
|
var tl = [];
|
|
802
870
|
for (var k in v) {
|
|
803
|
-
if (v[k]
|
|
871
|
+
if (v[k].buffer) {
|
|
804
872
|
tl.push((v[k] = new v[k].constructor(v[k])).buffer);
|
|
873
|
+
}
|
|
805
874
|
}
|
|
806
875
|
return tl;
|
|
807
876
|
};
|
|
808
877
|
// use a worker to execute code
|
|
809
878
|
var wrkr = function (fns, init, id, cb) {
|
|
810
|
-
var _a;
|
|
811
879
|
if (!ch[id]) {
|
|
812
880
|
var fnStr = '', td_1 = {}, m = fns.length - 1;
|
|
813
881
|
for (var i = 0; i < m; ++i)
|
|
814
|
-
|
|
815
|
-
ch[id] = wcln(fns[m], fnStr, td_1);
|
|
882
|
+
fnStr = wcln(fns[i], fnStr, td_1);
|
|
883
|
+
ch[id] = { c: wcln(fns[m], fnStr, td_1), e: td_1 };
|
|
816
884
|
}
|
|
817
|
-
var td = mrg({}, ch[id]
|
|
818
|
-
return wk(ch[id]
|
|
885
|
+
var td = mrg({}, ch[id].e);
|
|
886
|
+
return wk(ch[id].c + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);
|
|
819
887
|
};
|
|
820
888
|
// base async inflate fn
|
|
821
|
-
var bInflt = function () { return [u8, u16,
|
|
822
|
-
var bDflt = function () { return [u8, u16,
|
|
889
|
+
var bInflt = function () { return [u8, u16, i32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gopt]; };
|
|
890
|
+
var bDflt = function () { return [u8, u16, i32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };
|
|
823
891
|
// gzip extra
|
|
824
892
|
var gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };
|
|
825
893
|
// gunzip extra
|
|
@@ -827,11 +895,14 @@ var guze = function () { return [gzs, gzl]; };
|
|
|
827
895
|
// zlib extra
|
|
828
896
|
var zle = function () { return [zlh, wbytes, adler]; };
|
|
829
897
|
// unzlib extra
|
|
830
|
-
var zule = function () { return [
|
|
898
|
+
var zule = function () { return [zls]; };
|
|
831
899
|
// post buf
|
|
832
900
|
var pbf = function (msg) { return postMessage(msg, [msg.buffer]); };
|
|
833
|
-
// get
|
|
834
|
-
var
|
|
901
|
+
// get opts
|
|
902
|
+
var gopt = function (o) { return o && {
|
|
903
|
+
out: o.size && new u8(o.size),
|
|
904
|
+
dictionary: o.dictionary
|
|
905
|
+
}; };
|
|
835
906
|
// async helper
|
|
836
907
|
var cbify = function (dat, opts, fns, init, id, cb) {
|
|
837
908
|
var w = wrkr(fns, init, id, function (err, dat) {
|
|
@@ -844,14 +915,28 @@ var cbify = function (dat, opts, fns, init, id, cb) {
|
|
|
844
915
|
// auto stream
|
|
845
916
|
var astrm = function (strm) {
|
|
846
917
|
strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };
|
|
847
|
-
return function (ev) {
|
|
918
|
+
return function (ev) {
|
|
919
|
+
if (ev.data.length) {
|
|
920
|
+
strm.push(ev.data[0], ev.data[1]);
|
|
921
|
+
postMessage([ev.data[0].length]);
|
|
922
|
+
}
|
|
923
|
+
else
|
|
924
|
+
strm.flush();
|
|
925
|
+
};
|
|
848
926
|
};
|
|
849
927
|
// async stream attach
|
|
850
|
-
var astrmify = function (fns, strm, opts, init, id) {
|
|
928
|
+
var astrmify = function (fns, strm, opts, init, id, flush, ext) {
|
|
851
929
|
var t;
|
|
852
930
|
var w = wrkr(fns, init, id, function (err, dat) {
|
|
853
931
|
if (err)
|
|
854
932
|
w.terminate(), strm.ondata.call(strm, err);
|
|
933
|
+
else if (!Array.isArray(dat))
|
|
934
|
+
ext(dat);
|
|
935
|
+
else if (dat.length == 1) {
|
|
936
|
+
strm.queuedSize -= dat[0];
|
|
937
|
+
if (strm.ondrain)
|
|
938
|
+
strm.ondrain(dat[0]);
|
|
939
|
+
}
|
|
855
940
|
else {
|
|
856
941
|
if (dat[1])
|
|
857
942
|
w.terminate();
|
|
@@ -859,14 +944,19 @@ var astrmify = function (fns, strm, opts, init, id) {
|
|
|
859
944
|
}
|
|
860
945
|
});
|
|
861
946
|
w.postMessage(opts);
|
|
947
|
+
strm.queuedSize = 0;
|
|
862
948
|
strm.push = function (d, f) {
|
|
863
|
-
if (t)
|
|
864
|
-
throw 'stream finished';
|
|
865
949
|
if (!strm.ondata)
|
|
866
|
-
|
|
950
|
+
err(5);
|
|
951
|
+
if (t)
|
|
952
|
+
strm.ondata(err(4, 0, 1), null, !!f);
|
|
953
|
+
strm.queuedSize += d.length;
|
|
867
954
|
w.postMessage([d, t = f], [d.buffer]);
|
|
868
955
|
};
|
|
869
956
|
strm.terminate = function () { w.terminate(); };
|
|
957
|
+
if (flush) {
|
|
958
|
+
strm.flush = function () { w.postMessage([]); };
|
|
959
|
+
}
|
|
870
960
|
};
|
|
871
961
|
// read 2 bytes
|
|
872
962
|
var b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };
|
|
@@ -894,11 +984,11 @@ var gzh = function (c, o) {
|
|
|
894
984
|
// gzip start
|
|
895
985
|
var gzs = function (d) {
|
|
896
986
|
if (d[0] != 31 || d[1] != 139 || d[2] != 8)
|
|
897
|
-
|
|
987
|
+
err(6, 'invalid gzip data');
|
|
898
988
|
var flg = d[3];
|
|
899
989
|
var st = 10;
|
|
900
990
|
if (flg & 4)
|
|
901
|
-
st += d[10] |
|
|
991
|
+
st += (d[10] | d[11] << 8) + 2;
|
|
902
992
|
for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])
|
|
903
993
|
;
|
|
904
994
|
return st + (flg & 2);
|
|
@@ -906,41 +996,56 @@ var gzs = function (d) {
|
|
|
906
996
|
// gzip length
|
|
907
997
|
var gzl = function (d) {
|
|
908
998
|
var l = d.length;
|
|
909
|
-
return (
|
|
999
|
+
return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16 | d[l - 1] << 24) >>> 0;
|
|
910
1000
|
};
|
|
911
1001
|
// gzip header length
|
|
912
|
-
var gzhl = function (o) { return 10 + (
|
|
1002
|
+
var gzhl = function (o) { return 10 + (o.filename ? o.filename.length + 1 : 0); };
|
|
913
1003
|
// zlib header
|
|
914
1004
|
var zlh = function (c, o) {
|
|
915
1005
|
var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;
|
|
916
|
-
c[0] = 120, c[1] = (fl << 6) | (
|
|
1006
|
+
c[0] = 120, c[1] = (fl << 6) | (o.dictionary && 32);
|
|
1007
|
+
c[1] |= 31 - ((c[0] << 8) | c[1]) % 31;
|
|
1008
|
+
if (o.dictionary) {
|
|
1009
|
+
var h = adler();
|
|
1010
|
+
h.p(o.dictionary);
|
|
1011
|
+
wbytes(c, 2, h.d());
|
|
1012
|
+
}
|
|
917
1013
|
};
|
|
918
|
-
// zlib
|
|
919
|
-
var
|
|
920
|
-
if ((d[0] & 15) != 8 || (d[0]
|
|
921
|
-
|
|
922
|
-
if (d[1] &
|
|
923
|
-
|
|
1014
|
+
// zlib start
|
|
1015
|
+
var zls = function (d, dict) {
|
|
1016
|
+
if ((d[0] & 15) != 8 || (d[0] >> 4) > 7 || ((d[0] << 8 | d[1]) % 31))
|
|
1017
|
+
err(6, 'invalid zlib data');
|
|
1018
|
+
if ((d[1] >> 5 & 1) == +!dict)
|
|
1019
|
+
err(6, 'invalid zlib data: ' + (d[1] & 32 ? 'need' : 'unexpected') + ' dictionary');
|
|
1020
|
+
return (d[1] >> 3 & 4) + 2;
|
|
924
1021
|
};
|
|
925
|
-
function
|
|
926
|
-
if (
|
|
1022
|
+
function StrmOpt(opts, cb) {
|
|
1023
|
+
if (typeof opts == 'function')
|
|
927
1024
|
cb = opts, opts = {};
|
|
928
1025
|
this.ondata = cb;
|
|
929
1026
|
return opts;
|
|
930
1027
|
}
|
|
931
|
-
// zlib footer: -4 to -0 is Adler32
|
|
932
1028
|
/**
|
|
933
1029
|
* Streaming DEFLATE compression
|
|
934
1030
|
*/
|
|
935
1031
|
var Deflate = /*#__PURE__*/ (function () {
|
|
936
1032
|
function Deflate(opts, cb) {
|
|
937
|
-
if (
|
|
1033
|
+
if (typeof opts == 'function')
|
|
938
1034
|
cb = opts, opts = {};
|
|
939
1035
|
this.ondata = cb;
|
|
940
1036
|
this.o = opts || {};
|
|
1037
|
+
this.s = { l: 0, i: 32768, w: 32768, z: 32768 };
|
|
1038
|
+
// Buffer length must always be 0 mod 32768 for index calculations to be correct when modifying head and prev
|
|
1039
|
+
// 98304 = 32768 (lookback) + 65536 (common chunk size)
|
|
1040
|
+
this.b = new u8(98304);
|
|
1041
|
+
if (this.o.dictionary) {
|
|
1042
|
+
var dict = this.o.dictionary.subarray(-32768);
|
|
1043
|
+
this.b.set(dict, 32768 - dict.length);
|
|
1044
|
+
this.s.i = 32768 - dict.length;
|
|
1045
|
+
}
|
|
941
1046
|
}
|
|
942
1047
|
Deflate.prototype.p = function (c, f) {
|
|
943
|
-
this.ondata(dopt(c, this.o, 0, 0,
|
|
1048
|
+
this.ondata(dopt(c, this.o, 0, 0, this.s), f);
|
|
944
1049
|
};
|
|
945
1050
|
/**
|
|
946
1051
|
* Pushes a chunk to be deflated
|
|
@@ -948,12 +1053,47 @@ var Deflate = /*#__PURE__*/ (function () {
|
|
|
948
1053
|
* @param final Whether this is the last chunk
|
|
949
1054
|
*/
|
|
950
1055
|
Deflate.prototype.push = function (chunk, final) {
|
|
951
|
-
if (this.d)
|
|
952
|
-
throw 'stream finished';
|
|
953
1056
|
if (!this.ondata)
|
|
954
|
-
|
|
955
|
-
this.
|
|
956
|
-
|
|
1057
|
+
err(5);
|
|
1058
|
+
if (this.s.l)
|
|
1059
|
+
err(4);
|
|
1060
|
+
var endLen = chunk.length + this.s.z;
|
|
1061
|
+
if (endLen > this.b.length) {
|
|
1062
|
+
if (endLen > 2 * this.b.length - 32768) {
|
|
1063
|
+
var newBuf = new u8(endLen & -32768);
|
|
1064
|
+
newBuf.set(this.b.subarray(0, this.s.z));
|
|
1065
|
+
this.b = newBuf;
|
|
1066
|
+
}
|
|
1067
|
+
var split = this.b.length - this.s.z;
|
|
1068
|
+
this.b.set(chunk.subarray(0, split), this.s.z);
|
|
1069
|
+
this.s.z = this.b.length;
|
|
1070
|
+
this.p(this.b, false);
|
|
1071
|
+
this.b.set(this.b.subarray(-32768));
|
|
1072
|
+
this.b.set(chunk.subarray(split), 32768);
|
|
1073
|
+
this.s.z = chunk.length - split + 32768;
|
|
1074
|
+
this.s.i = 32766, this.s.w = 32768;
|
|
1075
|
+
}
|
|
1076
|
+
else {
|
|
1077
|
+
this.b.set(chunk, this.s.z);
|
|
1078
|
+
this.s.z += chunk.length;
|
|
1079
|
+
}
|
|
1080
|
+
this.s.l = final & 1;
|
|
1081
|
+
if (this.s.z > this.s.w + 8191 || final) {
|
|
1082
|
+
this.p(this.b, final || false);
|
|
1083
|
+
this.s.w = this.s.i, this.s.i -= 2;
|
|
1084
|
+
}
|
|
1085
|
+
};
|
|
1086
|
+
/**
|
|
1087
|
+
* Flushes buffered uncompressed data. Useful to immediately retrieve the
|
|
1088
|
+
* deflated output for small inputs.
|
|
1089
|
+
*/
|
|
1090
|
+
Deflate.prototype.flush = function () {
|
|
1091
|
+
if (!this.ondata)
|
|
1092
|
+
err(5);
|
|
1093
|
+
if (this.s.l)
|
|
1094
|
+
err(4);
|
|
1095
|
+
this.p(this.b, false);
|
|
1096
|
+
this.s.w = this.s.i, this.s.i -= 2;
|
|
957
1097
|
};
|
|
958
1098
|
return Deflate;
|
|
959
1099
|
}());
|
|
@@ -966,10 +1106,10 @@ var AsyncDeflate = /*#__PURE__*/ (function () {
|
|
|
966
1106
|
astrmify([
|
|
967
1107
|
bDflt,
|
|
968
1108
|
function () { return [astrm, Deflate]; }
|
|
969
|
-
], this,
|
|
1109
|
+
], this, StrmOpt.call(this, opts, cb), function (ev) {
|
|
970
1110
|
var strm = new Deflate(ev.data);
|
|
971
1111
|
onmessage = astrm(strm);
|
|
972
|
-
}, 6);
|
|
1112
|
+
}, 6, 1);
|
|
973
1113
|
}
|
|
974
1114
|
return AsyncDeflate;
|
|
975
1115
|
}());
|
|
@@ -978,7 +1118,7 @@ export function deflate(data, opts, cb) {
|
|
|
978
1118
|
if (!cb)
|
|
979
1119
|
cb = opts, opts = {};
|
|
980
1120
|
if (typeof cb != 'function')
|
|
981
|
-
|
|
1121
|
+
err(7);
|
|
982
1122
|
return cbify(data, opts, [
|
|
983
1123
|
bDflt,
|
|
984
1124
|
], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);
|
|
@@ -996,28 +1136,34 @@ export function deflateSync(data, opts) {
|
|
|
996
1136
|
* Streaming DEFLATE decompression
|
|
997
1137
|
*/
|
|
998
1138
|
var Inflate = /*#__PURE__*/ (function () {
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
function Inflate(cb) {
|
|
1004
|
-
this.s = {};
|
|
1005
|
-
this.p = new u8(0);
|
|
1139
|
+
function Inflate(opts, cb) {
|
|
1140
|
+
// no StrmOpt here to avoid adding to workerizer
|
|
1141
|
+
if (typeof opts == 'function')
|
|
1142
|
+
cb = opts, opts = {};
|
|
1006
1143
|
this.ondata = cb;
|
|
1144
|
+
var dict = opts && opts.dictionary && opts.dictionary.subarray(-32768);
|
|
1145
|
+
this.s = { i: 0, b: dict ? dict.length : 0 };
|
|
1146
|
+
this.o = new u8(32768);
|
|
1147
|
+
this.p = new u8(0);
|
|
1148
|
+
if (dict)
|
|
1149
|
+
this.o.set(dict);
|
|
1007
1150
|
}
|
|
1008
1151
|
Inflate.prototype.e = function (c) {
|
|
1009
|
-
if (this.d)
|
|
1010
|
-
throw 'stream finished';
|
|
1011
1152
|
if (!this.ondata)
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1153
|
+
err(5);
|
|
1154
|
+
if (this.d)
|
|
1155
|
+
err(4);
|
|
1156
|
+
if (!this.p.length)
|
|
1157
|
+
this.p = c;
|
|
1158
|
+
else if (c.length) {
|
|
1159
|
+
var n = new u8(this.p.length + c.length);
|
|
1160
|
+
n.set(this.p), n.set(c, this.p.length), this.p = n;
|
|
1161
|
+
}
|
|
1016
1162
|
};
|
|
1017
1163
|
Inflate.prototype.c = function (final) {
|
|
1018
|
-
this.
|
|
1164
|
+
this.s.i = +(this.d = final || false);
|
|
1019
1165
|
var bts = this.s.b;
|
|
1020
|
-
var dt = inflt(this.p, this.
|
|
1166
|
+
var dt = inflt(this.p, this.s, this.o);
|
|
1021
1167
|
this.ondata(slc(dt, bts, this.s.b), this.d);
|
|
1022
1168
|
this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;
|
|
1023
1169
|
this.p = slc(this.p, (this.s.p / 8) | 0), this.s.p &= 7;
|
|
@@ -1037,19 +1183,14 @@ export { Inflate };
|
|
|
1037
1183
|
* Asynchronous streaming DEFLATE decompression
|
|
1038
1184
|
*/
|
|
1039
1185
|
var AsyncInflate = /*#__PURE__*/ (function () {
|
|
1040
|
-
|
|
1041
|
-
* Creates an asynchronous inflation stream
|
|
1042
|
-
* @param cb The callback to call whenever data is deflated
|
|
1043
|
-
*/
|
|
1044
|
-
function AsyncInflate(cb) {
|
|
1045
|
-
this.ondata = cb;
|
|
1186
|
+
function AsyncInflate(opts, cb) {
|
|
1046
1187
|
astrmify([
|
|
1047
1188
|
bInflt,
|
|
1048
1189
|
function () { return [astrm, Inflate]; }
|
|
1049
|
-
], this,
|
|
1050
|
-
var strm = new Inflate();
|
|
1190
|
+
], this, StrmOpt.call(this, opts, cb), function (ev) {
|
|
1191
|
+
var strm = new Inflate(ev.data);
|
|
1051
1192
|
onmessage = astrm(strm);
|
|
1052
|
-
}, 7);
|
|
1193
|
+
}, 7, 0);
|
|
1053
1194
|
}
|
|
1054
1195
|
return AsyncInflate;
|
|
1055
1196
|
}());
|
|
@@ -1058,19 +1199,19 @@ export function inflate(data, opts, cb) {
|
|
|
1058
1199
|
if (!cb)
|
|
1059
1200
|
cb = opts, opts = {};
|
|
1060
1201
|
if (typeof cb != 'function')
|
|
1061
|
-
|
|
1202
|
+
err(7);
|
|
1062
1203
|
return cbify(data, opts, [
|
|
1063
1204
|
bInflt
|
|
1064
|
-
], function (ev) { return pbf(inflateSync(ev.data[0],
|
|
1205
|
+
], function (ev) { return pbf(inflateSync(ev.data[0], gopt(ev.data[1]))); }, 1, cb);
|
|
1065
1206
|
}
|
|
1066
1207
|
/**
|
|
1067
1208
|
* Expands DEFLATE data with no wrapper
|
|
1068
1209
|
* @param data The data to decompress
|
|
1069
|
-
* @param
|
|
1210
|
+
* @param opts The decompression options
|
|
1070
1211
|
* @returns The decompressed version of the data
|
|
1071
1212
|
*/
|
|
1072
|
-
export function inflateSync(data,
|
|
1073
|
-
return inflt(data, out);
|
|
1213
|
+
export function inflateSync(data, opts) {
|
|
1214
|
+
return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary);
|
|
1074
1215
|
}
|
|
1075
1216
|
// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.
|
|
1076
1217
|
/**
|
|
@@ -1089,18 +1230,25 @@ var Gzip = /*#__PURE__*/ (function () {
|
|
|
1089
1230
|
* @param final Whether this is the last chunk
|
|
1090
1231
|
*/
|
|
1091
1232
|
Gzip.prototype.push = function (chunk, final) {
|
|
1233
|
+
this.c.p(chunk);
|
|
1234
|
+
this.l += chunk.length;
|
|
1092
1235
|
Deflate.prototype.push.call(this, chunk, final);
|
|
1093
1236
|
};
|
|
1094
1237
|
Gzip.prototype.p = function (c, f) {
|
|
1095
|
-
this.
|
|
1096
|
-
this.l += c.length;
|
|
1097
|
-
var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, !f);
|
|
1238
|
+
var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, this.s);
|
|
1098
1239
|
if (this.v)
|
|
1099
1240
|
gzh(raw, this.o), this.v = 0;
|
|
1100
1241
|
if (f)
|
|
1101
1242
|
wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);
|
|
1102
1243
|
this.ondata(raw, f);
|
|
1103
1244
|
};
|
|
1245
|
+
/**
|
|
1246
|
+
* Flushes buffered uncompressed data. Useful to immediately retrieve the
|
|
1247
|
+
* GZIPped output for small inputs.
|
|
1248
|
+
*/
|
|
1249
|
+
Gzip.prototype.flush = function () {
|
|
1250
|
+
Deflate.prototype.flush.call(this);
|
|
1251
|
+
};
|
|
1104
1252
|
return Gzip;
|
|
1105
1253
|
}());
|
|
1106
1254
|
export { Gzip };
|
|
@@ -1113,10 +1261,10 @@ var AsyncGzip = /*#__PURE__*/ (function () {
|
|
|
1113
1261
|
bDflt,
|
|
1114
1262
|
gze,
|
|
1115
1263
|
function () { return [astrm, Deflate, Gzip]; }
|
|
1116
|
-
], this,
|
|
1264
|
+
], this, StrmOpt.call(this, opts, cb), function (ev) {
|
|
1117
1265
|
var strm = new Gzip(ev.data);
|
|
1118
1266
|
onmessage = astrm(strm);
|
|
1119
|
-
}, 8);
|
|
1267
|
+
}, 8, 1);
|
|
1120
1268
|
}
|
|
1121
1269
|
return AsyncGzip;
|
|
1122
1270
|
}());
|
|
@@ -1125,7 +1273,7 @@ export function gzip(data, opts, cb) {
|
|
|
1125
1273
|
if (!cb)
|
|
1126
1274
|
cb = opts, opts = {};
|
|
1127
1275
|
if (typeof cb != 'function')
|
|
1128
|
-
|
|
1276
|
+
err(7);
|
|
1129
1277
|
return cbify(data, opts, [
|
|
1130
1278
|
bDflt,
|
|
1131
1279
|
gze,
|
|
@@ -1147,16 +1295,13 @@ export function gzipSync(data, opts) {
|
|
|
1147
1295
|
return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;
|
|
1148
1296
|
}
|
|
1149
1297
|
/**
|
|
1150
|
-
* Streaming GZIP decompression
|
|
1298
|
+
* Streaming single or multi-member GZIP decompression
|
|
1151
1299
|
*/
|
|
1152
1300
|
var Gunzip = /*#__PURE__*/ (function () {
|
|
1153
|
-
|
|
1154
|
-
* Creates a GUNZIP stream
|
|
1155
|
-
* @param cb The callback to call whenever data is inflated
|
|
1156
|
-
*/
|
|
1157
|
-
function Gunzip(cb) {
|
|
1301
|
+
function Gunzip(opts, cb) {
|
|
1158
1302
|
this.v = 1;
|
|
1159
|
-
|
|
1303
|
+
this.r = 0;
|
|
1304
|
+
Inflate.call(this, opts, cb);
|
|
1160
1305
|
}
|
|
1161
1306
|
/**
|
|
1162
1307
|
* Pushes a chunk to be GUNZIPped
|
|
@@ -1165,42 +1310,48 @@ var Gunzip = /*#__PURE__*/ (function () {
|
|
|
1165
1310
|
*/
|
|
1166
1311
|
Gunzip.prototype.push = function (chunk, final) {
|
|
1167
1312
|
Inflate.prototype.e.call(this, chunk);
|
|
1313
|
+
this.r += chunk.length;
|
|
1168
1314
|
if (this.v) {
|
|
1169
|
-
var
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
if (this.
|
|
1176
|
-
|
|
1177
|
-
|
|
1315
|
+
var p = this.p.subarray(this.v - 1);
|
|
1316
|
+
var s = p.length > 3 ? gzs(p) : 4;
|
|
1317
|
+
if (s > p.length) {
|
|
1318
|
+
if (!final)
|
|
1319
|
+
return;
|
|
1320
|
+
}
|
|
1321
|
+
else if (this.v > 1 && this.onmember) {
|
|
1322
|
+
this.onmember(this.r - p.length);
|
|
1323
|
+
}
|
|
1324
|
+
this.p = p.subarray(s), this.v = 0;
|
|
1178
1325
|
}
|
|
1179
1326
|
// necessary to prevent TS from using the closure value
|
|
1180
1327
|
// This allows for workerization to function correctly
|
|
1181
1328
|
Inflate.prototype.c.call(this, final);
|
|
1329
|
+
// process concatenated GZIP
|
|
1330
|
+
if (this.s.f && !this.s.l && !final) {
|
|
1331
|
+
this.v = shft(this.s.p) + 9;
|
|
1332
|
+
this.s = { i: 0 };
|
|
1333
|
+
this.o = new u8(0);
|
|
1334
|
+
this.push(new u8(0), final);
|
|
1335
|
+
}
|
|
1182
1336
|
};
|
|
1183
1337
|
return Gunzip;
|
|
1184
1338
|
}());
|
|
1185
1339
|
export { Gunzip };
|
|
1186
1340
|
/**
|
|
1187
|
-
* Asynchronous streaming GZIP decompression
|
|
1341
|
+
* Asynchronous streaming single or multi-member GZIP decompression
|
|
1188
1342
|
*/
|
|
1189
1343
|
var AsyncGunzip = /*#__PURE__*/ (function () {
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
* @param cb The callback to call whenever data is deflated
|
|
1193
|
-
*/
|
|
1194
|
-
function AsyncGunzip(cb) {
|
|
1195
|
-
this.ondata = cb;
|
|
1344
|
+
function AsyncGunzip(opts, cb) {
|
|
1345
|
+
var _this = this;
|
|
1196
1346
|
astrmify([
|
|
1197
1347
|
bInflt,
|
|
1198
1348
|
guze,
|
|
1199
1349
|
function () { return [astrm, Inflate, Gunzip]; }
|
|
1200
|
-
], this,
|
|
1201
|
-
var strm = new Gunzip();
|
|
1350
|
+
], this, StrmOpt.call(this, opts, cb), function (ev) {
|
|
1351
|
+
var strm = new Gunzip(ev.data);
|
|
1352
|
+
strm.onmember = function (offset) { return postMessage(offset); };
|
|
1202
1353
|
onmessage = astrm(strm);
|
|
1203
|
-
}, 9);
|
|
1354
|
+
}, 9, 0, function (offset) { return _this.onmember && _this.onmember(offset); });
|
|
1204
1355
|
}
|
|
1205
1356
|
return AsyncGunzip;
|
|
1206
1357
|
}());
|
|
@@ -1209,21 +1360,24 @@ export function gunzip(data, opts, cb) {
|
|
|
1209
1360
|
if (!cb)
|
|
1210
1361
|
cb = opts, opts = {};
|
|
1211
1362
|
if (typeof cb != 'function')
|
|
1212
|
-
|
|
1363
|
+
err(7);
|
|
1213
1364
|
return cbify(data, opts, [
|
|
1214
1365
|
bInflt,
|
|
1215
1366
|
guze,
|
|
1216
1367
|
function () { return [gunzipSync]; }
|
|
1217
|
-
], function (ev) { return pbf(gunzipSync(ev.data[0])); }, 3, cb);
|
|
1368
|
+
], function (ev) { return pbf(gunzipSync(ev.data[0], ev.data[1])); }, 3, cb);
|
|
1218
1369
|
}
|
|
1219
1370
|
/**
|
|
1220
1371
|
* Expands GZIP data
|
|
1221
1372
|
* @param data The data to decompress
|
|
1222
|
-
* @param
|
|
1373
|
+
* @param opts The decompression options
|
|
1223
1374
|
* @returns The decompressed version of the data
|
|
1224
1375
|
*/
|
|
1225
|
-
export function gunzipSync(data,
|
|
1226
|
-
|
|
1376
|
+
export function gunzipSync(data, opts) {
|
|
1377
|
+
var st = gzs(data);
|
|
1378
|
+
if (st + 8 > data.length)
|
|
1379
|
+
err(6, 'invalid gzip data');
|
|
1380
|
+
return inflt(data.subarray(st, -8), { i: 2 }, opts && opts.out || new u8(gzl(data)), opts && opts.dictionary);
|
|
1227
1381
|
}
|
|
1228
1382
|
/**
|
|
1229
1383
|
* Streaming Zlib compression
|
|
@@ -1240,17 +1394,24 @@ var Zlib = /*#__PURE__*/ (function () {
|
|
|
1240
1394
|
* @param final Whether this is the last chunk
|
|
1241
1395
|
*/
|
|
1242
1396
|
Zlib.prototype.push = function (chunk, final) {
|
|
1397
|
+
this.c.p(chunk);
|
|
1243
1398
|
Deflate.prototype.push.call(this, chunk, final);
|
|
1244
1399
|
};
|
|
1245
1400
|
Zlib.prototype.p = function (c, f) {
|
|
1246
|
-
this.
|
|
1247
|
-
var raw = dopt(c, this.o, this.v && 2, f && 4, !f);
|
|
1401
|
+
var raw = dopt(c, this.o, this.v && (this.o.dictionary ? 6 : 2), f && 4, this.s);
|
|
1248
1402
|
if (this.v)
|
|
1249
1403
|
zlh(raw, this.o), this.v = 0;
|
|
1250
1404
|
if (f)
|
|
1251
1405
|
wbytes(raw, raw.length - 4, this.c.d());
|
|
1252
1406
|
this.ondata(raw, f);
|
|
1253
1407
|
};
|
|
1408
|
+
/**
|
|
1409
|
+
* Flushes buffered uncompressed data. Useful to immediately retrieve the
|
|
1410
|
+
* zlibbed output for small inputs.
|
|
1411
|
+
*/
|
|
1412
|
+
Zlib.prototype.flush = function () {
|
|
1413
|
+
Deflate.prototype.flush.call(this);
|
|
1414
|
+
};
|
|
1254
1415
|
return Zlib;
|
|
1255
1416
|
}());
|
|
1256
1417
|
export { Zlib };
|
|
@@ -1263,10 +1424,10 @@ var AsyncZlib = /*#__PURE__*/ (function () {
|
|
|
1263
1424
|
bDflt,
|
|
1264
1425
|
zle,
|
|
1265
1426
|
function () { return [astrm, Deflate, Zlib]; }
|
|
1266
|
-
], this,
|
|
1427
|
+
], this, StrmOpt.call(this, opts, cb), function (ev) {
|
|
1267
1428
|
var strm = new Zlib(ev.data);
|
|
1268
1429
|
onmessage = astrm(strm);
|
|
1269
|
-
}, 10);
|
|
1430
|
+
}, 10, 1);
|
|
1270
1431
|
}
|
|
1271
1432
|
return AsyncZlib;
|
|
1272
1433
|
}());
|
|
@@ -1275,7 +1436,7 @@ export function zlib(data, opts, cb) {
|
|
|
1275
1436
|
if (!cb)
|
|
1276
1437
|
cb = opts, opts = {};
|
|
1277
1438
|
if (typeof cb != 'function')
|
|
1278
|
-
|
|
1439
|
+
err(7);
|
|
1279
1440
|
return cbify(data, opts, [
|
|
1280
1441
|
bDflt,
|
|
1281
1442
|
zle,
|
|
@@ -1293,20 +1454,16 @@ export function zlibSync(data, opts) {
|
|
|
1293
1454
|
opts = {};
|
|
1294
1455
|
var a = adler();
|
|
1295
1456
|
a.p(data);
|
|
1296
|
-
var d = dopt(data, opts, 2, 4);
|
|
1457
|
+
var d = dopt(data, opts, opts.dictionary ? 6 : 2, 4);
|
|
1297
1458
|
return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;
|
|
1298
1459
|
}
|
|
1299
1460
|
/**
|
|
1300
1461
|
* Streaming Zlib decompression
|
|
1301
1462
|
*/
|
|
1302
1463
|
var Unzlib = /*#__PURE__*/ (function () {
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
*/
|
|
1307
|
-
function Unzlib(cb) {
|
|
1308
|
-
this.v = 1;
|
|
1309
|
-
Inflate.call(this, cb);
|
|
1464
|
+
function Unzlib(opts, cb) {
|
|
1465
|
+
Inflate.call(this, opts, cb);
|
|
1466
|
+
this.v = opts && opts.dictionary ? 2 : 1;
|
|
1310
1467
|
}
|
|
1311
1468
|
/**
|
|
1312
1469
|
* Pushes a chunk to be unzlibbed
|
|
@@ -1316,13 +1473,13 @@ var Unzlib = /*#__PURE__*/ (function () {
|
|
|
1316
1473
|
Unzlib.prototype.push = function (chunk, final) {
|
|
1317
1474
|
Inflate.prototype.e.call(this, chunk);
|
|
1318
1475
|
if (this.v) {
|
|
1319
|
-
if (this.p.length <
|
|
1476
|
+
if (this.p.length < 6 && !final)
|
|
1320
1477
|
return;
|
|
1321
|
-
this.p = this.p.subarray(
|
|
1478
|
+
this.p = this.p.subarray(zls(this.p, this.v - 1)), this.v = 0;
|
|
1322
1479
|
}
|
|
1323
1480
|
if (final) {
|
|
1324
1481
|
if (this.p.length < 4)
|
|
1325
|
-
|
|
1482
|
+
err(6, 'invalid zlib data');
|
|
1326
1483
|
this.p = this.p.subarray(0, -4);
|
|
1327
1484
|
}
|
|
1328
1485
|
// necessary to prevent TS from using the closure value
|
|
@@ -1336,20 +1493,15 @@ export { Unzlib };
|
|
|
1336
1493
|
* Asynchronous streaming Zlib decompression
|
|
1337
1494
|
*/
|
|
1338
1495
|
var AsyncUnzlib = /*#__PURE__*/ (function () {
|
|
1339
|
-
|
|
1340
|
-
* Creates an asynchronous Zlib decompression stream
|
|
1341
|
-
* @param cb The callback to call whenever data is deflated
|
|
1342
|
-
*/
|
|
1343
|
-
function AsyncUnzlib(cb) {
|
|
1344
|
-
this.ondata = cb;
|
|
1496
|
+
function AsyncUnzlib(opts, cb) {
|
|
1345
1497
|
astrmify([
|
|
1346
1498
|
bInflt,
|
|
1347
1499
|
zule,
|
|
1348
1500
|
function () { return [astrm, Inflate, Unzlib]; }
|
|
1349
|
-
], this,
|
|
1350
|
-
var strm = new Unzlib();
|
|
1501
|
+
], this, StrmOpt.call(this, opts, cb), function (ev) {
|
|
1502
|
+
var strm = new Unzlib(ev.data);
|
|
1351
1503
|
onmessage = astrm(strm);
|
|
1352
|
-
}, 11);
|
|
1504
|
+
}, 11, 0);
|
|
1353
1505
|
}
|
|
1354
1506
|
return AsyncUnzlib;
|
|
1355
1507
|
}());
|
|
@@ -1358,40 +1510,43 @@ export function unzlib(data, opts, cb) {
|
|
|
1358
1510
|
if (!cb)
|
|
1359
1511
|
cb = opts, opts = {};
|
|
1360
1512
|
if (typeof cb != 'function')
|
|
1361
|
-
|
|
1513
|
+
err(7);
|
|
1362
1514
|
return cbify(data, opts, [
|
|
1363
1515
|
bInflt,
|
|
1364
1516
|
zule,
|
|
1365
1517
|
function () { return [unzlibSync]; }
|
|
1366
|
-
], function (ev) { return pbf(unzlibSync(ev.data[0],
|
|
1518
|
+
], function (ev) { return pbf(unzlibSync(ev.data[0], gopt(ev.data[1]))); }, 5, cb);
|
|
1367
1519
|
}
|
|
1368
1520
|
/**
|
|
1369
1521
|
* Expands Zlib data
|
|
1370
1522
|
* @param data The data to decompress
|
|
1371
|
-
* @param
|
|
1523
|
+
* @param opts The decompression options
|
|
1372
1524
|
* @returns The decompressed version of the data
|
|
1373
1525
|
*/
|
|
1374
|
-
export function unzlibSync(data,
|
|
1375
|
-
return inflt((
|
|
1526
|
+
export function unzlibSync(data, opts) {
|
|
1527
|
+
return inflt(data.subarray(zls(data, opts && opts.dictionary), -4), { i: 2 }, opts && opts.out, opts && opts.dictionary);
|
|
1376
1528
|
}
|
|
1377
1529
|
// Default algorithm for compression (used because having a known output size allows faster decompression)
|
|
1378
1530
|
export { gzip as compress, AsyncGzip as AsyncCompress };
|
|
1379
|
-
// Default algorithm for compression (used because having a known output size allows faster decompression)
|
|
1380
1531
|
export { gzipSync as compressSync, Gzip as Compress };
|
|
1381
1532
|
/**
|
|
1382
1533
|
* Streaming GZIP, Zlib, or raw DEFLATE decompression
|
|
1383
1534
|
*/
|
|
1384
1535
|
var Decompress = /*#__PURE__*/ (function () {
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
* @param cb The callback to call whenever data is decompressed
|
|
1388
|
-
*/
|
|
1389
|
-
function Decompress(cb) {
|
|
1536
|
+
function Decompress(opts, cb) {
|
|
1537
|
+
this.o = StrmOpt.call(this, opts, cb) || {};
|
|
1390
1538
|
this.G = Gunzip;
|
|
1391
1539
|
this.I = Inflate;
|
|
1392
1540
|
this.Z = Unzlib;
|
|
1393
|
-
this.ondata = cb;
|
|
1394
1541
|
}
|
|
1542
|
+
// init substream
|
|
1543
|
+
// overriden by AsyncDecompress
|
|
1544
|
+
Decompress.prototype.i = function () {
|
|
1545
|
+
var _this = this;
|
|
1546
|
+
this.s.ondata = function (dat, final) {
|
|
1547
|
+
_this.ondata(dat, final);
|
|
1548
|
+
};
|
|
1549
|
+
};
|
|
1395
1550
|
/**
|
|
1396
1551
|
* Pushes a chunk to be decompressed
|
|
1397
1552
|
* @param chunk The chunk to push
|
|
@@ -1399,7 +1554,7 @@ var Decompress = /*#__PURE__*/ (function () {
|
|
|
1399
1554
|
*/
|
|
1400
1555
|
Decompress.prototype.push = function (chunk, final) {
|
|
1401
1556
|
if (!this.ondata)
|
|
1402
|
-
|
|
1557
|
+
err(5);
|
|
1403
1558
|
if (!this.s) {
|
|
1404
1559
|
if (this.p && this.p.length) {
|
|
1405
1560
|
var n = new u8(this.p.length + chunk.length);
|
|
@@ -1408,13 +1563,12 @@ var Decompress = /*#__PURE__*/ (function () {
|
|
|
1408
1563
|
else
|
|
1409
1564
|
this.p = chunk;
|
|
1410
1565
|
if (this.p.length > 2) {
|
|
1411
|
-
var _this_1 = this;
|
|
1412
|
-
var cb = function () { _this_1.ondata.apply(_this_1, arguments); };
|
|
1413
1566
|
this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)
|
|
1414
|
-
? new this.G(
|
|
1567
|
+
? new this.G(this.o)
|
|
1415
1568
|
: ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))
|
|
1416
|
-
? new this.I(
|
|
1417
|
-
: new this.Z(
|
|
1569
|
+
? new this.I(this.o)
|
|
1570
|
+
: new this.Z(this.o);
|
|
1571
|
+
this.i();
|
|
1418
1572
|
this.s.push(this.p, final);
|
|
1419
1573
|
this.p = null;
|
|
1420
1574
|
}
|
|
@@ -1429,22 +1583,31 @@ export { Decompress };
|
|
|
1429
1583
|
* Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression
|
|
1430
1584
|
*/
|
|
1431
1585
|
var AsyncDecompress = /*#__PURE__*/ (function () {
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
*/
|
|
1436
|
-
function AsyncDecompress(cb) {
|
|
1586
|
+
function AsyncDecompress(opts, cb) {
|
|
1587
|
+
Decompress.call(this, opts, cb);
|
|
1588
|
+
this.queuedSize = 0;
|
|
1437
1589
|
this.G = AsyncGunzip;
|
|
1438
1590
|
this.I = AsyncInflate;
|
|
1439
1591
|
this.Z = AsyncUnzlib;
|
|
1440
|
-
this.ondata = cb;
|
|
1441
1592
|
}
|
|
1593
|
+
AsyncDecompress.prototype.i = function () {
|
|
1594
|
+
var _this = this;
|
|
1595
|
+
this.s.ondata = function (err, dat, final) {
|
|
1596
|
+
_this.ondata(err, dat, final);
|
|
1597
|
+
};
|
|
1598
|
+
this.s.ondrain = function (size) {
|
|
1599
|
+
_this.queuedSize -= size;
|
|
1600
|
+
if (_this.ondrain)
|
|
1601
|
+
_this.ondrain(size);
|
|
1602
|
+
};
|
|
1603
|
+
};
|
|
1442
1604
|
/**
|
|
1443
1605
|
* Pushes a chunk to be decompressed
|
|
1444
1606
|
* @param chunk The chunk to push
|
|
1445
1607
|
* @param final Whether this is the last chunk
|
|
1446
1608
|
*/
|
|
1447
1609
|
AsyncDecompress.prototype.push = function (chunk, final) {
|
|
1610
|
+
this.queuedSize += chunk.length;
|
|
1448
1611
|
Decompress.prototype.push.call(this, chunk, final);
|
|
1449
1612
|
};
|
|
1450
1613
|
return AsyncDecompress;
|
|
@@ -1454,7 +1617,7 @@ export function decompress(data, opts, cb) {
|
|
|
1454
1617
|
if (!cb)
|
|
1455
1618
|
cb = opts, opts = {};
|
|
1456
1619
|
if (typeof cb != 'function')
|
|
1457
|
-
|
|
1620
|
+
err(7);
|
|
1458
1621
|
return (data[0] == 31 && data[1] == 139 && data[2] == 8)
|
|
1459
1622
|
? gunzip(data, opts, cb)
|
|
1460
1623
|
: ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))
|
|
@@ -1464,26 +1627,28 @@ export function decompress(data, opts, cb) {
|
|
|
1464
1627
|
/**
|
|
1465
1628
|
* Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format
|
|
1466
1629
|
* @param data The data to decompress
|
|
1467
|
-
* @param
|
|
1630
|
+
* @param opts The decompression options
|
|
1468
1631
|
* @returns The decompressed version of the data
|
|
1469
1632
|
*/
|
|
1470
|
-
export function decompressSync(data,
|
|
1633
|
+
export function decompressSync(data, opts) {
|
|
1471
1634
|
return (data[0] == 31 && data[1] == 139 && data[2] == 8)
|
|
1472
|
-
? gunzipSync(data,
|
|
1635
|
+
? gunzipSync(data, opts)
|
|
1473
1636
|
: ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))
|
|
1474
|
-
? inflateSync(data,
|
|
1475
|
-
: unzlibSync(data,
|
|
1637
|
+
? inflateSync(data, opts)
|
|
1638
|
+
: unzlibSync(data, opts);
|
|
1476
1639
|
}
|
|
1477
1640
|
// flatten a directory structure
|
|
1478
1641
|
var fltn = function (d, p, t, o) {
|
|
1479
1642
|
for (var k in d) {
|
|
1480
|
-
var val = d[k], n = p + k;
|
|
1643
|
+
var val = d[k], n = p + k, op = o;
|
|
1644
|
+
if (Array.isArray(val))
|
|
1645
|
+
op = mrg(o, val[1]), val = val[0];
|
|
1481
1646
|
if (val instanceof u8)
|
|
1482
|
-
t[n] = [val,
|
|
1483
|
-
else
|
|
1484
|
-
t[n] = [
|
|
1485
|
-
|
|
1486
|
-
|
|
1647
|
+
t[n] = [val, op];
|
|
1648
|
+
else {
|
|
1649
|
+
t[n += '/'] = [new u8(0), op];
|
|
1650
|
+
fltn(val, n, t, o);
|
|
1651
|
+
}
|
|
1487
1652
|
}
|
|
1488
1653
|
};
|
|
1489
1654
|
// text encoder
|
|
@@ -1503,7 +1668,7 @@ var dutf8 = function (d) {
|
|
|
1503
1668
|
var c = d[i++];
|
|
1504
1669
|
var eb = (c > 127) + (c > 223) + (c > 239);
|
|
1505
1670
|
if (i + eb > d.length)
|
|
1506
|
-
return
|
|
1671
|
+
return { s: r, r: slc(d, i - 1) };
|
|
1507
1672
|
if (!eb)
|
|
1508
1673
|
r += String.fromCharCode(c);
|
|
1509
1674
|
else if (eb == 3) {
|
|
@@ -1538,31 +1703,31 @@ var DecodeUTF8 = /*#__PURE__*/ (function () {
|
|
|
1538
1703
|
*/
|
|
1539
1704
|
DecodeUTF8.prototype.push = function (chunk, final) {
|
|
1540
1705
|
if (!this.ondata)
|
|
1541
|
-
|
|
1706
|
+
err(5);
|
|
1542
1707
|
final = !!final;
|
|
1543
1708
|
if (this.t) {
|
|
1544
1709
|
this.ondata(this.t.decode(chunk, { stream: true }), final);
|
|
1545
1710
|
if (final) {
|
|
1546
1711
|
if (this.t.decode().length)
|
|
1547
|
-
|
|
1712
|
+
err(8);
|
|
1548
1713
|
this.t = null;
|
|
1549
1714
|
}
|
|
1550
1715
|
return;
|
|
1551
1716
|
}
|
|
1552
1717
|
if (!this.p)
|
|
1553
|
-
|
|
1718
|
+
err(4);
|
|
1554
1719
|
var dat = new u8(this.p.length + chunk.length);
|
|
1555
1720
|
dat.set(this.p);
|
|
1556
1721
|
dat.set(chunk, this.p.length);
|
|
1557
|
-
var _a = dutf8(dat),
|
|
1722
|
+
var _a = dutf8(dat), s = _a.s, r = _a.r;
|
|
1558
1723
|
if (final) {
|
|
1559
|
-
if (
|
|
1560
|
-
|
|
1724
|
+
if (r.length)
|
|
1725
|
+
err(8);
|
|
1561
1726
|
this.p = null;
|
|
1562
1727
|
}
|
|
1563
1728
|
else
|
|
1564
|
-
this.p =
|
|
1565
|
-
this.ondata(
|
|
1729
|
+
this.p = r;
|
|
1730
|
+
this.ondata(s, final);
|
|
1566
1731
|
};
|
|
1567
1732
|
return DecodeUTF8;
|
|
1568
1733
|
}());
|
|
@@ -1585,9 +1750,9 @@ var EncodeUTF8 = /*#__PURE__*/ (function () {
|
|
|
1585
1750
|
*/
|
|
1586
1751
|
EncodeUTF8.prototype.push = function (chunk, final) {
|
|
1587
1752
|
if (!this.ondata)
|
|
1588
|
-
|
|
1753
|
+
err(5);
|
|
1589
1754
|
if (this.d)
|
|
1590
|
-
|
|
1755
|
+
err(4);
|
|
1591
1756
|
this.ondata(strToU8(chunk), this.d = final || false);
|
|
1592
1757
|
};
|
|
1593
1758
|
return EncodeUTF8;
|
|
@@ -1646,13 +1811,14 @@ export function strFromU8(dat, latin1) {
|
|
|
1646
1811
|
r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));
|
|
1647
1812
|
return r;
|
|
1648
1813
|
}
|
|
1649
|
-
else if (td)
|
|
1814
|
+
else if (td) {
|
|
1650
1815
|
return td.decode(dat);
|
|
1816
|
+
}
|
|
1651
1817
|
else {
|
|
1652
|
-
var _a = dutf8(dat),
|
|
1653
|
-
if (
|
|
1654
|
-
|
|
1655
|
-
return
|
|
1818
|
+
var _a = dutf8(dat), s = _a.s, r = _a.r;
|
|
1819
|
+
if (r.length)
|
|
1820
|
+
err(8);
|
|
1821
|
+
return s;
|
|
1656
1822
|
}
|
|
1657
1823
|
}
|
|
1658
1824
|
;
|
|
@@ -1679,7 +1845,7 @@ var exfl = function (ex) {
|
|
|
1679
1845
|
for (var k in ex) {
|
|
1680
1846
|
var l = ex[k].length;
|
|
1681
1847
|
if (l > 65535)
|
|
1682
|
-
|
|
1848
|
+
err(9);
|
|
1683
1849
|
le += l + 4;
|
|
1684
1850
|
}
|
|
1685
1851
|
}
|
|
@@ -1693,15 +1859,15 @@ var wzh = function (d, b, f, fn, u, c, ce, co) {
|
|
|
1693
1859
|
if (ce != null)
|
|
1694
1860
|
d[b++] = 20, d[b++] = f.os;
|
|
1695
1861
|
d[b] = 20, b += 2; // spec compliance? what's that?
|
|
1696
|
-
d[b++] = (f.flag << 1) | (c
|
|
1862
|
+
d[b++] = (f.flag << 1) | (c < 0 && 8), d[b++] = u && 8;
|
|
1697
1863
|
d[b++] = f.compression & 255, d[b++] = f.compression >> 8;
|
|
1698
1864
|
var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980;
|
|
1699
1865
|
if (y < 0 || y > 119)
|
|
1700
|
-
|
|
1701
|
-
wbytes(d, b, (y << 25) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds()
|
|
1702
|
-
if (c !=
|
|
1866
|
+
err(10);
|
|
1867
|
+
wbytes(d, b, (y << 25) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >> 1)), b += 4;
|
|
1868
|
+
if (c != -1) {
|
|
1703
1869
|
wbytes(d, b, f.crc);
|
|
1704
|
-
wbytes(d, b + 4, c);
|
|
1870
|
+
wbytes(d, b + 4, c < 0 ? -c - 2 : c);
|
|
1705
1871
|
wbytes(d, b + 8, f.size);
|
|
1706
1872
|
}
|
|
1707
1873
|
wbytes(d, b + 12, fl);
|
|
@@ -1767,7 +1933,7 @@ var ZipPassThrough = /*#__PURE__*/ (function () {
|
|
|
1767
1933
|
*/
|
|
1768
1934
|
ZipPassThrough.prototype.push = function (chunk, final) {
|
|
1769
1935
|
if (!this.ondata)
|
|
1770
|
-
|
|
1936
|
+
err(5);
|
|
1771
1937
|
this.c.p(chunk);
|
|
1772
1938
|
this.size += chunk.length;
|
|
1773
1939
|
if (final)
|
|
@@ -1789,12 +1955,12 @@ var ZipDeflate = /*#__PURE__*/ (function () {
|
|
|
1789
1955
|
* @param opts The compression options
|
|
1790
1956
|
*/
|
|
1791
1957
|
function ZipDeflate(filename, opts) {
|
|
1792
|
-
var
|
|
1958
|
+
var _this = this;
|
|
1793
1959
|
if (!opts)
|
|
1794
1960
|
opts = {};
|
|
1795
1961
|
ZipPassThrough.call(this, filename);
|
|
1796
1962
|
this.d = new Deflate(opts, function (dat, final) {
|
|
1797
|
-
|
|
1963
|
+
_this.ondata(null, dat, final);
|
|
1798
1964
|
});
|
|
1799
1965
|
this.compression = 8;
|
|
1800
1966
|
this.flag = dbf(opts.level);
|
|
@@ -1823,17 +1989,17 @@ export { ZipDeflate };
|
|
|
1823
1989
|
*/
|
|
1824
1990
|
var AsyncZipDeflate = /*#__PURE__*/ (function () {
|
|
1825
1991
|
/**
|
|
1826
|
-
* Creates
|
|
1992
|
+
* Creates an asynchronous DEFLATE stream that can be added to ZIP archives
|
|
1827
1993
|
* @param filename The filename to associate with this data stream
|
|
1828
1994
|
* @param opts The compression options
|
|
1829
1995
|
*/
|
|
1830
1996
|
function AsyncZipDeflate(filename, opts) {
|
|
1831
|
-
var
|
|
1997
|
+
var _this = this;
|
|
1832
1998
|
if (!opts)
|
|
1833
1999
|
opts = {};
|
|
1834
2000
|
ZipPassThrough.call(this, filename);
|
|
1835
2001
|
this.d = new AsyncDeflate(opts, function (err, dat, final) {
|
|
1836
|
-
|
|
2002
|
+
_this.ondata(err, dat, final);
|
|
1837
2003
|
});
|
|
1838
2004
|
this.compression = 8;
|
|
1839
2005
|
this.flag = dbf(opts.level);
|
|
@@ -1873,74 +2039,79 @@ var Zip = /*#__PURE__*/ (function () {
|
|
|
1873
2039
|
* @param file The file stream to add
|
|
1874
2040
|
*/
|
|
1875
2041
|
Zip.prototype.add = function (file) {
|
|
1876
|
-
var
|
|
2042
|
+
var _this = this;
|
|
2043
|
+
if (!this.ondata)
|
|
2044
|
+
err(5);
|
|
2045
|
+
// finishing or finished
|
|
1877
2046
|
if (this.d & 2)
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
|
|
1885
|
-
|
|
1886
|
-
|
|
1887
|
-
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
var
|
|
1891
|
-
|
|
1892
|
-
|
|
1893
|
-
chks = [];
|
|
1894
|
-
};
|
|
1895
|
-
var tr = this.d;
|
|
1896
|
-
this.d = 0;
|
|
1897
|
-
var ind = this.u.length;
|
|
1898
|
-
var uf = mrg(file, {
|
|
1899
|
-
f: f,
|
|
1900
|
-
u: u,
|
|
1901
|
-
o: o,
|
|
1902
|
-
t: function () {
|
|
1903
|
-
if (file.terminate)
|
|
1904
|
-
file.terminate();
|
|
1905
|
-
},
|
|
1906
|
-
r: function () {
|
|
1907
|
-
pAll();
|
|
1908
|
-
if (tr) {
|
|
1909
|
-
var nxt = _this_1.u[ind + 1];
|
|
1910
|
-
if (nxt)
|
|
1911
|
-
nxt.r();
|
|
1912
|
-
else
|
|
1913
|
-
_this_1.d = 1;
|
|
2047
|
+
this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, false);
|
|
2048
|
+
else {
|
|
2049
|
+
var f = strToU8(file.filename), fl_1 = f.length;
|
|
2050
|
+
var com = file.comment, o = com && strToU8(com);
|
|
2051
|
+
var u = fl_1 != file.filename.length || (o && (com.length != o.length));
|
|
2052
|
+
var hl_1 = fl_1 + exfl(file.extra) + 30;
|
|
2053
|
+
if (fl_1 > 65535)
|
|
2054
|
+
this.ondata(err(11, 0, 1), null, false);
|
|
2055
|
+
var header = new u8(hl_1);
|
|
2056
|
+
wzh(header, 0, file, f, u, -1);
|
|
2057
|
+
var chks_1 = [header];
|
|
2058
|
+
var pAll_1 = function () {
|
|
2059
|
+
for (var _i = 0, chks_2 = chks_1; _i < chks_2.length; _i++) {
|
|
2060
|
+
var chk = chks_2[_i];
|
|
2061
|
+
_this.ondata(null, chk, false);
|
|
1914
2062
|
}
|
|
1915
|
-
|
|
1916
|
-
}
|
|
1917
|
-
|
|
1918
|
-
|
|
1919
|
-
|
|
1920
|
-
|
|
1921
|
-
|
|
1922
|
-
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
|
|
1931
|
-
|
|
1932
|
-
|
|
1933
|
-
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
|
|
1937
|
-
|
|
2063
|
+
chks_1 = [];
|
|
2064
|
+
};
|
|
2065
|
+
var tr_1 = this.d;
|
|
2066
|
+
this.d = 0;
|
|
2067
|
+
var ind_1 = this.u.length;
|
|
2068
|
+
var uf_1 = mrg(file, {
|
|
2069
|
+
f: f,
|
|
2070
|
+
u: u,
|
|
2071
|
+
o: o,
|
|
2072
|
+
t: function () {
|
|
2073
|
+
if (file.terminate)
|
|
2074
|
+
file.terminate();
|
|
2075
|
+
},
|
|
2076
|
+
r: function () {
|
|
2077
|
+
pAll_1();
|
|
2078
|
+
if (tr_1) {
|
|
2079
|
+
var nxt = _this.u[ind_1 + 1];
|
|
2080
|
+
if (nxt)
|
|
2081
|
+
nxt.r();
|
|
2082
|
+
else
|
|
2083
|
+
_this.d = 1;
|
|
2084
|
+
}
|
|
2085
|
+
tr_1 = 1;
|
|
1938
2086
|
}
|
|
1939
|
-
|
|
1940
|
-
|
|
1941
|
-
|
|
1942
|
-
|
|
1943
|
-
|
|
2087
|
+
});
|
|
2088
|
+
var cl_1 = 0;
|
|
2089
|
+
file.ondata = function (err, dat, final) {
|
|
2090
|
+
if (err) {
|
|
2091
|
+
_this.ondata(err, dat, final);
|
|
2092
|
+
_this.terminate();
|
|
2093
|
+
}
|
|
2094
|
+
else {
|
|
2095
|
+
cl_1 += dat.length;
|
|
2096
|
+
chks_1.push(dat);
|
|
2097
|
+
if (final) {
|
|
2098
|
+
var dd = new u8(16);
|
|
2099
|
+
wbytes(dd, 0, 0x8074B50);
|
|
2100
|
+
wbytes(dd, 4, file.crc);
|
|
2101
|
+
wbytes(dd, 8, cl_1);
|
|
2102
|
+
wbytes(dd, 12, file.size);
|
|
2103
|
+
chks_1.push(dd);
|
|
2104
|
+
uf_1.c = cl_1, uf_1.b = hl_1 + cl_1 + 16, uf_1.crc = file.crc, uf_1.size = file.size;
|
|
2105
|
+
if (tr_1)
|
|
2106
|
+
uf_1.r();
|
|
2107
|
+
tr_1 = 1;
|
|
2108
|
+
}
|
|
2109
|
+
else if (tr_1)
|
|
2110
|
+
pAll_1();
|
|
2111
|
+
}
|
|
2112
|
+
};
|
|
2113
|
+
this.u.push(uf_1);
|
|
2114
|
+
}
|
|
1944
2115
|
};
|
|
1945
2116
|
/**
|
|
1946
2117
|
* Ends the process of adding files and prepares to emit the final chunks.
|
|
@@ -1948,21 +2119,20 @@ var Zip = /*#__PURE__*/ (function () {
|
|
|
1948
2119
|
* ZIP file to work properly.
|
|
1949
2120
|
*/
|
|
1950
2121
|
Zip.prototype.end = function () {
|
|
1951
|
-
var
|
|
2122
|
+
var _this = this;
|
|
1952
2123
|
if (this.d & 2) {
|
|
1953
|
-
|
|
1954
|
-
|
|
1955
|
-
throw 'stream finished';
|
|
2124
|
+
this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, true);
|
|
2125
|
+
return;
|
|
1956
2126
|
}
|
|
1957
2127
|
if (this.d)
|
|
1958
2128
|
this.e();
|
|
1959
2129
|
else
|
|
1960
2130
|
this.u.push({
|
|
1961
2131
|
r: function () {
|
|
1962
|
-
if (!(
|
|
2132
|
+
if (!(_this.d & 1))
|
|
1963
2133
|
return;
|
|
1964
|
-
|
|
1965
|
-
|
|
2134
|
+
_this.u.splice(-1, 1);
|
|
2135
|
+
_this.e();
|
|
1966
2136
|
},
|
|
1967
2137
|
t: function () { }
|
|
1968
2138
|
});
|
|
@@ -1977,7 +2147,7 @@ var Zip = /*#__PURE__*/ (function () {
|
|
|
1977
2147
|
var out = new u8(tl + 22);
|
|
1978
2148
|
for (var _b = 0, _c = this.u; _b < _c.length; _b++) {
|
|
1979
2149
|
var f = _c[_b];
|
|
1980
|
-
wzh(out, bt, f, f.f, f.u, f.c, l, f.o);
|
|
2150
|
+
wzh(out, bt, f, f.f, f.u, -f.c - 2, l, f.o);
|
|
1981
2151
|
bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b;
|
|
1982
2152
|
}
|
|
1983
2153
|
wzf(out, bt, this.u.length, tl, l);
|
|
@@ -2002,7 +2172,7 @@ export function zip(data, opts, cb) {
|
|
|
2002
2172
|
if (!cb)
|
|
2003
2173
|
cb = opts, opts = {};
|
|
2004
2174
|
if (typeof cb != 'function')
|
|
2005
|
-
|
|
2175
|
+
err(7);
|
|
2006
2176
|
var r = {};
|
|
2007
2177
|
fltn(data, '', r, opts);
|
|
2008
2178
|
var k = Object.keys(r);
|
|
@@ -2013,6 +2183,10 @@ export function zip(data, opts, cb) {
|
|
|
2013
2183
|
for (var i = 0; i < term.length; ++i)
|
|
2014
2184
|
term[i]();
|
|
2015
2185
|
};
|
|
2186
|
+
var cbd = function (a, b) {
|
|
2187
|
+
mt(function () { cb(a, b); });
|
|
2188
|
+
};
|
|
2189
|
+
mt(function () { cbd = cb; });
|
|
2016
2190
|
var cbf = function () {
|
|
2017
2191
|
var out = new u8(tot + 22), oe = o, cdl = tot - o;
|
|
2018
2192
|
tot = 0;
|
|
@@ -2027,11 +2201,11 @@ export function zip(data, opts, cb) {
|
|
|
2027
2201
|
wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l;
|
|
2028
2202
|
}
|
|
2029
2203
|
catch (e) {
|
|
2030
|
-
return
|
|
2204
|
+
return cbd(e, null);
|
|
2031
2205
|
}
|
|
2032
2206
|
}
|
|
2033
2207
|
wzf(out, o, files.length, cdl, oe);
|
|
2034
|
-
|
|
2208
|
+
cbd(null, out);
|
|
2035
2209
|
};
|
|
2036
2210
|
if (!lft)
|
|
2037
2211
|
cbf();
|
|
@@ -2047,7 +2221,7 @@ export function zip(data, opts, cb) {
|
|
|
2047
2221
|
var cbl = function (e, d) {
|
|
2048
2222
|
if (e) {
|
|
2049
2223
|
tAll();
|
|
2050
|
-
|
|
2224
|
+
cbd(e, null);
|
|
2051
2225
|
}
|
|
2052
2226
|
else {
|
|
2053
2227
|
var l = d.length;
|
|
@@ -2067,7 +2241,7 @@ export function zip(data, opts, cb) {
|
|
|
2067
2241
|
}
|
|
2068
2242
|
};
|
|
2069
2243
|
if (s > 65535)
|
|
2070
|
-
cbl(
|
|
2244
|
+
cbl(err(11, 0, 1), null);
|
|
2071
2245
|
if (!compression)
|
|
2072
2246
|
cbl(null, file);
|
|
2073
2247
|
else if (size < 160000) {
|
|
@@ -2109,7 +2283,7 @@ export function zipSync(data, opts) {
|
|
|
2109
2283
|
var com = p.comment, m = com && strToU8(com), ms = m && m.length;
|
|
2110
2284
|
var exl = exfl(p.extra);
|
|
2111
2285
|
if (s > 65535)
|
|
2112
|
-
|
|
2286
|
+
err(11);
|
|
2113
2287
|
var d = compression ? deflateSync(file, p) : file, l = d.length;
|
|
2114
2288
|
var c = crc();
|
|
2115
2289
|
c.p(file);
|
|
@@ -2159,9 +2333,9 @@ var UnzipInflate = /*#__PURE__*/ (function () {
|
|
|
2159
2333
|
* Creates a DEFLATE decompression that can be used in ZIP archives
|
|
2160
2334
|
*/
|
|
2161
2335
|
function UnzipInflate() {
|
|
2162
|
-
var
|
|
2336
|
+
var _this = this;
|
|
2163
2337
|
this.i = new Inflate(function (dat, final) {
|
|
2164
|
-
|
|
2338
|
+
_this.ondata(null, dat, final);
|
|
2165
2339
|
});
|
|
2166
2340
|
}
|
|
2167
2341
|
UnzipInflate.prototype.push = function (data, final) {
|
|
@@ -2169,7 +2343,7 @@ var UnzipInflate = /*#__PURE__*/ (function () {
|
|
|
2169
2343
|
this.i.push(data, final);
|
|
2170
2344
|
}
|
|
2171
2345
|
catch (e) {
|
|
2172
|
-
this.ondata(e,
|
|
2346
|
+
this.ondata(e, null, final);
|
|
2173
2347
|
}
|
|
2174
2348
|
};
|
|
2175
2349
|
UnzipInflate.compression = 8;
|
|
@@ -2184,15 +2358,15 @@ var AsyncUnzipInflate = /*#__PURE__*/ (function () {
|
|
|
2184
2358
|
* Creates a DEFLATE decompression that can be used in ZIP archives
|
|
2185
2359
|
*/
|
|
2186
2360
|
function AsyncUnzipInflate(_, sz) {
|
|
2187
|
-
var
|
|
2361
|
+
var _this = this;
|
|
2188
2362
|
if (sz < 320000) {
|
|
2189
2363
|
this.i = new Inflate(function (dat, final) {
|
|
2190
|
-
|
|
2364
|
+
_this.ondata(null, dat, final);
|
|
2191
2365
|
});
|
|
2192
2366
|
}
|
|
2193
2367
|
else {
|
|
2194
2368
|
this.i = new AsyncInflate(function (err, dat, final) {
|
|
2195
|
-
|
|
2369
|
+
_this.ondata(err, dat, final);
|
|
2196
2370
|
});
|
|
2197
2371
|
this.terminate = this.i.terminate;
|
|
2198
2372
|
}
|
|
@@ -2228,11 +2402,11 @@ var Unzip = /*#__PURE__*/ (function () {
|
|
|
2228
2402
|
* @param final Whether this is the last chunk
|
|
2229
2403
|
*/
|
|
2230
2404
|
Unzip.prototype.push = function (chunk, final) {
|
|
2231
|
-
var
|
|
2405
|
+
var _this = this;
|
|
2232
2406
|
if (!this.onfile)
|
|
2233
|
-
|
|
2407
|
+
err(5);
|
|
2234
2408
|
if (!this.p)
|
|
2235
|
-
|
|
2409
|
+
err(4);
|
|
2236
2410
|
if (this.c > 0) {
|
|
2237
2411
|
var len = Math.min(this.c, chunk.length);
|
|
2238
2412
|
var toAdd = chunk.subarray(0, len);
|
|
@@ -2265,8 +2439,8 @@ var Unzip = /*#__PURE__*/ (function () {
|
|
|
2265
2439
|
this_1.c = 0;
|
|
2266
2440
|
var bf = b2(buf, i + 6), cmp_1 = b2(buf, i + 8), u = bf & 2048, dd = bf & 8, fnl = b2(buf, i + 26), es = b2(buf, i + 28);
|
|
2267
2441
|
if (l > i + 30 + fnl + es) {
|
|
2268
|
-
var
|
|
2269
|
-
this_1.k.unshift(
|
|
2442
|
+
var chks_3 = [];
|
|
2443
|
+
this_1.k.unshift(chks_3);
|
|
2270
2444
|
f = 2;
|
|
2271
2445
|
var sc_1 = b4(buf, i + 18), su_1 = b4(buf, i + 22);
|
|
2272
2446
|
var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u);
|
|
@@ -2283,21 +2457,21 @@ var Unzip = /*#__PURE__*/ (function () {
|
|
|
2283
2457
|
compression: cmp_1,
|
|
2284
2458
|
start: function () {
|
|
2285
2459
|
if (!file_1.ondata)
|
|
2286
|
-
|
|
2460
|
+
err(5);
|
|
2287
2461
|
if (!sc_1)
|
|
2288
2462
|
file_1.ondata(null, et, true);
|
|
2289
2463
|
else {
|
|
2290
|
-
var ctr =
|
|
2464
|
+
var ctr = _this.o[cmp_1];
|
|
2291
2465
|
if (!ctr)
|
|
2292
|
-
|
|
2466
|
+
file_1.ondata(err(14, 'unknown compression type ' + cmp_1, 1), null, false);
|
|
2293
2467
|
d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1);
|
|
2294
2468
|
d_1.ondata = function (err, dat, final) { file_1.ondata(err, dat, final); };
|
|
2295
|
-
for (var _i = 0,
|
|
2296
|
-
var dat =
|
|
2469
|
+
for (var _i = 0, chks_4 = chks_3; _i < chks_4.length; _i++) {
|
|
2470
|
+
var dat = chks_4[_i];
|
|
2297
2471
|
d_1.push(dat, false);
|
|
2298
2472
|
}
|
|
2299
|
-
if (
|
|
2300
|
-
|
|
2473
|
+
if (_this.k[0] == chks_3 && _this.c)
|
|
2474
|
+
_this.d = d_1;
|
|
2301
2475
|
else
|
|
2302
2476
|
d_1.push(et, true);
|
|
2303
2477
|
}
|
|
@@ -2344,7 +2518,7 @@ var Unzip = /*#__PURE__*/ (function () {
|
|
|
2344
2518
|
}
|
|
2345
2519
|
if (final) {
|
|
2346
2520
|
if (this.c)
|
|
2347
|
-
|
|
2521
|
+
err(13);
|
|
2348
2522
|
this.p = null;
|
|
2349
2523
|
}
|
|
2350
2524
|
};
|
|
@@ -2359,116 +2533,140 @@ var Unzip = /*#__PURE__*/ (function () {
|
|
|
2359
2533
|
return Unzip;
|
|
2360
2534
|
}());
|
|
2361
2535
|
export { Unzip };
|
|
2362
|
-
|
|
2363
|
-
|
|
2364
|
-
|
|
2365
|
-
|
|
2366
|
-
* @returns A function that can be used to immediately terminate the unzipping
|
|
2367
|
-
*/
|
|
2368
|
-
export function unzip(data, cb) {
|
|
2536
|
+
var mt = typeof queueMicrotask == 'function' ? queueMicrotask : typeof setTimeout == 'function' ? setTimeout : function (fn) { fn(); };
|
|
2537
|
+
export function unzip(data, opts, cb) {
|
|
2538
|
+
if (!cb)
|
|
2539
|
+
cb = opts, opts = {};
|
|
2369
2540
|
if (typeof cb != 'function')
|
|
2370
|
-
|
|
2541
|
+
err(7);
|
|
2371
2542
|
var term = [];
|
|
2372
2543
|
var tAll = function () {
|
|
2373
2544
|
for (var i = 0; i < term.length; ++i)
|
|
2374
2545
|
term[i]();
|
|
2375
2546
|
};
|
|
2376
2547
|
var files = {};
|
|
2548
|
+
var cbd = function (a, b) {
|
|
2549
|
+
mt(function () { cb(a, b); });
|
|
2550
|
+
};
|
|
2551
|
+
mt(function () { cbd = cb; });
|
|
2377
2552
|
var e = data.length - 22;
|
|
2378
2553
|
for (; b4(data, e) != 0x6054B50; --e) {
|
|
2379
2554
|
if (!e || data.length - e > 65558) {
|
|
2380
|
-
|
|
2381
|
-
return;
|
|
2555
|
+
cbd(err(13, 0, 1), null);
|
|
2556
|
+
return tAll;
|
|
2382
2557
|
}
|
|
2383
2558
|
}
|
|
2384
2559
|
;
|
|
2385
2560
|
var lft = b2(data, e + 8);
|
|
2386
|
-
if (
|
|
2387
|
-
|
|
2388
|
-
|
|
2389
|
-
|
|
2390
|
-
|
|
2391
|
-
|
|
2392
|
-
|
|
2393
|
-
|
|
2394
|
-
|
|
2395
|
-
|
|
2396
|
-
}
|
|
2397
|
-
c = lft = b4(data, e + 32);
|
|
2398
|
-
o = b4(data, e + 48);
|
|
2399
|
-
}
|
|
2400
|
-
var _loop_3 = function (i) {
|
|
2401
|
-
var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);
|
|
2402
|
-
o = no;
|
|
2403
|
-
var cbl = function (e, d) {
|
|
2404
|
-
if (e) {
|
|
2405
|
-
tAll();
|
|
2406
|
-
cb(e, null);
|
|
2561
|
+
if (lft) {
|
|
2562
|
+
var c = lft;
|
|
2563
|
+
var o = b4(data, e + 16);
|
|
2564
|
+
var z = o == 4294967295 || c == 65535;
|
|
2565
|
+
if (z) {
|
|
2566
|
+
var ze = b4(data, e - 12);
|
|
2567
|
+
z = b4(data, ze) == 0x6064B50;
|
|
2568
|
+
if (z) {
|
|
2569
|
+
c = lft = b4(data, ze + 32);
|
|
2570
|
+
o = b4(data, ze + 48);
|
|
2407
2571
|
}
|
|
2408
|
-
|
|
2409
|
-
|
|
2410
|
-
|
|
2411
|
-
|
|
2412
|
-
|
|
2413
|
-
|
|
2414
|
-
|
|
2415
|
-
|
|
2416
|
-
|
|
2417
|
-
var infl = data.subarray(b, b + sc);
|
|
2418
|
-
if (sc < 320000) {
|
|
2419
|
-
try {
|
|
2420
|
-
cbl(null, inflateSync(infl, new u8(su)));
|
|
2572
|
+
}
|
|
2573
|
+
var fltr = opts && opts.filter;
|
|
2574
|
+
var _loop_3 = function (i) {
|
|
2575
|
+
var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);
|
|
2576
|
+
o = no;
|
|
2577
|
+
var cbl = function (e, d) {
|
|
2578
|
+
if (e) {
|
|
2579
|
+
tAll();
|
|
2580
|
+
cbd(e, null);
|
|
2421
2581
|
}
|
|
2422
|
-
|
|
2423
|
-
|
|
2582
|
+
else {
|
|
2583
|
+
if (d)
|
|
2584
|
+
files[fn] = d;
|
|
2585
|
+
if (!--lft)
|
|
2586
|
+
cbd(null, files);
|
|
2424
2587
|
}
|
|
2588
|
+
};
|
|
2589
|
+
if (!fltr || fltr({
|
|
2590
|
+
name: fn,
|
|
2591
|
+
size: sc,
|
|
2592
|
+
originalSize: su,
|
|
2593
|
+
compression: c_1
|
|
2594
|
+
})) {
|
|
2595
|
+
if (!c_1)
|
|
2596
|
+
cbl(null, slc(data, b, b + sc));
|
|
2597
|
+
else if (c_1 == 8) {
|
|
2598
|
+
var infl = data.subarray(b, b + sc);
|
|
2599
|
+
// Synchronously decompress under 512KB, or barely-compressed data
|
|
2600
|
+
if (su < 524288 || sc > 0.8 * su) {
|
|
2601
|
+
try {
|
|
2602
|
+
cbl(null, inflateSync(infl, { out: new u8(su) }));
|
|
2603
|
+
}
|
|
2604
|
+
catch (e) {
|
|
2605
|
+
cbl(e, null);
|
|
2606
|
+
}
|
|
2607
|
+
}
|
|
2608
|
+
else
|
|
2609
|
+
term.push(inflate(infl, { size: su }, cbl));
|
|
2610
|
+
}
|
|
2611
|
+
else
|
|
2612
|
+
cbl(err(14, 'unknown compression type ' + c_1, 1), null);
|
|
2425
2613
|
}
|
|
2426
2614
|
else
|
|
2427
|
-
|
|
2615
|
+
cbl(null, null);
|
|
2616
|
+
};
|
|
2617
|
+
for (var i = 0; i < c; ++i) {
|
|
2618
|
+
_loop_3(i);
|
|
2428
2619
|
}
|
|
2429
|
-
else
|
|
2430
|
-
cbl('unknown compression type ' + c_1, null);
|
|
2431
|
-
};
|
|
2432
|
-
for (var i = 0; i < c; ++i) {
|
|
2433
|
-
_loop_3(i);
|
|
2434
2620
|
}
|
|
2621
|
+
else
|
|
2622
|
+
cbd(null, {});
|
|
2435
2623
|
return tAll;
|
|
2436
2624
|
}
|
|
2437
2625
|
/**
|
|
2438
2626
|
* Synchronously decompresses a ZIP archive. Prefer using `unzip` for better
|
|
2439
2627
|
* performance with more than one file.
|
|
2440
2628
|
* @param data The raw compressed ZIP file
|
|
2629
|
+
* @param opts The ZIP extraction options
|
|
2441
2630
|
* @returns The decompressed files
|
|
2442
2631
|
*/
|
|
2443
|
-
export function unzipSync(data) {
|
|
2632
|
+
export function unzipSync(data, opts) {
|
|
2444
2633
|
var files = {};
|
|
2445
2634
|
var e = data.length - 22;
|
|
2446
2635
|
for (; b4(data, e) != 0x6054B50; --e) {
|
|
2447
2636
|
if (!e || data.length - e > 65558)
|
|
2448
|
-
|
|
2637
|
+
err(13);
|
|
2449
2638
|
}
|
|
2450
2639
|
;
|
|
2451
2640
|
var c = b2(data, e + 8);
|
|
2452
2641
|
if (!c)
|
|
2453
2642
|
return {};
|
|
2454
2643
|
var o = b4(data, e + 16);
|
|
2455
|
-
var z = o == 4294967295;
|
|
2644
|
+
var z = o == 4294967295 || c == 65535;
|
|
2456
2645
|
if (z) {
|
|
2457
|
-
|
|
2458
|
-
|
|
2459
|
-
|
|
2460
|
-
|
|
2461
|
-
|
|
2646
|
+
var ze = b4(data, e - 12);
|
|
2647
|
+
z = b4(data, ze) == 0x6064B50;
|
|
2648
|
+
if (z) {
|
|
2649
|
+
c = b4(data, ze + 32);
|
|
2650
|
+
o = b4(data, ze + 48);
|
|
2651
|
+
}
|
|
2462
2652
|
}
|
|
2653
|
+
var fltr = opts && opts.filter;
|
|
2463
2654
|
for (var i = 0; i < c; ++i) {
|
|
2464
2655
|
var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);
|
|
2465
2656
|
o = no;
|
|
2466
|
-
if (!
|
|
2467
|
-
|
|
2468
|
-
|
|
2469
|
-
|
|
2470
|
-
|
|
2471
|
-
|
|
2657
|
+
if (!fltr || fltr({
|
|
2658
|
+
name: fn,
|
|
2659
|
+
size: sc,
|
|
2660
|
+
originalSize: su,
|
|
2661
|
+
compression: c_2
|
|
2662
|
+
})) {
|
|
2663
|
+
if (!c_2)
|
|
2664
|
+
files[fn] = slc(data, b, b + sc);
|
|
2665
|
+
else if (c_2 == 8)
|
|
2666
|
+
files[fn] = inflateSync(data.subarray(b, b + sc), { out: new u8(su) });
|
|
2667
|
+
else
|
|
2668
|
+
err(14, 'unknown compression type ' + c_2);
|
|
2669
|
+
}
|
|
2472
2670
|
}
|
|
2473
2671
|
return files;
|
|
2474
2672
|
}
|